QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-12-31 17:55 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段 MATLAB 代码实现了使用二阶和四阶的泰勒展开法(Taylor's method)来数值求解常微分方程初值问题,并将结果与精确解进行比较。以下是代码的主要解释:
' g. c8 ]  ^5 lfunction y = Taylor(a, b, N, af)  \. u# P  x8 A4 {
    h = (b - a) / N;
& d8 d# C( h8 l. l/ s6 k    x(1) = a;$ |& \- z/ {& [6 J9 h
    y2(1) = af;  `: V6 q5 [4 ]9 I; }4 v
    y4(1) = af;
8 u; q) p- Z, I' b    jqj(1) = af;
* m! J; V3 c3 A0 r7 H, I- }% e5 w2 [
    for i = 2:N7 j& Z* \! `# B7 e
        % 二阶Taylor法; A/ }' b' W3 v2 @, F
        y2(i) = y2(i-1) + h * ((1 - h/2) * (x(i-1) - y2(i-1)) + 1);
, R- R7 q. b; c# Q6 ^- F9 t9 w# I: S' ^0 H  `# g
        % 四阶Taylor法
1 g5 m' E% t0 }2 J6 J8 F' z2 O        y4(i) = y4(i-1) + h * ((1 - h/2 + h^2/6 - h^3/24) * (x(i-1) - y4(i-1)) + 1);
& c7 ]4 t0 N2 U" P' e/ Z1 i. G; B7 U. {6 I
        x(i) = a + (i-1) * h;
4 Y8 x9 e8 f5 N; ]        jqj(i) = x(i) + exp(-x(i));; R7 K( ?  R8 w" p8 t2 G% c
    end
3 R- c- ^/ V4 e# x( J. x, G- u5 M# v9 w7 B
    % 将结果输出为矩阵形式! \  f2 u+ E9 a9 [3 i
    result = [x', y2', y4', jqj'];* |0 }4 f. W( b" G
1 A9 w: [1 m+ G, T7 O+ E
    % 绘制曲线
+ r- p  U3 r" q" O    plot(x, y2, 'r', x, y4, 'b', x, jqj, 'g');4 N2 J9 L0 c  a; l
    legend('Taylor2法', 'Taylor4法', '精确解');
: U8 u" H5 ~/ A' O/ y6 S# V  qend, x% x1 t5 W2 |, `4 D2 z
! m! q( J+ e, b" R* G
该函数的输入参数包括求解区间 [a, b]、步数 N 以及初始条件 af。函数使用二阶和四阶的泰勒展开法来逐步求解微分方程。最后,结果以矩阵形式输出,并绘制了二阶Taylor法、四阶Taylor法和精确解的曲线。. G$ j8 s8 k( o+ M" w8 F/ C6 n- f' b
你可以调用这个函数,例如 Taylor(0, 1, 100, 1),其中参数表示解在区间 [0, 1] 上,步数为 100,初始条件为 1。
8 k! @% o7 P# |# q4 h
1 y5 a4 q7 Q! _' N5 H  L: h$ ^% T- p9 _8 o5 I
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-4-14 12:11 , Processed in 0.430256 second(s), 51 queries .

回顶部