QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-12-31 17:55 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段 MATLAB 代码实现了使用二阶和四阶的泰勒展开法(Taylor's method)来数值求解常微分方程初值问题,并将结果与精确解进行比较。以下是代码的主要解释:
6 b! g; a, ?- h& R+ H$ Lfunction y = Taylor(a, b, N, af)9 b" B! f2 L4 a/ K# g
    h = (b - a) / N;( L; \: K6 H1 I' {
    x(1) = a;/ J/ J/ z5 q0 Y
    y2(1) = af;9 t4 t3 j3 `5 ?# B# {2 Z# @
    y4(1) = af;* j& S6 Q4 A: X# R' W  \0 m# b
    jqj(1) = af;
; e1 U+ m* B2 [( x/ ]5 |* ]4 j* {: J- P
    for i = 2:N! _2 o' v: A3 R7 j! j: \2 x/ E
        % 二阶Taylor法! L2 ?2 u/ f0 X6 J
        y2(i) = y2(i-1) + h * ((1 - h/2) * (x(i-1) - y2(i-1)) + 1);
8 p( W. C( x- l
7 q' M4 k8 ]; M        % 四阶Taylor法
/ H. [# m' b7 R& N, b        y4(i) = y4(i-1) + h * ((1 - h/2 + h^2/6 - h^3/24) * (x(i-1) - y4(i-1)) + 1);7 B, i( S& q8 z, m

% q& S2 X. H% `        x(i) = a + (i-1) * h;
6 l0 l( Z- ]$ E, v  T        jqj(i) = x(i) + exp(-x(i));
1 A, m2 K& R6 e, X    end
% D' o, e6 ^  J0 m. i
# a; U: j# c* |  I* j1 [+ \1 ^    % 将结果输出为矩阵形式' F4 B) P8 v9 y) @8 V
    result = [x', y2', y4', jqj'];
: V$ ~. ~0 e' t* {. }- M2 q7 F1 j" g4 k1 ~
    % 绘制曲线
' x7 c# \$ H. g; ^+ z    plot(x, y2, 'r', x, y4, 'b', x, jqj, 'g');
9 ?% K: j* f5 z, h4 ]* W  `    legend('Taylor2法', 'Taylor4法', '精确解');) m: R$ n4 `- k' y# ?2 y* I  ]
end; @' F- p) _, u# \  B1 d$ k' H1 }
9 v+ r) M7 q, a
该函数的输入参数包括求解区间 [a, b]、步数 N 以及初始条件 af。函数使用二阶和四阶的泰勒展开法来逐步求解微分方程。最后,结果以矩阵形式输出,并绘制了二阶Taylor法、四阶Taylor法和精确解的曲线。
4 M: ]; [+ w3 ?( r7 Y0 R你可以调用这个函数,例如 Taylor(0, 1, 100, 1),其中参数表示解在区间 [0, 1] 上,步数为 100,初始条件为 1。) F+ [6 |+ @/ F

/ R& E' N* q3 W: X7 K5 a0 N
) R' J* w7 F3 U+ |( W, |
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-10 12:07 , Processed in 0.399290 second(s), 51 queries .

回顶部