fandalei 发表于 2006-6-24 12:10

如何用龙格-库塔来编程

已经把2阶微分方程转换1阶微分方程的状态空间方程A,B,C求出来了,现在问题是如何用
龙格-库塔对它进行编程,而且不能用到od45函数(用matlab编程).

[ 本帖最后由 lxq 于 2007-5-30 09:34 编辑 ]

studyboy 发表于 2006-6-24 12:53

自己编啊!你可以参考ode45的程序,给我发邮件,我可以帮助你!czhangxj@163.com

fandalei 发表于 2006-6-24 13:24

<P>楼上可以把ode程序发一下,现在关键是怎样把A,B,C放到程序中</P>

wangzi629 发表于 2006-6-24 17:08

<P>%系统状态方程<BR>%dx/dt=Ax+Bu                     <BR>%y=Cx                            <BR>%x=                         状态变量初始值<BR>%N=1000;                           计算步数<BR>%h=0.002;                            计算步长<BR>%---------------------------------------------------------------------------------%<BR>for k=1:N<BR>%======================&lt;&lt;&lt;求解微分方程&gt;&gt;&gt;============================================%<BR>    k0=A*x+B*u(:,k);                                        %四阶龙格-库塔法则求解微分方程<BR>    k1=A*(x+h*k0/2)+B*u(:,k);<BR>    k2=A*(x+h*k1/2)+B*u(:,k);<BR>    k3=A*(x+h*k2)+B*u(:,k);<BR>    x=x+(k0+2*k1+2*k2+k3)*h/6;<BR>%--------------------------------------------------------------------------------------%<BR>    x_out(k)=x;%输出<BR>    y_out(k)=Cx;<BR>end<BR><BR><BR>%%注释:其中各参数值根据具体情况自己设置</P>

pheigenbau 发表于 2006-6-25 00:28

一般在数值分析的书上都有的

fandalei 发表于 2006-6-25 08:48

谢谢帮忙了,我先自己看看
我没有学过数值分析,所以不知道有没有
有谁还有这方面进一步的解释

[ 本帖最后由 ChaChing 于 2010-4-21 01:16 编辑 ]

feifeifool 发表于 2006-6-26 12:58

回复:(fandalei)有谁还有这方面进一步的解释

还是看看数值分析的书吧,一般都讲的很明白的。

grta 发表于 2006-6-26 14:28

四阶定步长龙格库塔算法嘛

fandalei 发表于 2006-6-29 15:05

5楼的朋友,u(:,k)怎么输入?

数值分析的书讲的基本的2阶微分方程,有懂的吗?

u(:,k)怎么办,它是随时间变化的函数

wangzi629 你给的程序有点问题,初始值没设好

[ 本帖最后由 ChaChing 于 2010-6-29 11:05 编辑 ]

wangzi629 发表于 2006-7-5 08:16

u(:,k)自己赋值,是t的函数。初值我这里是先假定给的一个,也就是状态变量是4维的。当然应是几维的,数值是多少应该根据你的实际情况而定。
页: [1]
查看完整版本: 如何用龙格-库塔来编程