作业帮 > 数学 > 作业

用Matlab能解 常微分方程组 吗?我是要计算其数值解

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/07/16 21:18:37
用Matlab能解 常微分方程组 吗?我是要计算其数值解
我是要解这样一个运动方程:
[M]{y2}+[B]{y1}+[C]{y}={f}
其中,y1为y的一阶导数,y2为y的二阶导数.[M],[B],[C]都是6*6矩阵,{y},{f},{y1},{y2}都是6*1的向量.
请问,是否可以用ode45计算,怎么做呢?谢谢
大概这样写:
首先先建立2个editor
第一个用来描述方程,建立M文件;第二个用来算方程
第一个editor:%%%%设y(1)=y,y(2)=dy
function dy=fun(t,y)
global M B C f
dy=zeros(2,1);
dy(1)=y(2);
dy(2)=(f-B.*y(2)-C.*y(1)).*(inv(M));
然后点保存,产生M文件
然后第二个editor
global M B C f
M=ones(6,6);B=ones(6,6);C=ones(6,6);f=ones(6,1);
%%%%%输入实际中的M,B,C,f矩阵,这里为简单令全1矩阵了
X0=[0,0];%%%%初值,根据题设要求去填写
fanwei=[-100,100]%%%%%变量的范围,根据题设要求填写
[T,Y]=ode45('fun',fanwei,X0);
figure(1)
plot(T,Y(:,1),'-',Y(:,2),'--')