- 在线时间
- 463 小时
- 最后登录
- 2025-6-15
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7342 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2781
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1156
- 主题
- 1171
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
- x0=-2*pi:0.01:2*pi; y0=sin(x0); syms x; y=sin(x);
$ i, @0 Z+ M0 Q* n$ q6 o
Y( [+ Y+ K8 Y+ q+ f% _$ l6 l- plot(x0,y0), axis([-2*pi,2*pi,-1.5,1.5]); hold on& t1 Q d$ K5 e5 N\" n- O
+ ?' J1 u, x5 h6 A% t\" g- for n=[8:2:16] }5 z; q; t4 P y& U, w
/ ^' W! A5 k8 a1 {' `- p=taylor(y,x,n), y1=subs(p,x,x0); line(x0,y1)
& ]3 J7 R% `8 ?8 K8 K; f, [
9 |/ z8 Y. w1 c0 O9 U8 i- end
复制代码 这段代码主要是用来绘制正弦函数在给定区间 [-2π, 2π] 上的泰勒展开多项式,并将展开多项式在不同阶数下的近似结果与原始正弦函数的图像进行比较。
# C+ y* v) _5 ]! D4 a7 m" [: P/ |' r c/ T2 h9 \5 o" u
首先,代码中定义了一个变量 `x0`,表示从 -2π 到 2π,间隔为 0.01 的一组 x 值。然后计算了这些 x 值对应的正弦函数值,存储在变量 `y0` 中。
6 k( f% Y# r; O, f9 P
" ^! F% k3 X1 O! O" M2 r/ |接着,定义了符号变量 x 和正弦函数 y=sin(x)。然后绘制了原始正弦函数在区间 [-2π, 2π] 上的图像,并设置了坐标轴的范围为 x 轴从 -2π 到 2π,y 轴从 -1.5 到 1.5。
7 h( a* D$ V) H8 o$ p$ l1 D+ Q/ l1 c' O8 }. m& ^
接下来,通过循环遍历了 n 从 8 到 16,步长为 2 的一系列值。在每次循环中,使用 `taylor` 函数对正弦函数 y=sin(x) 进行 n 阶的泰勒展开,并将展开多项式存储在变量 p 中。然后通过 `subs` 函数将这个展开多项式在 x0 上求值,得到对应的近似值,存储在变量 y1 中。最后,使用 `line` 函数将 x0 和 y1 连线,表示泰勒展开多项式在不同阶数下的近似结果。5 e: |5 M1 k, S' m5 @/ g
3 y) e! b, t; U0 N通过这段代码,可以直观地观察到随着泰勒展开多项式阶数的增加,对正弦函数的逼近效果会越来越好。
) B) f% ~6 z6 o4 K% t. K: L5 D s5 Q4 `/ [' {& `
( O7 Q6 I5 D3 i2 k5 w/ {' p
4 ?9 r6 n+ a S' v) d" P! ^ |
zan
|