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

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/24 08:38:54
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)/c1

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解的表达式求解出来,请各位大侠不吝赐教给出具体步骤,小弟先行谢过了!

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
程序本身没什么问题,就是算的很慢而已.你想快一点可以用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的形式,指的是里面的根,因为都是字母,所以写不出显式的根,只能这样表示.

接着楼上的继续说。原因就是“程序本身没什么问题,就是算的很慢而已。你想快一点可以用ode15s、ode23s等刚性求解器。”
对于有参数的方程,可以使用如下方法:
1、函数定义
function ydot = lorenzeq(t,y)
global a b c d %%%你的参数
%%或者直接赋值a=1,b=2..........

全部展开

接着楼上的继续说。原因就是“程序本身没什么问题,就是算的很慢而已。你想快一点可以用ode15s、ode23s等刚性求解器。”
对于有参数的方程,可以使用如下方法:
1、函数定义
function ydot = lorenzeq(t,y)
global a b c d %%%你的参数
%%或者直接赋值a=1,b=2...........
ydot=。。。。。。。。。%%你的方程就可以使用参数了。
2、命令窗口使用
global a b c d %%%你的参数
a=1;b=2....%赋值
t_final=10; y0=[0;0.049;15e6];
[t,y]=ode45('luofusheng3',[0,t_final],y0); plot(t,y)
最后建议多看看help ode45
[T,Y] = ODE45('F',TSPAN,Y0,OPTIONS,P1,P2,...) 表示函数ODE45本身也带有参数传递的功能,你只需要把其中的P1,P2,...用具体数值代替就是了
但是特别注意一下参数的顺序,以免错误

收起

用ode45

可能不是进入死循环了,是ODE45有问题,因为取点过多太慢了,可以用ODE15i试一下

matlab 微分方程组求解 matlab求解以下微分方程组! 这个微分方程组杂用matlab编程求解 matlab怎么求解微分代数方程组 matlab矩阵求求解微分方程组{用matlab编程}数值求解微分方程组求程序 求解微分方程组的解析解.matlab代码,谢谢 如何运用matlab求解非线性偏微分方程组 matlab大神,求解微分方程组代码求代码 求下列微分方程组(1)Dx/Dt=2*x-0.01*x*y(2)Dy/Dt=-y+0.01*x*y如果可以用MATLAB求解,或者直接给我X,Y表达式吧, matlab ode45求解微分方程组后 怎样输出dy/dt,即如何plot(t,y')? y和y'都是矩阵形式 matlab微分方程组其中 用Matlab能求解二元二阶微分方程组,求Matlab程序!方程组如图. 求解常微分方程组 matlab求解常微分方程组数值解,总出现这个,急死了我输入function dy=rigid(t,y) ;dy=zeros(3,1);dy(1)=y(2)*y(3);dy(2)=-y(1)*y(3);dy(3)=-0.51*y(1)*y(2);运行[T,Y]=ode45('rigid',[0 12],[0 1 1]);后总出现Error using ==> fevalUndefi matlab 解微分方程组 dx/dt=x+y dy/dt=x-y 请问怎么用matlab求解既有微分方程又有一般方程的混合方程组啊dy(1)=a1*t+b1*y(1); y(2)=a2+b2*(t-y(1)); dy(3)=-a3*y(2)*(y(3)-t)/y(1) 请注意第二个方程没有微分,其中ab都是常数,想得到y(1)-t,y(2)-t,y(3)-t的图形 求解一个微分方程组:dx/dt=x(1-x/250-y/125) dy/dt=y(1-y/100-x/300)只要一组除常数解以外的解即可.方程组是:dx/dt=x(1-x/250-y/125),dx/dt=x(1-x/250-y/125) 用matlab什么的解出来也行的。 matlab微分方程组求解方程组:dx/dt=-2Ax+uydy/dt=2Ax+auz-(A+u)yx+y+z=1matlab求解如下:>>global A,u>>[x,y,z]=dsolve('Dx=(-2)*A*x+u*y','Dy=2*A*x+2*u*z-(A+u)*y','x+y+z=1','x(0)=1,y(0)=0,z(0)=0')结果出错:Error using ==> dsolveThere ar