繁体   English   中英

我可以在Matlab中求解具有复杂系数的ode吗?

[英]can i solve odes with complex coefficients in matlab?

我正在使用标准ode45方法求解具有复杂系数的Odes系统,但未获得期望的结果。 以下是我的M.file

function dy=tarak(t,y)

g0=.1;

t0=200;

s=90;

g=g0*exp(-((t-t0)/s).^2);

G=sqrt(10);

dy=zeros(5,1);

dy(1)=-2*2*y(1)+1i*G*conj(y(3))+1i*g*conj(y(4))-1i*G*y(3)-1i*conj(g)*y(4);

dy(2)=2*y(1)+1i*G*y(3)-1i*G*conj(y(3));

dy(3)=-2*y(3)+1i*G*y(2)+1i*g*conj(y(5))-1i*G*y(1);

dy(4)=-2*y(4)+1i*G*y(5)+1i*g*(1-y(1)-y(2))-1i*g*y(1);

dy(5)=1i*G*y(4)-1i*g*conj(y(3));

命令t = 0:500;

[T,Y] = ode45(@ tarak,t,[0 0 0 0 0]);

结果,对于某些Y(1)和y(2),我得到了负值。 但它应该永远是积极的

我的做法有什么毛病吗?

谢谢

如果您使用的是Google,则会发现诸如

https://www.mathworks.com/matlabcentral/answers/102582-do-the-ode-functions-from-matlab-ie-ode23-ode24-handle-complex-numbers-properly

  • “ MathWorks支持团队在2010年7月26日的回答:MATLAB 5(R12)和更高版本中的ODE求解器可以正确处理复杂的有价值的系统。”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM