Info

この質問は閉じられています。 編集または回答するには再度開いてください。

Matlab taking so much execution time

1 回表示 (過去 30 日間)
AVM
AVM 2020 年 1 月 27 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
I have a simple code here. But whenever I try to run this code, the system gets slower and start to hang frequently. Moreover, the run process seems to be never ending. Hence I forcefully shut down the pc several time. Pl , somebody see my code and solve the problem. Actually here, I am trying to get a 3d plot.
clc;clear;
syms theta phi b k alpha
alpha=1;
b=1;
sigma1=[0 1;1 0];
sigma2=[0 -1i;1i 0];
sigma3=[1 0;0 -1];
sigmap=1/2*(sigma1+1i*sigma2);
sigmam=1/2*(sigma1-1i*sigma2);
I=eye(2);
n=[sin(theta)*cos(phi) sin(theta)*sin(phi) cos(theta)];
a=sigma1*sin(theta)*cos(phi)+sigma2*sin(theta)*sin(phi)+sigma3*cos(theta);
d=kron(sigmap,sigmap)+kron(sigmam,sigmam);
h=1/2*alpha*b*kron(a,I)+k*d; %% a 4*4 matrix
[V,L]=eig(h);
u=V(:,1)./sqrt(sum(V(:,1).^2)); %%To make the normalization to the one of the eigen vector of h.
w=diff(u,phi); %% Derrivative of that eigen vector with respect to phi variable.
r=dot(u,w);
assume(theta>=0);
assume(phi>=0);
r=simplify(r,'Steps',100);
f=1/pi*1i*int(r,phi,0,2*pi);
f=simplify(f,'Steps',100);
ffcn=matlabFunction(f);
theta = linspace(0.001,4, 30);
k = linspace(0.001,10, 30);
[Th,K] = meshgrid(theta, k);
F=ffcn(Th,K);
figure
mesh(Th,K, F)
colormap(cool)
grid on
xlabel('\bf\theta','FontSize',14)
ylabel('\bf\alpha','FontSize',14)
zlabel('\bf\itf','FontSize',14)
  7 件のコメント
AVM
AVM 2020 年 1 月 30 日
@walter: I was trying without any optimization in the following code according to your advice, but without optimisation is taking more than 1day to excute but the execution yet not completeed.. It's really painful for me. Pl help me.
clc;clear;
syms theta phi b k alpha
alpha=1;
b=1;
sigma1=[0 1;1 0];
sigma2=[0 -1i;1i 0];
sigma3=[1 0;0 -1];
sigmap=1/2*(sigma1+1i*sigma2);
sigmam=1/2*(sigma1-1i*sigma2);
I=eye(2);
n=[sin(theta)*cos(phi) sin(theta)*sin(phi) cos(theta)];
a=sigma1*sin(theta)*cos(phi)+sigma2*sin(theta)*sin(phi)+sigma3*cos(theta);
d=kron(sigmap,sigmap)+kron(sigmam,sigmam);
h=1/2*alpha*b*kron(a,I)+k*d; %% a 4*4 matrix
[V,L]=eig(h);
u=V(:,1)./sqrt(sum(V(:,1).^2)); %%To make the normalization to the one of the eigen vector of h.
w=diff(u,phi); %% Derrivative of that eigen vector with respect to phi variable.
r=dot(u,w);
f=1/pi*1i*int(r,phi,0,2*pi);
theta = linspace(0.001,4, 30);
k = linspace(0.001,10, 30);
[Th,K] = meshgrid(theta, k);
F=f(Th,K);
figure
mesh(Th,K, F)
colormap(cool)
grid on
xlabel('\bf\theta','FontSize',14)
ylabel('\bf\alpha','FontSize',14)
zlabel('\bf\itf','FontSize',14)
Walter Roberson
Walter Roberson 2020 年 1 月 30 日
Shrug. Get yourself a much much faster computer. Something overclocked and cooled with liquid nitrogen perhaps.

回答 (1 件)

AVM
AVM 2020 年 1 月 28 日
Thanks..okay,I am leaving it without any optimization (simplify() kind of thing) whole night.let see what happen...

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by