如何解决耦合非线性奇异系统的问题。带ode45的ODE(MATLAB错误)

时间:2015-03-29 09:21:16

标签: matlab ode numerical-integration runge-kutta

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

我正在尝试使用4阶Runge-Kutta方法为我的项目工作解决耦合非线性ODE系统。

这是我的问题......

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代码中,我将x替换为x,d替换为x2 ......

这里ki,i = 1-5是xi和n的函数,在Matlab代码中作为'case1rk'的行向量给出

我的MATLAB代码是---

G = 1.4;
g = 1.4;
k = 0;
z = 0;
b = 0.166667;
syms n; 
x2 = symfun(sym('x2(n)'),(n));
x1 = symfun(sym('x1(n)'),(n));
x3 = symfun(sym('x3(n)'),(n));
x4 = symfun(sym('x4(n)'),(n));
x5 = symfun(sym('x5(n)'),(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) case1rk(n,x),n,[0 1],[1-b 1/b 1-b 0.01 0.02]);

错误是

  

使用odearguments时出错(第93行)   @(N,X)CASE1RK(N,X)返回长度为1的向量,但长度为   初始条件向量是2.返回的向量   @(N,X)CASE1RK(N,X)和初始条件向量必须具有   相同数量的元素。

     

ode45错误(第114行)   [neq,tspan,ntspan,next,t0,tfinal,tdir,y0,f0,odeArgs,   odeFcn,...

n的范围可以在0到1之间.....我怎么知道上述系统的n个解的哪个范围存在...

请告诉我用于绘制图表的命令...对于v [η] / v [1] ...即。 x(1)[η] / x(1)[1] ...在存在溶液的n的范围内

请指导我......

0 个答案:

没有答案