QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-8-27 11:05 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. x0=-2*pi:0.01:2*pi; y0=sin(x0); syms x; y=sin(x);
    0 t5 R; r' a# I, j) @
  2.       plot(x0,y0), axis([-2*pi,2*pi,-1.5,1.5]); hold on
    \" G, g& H2 q2 A+ H
  3.       for n=[8:2:16]2 u7 h, P- e; J\" D
  4.          p=taylor(y,x,n), y1=subs(p,x,x0); line(x0,y1)
    7 C3 |7 z4 Z: L+ C# ]
  5.       end4 ]' S7 T' Z  P6 y0 k$ g
  6.       
复制代码
这段 MATLAB 代码通过泰勒级数展开绘制了正弦函数的逼近。下面是代码的逐步解释:, G  d" M: H! ?0 R6 W. j
4 i* r" B& H. s$ e( G) i$ R
### 代码解释+ F* @% U5 h; \5 U* b( d8 |
, `3 U" c  F2 x
1. **定义 x 范围**:% z' H& A6 a/ Z% S9 J% A' _/ Q
   ```matlab
* s% K& V, s# z! s4 I3 f8 S" T   x0 = -2*pi:0.01:2*pi;$ w) d9 l$ f/ e1 ?) f) C
   ```
8 @2 U! t. l* O2 |   - 这行代码创建了一个从 \(-2\pi\) 到 \(2\pi\) 的向量 `x0`,步长为 0.01。这个向量将用于计算和绘图。% B/ {/ o1 W5 F! _8 s9 Q
, F  }; p2 s1 P+ g$ z
2. **计算 sin(x0)**:- l  {6 V7 H) G/ ~
   ```matlab3 l1 ]: D* [& \4 ]$ k1 U' J- p
   y0 = sin(x0);
. @! L' P9 V% L& x   ```
' `1 C, r3 R7 F3 D% }, z+ M& A4 x   - 计算 `x0` 中每个值的正弦,并将结果存储在 `y0` 中。`y0` 将是 `sin` 函数的实际值,用于绘图。
/ J: A  n5 s3 ?% i; H; N. z4 z$ n. K& Z
3. **定义符号变量和函数**:- [1 G' E: f6 E' @' o
   ```matlab
9 {; ?# \4 L2 m5 q3 }2 [   syms x;- F( H6 |/ q, C; [
   y = sin(x);
; r( s; D8 X9 c   ```* ^& s9 ^9 ]" K5 I( i
   - 使用 `syms` 创建符号变量 `x`,然后定义符号函数 \( y = \sin(x) \)。这个函数用于后续的泰勒级数展开。0 B9 |& |1 t* @5 F$ L& \

* J" O: T4 U7 C" I/ `4. **绘制 sin(x) 图形**:
" M* t7 N: U% L7 D% j/ V! F' r  T- K   ```matlab
" T) H6 [) t6 m   plot(x0, y0), axis([-2*pi, 2*pi, -1.5, 1.5]); hold on! |  A" x1 |5 c2 e
   ```7 _' L, g; e4 b& }& i4 y% a- u
   - 使用 `plot` 函数绘制 `y0` 关于 `x0` 的图形,即实际的正弦波。
; |- z$ H7 i) n3 h* J4 g   - `axis` 函数设置坐标轴的范围为 \([-2\pi, 2\pi]\) 和 \([-1.5, 1.5]\)。: Z7 P8 j+ e  A+ p4 o, z' L
   - `hold on` 使得后续绘图不会覆盖当前的图形。# {4 M/ J+ |: ]" ~9 i, B3 [4 ~

+ ?/ m% V5 q# a1 Y7 {: X6 L5. **进行泰勒级数展开和绘图**:
! I) i! D6 H# h3 s   ```matlab
. t% O; p$ `. `0 t( [% i   for n = [8:2:16]
! j0 d" b! u/ s9 D" ?# B       p = taylor(y, x, n);  Z& m# n3 C) i4 ]
       y1 = subs(p, x, x0);9 s) P  [( {7 d7 ?
       line(x0, y1)/ T, ?$ X# ^* Y7 _3 E7 c
   end
! w2 |7 C) I. c   ```
6 g: O6 f3 f  w   - 使用 `for` 循环遍历 `n` 的值,从 8 到 16,步长为 2(即分别为 8、10、12、14 和 16)。
$ S0 |5 m" X. Z1 U& X, T/ s4 F0 s   - 在循环内部:& B2 B; _, U( |3 a  y: [) B9 |& j
     - `p = taylor(y, x, n)` 计算在点 0 附近的 \( n \) 次泰勒级数展开,得到多项式 \( p \)。3 Q- R- Q; {+ v0 q+ k
     - `y1 = subs(p, x, x0)` 将泰勒展开多项式 \( p \) 替换中 `x` 的值为 `x0`,以计算对应的 `y1`(即泰勒多项式的值)。
/ [- T$ Z5 g. l/ T& |" G     - `line(x0, y1)` 在当前图中绘制泰勒级数的结果。
, C/ T' q2 V3 }9 a+ ?, k* a5 E6 n; m' I! q9 a4 r" e: v
### 效果
. |' o3 N) Y  f0 g% r' ?. Q6 t* r! b' Z* n' ~6 t) o
- 代码运行后,会得到一幅包含原始正弦函数图像和不同阶次的泰勒多项式的图形。每个泰勒多项式的图形与正弦函数重合得越近,表示这一级数的逼近效果越好。8 g6 L$ ^  ?8 T) A, p1 i( m. r

- t$ q" U8 ]7 e3 ~) q; ^, R### 知识点总结
: k( U* ~0 a3 S- z3 p- C( ~& v, ]8 w( _8 [/ R, I7 i7 [5 i
1. **泰勒级数**:
8 f) _% ]+ o! o( k% u+ X   - 泰勒级数是表示函数的一种多项式近似,适用于在某一点附近的函数描述。. o, b5 [- z- i( V. J: O" v
: Q! e0 m8 h# J7 G8 h& R% p
2. **符号计算**:
( ?! J1 |8 J: n' `& A- W   - 使用 MATLAB 的符号工具箱,能够对符号函数进行解析计算并获取多项式形式。
( X8 s) r$ ~; c" ?8 m$ W, F, E* s  G
3. **绘图与数据可视化**:3 B6 Z/ ]; R  X2 G8 ~; h3 d
   - `plot` 和 `line` 函数用于展示函数图像,`hold on` 功能允许在同一图中叠加多个图形。/ E1 w$ \6 O9 D3 i4 }: O7 i. {+ I9 {

( F( ?" F6 |' e7 o5 {6 v% r4. **遍历与替换**:/ ~. m/ R0 A1 G$ B+ s
   - 通过循环和 `subs` 函数,可以对多次定义和计算的函数值进行有效处理。. I/ M/ K: n. _3 S/ |* x% E' s$ d

9 S) t: t9 d7 K( A* v( v### 结论
$ H: _  I; E4 n, B0 E+ t6 E# J: p) g' d; M8 f1 _# q
这段代码展示了如何利用 MATLAB 对正弦函数进行泰勒级数展开,并通过可视化的方式展示其近似效果。可以通过这个示例了解泰勒级数的适用性和效率,同时为函数逼近与数值计算提供了直观的理解。
& ?4 e  N. F" a! ^  N( Q  b% ]' ~. d  \6 e  i- ^
8 |+ ?8 P  r/ Y" `6 |

& h, B5 G4 ^' k1 ?' e) v4 D& ]0 U- z1 r

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-7-28 13:06 , Processed in 0.363509 second(s), 54 queries .

回顶部