QQ登录

只需要一步,快速开始

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

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

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

1188

主题

4

听众

2931

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-8-27 11:05 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. x0=-2*pi:0.01:2*pi; y0=sin(x0); syms x; y=sin(x);
    5 w, A/ f: j8 O9 t3 K7 y  }
  2.       plot(x0,y0), axis([-2*pi,2*pi,-1.5,1.5]); hold on. {5 L  k9 x0 E8 v0 G
  3.       for n=[8:2:16]5 `1 t  M; y6 X- j2 Z, |% Q+ u+ D
  4.          p=taylor(y,x,n), y1=subs(p,x,x0); line(x0,y1)
    \" i* n7 s- s% _2 ^8 y/ Y. {
  5.       end& W: T. v, e2 a! x1 ]) Y! c5 u
  6.       
复制代码
这段 MATLAB 代码通过泰勒级数展开绘制了正弦函数的逼近。下面是代码的逐步解释:. v0 ^) r& q: F5 G
/ t1 [/ w; h: _. c3 v! J
### 代码解释
9 [% t6 M# r9 U! f1 L- G% O7 W/ V; _: o* Z3 h8 K, e
1. **定义 x 范围**:5 l9 ~% ~1 [" u% q/ S) a
   ```matlab
: `/ ^6 ^+ c, N4 r4 W   x0 = -2*pi:0.01:2*pi;1 ~) ~0 h% d/ C* t  y. B$ ]
   ```
8 Y/ ~! D  t5 t/ p9 C2 H   - 这行代码创建了一个从 \(-2\pi\) 到 \(2\pi\) 的向量 `x0`,步长为 0.01。这个向量将用于计算和绘图。9 h& G2 V& R& @
5 y6 R4 e9 m! u$ S6 |3 K
2. **计算 sin(x0)**:4 `# N* {. k. `3 k7 R2 B
   ```matlab
( |. Q5 @: U1 D" C6 e   y0 = sin(x0);
" H$ C4 ]! Q; o$ ?6 [# _- E8 k   ```. `7 Y/ {3 f, q) {0 k7 g" P
   - 计算 `x0` 中每个值的正弦,并将结果存储在 `y0` 中。`y0` 将是 `sin` 函数的实际值,用于绘图。
1 }$ E2 j: z6 i5 f1 y6 P! j6 T& ?
3. **定义符号变量和函数**:
  S' |) |) U( r; A7 Z9 M) ?   ```matlab
! l( l; K1 E$ d   syms x;
9 ]0 @3 b% {" b- f& ]% Q   y = sin(x);
# d& i2 _8 B9 K# S$ Z1 n   ```
3 q9 G- e/ z& N7 @8 I   - 使用 `syms` 创建符号变量 `x`,然后定义符号函数 \( y = \sin(x) \)。这个函数用于后续的泰勒级数展开。& C4 N* M9 ~/ H
6 m- O7 W: R& N  ~3 O8 ]
4. **绘制 sin(x) 图形**:' I. j( U' U/ F- {  S+ V4 i1 j& m
   ```matlab1 ~0 o2 q$ ^  P: r9 c1 ?
   plot(x0, y0), axis([-2*pi, 2*pi, -1.5, 1.5]); hold on( M# E  n. Z' }  H4 a8 k8 s
   ```
0 T7 A( r% K( A: h  R1 p3 k   - 使用 `plot` 函数绘制 `y0` 关于 `x0` 的图形,即实际的正弦波。" ?( n+ r; P: A# j" H8 o* B; U
   - `axis` 函数设置坐标轴的范围为 \([-2\pi, 2\pi]\) 和 \([-1.5, 1.5]\)。
5 f, q) N; n) S- z   - `hold on` 使得后续绘图不会覆盖当前的图形。
! P9 S0 H9 E2 F( L+ X) h: b, |* g  x" t
5. **进行泰勒级数展开和绘图**:
) J: M3 }/ P) Z$ [+ p% _' T   ```matlab+ `1 {" F( }, V4 _- V3 E; N* d
   for n = [8:2:16]
) ?8 z' J" p" j' @9 [6 T       p = taylor(y, x, n);+ d: j: c: @6 F3 [
       y1 = subs(p, x, x0);# C9 g) ~2 I/ [/ a7 r5 a+ ^0 n
       line(x0, y1)# a, z3 `8 R. B) D! g$ H
   end" h9 \; v% K: `
   ```6 ]" r! Q1 M4 o6 V
   - 使用 `for` 循环遍历 `n` 的值,从 8 到 16,步长为 2(即分别为 8、10、12、14 和 16)。
8 X: E. J% f& j8 g   - 在循环内部:
# ~/ {1 v( J1 j  C     - `p = taylor(y, x, n)` 计算在点 0 附近的 \( n \) 次泰勒级数展开,得到多项式 \( p \)。
, m( t; I6 W5 ~8 x% z% f/ [4 \     - `y1 = subs(p, x, x0)` 将泰勒展开多项式 \( p \) 替换中 `x` 的值为 `x0`,以计算对应的 `y1`(即泰勒多项式的值)。2 d" t5 J0 `8 b. b! R# J/ n- `1 J
     - `line(x0, y1)` 在当前图中绘制泰勒级数的结果。
8 n2 [& i' c7 i% F5 ?! i8 J6 X
+ {+ ?$ ]+ P( D3 e6 `9 Q### 效果
1 Z' X  j0 G- M) X7 q. L( y* k; V
1 c& ?  r0 ]/ i- 代码运行后,会得到一幅包含原始正弦函数图像和不同阶次的泰勒多项式的图形。每个泰勒多项式的图形与正弦函数重合得越近,表示这一级数的逼近效果越好。  {9 g" Q# o! ~: Q3 u4 e

4 a& p8 x2 ]" H) h6 I$ H6 D### 知识点总结: s4 y+ _  ^! E% R! g

1 w9 q/ s& \* a2 G( F$ ]1. **泰勒级数**:
: z( A- A* ]) V6 Z' I   - 泰勒级数是表示函数的一种多项式近似,适用于在某一点附近的函数描述。8 W# O0 {( Z3 {' p

( Z% Q5 K! s9 n( Y* T! t0 p2. **符号计算**:
" [9 z5 p6 y" q& g   - 使用 MATLAB 的符号工具箱,能够对符号函数进行解析计算并获取多项式形式。, A. i4 N" U: T' o1 n, n
" }3 q3 \' O6 `- @! ~
3. **绘图与数据可视化**:0 l5 K+ Q7 U( R
   - `plot` 和 `line` 函数用于展示函数图像,`hold on` 功能允许在同一图中叠加多个图形。
3 A* I: i8 N, g1 e  V' ~* i2 P+ c& X' m; f  |
4. **遍历与替换**:- Y4 d. x" K2 b( s- C+ r
   - 通过循环和 `subs` 函数,可以对多次定义和计算的函数值进行有效处理。
. @1 R; o/ R& t$ o$ q& M" ]  _8 _: B6 z, l( r+ R# ?9 {
### 结论* v; O/ M2 f/ {3 u: k$ L
+ W# ]7 \2 A" G. K
这段代码展示了如何利用 MATLAB 对正弦函数进行泰勒级数展开,并通过可视化的方式展示其近似效果。可以通过这个示例了解泰勒级数的适用性和效率,同时为函数逼近与数值计算提供了直观的理解。
9 A, @) V# f6 V1 T" l3 R* d7 i# k- ?% E9 @( s1 Z& K
, K- G9 l$ c' X& U" ^$ m/ G

0 F- j! R0 a9 c0 g) h) D  G, t& Z% ]1 c! j! E: {) i1 d) m0 {+ e+ P

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, 2026-5-25 16:29 , Processed in 0.441101 second(s), 55 queries .

回顶部