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

dsolve解微分方程组问题出在哪里?如果写方程如下:[x1,y1]=dsolve("Dx1=0.08*(1-(1+0.15)*x1/800+0.01*y1/900)*x1 ,Dy1=0.07*(1-(1+0.1)*y1/900+0.008*x1/800)*y1","x1(0)=2,y1(0)=10")则不能得到解;但是如果方程如下:[x1,y1]=ds

题目详情
dsolve解微分方程组问题出在哪里?
如果写方程如下:[x1,y1]=dsolve('Dx1=0.08*(1-(1+0.15)*x1/800+0.01*y1/900)*x1 ,Dy1=0.07*(1-(1+0.1)*y1/900+0.008*x1/800)*y1','x1(0)=2,y1(0)=10')
则不能得到解;
但是如果方程如下:[x1,y1]=dsolve('Dx1=0.08*(1-(1+0.15)*x1/800+0.01*10/900)*x1','Dy1=0.07*(1-(1+0.1)*y1/900+0.008*2/800)*y1','x1(0)=2,y1(0)=10')便可以得到解.为什么呢?
难道dsolve不能出现“x*y“这样的乘积项?请大侠赐教,
▼优质解答
答案和解析
后者是两个相互独立的非线性常微分方程,dsolve相当于世界了两个互不相关的常微分方程;前者是一个非线性常微分方程组,dsolve无法直接解.不过我想到一个办法解决这个问题,从第一个方程中可解出y1=45/8*(200000*Dx1-16000*x1+23*x1^2)/x1,把它代到第二个方程里,于是得到一个二阶常微分方程-45/8*(200000*Dx1-16000*x1+23*x1^2)/x1^2*Dx1+45/8*(200000*D2x1-16000*Dx1+46*x1*Dx1)/x1=0.07*(1-(1+0.1)*(45/8*(200000*Dx1-16000*x1+23*x1^2)/x1)/900+0.008*x1/800)*(45/8*(200000*Dx1-16000*x1+23*x1^2)/x1),在相应的把y1(0)=10转化为关于Dx1和x1的边界条件,就可以用dsolve解了