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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 House 于 2020-3-12 18:11 编辑
+ Y5 b3 l. \! H6 j7 L, y1 {+ }7 V3 \+ x6 q; {5 H$ v
MATLAB源程序代码分享:MATLAB实现四阶龙格库塔法求解常微分方程组! i  `4 ^: H3 o% X! W% s
function F=f(t,Y)3 K1 f0 f4 T3 J$ Q0 y' c
% 定义待求的微分方程组; X: \; I, _+ R% J6 y
x=Y(1);
/ J: `" c: I# [% w$ W( |4 a9 G( B2 R5 Ey=Y(2);% `* a+ d" ]1 ]5 b- b; o" T4 G
f1=-x^2*(5-y);; Z. r4 R! i; _7 H+ g9 s
f2=y*(4-3*x);5 I) D) d$ i! R1 \
F=[f1;f2];
4 z: }( t, X; T8 c  Z4 v, _3 Yend4 Z, H" |3 t2 p$ I" J
0 x2 ]6 J# j% D3 F+ r8 ~& |5 |
! j& l% \4 P) u6 A! N% r0 T" F6 N
* s6 g  n( P, Q, H. ^7 G# ?
0 o- t  W! |) J
%% 定义计算的步长, 设置变量的初始值
; R8 S# s) e2 O2 \9 i2 C$ mclear;clc;close all# P, r1 q* \' f: v& q
Delta=0.001;     % 步长
4 q% d* t( j1 C  M* v8 It=0: Delta :8;     % 定义自变量 t
9 D; o+ u2 c; j  sn=length(t);
0 P& q4 C! B, d+ n+ d' a/ {Y(:,1)=[0.5;3];  % 变量 x y 的初始值
; D6 M8 |' X0 f( [6 r; n3 n7 K& h+ B- M3 w- M! Q
%% 自定义龙格库塔法, 求解微分方程组
- [( A, _# a) Z; Z+ O' T0 pfor k=1: n-1
; W8 w% `0 {! Y0 u7 n    z1=f(t(k),Y(:,k));5 ]/ ?% O9 R, |
    z2=f(t(k)+Delta/2,Y(:,k)+z1*Delta/2);
& R0 l4 q& f( z) o) Z, T: K    z3=f(t(k)+Delta/2,Y(:,k)+z2*Delta/2);
5 \& c* v8 P. ^( `/ v    z4=f(t(k)+Delta,Y(:,k)+z3*Delta);2 V% g3 T6 r, v& B& Q
    Y(:,k+1)=Y(:,k)+Delta*(z1+2*z2+2*z3+z4)/6;
1 o$ P& b# q4 x; @end
( C5 s! ~3 e/ h! Ax=Y(1,: );3 A$ z; J! b6 i/ q
y=Y(2,: );
: b; g, U  q+ a7 I! ^/ [3 ]1 z( D6 |& r2 ]; ?5 o' h3 w# p
%% 绘制 x y 的求解结果
0 ]3 m* {! B( ~# q, Lfigure
8 t! R1 q3 N: s) N- U8 E# S* `set(gcf,'units','normalized','position',[0.15 0.2 0.7 0.6]);  % 设置 figure 窗口的位置和尺寸
6 ?8 E9 A5 m  o1 M$ u) _* t4 bsubplot(1,2,1), M- T# [1 K8 F. d  P( G
plot(t,x,'b')
$ h3 D/ J- R! [xlabel('t')
* q  J: B) C: r! \% kylabel('x')
2 a+ s1 V! u3 w3 A" _4 ]; [( i! U5 L$ r( M+ v/ `
subplot(1,2,2)
' S0 Z8 Z9 j4 G& xplot(t,y,'r')+ w+ J/ M5 ]0 P4 U
xlabel('t')
) O5 |, e1 V2 E' l0 N' q6 \ylabel('y')
3 F& V. w, G# N0 c) H
0 c) Z' a% d, V6 C9 A

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 23:41 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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