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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 House 于 2020-3-12 18:11 编辑
" {7 ~3 J& n( i  U
) ]9 N8 ~3 ^* t: }  {' O, uMATLAB源程序代码分享:MATLAB实现四阶龙格库塔法求解常微分方程组
4 F. o. J% q: I: [$ T2 y) {" jfunction F=f(t,Y)# ]2 O- k. C  K& ?
% 定义待求的微分方程组
5 D0 K; Y$ V1 G0 |/ cx=Y(1);9 t! |  Q3 U# B' b8 n9 s
y=Y(2);4 G7 y8 K$ b9 g3 N  {" f
f1=-x^2*(5-y);2 n3 `# J+ X0 G; y' W
f2=y*(4-3*x);
# T' @2 C- Y# r" b( E+ b* \F=[f1;f2];7 j# V% n/ I  a; V+ f* a
end4 v  N" ^; y1 B; T: z2 o

% J6 u- r1 j% b. i5 t' r; }0 i) Z
8 n" E" h$ _% E1 X
0 W! p) Q% C% ?2 G2 l
* w8 s" x  l% u# W" b5 y%% 定义计算的步长, 设置变量的初始值/ c: Z! y0 E$ Y! e4 @7 _
clear;clc;close all
* r( ^3 {! W4 {; ^+ g0 |8 d, F3 JDelta=0.001;     % 步长, d& k* n* h9 W8 `8 m
t=0: Delta :8;     % 定义自变量 t4 y) a3 ?$ `+ W+ t
n=length(t);
7 Y& ~; O. i; Z" oY(:,1)=[0.5;3];  % 变量 x y 的初始值
( Y. Q- a8 q" G$ v& @( F4 e. u( b: ?1 f: R3 @
%% 自定义龙格库塔法, 求解微分方程组1 R% B( |" _' _) k4 L- ~
for k=1: n-1. h  E) I# L7 m; y: J
    z1=f(t(k),Y(:,k));
! b5 E. G4 s" s/ f    z2=f(t(k)+Delta/2,Y(:,k)+z1*Delta/2);( t) t7 Y+ J+ D+ o1 d: e% @
    z3=f(t(k)+Delta/2,Y(:,k)+z2*Delta/2);  P- P# k; f+ Q5 d3 B: a
    z4=f(t(k)+Delta,Y(:,k)+z3*Delta);: G  R  x  ?' a
    Y(:,k+1)=Y(:,k)+Delta*(z1+2*z2+2*z3+z4)/6;
( u6 A2 u& i) R* d' Q0 ?$ q: tend9 ]0 x9 J: q7 S! m4 c$ ^
x=Y(1,: );$ |3 Q0 a- q8 _, S: H6 I
y=Y(2,: );6 Z8 ^% G- F/ u" i% O0 u" u& [

: W7 P# n1 k0 P8 y%% 绘制 x y 的求解结果/ e) X8 v. m4 h; F( a
figure' U! [7 Z; E9 z: ]0 B
set(gcf,'units','normalized','position',[0.15 0.2 0.7 0.6]);  % 设置 figure 窗口的位置和尺寸) T! m! R. {$ @3 `
subplot(1,2,1)
4 ~* ~! B5 ], s  J. Wplot(t,x,'b')$ E  E  b! a2 U. U) C' g0 J8 A( K
xlabel('t')& d5 _6 |/ ~; i. D6 q
ylabel('x')& v' P7 t5 I/ ~# i. b0 O+ B
2 G0 [9 h! N1 a
subplot(1,2,2)
) ?% X) k3 [( T; |* ]; ]plot(t,y,'r')
/ R( R7 v# e/ Txlabel('t')
5 W+ `0 y( L% lylabel('y')7 Q& }* }( A6 D7 Q7 n1 e8 \

$ U6 L2 S" U5 Q/ `

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-20 16:02 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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