数学建模社区-数学中国
标题:
正弦函数的泰勒展开式
[打印本页]
作者:
2744557306
时间:
2024-4-29 14:02
标题:
正弦函数的泰勒展开式
x0=-2*pi:0.01:2*pi; y0=sin(x0); syms x; y=sin(x);
, X) B! U/ ~* ?
& `9 n8 S p) ~$ K4 `# ?
plot(x0,y0), axis([-2*pi,2*pi,-1.5,1.5]); hold on
8 w( b8 X* L& X% j) U
. N, Z+ [% U* b
for n=[8:2:16]
( B$ M- d7 Q; s, m* D" z. a
9 A9 j2 ~3 f: j5 V4 c6 {3 I1 r b5 T
p=taylor(y,x,n), y1=subs(p,x,x0); line(x0,y1)
o* ^/ W- ?4 J$ G2 E
+ e7 i& ^/ D. j) B ?' i
end
复制代码
这段代码主要是用来绘制正弦函数在给定区间 [-2π, 2π] 上的泰勒展开多项式,并将展开多项式在不同阶数下的近似结果与原始正弦函数的图像进行比较。
3 R. l' u8 W! v, s9 o1 W' S
1 @! ~: u7 ?" w [
首先,代码中定义了一个变量 `x0`,表示从 -2π 到 2π,间隔为 0.01 的一组 x 值。然后计算了这些 x 值对应的正弦函数值,存储在变量 `y0` 中。
' G' G- u7 w( P" T, k$ q
- }( p7 ~' l/ f3 K
接着,定义了符号变量 x 和正弦函数 y=sin(x)。然后绘制了原始正弦函数在区间 [-2π, 2π] 上的图像,并设置了坐标轴的范围为 x 轴从 -2π 到 2π,y 轴从 -1.5 到 1.5。
5 l/ Y; P5 w7 J4 a2 V6 K5 s( s9 J
# X3 {7 H$ c$ M% f" g; h
接下来,通过循环遍历了 n 从 8 到 16,步长为 2 的一系列值。在每次循环中,使用 `taylor` 函数对正弦函数 y=sin(x) 进行 n 阶的泰勒展开,并将展开多项式存储在变量 p 中。然后通过 `subs` 函数将这个展开多项式在 x0 上求值,得到对应的近似值,存储在变量 y1 中。最后,使用 `line` 函数将 x0 和 y1 连线,表示泰勒展开多项式在不同阶数下的近似结果。
6 ~' q x: f, s' y) G; U5 f
+ W: \) S/ z3 {! X1 L, C, L3 @
通过这段代码,可以直观地观察到随着泰勒展开多项式阶数的增加,对正弦函数的逼近效果会越来越好。
: i) T3 d, s; W6 |/ H
% d! H4 _% @% l# @
7 D8 v1 n0 w1 E9 \* k, z
7 H( j9 J8 c; }1 f
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5