首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >欧拉法- MatLab中的弹簧振荡

欧拉法- MatLab中的弹簧振荡
EN

Stack Overflow用户
提问于 2011-01-28 00:20:28
回答 4查看 3.2K关注 0票数 1

如果我有一个用一阶微分方程表示的二阶微分方程,它描述了一个质量-弹簧-阻尼器系统,当我不知道一阶微分方程时,我怎么能用欧拉法来画这个方程呢?我想用MatLab来做这件事。这是一个家庭作业问题,所以我还没有发布任何代码。我只想要一个简单的大纲,告诉你该怎么做。

二阶导数是d2(t+1) = (-1/m)*(c*d1+k*y),其中c,m,k是常数,y初始是1,d1是从0开始的一阶微分,t是时间。

有什么想法吗?

谢谢:)。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-01-28 01:10:22

二阶方程可以转化为一阶微分方程组。

代码语言:javascript
复制
function dy = ex(y)
dy = zeros(2,1);
dy(1) = y(2);
dy(2) = -c/m*y(2) - k/m*y(1);

由此,您可以使用Matlab的内置求解器。ode23s将会工作得很好:

代码语言:javascript
复制
[t,y] = ode23s(@ex, y0, tspan)
票数 3
EN

Stack Overflow用户

发布于 2011-01-28 00:28:01

将二阶方程重写为一阶方程组。未知数对应于位置和速度。

票数 3
EN

Stack Overflow用户

发布于 2011-01-28 00:55:38

一阶微分方程组可能看起来像这样,而y1 = y'用于表示时间导数。

代码语言:javascript
复制
y1' = y2
y2' = -c/m*y2 - k/m*y1
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4818897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档