24小时热门版块排行榜    

CyRhmU.jpeg
查看: 6711  |  回复: 15
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

444239852

银虫 (正式写手)

[求助] 用四阶龙格库塔法求解常微分方程组已有5人参与

本人是matlab初学者,自己写了程序但一直不能运行,求助高手帮我写一下程序,重谢!!!!
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : 微分方程组.docx
  • 2015-02-01 20:50:51, 33.06 K

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

7888

木虫 (正式写手)

废都绅士

【答案】应助回帖

引用回帖:
7楼: Originally posted by 月只蓝 at 2015-02-03 14:36:57
求写出来,供我们学习一下,花费您10分钟,我愿意赞助100金币。...

不好意思今天出差刚回来。特意打开以前老电脑,把程序拷出来,仅供参考。
% begin of matlab function RK4
function [Y,X]=RK4(A,B,C,D,u,Ts,X0,nn)
%   Disrcrete an continous system using Runge-Kutta-4th Method
% usually used as:
%        [Y(k),X(k)]=RK4(A,B,C,D,u(k),Ts,X(k-1))
%        [Y(k),X]=RK4(A,B,C,D,u(k),Ts,X)
%          where A B C D IS the state space description of an object
% if nargin<=5;
%      ts=.1,X0=zeros(length(A),1);
% end;
if nargin==7
    nn=10;
end;
tss=Ts/nn;
for i=1:nn;
    k1=(A*X0+B*u);
    k2=(A*(X0+tss*k1/2)+B*u);
    k3=(A*(X0+tss*k2/2)+B*u);
    k4=(A*(X0+tss*k3)+B*u);
    X=X0+(k1+k2*2+k3*2+k4)*tss/6;
    X0=X;
end;
Y=C*X+D*u;
% end of matlab function RK4

将以上内容存储成RK4.m文件,然后就可以运行了。
东南小木虫
12楼2015-02-04 17:55:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 16 个回答

--八云--

专家顾问 (知名作家)

博览众家之长,终集百家之短

【答案】应助回帖

感谢参与,应助指数 +1
三阶龙格库塔一般都够了吧
人原本是不死的,后来他创造了死亡,故而人们歌颂他。
2楼2015-02-01 22:21:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

7888

木虫 (正式写手)

废都绅士

【答案】应助回帖

感谢参与,应助指数 +1
非常简单啊,或者用牛顿法也行啊,这样的代码网上一大堆,我记得我自己写,也就10分钟呢。

» 本帖已获得的红花(最新10朵)

东南小木虫
3楼2015-02-02 08:38:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

444239852

银虫 (正式写手)

送红花一朵
引用回帖:
3楼: Originally posted by 7888 at 2015-02-02 08:38:57
非常简单啊,或者用牛顿法也行啊,这样的代码网上一大堆,我记得我自己写,也就10分钟呢。

我自己写了,但是一直不能运行,这个方程组在文章中明确说了要用四阶龙格库塔法求数值解。既然你觉得简单就麻烦你写一下行吗,因为我是新手所以程序一旦出现错误,我就调试不过来。谢谢高手!
4楼2015-02-02 10:39:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见