ode45 with two variables

2 次查看(过去 30 天)
Pavan Kumar
Pavan Kumar 2015-1-30
评论: Torsten 2015-1-30
Hii Friends,
I have a variable delk which is [1*170001] matrix
I defined coupled equations as shown.
dB = zeros(3,170001); % a column vector
dB(1) = i*R*GammaL*B(3)*conj(B(2)).*exp(i.*delk*Z1); dB(2) = i*S*GammaL*B(3)*conj(B(1)).*exp(i.*delk*Z1); dB(3) = i*GammaL*B(1)*B(2).*exp(-i.*delk*Z1);
[Z1,B] = ode45(@(Z1,B) DFG789(Z1,B,delk),[0 3],[(0.1) 0 1]); plot3(delk,abs(B(:,1)).^2);
when i run the code i get the following errors. Any Suggestions?
In an assignment A(I) = B, the number of elements in B and I must be the same.
Error in DFG789 (line 41) dB(1) = i*R*GammaL*B(3)*conj(B(2)).*exp(i.*delk*Z1);
Error in @(Z1,B)DFG789(Z1,B,delk)
Error in odearguments (line 87) f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ode45 (line 113) [neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
Error in DFG7891 (line 28) [Z1,B] = ode45(@(Z1,B) DFG789(Z1,B,delk),[0 3],[(0.1) 0 1]);
  2 个评论
Torsten
Torsten 2015-1-30
You still don't get it.
In the assignments
dB(1) = i*R*GammaL*B(3)*conj(B(2)).*exp(i.*delk*Z1);
dB(2) = i*S*GammaL*B(3)*conj(B(1)).*exp(i.*delk*Z1);
dB(3) = i*GammaL*B(1)*B(2).*exp(-i.*delk*Z1);
dB(1), dB(2), dB(3) are scalars, while the expressions on the right-hand side are vectors of length 1700001.
You could repair this by setting
dB(1:170001)=...
dB(170002:340002)=...
dB(340002:510003)=...
and by making the vector of initial values a 1x510003 - vector, but do you really want ODE45 solve 510003 ODEs simultaneously ? I think this is not a good idea.
Best wishes
Torsten.
Torsten
Torsten 2015-1-30
Your assignments would read
dB(1:170001)=i*R*GammaL*B(340003:510003)*conj(B(170002:340002)).*exp(i.*delk*Z1);
dB(170002:340002)=i*S*GammaL*B(340003:510003)*conj(B(1:170001)).*exp(i.*delk*Z1);
dB(340003:510003)=i*GammaL*B(1:170001).*B(170002:340002).*exp(-i.*delk*Z1);
and the initial condition vector
y0=zeros(510003);
y0(1:170001)=0.1;
y0(170002:340002)=0;
y0(340003:510003)=1;
Best wishes
Torsten.

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Ordinary Differential Equations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by