matlab求解微分方程组

dx/dt=7.3*10^5*(x/y)-1.88*10^4*(x^2/y)
dy/dt=7.3*10^5-1.88*10^4*x+10.69*x*sqrt(2.1*10^6-y)
初始条件
t=0 x=206.5 y=0
求出x(t),y(t)

第1个回答  2015-09-06
ODE方程组可以通过MATLAB的ode系列命令进行求解(ode23,ode45,ode15s,ode113,......),不同的算法代表不同的积分方法,具有不同的精度,适用于不同的场合,具体可参考有关Simulink求解器的选择方法,对于本题,若以ode45命令为例进行求解:
① 新建函数文件:f.m
function dX=f(t,X)
% X=[ x ]
% [ y ];
dX=[ 7.3*10^5*(X(1)/X(2))-1.88*10^4*(X(1)^2/X(2));
7.3*10^5-1.88*10^4*X(1)+10.69*X(1)*sqrt(2.1*10^6-X(2)) ];
保存。
② 在命令行运行以下命令:
[t,X]=ode45(@f,[0 10],[206.5 0.099])
(由于题设未给出,这里假定仿真10s,对应第二项 [0 10],即从0s至10s)
③ 绘图:
plot(t,X(:,1)) %绘制x(t)图像
plot(t,X(:,2)) %绘制y(t)图像
补充:1)本题函数的刚性较大,求解时可能出现复数,请校核函数表达式和初值,并选择恰当的积分方法;2)其它ode命令的使用方法类同,具体请参见help本回答被提问者和网友采纳
第2个回答  2019-10-09
右边的式子没问题,确实只是系数不一样。我最近看了些matlab的教程,学会了用ode45解二阶微分方程和一阶微分方程组,但是不会解我这个二阶微分方程组。另外我这个边值问题还有些特殊,当C=0时,a=47,b=23;当c=1时,da/dc=0,db/dc=0。
第3个回答  2015-09-06
dsolve只能求解单个微分方程,需要自己消元
第4个回答  2015-09-05
用dsolve解不出解析解。 只能用数值解。追问

那你能不能解一下?

追答

不对。 你这个方程有点问题。

初始条件y(0)=0,第一个方程就有奇异点。 也就是分母为0了。

追问

那y0=0.099了

相似回答