QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4010|回复: 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);5 a1 F$ x/ [/ E8 k: \- t
  2.       plot(x0,y0), axis([-2*pi,2*pi,-1.5,1.5]); hold on$ R. S0 F# D# L0 z! ]! d
  3.       for n=[8:2:16]' P% z. \- [) u7 Q
  4.          p=taylor(y,x,n), y1=subs(p,x,x0); line(x0,y1)
    . p& T+ M! K3 _
  5.       end
    9 V\" Q% G# E+ J- |) Q5 n6 a
  6.       
复制代码
这段 MATLAB 代码通过泰勒级数展开绘制了正弦函数的逼近。下面是代码的逐步解释:
1 D" `& F; c6 X9 ~6 T& O
: G/ w( Q6 |) [" f$ W### 代码解释1 R: K5 ?, f8 z

* u/ X0 D' C0 X2 p- K* ?2 H1. **定义 x 范围**:1 |! N$ ]7 I7 {" K3 I8 T
   ```matlab
' m! V- I/ c" `7 I- w   x0 = -2*pi:0.01:2*pi;( d" r  S# t1 f) u( _2 L- w
   ```
- @: }* u3 J! D7 q$ M2 ~/ n5 N   - 这行代码创建了一个从 \(-2\pi\) 到 \(2\pi\) 的向量 `x0`,步长为 0.01。这个向量将用于计算和绘图。
6 V0 e! v1 [) b2 V8 c3 D7 z
$ k- n! k; l2 k& K6 V! Q5 t. r2. **计算 sin(x0)**:
5 P' r  {4 j4 w4 z$ F( X   ```matlab4 Q  n* S8 k/ C) z' a( |
   y0 = sin(x0);
& f. ~: z5 `) \: k   ```3 f/ j" z/ D( K. z& {
   - 计算 `x0` 中每个值的正弦,并将结果存储在 `y0` 中。`y0` 将是 `sin` 函数的实际值,用于绘图。
/ \3 R5 h! M6 [6 I* r  O. @+ i
3. **定义符号变量和函数**:3 }" |. v; @9 D, i& v
   ```matlab
- I' u2 }% ]; J+ q  O8 q, Y   syms x;/ M, Q, c# X3 Q3 ?+ r" b: ~
   y = sin(x);. Q4 d- D, N; U" @: G
   ```
. E2 C+ d; G& S( P: p   - 使用 `syms` 创建符号变量 `x`,然后定义符号函数 \( y = \sin(x) \)。这个函数用于后续的泰勒级数展开。
4 E2 k( E0 W2 G: B9 f" b8 K* {7 P5 X% v/ Q3 v) n
4. **绘制 sin(x) 图形**:
+ l& G  @8 F  ^/ j+ V# D* ?   ```matlab  {& Q2 J$ Q) R: P) M6 D, F8 s
   plot(x0, y0), axis([-2*pi, 2*pi, -1.5, 1.5]); hold on
+ n9 j4 ^+ j! g/ ^7 F   ```+ Q6 N- g. X  c' M+ j
   - 使用 `plot` 函数绘制 `y0` 关于 `x0` 的图形,即实际的正弦波。
7 R' B( I: ?3 `) `   - `axis` 函数设置坐标轴的范围为 \([-2\pi, 2\pi]\) 和 \([-1.5, 1.5]\)。9 K# d: O9 m" s, W' k/ x
   - `hold on` 使得后续绘图不会覆盖当前的图形。$ b  |3 V- d! H3 v0 l+ R, m

! v8 O# I# A2 N: S0 j, d$ c, D5. **进行泰勒级数展开和绘图**:
/ e0 O5 Y6 Y$ ?3 K% ^5 H& k6 U   ```matlab4 f/ _& G8 ~7 |2 o
   for n = [8:2:16]$ l2 W3 G7 \+ p" y6 r- h
       p = taylor(y, x, n);& j0 @7 b" n) z* ]$ ~- Q7 b
       y1 = subs(p, x, x0);7 B9 M+ E- ^$ k0 a1 o, t; W
       line(x0, y1)
& V& N; i) }/ k6 t% k   end
4 E( J! f. c# D" m1 ]1 f3 u   ```
) Q3 `# @  w1 s' m* `' f   - 使用 `for` 循环遍历 `n` 的值,从 8 到 16,步长为 2(即分别为 8、10、12、14 和 16)。
8 U1 M/ p7 y9 L* V/ A7 E- }. N( X: \   - 在循环内部:& h, X! r& U: t
     - `p = taylor(y, x, n)` 计算在点 0 附近的 \( n \) 次泰勒级数展开,得到多项式 \( p \)。: W. e% U/ ^  F  K2 E6 z
     - `y1 = subs(p, x, x0)` 将泰勒展开多项式 \( p \) 替换中 `x` 的值为 `x0`,以计算对应的 `y1`(即泰勒多项式的值)。9 Y% {& N/ f0 [! `. n, p
     - `line(x0, y1)` 在当前图中绘制泰勒级数的结果。$ U8 k- J7 b0 Y) s* P0 H% B

. ^. N, ?% R0 }) y. v) k; Z% E### 效果  S) r0 B7 M- L5 n7 ]6 ^) W

* p8 d0 s5 h, {/ D( ]! L- 代码运行后,会得到一幅包含原始正弦函数图像和不同阶次的泰勒多项式的图形。每个泰勒多项式的图形与正弦函数重合得越近,表示这一级数的逼近效果越好。( G- C+ ?$ B& g' O  r, g7 u
8 s" M% V0 j; R9 n8 V
### 知识点总结+ t1 U0 o+ [- p: Y9 J& O7 |
6 w' V* j) W; D1 |& C& K/ v
1. **泰勒级数**:
6 @, V2 u  c* O8 T   - 泰勒级数是表示函数的一种多项式近似,适用于在某一点附近的函数描述。# l, a) \& m$ l- L$ o0 Z+ j1 K
, G# V$ h+ Y& n
2. **符号计算**:
- S; u6 \$ G" \: O" J   - 使用 MATLAB 的符号工具箱,能够对符号函数进行解析计算并获取多项式形式。
: c' T5 V" j7 Q
$ Z5 j2 u6 t4 `( p" U( {4 \/ D3. **绘图与数据可视化**:
6 Y, m( l' r  G; i   - `plot` 和 `line` 函数用于展示函数图像,`hold on` 功能允许在同一图中叠加多个图形。
/ p" F& D( b9 |, A, |  c* u
, S9 M7 e1 \# e, n% i6 _4. **遍历与替换**:% _5 ?5 _& I2 p  T& X* s1 H/ k& ^
   - 通过循环和 `subs` 函数,可以对多次定义和计算的函数值进行有效处理。* r3 Y; ]6 h5 b: k
8 W! s( W9 [/ |
### 结论
& r2 o- T; N- i0 X! x
! L6 q. [; n( `- p2 ~; v6 k这段代码展示了如何利用 MATLAB 对正弦函数进行泰勒级数展开,并通过可视化的方式展示其近似效果。可以通过这个示例了解泰勒级数的适用性和效率,同时为函数逼近与数值计算提供了直观的理解。
9 @5 \2 b- n6 H; g* v! |" F" V: t* Q; W7 b- t

$ r) m" x9 M2 F6 h' x9 I- |6 Y- X' b
3 u1 L+ w4 m1 Y5 m. u( L, {6 p
/ m- H: p3 E' Z6 }% Q, E6 k

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-29 03:26 , Processed in 0.613662 second(s), 55 queries .

回顶部