QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-8-27 11:05 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. x0=-2*pi:0.01:2*pi; y0=sin(x0); syms x; y=sin(x);( W. Y+ Y2 W' o3 ], @
  2.       plot(x0,y0), axis([-2*pi,2*pi,-1.5,1.5]); hold on# l: n3 [6 r8 }1 a4 w* C# _4 T
  3.       for n=[8:2:16]9 h( C+ C6 |: s
  4.          p=taylor(y,x,n), y1=subs(p,x,x0); line(x0,y1)) a2 N* q' r  [) ]! t) y
  5.       end
    2 }) A3 P1 g: q7 U
  6.       
复制代码
这段 MATLAB 代码通过泰勒级数展开绘制了正弦函数的逼近。下面是代码的逐步解释:. v% ?3 y8 T" n; u+ |* b
7 F7 P  F) F# Q. t
### 代码解释
( K1 M: `% r5 Q. g3 a* [
9 z  Y/ k$ d6 p& p* k. D3 R( g& Z1. **定义 x 范围**:& c6 p- |& I' O9 N, f" j, a
   ```matlab# t/ u' x# x* w% i9 B6 E/ P
   x0 = -2*pi:0.01:2*pi;6 r6 ~1 G) R/ \* @- r. k
   ```
; @5 N3 F( f0 y- k   - 这行代码创建了一个从 \(-2\pi\) 到 \(2\pi\) 的向量 `x0`,步长为 0.01。这个向量将用于计算和绘图。
! @/ d, ]+ E# G+ D
! b' s9 ~" B  U! T: g! f2. **计算 sin(x0)**:, A  m1 g0 }( M+ l  W$ o
   ```matlab& w: G) q  A+ O7 n9 c/ C; Y' L, n. y1 c
   y0 = sin(x0);0 l( g) p5 N$ [, l! T, S
   ```4 }/ ~/ k7 g% u. r  S. v3 G, B* X
   - 计算 `x0` 中每个值的正弦,并将结果存储在 `y0` 中。`y0` 将是 `sin` 函数的实际值,用于绘图。  Z% V! V( l8 f! T

% U  A! v  z9 H1 G, d6 l3. **定义符号变量和函数**:/ q& V, H8 a: z
   ```matlab( A# S3 O/ L0 W* s9 L* b
   syms x;8 o# I# c1 i+ s7 D7 Y
   y = sin(x);
  B( O- ?) [3 X, Y3 y  K" }   ```
$ z4 N3 m- V6 J: T* O$ _& g7 r0 d1 i   - 使用 `syms` 创建符号变量 `x`,然后定义符号函数 \( y = \sin(x) \)。这个函数用于后续的泰勒级数展开。
% V  V5 X3 g0 N; \' n
" z# m% o/ _3 q: X1 c4. **绘制 sin(x) 图形**:
% A( b! d$ J/ G" |7 g! g   ```matlab
- U. {8 P) [. G. y5 q; F   plot(x0, y0), axis([-2*pi, 2*pi, -1.5, 1.5]); hold on
7 @0 x- F. H) F   ```' T! d+ [/ @* n0 B1 _0 X/ o; `
   - 使用 `plot` 函数绘制 `y0` 关于 `x0` 的图形,即实际的正弦波。1 b7 H, ^0 ?# E
   - `axis` 函数设置坐标轴的范围为 \([-2\pi, 2\pi]\) 和 \([-1.5, 1.5]\)。
% M* Q* j( o) l9 p   - `hold on` 使得后续绘图不会覆盖当前的图形。
0 |' b5 M% E' v) U4 _; f4 K2 w1 d8 w% V1 c# Y
5. **进行泰勒级数展开和绘图**:) t1 @; x. D8 E( A" x  ]# t
   ```matlab
, }0 e5 ^1 K/ k   for n = [8:2:16]# w8 z2 o% q6 e- Y8 i
       p = taylor(y, x, n);
$ W! v. K# T9 W7 I+ _1 w$ a       y1 = subs(p, x, x0);
( k. O7 X& v- f" _$ U! u       line(x0, y1): R" X3 u7 K  z2 m
   end( e) ]6 C3 m; I" a: g& G0 i
   ```
5 V' _# F! a. M" K4 k   - 使用 `for` 循环遍历 `n` 的值,从 8 到 16,步长为 2(即分别为 8、10、12、14 和 16)。" p1 q/ b8 U1 B
   - 在循环内部:- U. [; D" @+ F! @" D
     - `p = taylor(y, x, n)` 计算在点 0 附近的 \( n \) 次泰勒级数展开,得到多项式 \( p \)。
  h, W$ h7 H5 c1 F" N  V+ c     - `y1 = subs(p, x, x0)` 将泰勒展开多项式 \( p \) 替换中 `x` 的值为 `x0`,以计算对应的 `y1`(即泰勒多项式的值)。- e& h; U$ X! f1 C! u7 Q( Z- X
     - `line(x0, y1)` 在当前图中绘制泰勒级数的结果。* i3 {, d& L6 N! L' E

3 ?; `# p2 h2 r) A+ Z### 效果
4 a! p# l; y/ T5 N
4 x* r$ g2 C( [& d6 u" K- 代码运行后,会得到一幅包含原始正弦函数图像和不同阶次的泰勒多项式的图形。每个泰勒多项式的图形与正弦函数重合得越近,表示这一级数的逼近效果越好。) C, O6 D/ i+ _7 x
' A. j) |0 o7 ~+ s8 }1 _% g/ E
### 知识点总结8 Z+ R* e  t* n9 M: `

+ c) u- I+ Q' M2 `3 D6 o+ w/ Q1. **泰勒级数**:: S# F: O/ x* J8 R: }; ^
   - 泰勒级数是表示函数的一种多项式近似,适用于在某一点附近的函数描述。9 C$ I6 ]  S" [% A0 d4 ^

: `9 j2 A# X) K& z2 S" F4 |2. **符号计算**:4 d4 F  e* \1 n' {$ h" X# ^& O5 w
   - 使用 MATLAB 的符号工具箱,能够对符号函数进行解析计算并获取多项式形式。
2 x/ j" J: V8 Q0 Y0 d/ d
% H  b( K3 c. c; T8 P, R8 y3. **绘图与数据可视化**:0 h) j+ Y' V3 R( m
   - `plot` 和 `line` 函数用于展示函数图像,`hold on` 功能允许在同一图中叠加多个图形。; L4 a! L9 h' w/ F' H' z
2 n7 Q" n3 r5 g& d
4. **遍历与替换**:
4 S9 k" s: z: k! T+ ~9 s   - 通过循环和 `subs` 函数,可以对多次定义和计算的函数值进行有效处理。
) |9 C" O( a& w" m( U7 [* N' o/ S8 s2 b$ l
### 结论7 m4 Q) ~  `0 j9 N: y

- V% ~7 V" o2 Y6 k2 T" o这段代码展示了如何利用 MATLAB 对正弦函数进行泰勒级数展开,并通过可视化的方式展示其近似效果。可以通过这个示例了解泰勒级数的适用性和效率,同时为函数逼近与数值计算提供了直观的理解。# D1 k$ N# u# z: O

7 [1 |8 v) n- E1 Q. m5 _0 \" V( D+ v) D' P5 m( i4 r2 p0 {4 X
5 v4 J1 j, M/ _$ v
$ F" k8 B8 {1 v0 v& A" L  b

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-4-10 17:05 , Processed in 0.385630 second(s), 55 queries .

回顶部