QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3940|回复: 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);
    \" ]3 P0 _% O1 H
  2.       plot(x0,y0), axis([-2*pi,2*pi,-1.5,1.5]); hold on
    ' V6 G9 Z1 _  J7 D, L
  3.       for n=[8:2:16]
    9 Q, [3 H0 a+ W% u% v, F' x
  4.          p=taylor(y,x,n), y1=subs(p,x,x0); line(x0,y1)$ b9 l/ i& a  L5 Y2 [2 A6 h8 \
  5.       end- U% T6 i4 `1 e$ O* u
  6.       
复制代码
这段 MATLAB 代码通过泰勒级数展开绘制了正弦函数的逼近。下面是代码的逐步解释:
3 ~( s" y" m. s( T& c8 R: ]& m3 O% P  K8 J2 e  s0 ?! m  n
### 代码解释% m9 S: T( w7 j

% U" ?5 Q/ K/ ]; i* @' T2 W1. **定义 x 范围**:6 r# }. V  g3 v1 V& w, j/ s* n4 @
   ```matlab
# V$ a" m; r- H* d. J   x0 = -2*pi:0.01:2*pi;  K  E& x4 D( Y
   ```, g0 n7 l. q5 y7 w* _
   - 这行代码创建了一个从 \(-2\pi\) 到 \(2\pi\) 的向量 `x0`,步长为 0.01。这个向量将用于计算和绘图。
4 g# l) C, m% j/ R% s  O
0 F  o; r: _( i2. **计算 sin(x0)**:
" r. B( p+ n4 ^' q   ```matlab( W& `2 E4 q6 r: C; Y+ R
   y0 = sin(x0);
- Q$ u& C6 i. B   ```, O4 O( R4 U6 B, W
   - 计算 `x0` 中每个值的正弦,并将结果存储在 `y0` 中。`y0` 将是 `sin` 函数的实际值,用于绘图。. C3 M1 ^+ Z& [$ I! g! A& l5 _

8 Z6 x, i$ E; A" ]+ F: ^! L3. **定义符号变量和函数**:
1 t/ w; \: o! _& Z% X   ```matlab1 |8 J2 c# E8 d" K0 m
   syms x;
1 O7 {& |$ J) @2 P   y = sin(x);
: N- N* X' O0 m. {3 q4 S' X   ```
" \0 z0 U3 v% e   - 使用 `syms` 创建符号变量 `x`,然后定义符号函数 \( y = \sin(x) \)。这个函数用于后续的泰勒级数展开。) j4 z. e2 J+ i1 l6 S  L

8 L% L0 x+ h5 _! S4. **绘制 sin(x) 图形**:
3 Z7 M6 ]9 x- E! j/ G8 U: z   ```matlab) u  s0 Y& p9 Q$ o! u
   plot(x0, y0), axis([-2*pi, 2*pi, -1.5, 1.5]); hold on: ?8 @3 ~' |2 R( o1 d) v$ @- k
   ```  D$ b( D9 m3 H4 _
   - 使用 `plot` 函数绘制 `y0` 关于 `x0` 的图形,即实际的正弦波。1 U+ i: G  M7 G& z$ R9 ]
   - `axis` 函数设置坐标轴的范围为 \([-2\pi, 2\pi]\) 和 \([-1.5, 1.5]\)。
3 R' t  T  U: O7 @) P" a! A. Z   - `hold on` 使得后续绘图不会覆盖当前的图形。( s+ M: v0 P& {: N

/ x; @' N1 j0 D, D$ A5. **进行泰勒级数展开和绘图**:
; R1 y/ T2 v" c  |; ?   ```matlab' @. D. u7 s4 I( i
   for n = [8:2:16]9 j" I/ j7 p3 a6 @' k" L
       p = taylor(y, x, n);
: u, n  V+ d- |, _; Q5 w7 b       y1 = subs(p, x, x0);
3 _4 G9 {5 a" }9 Q7 l% S7 Y       line(x0, y1)8 ]" k- m5 {1 r  `
   end6 X( e3 n- _7 X1 L' K# s
   ```) c7 g3 A4 Y' v6 c, M/ x" G3 g
   - 使用 `for` 循环遍历 `n` 的值,从 8 到 16,步长为 2(即分别为 8、10、12、14 和 16)。( t$ s" z" r8 b' Z
   - 在循环内部:7 I- U" ~1 p, Q7 Q) A9 I, y
     - `p = taylor(y, x, n)` 计算在点 0 附近的 \( n \) 次泰勒级数展开,得到多项式 \( p \)。
: x' R: n2 ^/ [  ]2 W     - `y1 = subs(p, x, x0)` 将泰勒展开多项式 \( p \) 替换中 `x` 的值为 `x0`,以计算对应的 `y1`(即泰勒多项式的值)。
2 p% M+ m) O- s- m2 j     - `line(x0, y1)` 在当前图中绘制泰勒级数的结果。) B  E! W9 ^' t: I6 A

& H: \6 d. v3 Z1 l, w# J9 _### 效果3 w7 d9 A8 R( z. W( A0 @3 C
9 G7 ^0 w! Z  V7 |; F) J* g# `: d
- 代码运行后,会得到一幅包含原始正弦函数图像和不同阶次的泰勒多项式的图形。每个泰勒多项式的图形与正弦函数重合得越近,表示这一级数的逼近效果越好。
' t+ n& s3 f9 z7 w0 u( |% N1 d$ \: h! H
### 知识点总结
% J9 m3 ]  |/ q/ c2 u$ Q7 |  w, E' t% g7 |- ?8 `8 Q% m
1. **泰勒级数**:' }1 z6 s5 I, q! D% v3 _2 I
   - 泰勒级数是表示函数的一种多项式近似,适用于在某一点附近的函数描述。
, V. h2 _0 d3 Y( m5 B0 H8 F
' t# d1 d- p! e+ f: F! n& H8 Y5 j2. **符号计算**:  I5 c6 f* }' f0 e% u
   - 使用 MATLAB 的符号工具箱,能够对符号函数进行解析计算并获取多项式形式。
" P* P9 t- R- {5 o! Q4 Q; n$ Q. `" W3 P& v
3. **绘图与数据可视化**:
5 N- ?4 a- N5 F% D" {   - `plot` 和 `line` 函数用于展示函数图像,`hold on` 功能允许在同一图中叠加多个图形。
2 I) w2 L5 }0 x  o; \0 j5 L, w9 D9 a  q4 @0 V  j% T
4. **遍历与替换**:
9 q, G% w, t/ c, b' B   - 通过循环和 `subs` 函数,可以对多次定义和计算的函数值进行有效处理。
; I& G7 M" f) E  j+ Y, b/ p7 n' O  h4 R* b
### 结论  k1 y  U( i) s0 b3 L, g# Q- `- Y0 P

/ b& X- {0 N* s' L$ l* ]这段代码展示了如何利用 MATLAB 对正弦函数进行泰勒级数展开,并通过可视化的方式展示其近似效果。可以通过这个示例了解泰勒级数的适用性和效率,同时为函数逼近与数值计算提供了直观的理解。
6 D7 K7 M6 e- K. J9 P0 M
5 T& h' F+ Z# D" D' |- f9 {' T* \5 d' u7 p' ~9 t  x+ k
2 {( c  G, Y) }: C6 X
  j7 }# x! x( D9 Y

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-16 06:25 , Processed in 0.436784 second(s), 55 queries .

回顶部