找回密码
 注册
关于网站域名变更的通知
查看: 357|回复: 1
打印 上一主题 下一主题

MATLAB源程序代码分享:MATLAB实现四阶龙格库塔法求解常微分方程组

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-3-12 10:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 House 于 2020-3-12 18:11 编辑 7 [7 d. l/ T1 c( ]
  k- |5 i0 f; P* }( O
MATLAB源程序代码分享:MATLAB实现四阶龙格库塔法求解常微分方程组
; B/ b* ^; A$ _7 h) ^5 \, w2 bfunction F=f(t,Y), O! D% r6 S" ~
% 定义待求的微分方程组
: D- Q+ r: x3 ~4 {( yx=Y(1);
2 H# S2 p1 C: c4 \& @% Sy=Y(2);
2 c& _# T% V' o' u6 Qf1=-x^2*(5-y);
3 n4 O; d) D* J) L2 q5 D0 df2=y*(4-3*x);
/ w) {/ H3 F) Z7 |* cF=[f1;f2];" x' l& d& t, C
end
' x. A9 f8 h2 o( r3 V, z- h1 w0 M% D: c$ f# u

8 E. l% s4 r+ H( ]" v" H1 o0 i# Y" _
3 S  N* E/ U4 ]0 h; v" X0 U; j4 I
%% 定义计算的步长, 设置变量的初始值
7 c( ^: O7 t9 t, _! f. E- Cclear;clc;close all0 K9 K1 z6 ~( d1 ]. s3 ?! X
Delta=0.001;     % 步长
" H+ m6 F% E8 [7 ~+ qt=0: Delta :8;     % 定义自变量 t
6 P* ^" Z9 A* m- En=length(t); 4 m/ p5 e  r6 A" r  ~8 b& k/ t3 H
Y(:,1)=[0.5;3];  % 变量 x y 的初始值' K1 z; X; r$ }

( C# F' b% V+ `: }%% 自定义龙格库塔法, 求解微分方程组* I7 A1 u/ D  R) k2 r& a$ j" A& B
for k=1: n-1
; R1 {% O+ K& }    z1=f(t(k),Y(:,k));
+ T/ T  G6 n7 T2 Z8 R+ }# U3 H1 G    z2=f(t(k)+Delta/2,Y(:,k)+z1*Delta/2);8 h' W# h# L6 h8 k5 E) P
    z3=f(t(k)+Delta/2,Y(:,k)+z2*Delta/2);
! D) l- z, k( Q+ r8 x5 v    z4=f(t(k)+Delta,Y(:,k)+z3*Delta);
# P+ v* D5 Y% D' V' J- }* g    Y(:,k+1)=Y(:,k)+Delta*(z1+2*z2+2*z3+z4)/6;
, ^! X8 G1 C" K4 s! iend
3 {6 N- {4 @5 g( u) r% F# B4 g4 M& ?x=Y(1,: );
, _. J/ n* o: C3 C9 ey=Y(2,: );* m% W* _9 w1 _1 }# U# h/ f7 F
! U- x" S; s/ `! C
%% 绘制 x y 的求解结果
3 m3 U' Y7 A9 p: a& Hfigure
2 M; g: J3 W. ?1 ]* lset(gcf,'units','normalized','position',[0.15 0.2 0.7 0.6]);  % 设置 figure 窗口的位置和尺寸  M- L8 ?4 J" W
subplot(1,2,1)
. |. [! S$ [9 @, cplot(t,x,'b')0 o5 e: m/ |2 Q0 {( U( f
xlabel('t')
# t* V3 G$ ?& q# D0 p! l1 gylabel('x')/ v0 b: I- A9 `1 n* v6 P& {& D

( C" ]) s' A9 d$ z3 E5 ksubplot(1,2,2): M' s7 l7 n& F" l: c1 m8 s
plot(t,y,'r')
+ `, o5 [3 [- x$ i  j$ O' qxlabel('t')
. O. B8 u$ i" z: G4 l! fylabel('y')
* t- z  `' v2 N% b7 w; `( r1 u; A! t  D# m  W3 g

该用户从未签到

2#
发表于 2020-3-12 18:11 | 只看该作者
MATLAB实现四阶龙格库塔法求解常微分方程组
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-15 21:03 , Processed in 0.062500 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表