如何用ode45求解耦合的“非线性奇异”常微分方程组(MATLAB误差)

如何用ode45求解耦合的“非线性奇异”常微分方程组(MATLAB误差),matlab,ode,numerical-integration,runge-kutta,Matlab,Ode,Numerical Integration,Runge Kutta,我是Matlab编程的初学者,同时也是Runge-Kutta方法的初学者 在我的项目工作中,我试图用四阶龙格-库塔方法求解一个耦合非线性常微分方程组 这是我的问题 v'n=k1;d'n=k2;p'n=k3;q'n=k4;w'n=k5 v[1]=1-b;d[1]=1/b;p[1]=1-b;q[1]=0.01;w[1]=0.02 在matlab代码中,我用x1替换了v,用x2替换了d 这里,Ki,I= 1-5是席和N的函数,作为Matlab代码中的“Case1RK”行向量 我的MATLAB代码是--

我是Matlab编程的初学者,同时也是Runge-Kutta方法的初学者

在我的项目工作中,我试图用四阶龙格-库塔方法求解一个耦合非线性常微分方程组

这是我的问题

v'n=k1;d'n=k2;p'n=k3;q'n=k4;w'n=k5

v[1]=1-b;d[1]=1/b;p[1]=1-b;q[1]=0.01;w[1]=0.02

在matlab代码中,我用x1替换了v,用x2替换了d

这里,Ki,I= 1-5是席和N的函数,作为Matlab代码

中的“Case1RK”行向量 我的MATLAB代码是--

G=1.4; g=1.4; k=0; z=0; b=0.166667; 符号n; x2=symfunsym'x2n',n; x1=symfunsym'x1n',n; x3=symfunsym'x3n',n; x4=symfunsym'x4n',n; x5=symfunsym'x5n',n; dn=.2; n=0:dn:1; case1rk=@n,x[x2*x1*n*1-z*x2*x1-n-2*x3*n*1-z*x2-x4^2*x2*1-z*x2-G*x3*x2./G*x3-x1-n^2*x2*1-z*x2*n; x2*1-z*x2*x1*x2*x1-2*n*x1-n+2*x3*n+x4^2*x2./G*x3-x1-n^2*x2*1-z*x2*n*x1-n; x3*x2*2*n*x1-n^2*1-z*x2+G*x1*x1-2*n*x1-n+x4^2*G./G*x3-x1-n^2*x2*1-z*x2*n*x1-n; x4*x1+n./n*x1-n; -x5./n*x1-n];
[n,xs]=ode45@n,x case1rkn,x,n,[01],[1-b1/b1-b0.01 0.02];在你的另一个问题中,你已经得到了一个有效的答案。这里的错误不是matlab的语法,而是在n=0时被零除。你的系统不是僵硬的,而是单一的。不同的难度。可能重复@LutzL…那么如何解决上述系统…以及如何绘制v[[Eta]]/v[1]…的图形,即。x1[[Eta]]/x1[1].@LutzL…你如何发现被零除的结果是n=0。因为你的分母在所有情况下都包含因子n*x1-n,RK迭代从n=0开始。你也可以在n=x1处有一个奇点,但你不太可能碰到它。特洛伊哈斯金在你问题的早期版本中对答案的评论中已经指出了这一点。