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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
MATLAB源程序代码分享:MATLAB实现改进的欧拉法求解常微分方程组
" P; T* \  k. y" Nfunction F=f(t,Y): B8 j) j, J( T  J8 h
% 定义待求的微分方程组
( n  v5 Z: h& T5 s2 }$ m# kx=Y(1);
3 ]5 h3 ^, N: Y6 Ry=Y(2);
' f1 C4 |& X  d$ X7 p" S1 j$ [" Zf1=3*y;0 O, \8 W# z4 w: D/ v
f2=(1-x^2)*y-x;" h+ v* f" u' }1 M
F=[f1;f2];( ?# B" g( A  o9 }. V7 V
end
' U1 |& U$ K# _% w: Z, I# h4 E5 X7 t! C# @+ Z
, f2 X0 @* c% t; j7 R
%% 定义计算的步长, 设置变量的初始值
' x1 e; `: I1 N8 t* dclear;clc;close all$ r* v* v" J0 ?/ ?
Delta=0.001;      % 定义步长
, Q4 D  [6 ?5 ~0 b2 m; Jt=0: Delta:20;     % 定义自变量 t1 A6 S4 m6 E; p1 i) m7 w% K
n=length(t);3 i( [" z  M6 V
Y(:,1)=[2;0];     % 定义 x y 的初始值
! Y4 T, _+ I2 c$ b/ r# C- n# K  Y$ U/ X1 o9 j) y# x* f8 A& m5 W; ~
%% 自定义改进的欧拉法, 求解微分方程组* g0 T" r) F; r4 Z2 ]
for k=1:n-1- M5 [1 F) _1 C6 O
    F1=f(t(k),Y( :,k));
3 }) T+ h# F$ |1 [    F2=f(t(k+1),Y( :,k)+Delta*f(t(k),Y( :,k)));
3 v. b# I5 T9 e% Q* V+ Z" K  O$ x    Y(:,k+1)=Y( :,k)+Delta*(F1+F2)/2;
& u5 q& f( Z, V' vend
# W6 X: Q% C% ?: i9 |x=Y(1,: );
( V, h, Q3 D0 v( t/ k$ l3 n2 ny=Y(2,: );
0 H. p' \% @6 p( k( W0 a: r: e: |: d- ]' b) r9 B5 ]9 j
%% 绘制 x y 的求解结果
& v2 h: O3 |, n  q/ Xfigure! g* F! z" A2 F  {2 m
set(gcf,'units','normalized','position',[0.15 0.2 0.7 0.6]);  % 设置 figure 窗口的位置和尺寸$ \+ N+ @* R3 ]! f  S
subplot(1,2,1)7 b  x9 v2 h) Q1 h' f& d! _
plot(t,x,'b')
' l: q9 R/ m/ Z- dxlabel('t')
. Z: w$ y+ r1 }3 W4 c: cylabel('x')9 l( i0 q. ]" y5 o. K) M  ]2 |
  b3 d0 M2 @9 w  c% ^
subplot(1,2,2)! G. r& \1 d& H
plot(t,y,'r')
. Z% n! W! y( K$ R" t7 Kxlabel('t')2 Y8 [8 V% a& _/ a8 C
ylabel('y')
9 j* l5 u: j( o5 t2 m0 e3 N8 ~# S( H) Z2 U* ?1 o

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 12:09 , Processed in 0.171875 second(s), 27 queries , Gzip On.

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

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

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