QQ登录

只需要一步,快速开始

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

通过泰勒级数展开绘制了正弦函数的逼近

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

1176

主题

4

听众

2887

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-8-27 11:05 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. x0=-2*pi:0.01:2*pi; y0=sin(x0); syms x; y=sin(x);
    ) \; f6 x8 V+ n  f) l: D
  2.       plot(x0,y0), axis([-2*pi,2*pi,-1.5,1.5]); hold on
    4 A0 R3 S7 D, p+ D& T7 a
  3.       for n=[8:2:16]
    1 c8 f1 F( C\" m- S( @
  4.          p=taylor(y,x,n), y1=subs(p,x,x0); line(x0,y1)6 ]8 |! y  V; p
  5.       end
    9 y: U# p! x4 a. x6 ?; K& ]( i, \4 \
  6.       
复制代码
这段 MATLAB 代码通过泰勒级数展开绘制了正弦函数的逼近。下面是代码的逐步解释:
" r% |& R/ u' i) G% ~( G( h8 E( E0 z+ d! H) R
### 代码解释  T4 J' g- ^4 i! r) B' l7 m
2 g5 z8 E" T% y  O
1. **定义 x 范围**:
' a# Y$ G3 t. z# K3 f3 O& t  s/ ]* Z   ```matlab
/ _" c6 A2 |/ N4 }& a  A   x0 = -2*pi:0.01:2*pi;
$ n1 ^! F2 Z6 m# q1 O/ R   ```
3 ^5 p' V4 x2 Z9 v+ Q# d: q$ }   - 这行代码创建了一个从 \(-2\pi\) 到 \(2\pi\) 的向量 `x0`,步长为 0.01。这个向量将用于计算和绘图。. I! v& G8 i* y

* W+ I5 ?* ^7 E7 X- D: e2. **计算 sin(x0)**:
/ e4 L2 i- m: P( x   ```matlab( U+ N- Y$ ], `: S4 M6 j
   y0 = sin(x0);( |6 z0 n  u# {8 W6 ^& x, R  S5 O
   ```
2 D9 `) T% S) {4 d* I   - 计算 `x0` 中每个值的正弦,并将结果存储在 `y0` 中。`y0` 将是 `sin` 函数的实际值,用于绘图。3 v6 n# y# m( a1 O5 {3 E6 N1 }

% i; E) \/ ]! D8 Q! t5 Y3. **定义符号变量和函数**:
* ]% l. r, I2 e   ```matlab
( B7 y6 m$ f( p# C   syms x;
5 H: t& h( `/ F. B' ~' d   y = sin(x);0 c: T8 y) H# ]7 N0 t
   ```. J5 W4 o3 N2 U0 w% c
   - 使用 `syms` 创建符号变量 `x`,然后定义符号函数 \( y = \sin(x) \)。这个函数用于后续的泰勒级数展开。
; Q3 q+ d' q3 B
/ |9 ^3 W" X1 A' D' u6 D/ s' T4. **绘制 sin(x) 图形**:
2 G! h! u+ i4 x, n& P   ```matlab
* V6 A4 b. Q8 X   plot(x0, y0), axis([-2*pi, 2*pi, -1.5, 1.5]); hold on. \" m: q& S. [8 M+ x, |
   ```
4 e5 }. b8 g) a) Z$ w   - 使用 `plot` 函数绘制 `y0` 关于 `x0` 的图形,即实际的正弦波。
: E0 A/ A9 e' E8 ]7 x) x5 `5 t) N9 O   - `axis` 函数设置坐标轴的范围为 \([-2\pi, 2\pi]\) 和 \([-1.5, 1.5]\)。
9 S; m) a0 f# H9 i! o   - `hold on` 使得后续绘图不会覆盖当前的图形。' D# A, U5 y- Z. L4 m( f
5 e$ w# k2 g# R3 V0 ~$ B5 f
5. **进行泰勒级数展开和绘图**:, T9 I- I- z6 o, Z1 C6 }6 W
   ```matlab- r$ N; b* L# Y3 j' A, u0 f
   for n = [8:2:16]- V$ N( N4 z. b
       p = taylor(y, x, n);  V$ `( H9 P- b" e0 T7 G+ Z
       y1 = subs(p, x, x0);# n) }: p# `; X" V5 f3 C+ H
       line(x0, y1)
8 t9 X% L. A2 |   end
6 S0 A/ [9 o# B5 ?; ]4 m, f/ _8 J   ```
) Y  w/ o; r! j' h   - 使用 `for` 循环遍历 `n` 的值,从 8 到 16,步长为 2(即分别为 8、10、12、14 和 16)。( F* U; M4 ], m4 u% ?0 q
   - 在循环内部:6 M" p, K* }8 d1 c0 Q+ W
     - `p = taylor(y, x, n)` 计算在点 0 附近的 \( n \) 次泰勒级数展开,得到多项式 \( p \)。
' h& d, W* t' K6 Z7 W     - `y1 = subs(p, x, x0)` 将泰勒展开多项式 \( p \) 替换中 `x` 的值为 `x0`,以计算对应的 `y1`(即泰勒多项式的值)。$ R+ F6 J3 \  ^1 x; y% U1 L
     - `line(x0, y1)` 在当前图中绘制泰勒级数的结果。
) u$ J0 p; V3 E
$ T+ ?/ D7 o2 _# e) P* F8 K& W7 U### 效果( q  B  i4 K3 ^
: l2 [* V! v: S: @4 J! N
- 代码运行后,会得到一幅包含原始正弦函数图像和不同阶次的泰勒多项式的图形。每个泰勒多项式的图形与正弦函数重合得越近,表示这一级数的逼近效果越好。
+ I- w# x. ^# w. h- z8 ?6 n9 @0 m' t0 o- d+ @+ h+ v/ ]
### 知识点总结7 X" L( Q2 \' Z
4 N  Y- ^2 Q$ V+ R' m2 G3 l; v
1. **泰勒级数**:
% ?2 \. A! }0 |/ {; ^   - 泰勒级数是表示函数的一种多项式近似,适用于在某一点附近的函数描述。' M. Y) H0 s5 ~0 W( S
  l2 i9 k: o6 F6 Z8 d! [" t! ?! L  q2 \
2. **符号计算**:
/ s9 C& J* W8 D. o0 Y! e   - 使用 MATLAB 的符号工具箱,能够对符号函数进行解析计算并获取多项式形式。& X. b; V6 f+ x' o
# D* s8 J' P7 u
3. **绘图与数据可视化**:5 b2 |3 U  I6 G7 E9 Y1 Z; m
   - `plot` 和 `line` 函数用于展示函数图像,`hold on` 功能允许在同一图中叠加多个图形。8 ^2 {% c4 ]! ~8 C9 c
8 n9 n2 I$ J5 T7 e" c
4. **遍历与替换**:
$ K6 w! ^# P$ c   - 通过循环和 `subs` 函数,可以对多次定义和计算的函数值进行有效处理。
7 o* }) T7 i& W0 q# D( A
6 J4 x8 H1 C9 d8 k. e, a### 结论" d. O8 O2 }/ R
- C4 w2 O. |3 D* `$ ~+ T8 m) V  ?
这段代码展示了如何利用 MATLAB 对正弦函数进行泰勒级数展开,并通过可视化的方式展示其近似效果。可以通过这个示例了解泰勒级数的适用性和效率,同时为函数逼近与数值计算提供了直观的理解。) u6 F2 V& T1 [4 ]' z( N+ p! I
, l+ y# e: x, ^2 I8 b( H0 z7 K6 d

# g5 F  o4 X( e. u  W/ u( o
  s, h1 T4 n# D! ~; a" S6 p4 f* w$ S; \

examp3_18.m

211 Bytes, 下载次数: 0, 下载积分: 体力 -2 点

售价: 2 点体力  [记录]  [购买]

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, 2025-11-3 15:42 , Processed in 0.454596 second(s), 55 queries .

回顶部