首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Matlab系统微分方程递推定义

Matlab系统微分方程递推定义
EN

Stack Overflow用户
提问于 2015-05-18 20:40:35
回答 1查看 284关注 0票数 2

我正在寻找一个紧凑和有效的方法来解决以下问题。我有一个微分方程系统,比如说3,我想把它推广到分子动力学类型的计算中。

目前,这是起点。

代码语言:javascript
运行
复制
function dy = molec(t,y)
dy = zeros(3,1);
A = 1;
B = 1;
dy(1) = (A/B)*   (2 * (y(2)-y(1)) - 0.5) ;
dy(2) = (A/B)*  (  2* ( y(1) - y(2) )  + 4* (y(3)-y(2))    )     ;
dy(3) = (A/B)*  ( 6 * (- y(3)) + 4 * (  y(2) - y(3) )    );

我想要100到150个变量。我可以通过键入这些定义来进一步添加dy(n)定义,但这很难实现。相反,我想利用这个问题的递归定义。事实上,给定一个已知序列a_n,第n项被定义。

代码语言:javascript
运行
复制
dy(n) = (A/B)* a_n*(y_{n-1} - y{n}) + a_{n-1}*y_{n+1} - y_{n})

任何帮助都将不胜感激,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-18 22:25:43

这是一个迭代的定义,里面没有递归。

使用类似的东西

代码语言:javascript
运行
复制
diff = y(2:N)-y(1:N-1)
dy(1:N-1)=a(1:N-1) .* diff
dy(2:N) = dy(2:N) - a(2:N) .* diff
dy(1) = dy(1) + ...
dy(N) = dy(N) + ...
dy = dy * (A/B)

或者直接实现公式的for循环。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30312445

复制
相关文章

相似问题

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