早教吧 育儿知识 作业答案 考试题库 百科 知识分享

matlab求解微分方程组dy(1)/dt=(e12-y(1)/c13)/r6-A0*y(3)/I16-(y(1)/c13-y(2)/c14)/r8dy(2)/dt=(y(1)/c13-y(2)/c14)/r8+y(3)/(A0*I16)-(y(2)/c14-e15)/r9dy(2)/dt=A0*y(1)/c13-r7*y(3)/I16-Sf-y(1)/(A0*c13)其中:e12=20e6;c13=1.7e-6;c14=1.7e-6;c15=4.4e-6;I

题目详情
matlab求解微分方程组
dy(1)/dt=(e12-y(1)/c13)/r6-A0*y(3)/I16-(y(1)/c13-y(2)/c14)/r8
dy(2)/dt=(y(1)/c13-y(2)/c14)/r8+y(3)/(A0*I16)-(y(2)/c14-e15)/r9
dy(2)/dt=A0*y(1)/c13-r7*y(3)/I16-Sf-y(1)/(A0*c13)
其中:e12=20e6;c13=1.7e-6;c14=1.7e-6;c15=4.4e-6;I16=202.8;
r6=11.5e-6; r7=5e-6; r8=3e-6; r9=12.5e-6;A0=0.049
初始条件:y0=[0;0.049;15e6]
麻烦给出具体的程序,万分感激!这是我论文的一个仿真,但是搞了一个星期搞不出来,
我自己写的程序如下,但是进入了死循环(我是直接把已知量代到方程中去了,其实不应该这样的,但是我不会搞有参数的方程)!
function ydot = lorenzeq(t,y)
ydot=[(20e6-y(1)/1.7e-6)/(11.5e-6)-0.049*y(3)/202.8-(y(1)/(1.7e-6)-y(2)/(1.7e-6))/(3e-6);
(y(1)/(1.7e-6)-y(2)/(1.7e-6))/(3e-6)+y(3)/(0.049*202.8)-(y(2)/(1.7e-6)-2e5)/(12.5e-6);
0.049*y(1)/(1.7e-6)-(5e-6)*y(3)/202.8-2e6-y(1)/(0.049*1.7e-6)]
t_final=10; y0=[0;0.049;15e6];
[t,y]=ode45('luofusheng3',[0,t_final],y0); plot(t,y)
怎样用MATLAB将微分方程组dy(1)/dt=P0-r6*y(1)/I2-y(2)/c7
dy(2)/dt=y(1)/I2-y(2)/(r4*c7)+y(3)/(r4*c8)
dy(3)/dt=y(2)/(r4*c7)-y(3)/(r4*c8)-A0*y(4)/Im
dy(4)/dt=A0*y(3)/c8-Sf-r5*Pm/Im解的表达式求解出来,请各位大侠不吝赐教给出具体步骤,小弟先行谢过了!
▼优质解答
答案和解析
程序本身没什么问题,就是算的很慢而已.你想快一点可以用ode15s、ode23s等刚性求解器.
——————————————
A=dsolve('Dy1/dt=P0-r6*y1/I2-y2/c7','Dy2/dt=y1/I2-y2/(r4*c7)+y3/(r4*c8)','Dy3/dt=y2/(r4*c7)-y3/(r4*c8)-A0*y4/Im','Dy4/dt=A0*y3/c8-Sf-r5*Pm/Im')
然后A.y1到A.y4就是解.解里含有rootof的形式,指的是里面的根,因为都是字母,所以写不出显式的根,只能这样表示.