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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 House 于 2020-3-12 18:11 编辑
) ~9 J# [) o# M0 S1 ^7 G# ^' r
' t- Y# s+ p0 {: g. tMATLAB源程序代码分享:MATLAB实现四阶龙格库塔法求解常微分方程组/ ~, s! Z4 n7 q1 P5 p  Q6 o- k7 r
function F=f(t,Y)
2 b$ C6 a$ V( u- T% 定义待求的微分方程组
- e3 W# E; t0 A4 @7 @% m  Zx=Y(1);; U8 H+ ]8 X% T3 f0 l4 u6 C8 W9 W' V
y=Y(2);4 y( g# \# h2 [; U
f1=-x^2*(5-y);
5 T+ y; }! I: ]/ J/ o  Gf2=y*(4-3*x);
7 F% G1 B( r# m: L; r5 UF=[f1;f2];
  g  ~* l$ ]" \9 Q! c; C- x  f& v1 Rend
7 [& W6 b  M5 s9 q& P% V, C' ], U$ B0 M7 u: Y) y

- q+ T- @8 Y* Y) ]1 @0 V/ w1 k2 S! M; Z, k' u0 t

* h( v7 |; L2 A- ?% H%% 定义计算的步长, 设置变量的初始值! S" i9 b; w. \1 H, ]% j
clear;clc;close all# T. Y/ B7 ^% b6 B" x2 K
Delta=0.001;     % 步长  w" s' K+ k* q9 a9 Z
t=0: Delta :8;     % 定义自变量 t* y, \$ ~4 j. r& m( E. x
n=length(t);
; R2 ]9 _3 W4 X- Z; |( AY(:,1)=[0.5;3];  % 变量 x y 的初始值
% J# t+ |$ o/ L- b- A+ d, l) e
/ D# a9 N: B  p%% 自定义龙格库塔法, 求解微分方程组
" b# O  V; |+ G9 Jfor k=1: n-1
) u2 s* S6 s: t6 ]) M    z1=f(t(k),Y(:,k));, F0 O" ^7 w. `5 t  y
    z2=f(t(k)+Delta/2,Y(:,k)+z1*Delta/2);2 Z% q' ^8 W1 X4 @+ n9 b/ C( @2 ]
    z3=f(t(k)+Delta/2,Y(:,k)+z2*Delta/2);2 {5 r) q/ Q. O0 l/ Q1 V3 h
    z4=f(t(k)+Delta,Y(:,k)+z3*Delta);* u; @1 V# f6 L( i4 J5 U% H! ?- n; Q  `
    Y(:,k+1)=Y(:,k)+Delta*(z1+2*z2+2*z3+z4)/6;4 Q# _+ I. U/ P2 \
end5 [  \' c# o8 I6 q4 F
x=Y(1,: );
. d4 j/ |. @0 r( [1 x" x, ^y=Y(2,: );+ o4 l1 X; D2 d" ]/ j7 I" D
& ~; v0 ~& W- W
%% 绘制 x y 的求解结果
0 b: a2 O3 k' w, w' [( ifigure* Y# g9 a/ l! A7 j  L2 Q/ e, s
set(gcf,'units','normalized','position',[0.15 0.2 0.7 0.6]);  % 设置 figure 窗口的位置和尺寸+ p* S2 k) W* ?7 g
subplot(1,2,1)
" l) L- j/ |. \5 \, C3 w# Zplot(t,x,'b')
' Y' }- z2 H2 Uxlabel('t')
9 V! \) V/ y+ l! t3 b. E7 Uylabel('x')
7 L; \: ]- l3 f" o* L- A' L* Y- F  b% \, V! k3 n3 I
subplot(1,2,2)4 y; b0 ^2 @, D- f
plot(t,y,'r')# r1 p& {6 r, T* o! e' m0 ~; Y
xlabel('t')
& S% b1 L% o' |  V# R& nylabel('y')
" c) O0 }& ?5 y. \; z1 m* v; a) L; g) u9 \/ X: x

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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