作业帮 > 综合 > 作业

如何使用Matlab求解复杂的微分方程组

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/15 15:27:11
如何使用Matlab求解复杂的微分方程组
用最简单的dsolve提示Explicit solution could not be found.然后就不知道自己列的方程是否出错了,(应该没错),所以想知道求解复杂微分方程的一些代码或者思路
如何使用Matlab求解复杂的微分方程组
这说明此微分方程没有显示解,应用数值方法求解,例如ode45等函数
就一个例子(选自matlab帮助文档)
解入下微分方程组

1,建立方程组函数
 
function dy = rigid(t,y)
dy = zeros(3,1);    % a column vector
dy(1) = y(2) * y(3);
dy(2) = -y(1) * y(3);
dy(3) = -0.51 * y(1) * y(2);
2,
[T,Y] = ode45(@rigid,[0 12],[0 1 1]);
plot(T,Y(:,1),'-',T,Y(:,2),'-.',T,Y(:,3),'.')
结果

再问: 这种方法是用迭代拟合的还是什么? 能得到正确的解吗? 还有就是,这种方法可以不可以含有字母常量 例如DY=a,a为常数的形式
再答: 这种方法是基于 Runge-Kutta算法,数值算法,得到的是精确解,可以算正确解。 不可以含字母,那是符号求解用dsolve。