如何用龙格-库塔来编程
已经把2阶微分方程转换1阶微分方程的状态空间方程A,B,C求出来了,现在问题是如何用龙格-库塔对它进行编程,而且不能用到od45函数(用matlab编程).
[ 本帖最后由 lxq 于 2007-5-30 09:34 编辑 ] 自己编啊!你可以参考ode45的程序,给我发邮件,我可以帮助你!czhangxj@163.com <P>楼上可以把ode程序发一下,现在关键是怎样把A,B,C放到程序中</P> <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>%======================<<<求解微分方程>>>============================================%<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> 一般在数值分析的书上都有的 谢谢帮忙了,我先自己看看
我没有学过数值分析,所以不知道有没有
有谁还有这方面进一步的解释
[ 本帖最后由 ChaChing 于 2010-4-21 01:16 编辑 ]
回复:(fandalei)有谁还有这方面进一步的解释
还是看看数值分析的书吧,一般都讲的很明白的。 四阶定步长龙格库塔算法嘛 5楼的朋友,u(:,k)怎么输入?数值分析的书讲的基本的2阶微分方程,有懂的吗?
u(:,k)怎么办,它是随时间变化的函数
wangzi629 你给的程序有点问题,初始值没设好
[ 本帖最后由 ChaChing 于 2010-6-29 11:05 编辑 ] u(:,k)自己赋值,是t的函数。初值我这里是先假定给的一个,也就是状态变量是4维的。当然应是几维的,数值是多少应该根据你的实际情况而定。
页:
[1]