matlab解矩阵微分方程

下式中,m1、m2、m3、c1、c2、c3和Qy都是已知量,怎么利用matlab求解y1、y2和y3关于时间变化?给分不多,希望高手解答!多谢!... 下式中,m1、m2、m3、c1、c2、c3和Qy都是已知量,怎么利用matlab求解y1、y2和y3关于时间
变化?给分不多,希望高手解答!多谢!
展开
匿名用户
2014-04-09
展开全部

参考代码:

% 参数定义
m1 = 1; m2 = 2; m3 = 3;
k1 = 4; k2 = 5; k3 = 6;
c1 = 7; c2 = 8; c3 = 9;
Qy = 10;

% 微分方程
K = [k1 -k1 0; -k1 k1+k2 -k2; 0 -k2 k2+k3];
C = [c1 -c1 0; -c1 c1+c2 -c2; 0 -c2 c2+c3]
dy = @(t,y)[y(4:6); (-K*y(1:3)-C*y(4:6)+[Qy;0;0])./[m1;m2;m3]];

% 初始条件(y4~y6 为 y1'~y3')
y0 = zeros(6,1);

% 求解,直接绘图
[t,y] = ode45(dy,[0 15],y0);
plot(t,y(:,1:3));
lstr = arrayfun(@(i){sprintf('y%i',i)},1:3);
legend(lstr{:})
legend(lstr{:},'Location','S','Orientation','horizontal')

 

更多追问追答
追问
dy = @(t,y)[y(4:6); (-K*y(1:3)-C*y(4:6)+[Qy;0;0])./[m1;m2;m3]];
这句怎么意思呢?
追答
1、从作用说,这句定义了微分方程组(由6个一阶微分方程组成),以便后续用ode求解器求解;
2、从编程的角度说,这里使用了匿名函数(Anonymous Function),如果对匿名函数不熟悉,请自行查阅相关资料,网上有很多。
江苏华简晟01
2024-10-21 广告
色谱检测服务热线18721007633, 江苏华简晟检测科技是研究性测试服务机构,基于多年的分析表征专业技术积累和辐射全国的服务网络,每年出具数万分技术报告,累计服务客户数千万家。... 点击进入详情页
本回答由江苏华简晟01提供
匿名用户
2014-04-10
展开全部
忘光了,全还给老师了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式