matlab里ode45解决二阶常系数微分方程用法

 我来答
惠企百科
2022-09-28 · 百度认证:北京惠企网络技术有限公司官方账号
惠企百科
惠企百科网是一家科普类综合网站,关注热门中文知识,集聚互联网精华中文知识,本着自由开放、分享价值的基本原则,向广大网友提供专业的中文知识平台。
向TA提问
展开全部

1、相关常数都没给,这里随便设置一些数值:

m=1;c=2;k=3;

y0=4;yp0=5;

tf=10;

dy=@(t,y)[y(2);-(c*y(2)+k*y(1))/m];

[t,y]=ode45(dy,[0 tf],[y0 yp0]);

plot(t,y(:,1))

2、function test()

[t,y]=ode45(@func1, [0,1], [0;0;1;2;2;2]);

figure(1);

clf;

plot(t, y);

legend('x','y','z','dx','dy','dz');

grid on;

function f=func1(t,x)

r=(x(1)^2+x(2)^2+x(3)^2)^(1/2);

f=[x(4); x(5); x(6); r*x(1); r*x(2); r*x(3)];

扩展资料:

升阶法:

设y''+p(x)y'+q(x)y=f(x),当f(x)为多项式时,设f(x)=a0x^n+a1x^(n-1)+…+a(n-1)x+an,此时,方程两边同时对x求导n次,得

y'''+p(x)y''+q(x)y'=a0x^n+a1x^(n-1)+…+a(n-1)x+an……

y^(n+1)+py^(n)+qy^(n-1)=a0n!x+a1(n-1)!

y^(n+2)+py^(n+1)+qy^(n)=a0n!

令y^n=a0n!/q(q≠0),此时,y^(n+2)=y^(n+1)=0。由y^(n+1)与y^n通过倒数第二个方程可得y^(n-1),依次升阶,一直推到方程y''+p(x)y'+q(x)y=f(x),可得到方程的一个特解y(x)。

参考资料来源:百度百科-二阶常系数线性微分方程

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式