QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3121|回复: 0
打印 上一主题 下一主题

二阶和四阶的泰勒展开法(Taylor's method)来数值求解常微分方程初值问题

[复制链接]
字体大小: 正常 放大

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-12-31 17:55 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段 MATLAB 代码实现了使用二阶和四阶的泰勒展开法(Taylor's method)来数值求解常微分方程初值问题,并将结果与精确解进行比较。以下是代码的主要解释:
$ w; }6 I4 T! E( P+ v! Q$ mfunction y = Taylor(a, b, N, af)4 i5 v1 e1 e+ A" l
    h = (b - a) / N;
9 G2 N+ W0 p# F; A. E3 p    x(1) = a;0 ]& }$ ?# p$ A
    y2(1) = af;
& u, x4 E& l  W    y4(1) = af;
' `& m! B) v3 r* w8 w0 Z: W& f    jqj(1) = af;/ Y: g# z1 d) e' N$ \! E5 i
/ n- k; G2 R4 ~$ i- @' J
    for i = 2:N
3 d& P: d* T& I        % 二阶Taylor法
+ n: V9 ]; j  v! [        y2(i) = y2(i-1) + h * ((1 - h/2) * (x(i-1) - y2(i-1)) + 1);
  V+ q' @- L6 S% T! T& z( [/ Y0 E, K- L; [
        % 四阶Taylor法
. W5 N3 ]8 w; I; L  }: F  \2 f/ ~        y4(i) = y4(i-1) + h * ((1 - h/2 + h^2/6 - h^3/24) * (x(i-1) - y4(i-1)) + 1);1 F: U6 j3 U+ f5 ~( k
. E+ B% ?& e  F' T9 Z3 w  Y
        x(i) = a + (i-1) * h;
) }, e# \& T& ^7 z+ h        jqj(i) = x(i) + exp(-x(i));
0 ?- c1 u; Q& i% x8 m' e( T4 g    end
& o4 j% K+ |6 _* u3 u) p" G+ n+ U2 ^5 j. L
    % 将结果输出为矩阵形式6 h8 y3 Z+ R5 A
    result = [x', y2', y4', jqj'];
+ Y$ G  D# t$ B  ]4 i4 U& O$ u! o, k8 T/ }
    % 绘制曲线8 @' @# d8 x. _& I  l
    plot(x, y2, 'r', x, y4, 'b', x, jqj, 'g');% C5 y/ M  B, @
    legend('Taylor2法', 'Taylor4法', '精确解');% e- P; w5 t- [% k
end* y  ^: m& e+ K: `6 ?
8 R# K, W% v+ G  ^0 y2 E
该函数的输入参数包括求解区间 [a, b]、步数 N 以及初始条件 af。函数使用二阶和四阶的泰勒展开法来逐步求解微分方程。最后,结果以矩阵形式输出,并绘制了二阶Taylor法、四阶Taylor法和精确解的曲线。8 y' f$ A# C1 L5 X0 Z" Q8 s3 v5 p
你可以调用这个函数,例如 Taylor(0, 1, 100, 1),其中参数表示解在区间 [0, 1] 上,步数为 100,初始条件为 1。$ L( l# t8 t  e# D- q
% t, B! y* ]! G( s

7 L5 E: I' U) Q' ]
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-7-28 00:34 , Processed in 0.406169 second(s), 50 queries .

回顶部