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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 House 于 2020-3-12 18:11 编辑
  K( k9 e, L. E! J& H! y8 m' U0 I( H3 m9 O- b/ [# Y+ l( r  e
MATLAB源程序代码分享:MATLAB实现四阶龙格库塔法求解常微分方程组
0 h5 b3 i% P3 p. k- R& \function F=f(t,Y)
, j/ e$ z( W- N3 D0 n% 定义待求的微分方程组
3 H& v" m3 z, l( k1 y8 V2 j$ A5 ~x=Y(1);
4 e& H5 S$ Z! {* Y8 `/ R2 S5 iy=Y(2);' S9 P% w, C$ b- ~5 n* B: f
f1=-x^2*(5-y);4 \& q; E; e( a$ X
f2=y*(4-3*x);# ^$ E* S  R9 b* }6 C  n) y9 b
F=[f1;f2];" ~! I. }, L8 ]+ }6 p3 y
end
9 m1 Y% F) \( E% q7 Q$ M" B1 U- p- {- j2 H+ b  t% K- C) V4 d

3 ^  R) k# K  w" ]" J  |2 }
$ @* j' q9 F: m4 ]$ Q: X, l6 m+ j; k# k6 m$ |
%% 定义计算的步长, 设置变量的初始值
, b8 Y7 H) d  J" W! Dclear;clc;close all* V* ^7 y8 }/ {$ a" R4 Z( l+ u
Delta=0.001;     % 步长
, o! Z9 x/ B2 @* v$ c8 q- h  Pt=0: Delta :8;     % 定义自变量 t+ q* x, U2 V; h- @  r
n=length(t);
2 V6 S; D- j" e  J# gY(:,1)=[0.5;3];  % 变量 x y 的初始值
" u! d* y0 S6 J7 Q" o( z0 k
. v/ e" d9 e3 A& P9 r! b%% 自定义龙格库塔法, 求解微分方程组
6 D2 U$ i8 x: c) B4 E/ ]1 o5 dfor k=1: n-1. ]3 j3 J. y- @
    z1=f(t(k),Y(:,k));3 v& R1 t; R5 u8 b5 C; V# a2 z' {
    z2=f(t(k)+Delta/2,Y(:,k)+z1*Delta/2);
6 v( p5 p  z' Y0 m4 ?' L    z3=f(t(k)+Delta/2,Y(:,k)+z2*Delta/2);1 v, \- `, C9 P% D1 D  t7 E. y
    z4=f(t(k)+Delta,Y(:,k)+z3*Delta);/ o: r* H  p% {0 e8 T% l$ l
    Y(:,k+1)=Y(:,k)+Delta*(z1+2*z2+2*z3+z4)/6;/ ?7 Z. p4 Z- c  l
end
% I) r" y8 d4 e( E9 ~x=Y(1,: );4 ?+ j6 ]' }. F6 M+ k2 H' ~. H
y=Y(2,: );
( B# W5 F1 [+ U+ B# i
+ D( u2 U# l, q# t7 |: D%% 绘制 x y 的求解结果
- g" L5 k3 U: v/ r) h$ D3 \" kfigure
0 A, O3 h  L. V& o% wset(gcf,'units','normalized','position',[0.15 0.2 0.7 0.6]);  % 设置 figure 窗口的位置和尺寸
  I0 o# N* b7 ^  M- @0 b- Osubplot(1,2,1): Q) [: R! k; ]4 [. s; f
plot(t,x,'b')9 t% U* E4 I. H# A
xlabel('t')2 ?2 A! [( m+ U) {" \' V: x
ylabel('x')4 G& W' ~7 a; S8 O0 x( O3 Z$ h
6 g2 k+ O. _! y
subplot(1,2,2)# m; V5 k# m0 b# T
plot(t,y,'r')
- N! M* `# O# Q8 }" d3 x: l# \xlabel('t')3 p& U* f% R& J' ~7 _/ q
ylabel('y')
+ @) |, Z" ]# h% F& K
- u  U7 E4 w" T

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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