在matlab里运用ode计算一阶微分方程组
可以根据需求选择合适的ode
举个例
程序为:function dy = odefun(t,y)
dy = zeros(3,1); % 一个列向量
dy(1)=[-21y(1)+19y(2)-20y(3)];
dy(2)=[19y(1)-21y(2)+20y(3)];
dy(3)=[40y(1)-40y(2)-40*y(3)];
end
在命令窗口输入
tspan = [0,0.01];
y0 = [1,0,-1];
[T,Y] = ode113( @odefun, tspan, y0 )
其中tspan为步长,y0表示初值,T:求解区域内离散数据,Y:求解区域内离散数据的对应数值解
运行结果为
在举一个例子
程序为:
function dy = odefun2(t,y)
dy = zeros(3,1); % a column vector
dy(1)=[y(2)];
dy(2)=[-1y(1)];
dy(3)=[-1y(3)];
end
在命令窗口输入
tspan = [0:1];;y0 = [-1,0,1];
[T,Y] = ode23s( @odefun2, tspan, y0 )
出现的结果为