matlab常微分方程组求解
发布网友
发布时间:2022-04-28 11:33
我来回答
共1个回答
热心网友
时间:2023-10-06 03:31
上面两题用dsolve都解不出,用ode45数值解法如下:
1题中x1=i,x2=s,则:
syms
x1(t)
x2(t)
lamda=0.5;u=0.1;
V
=
odeToVectorField(diff(x1)
==lamda*x1*x2-u*x2,diff(x2)
==-lamda*x1*x2+0.1)
M
=
matlabFunction(V,'vars',
{'t','Y'})
%计算区间[0
1],初值[0
0]
options
=
odeset('OutputFcn',@odeplot);
sol
=
ode45(M,[0
1],[0
0],options)
2题中x=x1,y=x2,z=x3,则:
syms
x1(t)
x2(t)
x3(t)
V
=
odeToVectorField(diff(x1)
==-8/3*x1+x2*x3,diff(x2)
==-10*x2+10*x3,diff(x3)==-x1*x2+28*x2-x3)
M
=
matlabFunction(V,'vars',
{'t','Y'})
%计算区间[0
1],初值[0
0
1.0e-8]
options
=
odeset('OutputFcn',@odeplot);
sol
=
ode45(M,[0
4],[0
0
1.0e-8],options)
figure
x
=
linspace(0,4,100);
y
=
deval(sol,x,1:3);
plot(y(1,:),y(2,:))
title('x-y相图')
xlabel('x'),ylabel('y')
grid
on
figure
plot(y(1,:),y(3,:))
title('x-z相图')
xlabel('x'),ylabel('z')
grid
on
figure
plot3(y(1,:),y(2,:),y(3,:))
title('x-y-z相图')
xlabel('x'),ylabel('y'),zlabel('z')
grid
on
热心网友
时间:2023-10-06 03:31
上面两题用dsolve都解不出,用ode45数值解法如下:
1题中x1=i,x2=s,则:
syms
x1(t)
x2(t)
lamda=0.5;u=0.1;
V
=
odeToVectorField(diff(x1)
==lamda*x1*x2-u*x2,diff(x2)
==-lamda*x1*x2+0.1)
M
=
matlabFunction(V,'vars',
{'t','Y'})
%计算区间[0
1],初值[0
0]
options
=
odeset('OutputFcn',@odeplot);
sol
=
ode45(M,[0
1],[0
0],options)
2题中x=x1,y=x2,z=x3,则:
syms
x1(t)
x2(t)
x3(t)
V
=
odeToVectorField(diff(x1)
==-8/3*x1+x2*x3,diff(x2)
==-10*x2+10*x3,diff(x3)==-x1*x2+28*x2-x3)
M
=
matlabFunction(V,'vars',
{'t','Y'})
%计算区间[0
1],初值[0
0
1.0e-8]
options
=
odeset('OutputFcn',@odeplot);
sol
=
ode45(M,[0
4],[0
0
1.0e-8],options)
figure
x
=
linspace(0,4,100);
y
=
deval(sol,x,1:3);
plot(y(1,:),y(2,:))
title('x-y相图')
xlabel('x'),ylabel('y')
grid
on
figure
plot(y(1,:),y(3,:))
title('x-z相图')
xlabel('x'),ylabel('z')
grid
on
figure
plot3(y(1,:),y(2,:),y(3,:))
title('x-y-z相图')
xlabel('x'),ylabel('y'),zlabel('z')
grid
on