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

MATLAB源程序代码分享:MATLAB实现改进的欧拉法求解常微分方程组

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
MATLAB源程序代码分享:MATLAB实现改进的欧拉法求解常微分方程组
7 s8 x2 e+ n5 C4 C0 A: `function F=f(t,Y)6 ^3 i4 z" F+ S  _1 C
% 定义待求的微分方程组  ]' F% n# q: _; Y
x=Y(1);
3 G, r' V- y0 Z2 w6 ey=Y(2);
+ m1 r4 n: L# o7 mf1=3*y;" P# c4 T" {: e1 N) L) z: r
f2=(1-x^2)*y-x;
1 N; m" C; D3 I& y2 @F=[f1;f2];' A/ b3 d- C, t' ~4 W
end
; p" ~, a9 H- V( V$ a) l" ?* u8 ?9 y
) N! c7 [% ~/ d) @
%% 定义计算的步长, 设置变量的初始值1 Q! {0 n( _" ]
clear;clc;close all4 O# O+ N1 n2 f5 ?# m
Delta=0.001;      % 定义步长
3 S4 @/ f, E- X6 c% _/ at=0: Delta:20;     % 定义自变量 t
$ y! m8 P  U* C% ?+ Zn=length(t);
0 V- A& w, r1 O  q# L4 A- o4 kY(:,1)=[2;0];     % 定义 x y 的初始值
2 R/ h# Q4 _# D3 D$ d4 b) ?: m7 u3 \$ b/ T) @3 g
%% 自定义改进的欧拉法, 求解微分方程组: ?& V  z0 l9 B  ]+ r
for k=1:n-1% c5 g+ `, Z) m+ q$ q
    F1=f(t(k),Y( :,k));
9 Y$ u0 X' W  w) j0 B! g: u    F2=f(t(k+1),Y( :,k)+Delta*f(t(k),Y( :,k)));
% l% s8 r+ V; L6 O% p    Y(:,k+1)=Y( :,k)+Delta*(F1+F2)/2;
; {. x; B" s. T4 k/ W/ Hend) O' |" n+ ]  C! v
x=Y(1,: );
) [5 ~" x; o# Y; By=Y(2,: );2 A( R- l7 P% r1 N. `- r+ |
9 w. R: l. f* O- S7 Z
%% 绘制 x y 的求解结果
9 |  G5 L2 \% U: k1 wfigure+ ?, r0 h+ C2 \; L; t7 z! b) e
set(gcf,'units','normalized','position',[0.15 0.2 0.7 0.6]);  % 设置 figure 窗口的位置和尺寸
  U( L& n5 ^! R' y2 r4 Osubplot(1,2,1)0 \) _; A6 m/ I0 ~- G7 }+ m
plot(t,x,'b')2 V! A! N; l, f. {( m" y
xlabel('t')& ?9 y! m6 p1 N' m1 j* Y/ t
ylabel('x')
# X4 g4 B9 I6 |/ K9 R& o
4 [6 X2 n( T7 \3 D7 h( x0 E. }subplot(1,2,2)# d+ S* t' Q5 z' i5 K1 T/ ]2 ~
plot(t,y,'r'), X/ L. O& y$ W9 C
xlabel('t')
1 D3 k; x1 i  H- ^ylabel('y')! k. [9 o; M0 X' K

) L, L) O' h/ z' ?) A

该用户从未签到

2#
发表于 2020-3-17 17:41 | 只看该作者
MATLAB源程序代码分享:MATLAB实现改进的欧拉法求解常微分方程组。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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