用Matlab能解 常微分方程组 吗?我是要计算其数值解
我是要解这样一个运动方程:[M]{y2}+[B]{y1}+[C]{y}={f}其中,y1为y的一阶导数,y2为y的二阶导数。[M],[B],[C]都是6*6矩阵,{y},...
我是要解这样一个运动方程:
[M]{y2}+[B]{y1}+[C]{y}={f}
其中,y1为y的一阶导数,y2为y的二阶导数。[M],[B],[C]都是6*6矩阵,{y},{f},{y1},{y2}都是6*1的向量。
请问,是否可以用ode45计算,怎么做呢?谢谢 展开
[M]{y2}+[B]{y1}+[C]{y}={f}
其中,y1为y的一阶导数,y2为y的二阶导数。[M],[B],[C]都是6*6矩阵,{y},{f},{y1},{y2}都是6*1的向量。
请问,是否可以用ode45计算,怎么做呢?谢谢 展开
1个回答
展开全部
大概这样写:
首先先建立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),'--')
首先先建立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),'--')
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询