QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3930|回复: 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);' }$ Q* s+ i; m! J6 m
  2.       plot(x0,y0), axis([-2*pi,2*pi,-1.5,1.5]); hold on
    . a5 v\" P! G) C. L, D3 N+ K/ d* }
  3.       for n=[8:2:16]: g$ f1 T, `9 g2 H, Q: x
  4.          p=taylor(y,x,n), y1=subs(p,x,x0); line(x0,y1)! J9 u* r# u  b# A5 Z+ p. S; H7 B
  5.       end
    5 A/ w+ Q& |0 X- l' G! R
  6.       
复制代码
这段 MATLAB 代码通过泰勒级数展开绘制了正弦函数的逼近。下面是代码的逐步解释:2 c9 s. |/ y- D# W+ @

1 T( q% G& s  U* _### 代码解释
1 c6 J# P9 a. O4 V( @2 y- ?
3 L! ^$ z  b7 Z: K1. **定义 x 范围**:% z2 F- ?- W# d$ \5 w5 q
   ```matlab# o& e0 _; l0 {' f: s6 S- L
   x0 = -2*pi:0.01:2*pi;
. r7 k2 U$ H3 @   ```
; e3 r$ @$ q; ~" d* p, R( f* I+ o   - 这行代码创建了一个从 \(-2\pi\) 到 \(2\pi\) 的向量 `x0`,步长为 0.01。这个向量将用于计算和绘图。5 ], q( x: p- s. X3 u

3 g& w' K+ k2 d  U8 K6 D2. **计算 sin(x0)**:  W4 p6 C# p! k/ y- s
   ```matlab
1 N" ~* G" F, w   y0 = sin(x0);. `  e7 a& q: y% \! G: R
   ```  w, a/ f0 w/ d' p* B0 v% W
   - 计算 `x0` 中每个值的正弦,并将结果存储在 `y0` 中。`y0` 将是 `sin` 函数的实际值,用于绘图。; I! j1 t8 A& U  p

, X/ p  J  e$ Z! I) O( y7 i, z* O3. **定义符号变量和函数**:% T$ ?0 l. `3 z% Y
   ```matlab5 ]- D' D& Z( {( p  ~' c7 E
   syms x;& ]2 E- C- W) X
   y = sin(x);
! V; s$ L& c! b5 \+ G   ```' x; i8 Y& ?0 z' U, Q) ?6 v
   - 使用 `syms` 创建符号变量 `x`,然后定义符号函数 \( y = \sin(x) \)。这个函数用于后续的泰勒级数展开。
" N/ }. A4 R. ]  `- i
5 q, Z( z9 B, D6 a' c4. **绘制 sin(x) 图形**:  ^$ o+ U$ ^4 w4 d
   ```matlab/ L2 [, G) o7 t" {$ }
   plot(x0, y0), axis([-2*pi, 2*pi, -1.5, 1.5]); hold on
' c& L" b+ c8 n" z7 K( }) S   ```
; u3 x3 O3 n2 {& V1 ^+ H6 x+ ?3 v% T   - 使用 `plot` 函数绘制 `y0` 关于 `x0` 的图形,即实际的正弦波。3 L: ~1 C7 M, I2 n  {7 t
   - `axis` 函数设置坐标轴的范围为 \([-2\pi, 2\pi]\) 和 \([-1.5, 1.5]\)。) i' @" ^6 W5 S, B& I, o
   - `hold on` 使得后续绘图不会覆盖当前的图形。
5 R* e9 j6 p7 M& L: Q* g4 g  t. a7 |% ^! Y2 J
5. **进行泰勒级数展开和绘图**:
4 Q; M; o3 E  a3 I2 H( C   ```matlab
: @! J, l! M1 W# n5 T. A   for n = [8:2:16]
7 M$ q& R6 `- f/ v       p = taylor(y, x, n);
) s- E8 `4 c5 v1 C       y1 = subs(p, x, x0);' A4 V! S( ?% Q% G6 K1 A9 t. H; T
       line(x0, y1)- `/ c4 ?" [$ K1 }" G. J, p; u
   end. h. T0 l7 s. N  j$ _9 X9 h
   ```# ?" m+ C4 ?8 \% u
   - 使用 `for` 循环遍历 `n` 的值,从 8 到 16,步长为 2(即分别为 8、10、12、14 和 16)。
' d* N& {* w8 ?+ g, O+ I0 J   - 在循环内部:
! v  d; W* N# e4 L. V     - `p = taylor(y, x, n)` 计算在点 0 附近的 \( n \) 次泰勒级数展开,得到多项式 \( p \)。, H8 b% [1 g% G# R
     - `y1 = subs(p, x, x0)` 将泰勒展开多项式 \( p \) 替换中 `x` 的值为 `x0`,以计算对应的 `y1`(即泰勒多项式的值)。' c6 E+ e6 p' j3 @# P- Q
     - `line(x0, y1)` 在当前图中绘制泰勒级数的结果。
, c" W! A5 g9 a, {) l/ L; Y2 K# Y
/ {& U4 u# _9 V8 x### 效果
; j' L3 x0 X! S5 `! Q- r0 w  t2 X  H  s7 L: X" h  Z" B/ u" f  n
- 代码运行后,会得到一幅包含原始正弦函数图像和不同阶次的泰勒多项式的图形。每个泰勒多项式的图形与正弦函数重合得越近,表示这一级数的逼近效果越好。' _1 C" e# a! N$ O

$ A8 Q! a# }8 p( d### 知识点总结
5 e. j5 ^/ z' [/ y% b. S, ~9 `& S$ @# W7 H
1. **泰勒级数**:$ g7 o- a. {4 ?2 m( U' |( z
   - 泰勒级数是表示函数的一种多项式近似,适用于在某一点附近的函数描述。& h! @  `! l  Z' O3 Y" N+ l  C4 l

/ `- f! a$ g1 Z" H7 T# s2. **符号计算**:
" F  w9 V- O+ V* Y5 G   - 使用 MATLAB 的符号工具箱,能够对符号函数进行解析计算并获取多项式形式。, Y9 ^: y/ C* d- g0 j4 a  B
( W9 n6 J: h; @% |
3. **绘图与数据可视化**:8 ^( u' Z. U+ B& L4 [
   - `plot` 和 `line` 函数用于展示函数图像,`hold on` 功能允许在同一图中叠加多个图形。# ~& a. U$ n3 ~/ ~- f' j, C. H: B

' j4 _* `) Z* }0 Q7 Y) u1 @6 u/ i4. **遍历与替换**:
8 E2 x1 }6 |" I   - 通过循环和 `subs` 函数,可以对多次定义和计算的函数值进行有效处理。0 \& W6 y& X( B$ f
7 ~8 d4 U: ]' p7 ]
### 结论9 n4 X, ^! Y* h# U$ ?$ o
$ R  O& I" s+ X: p% s
这段代码展示了如何利用 MATLAB 对正弦函数进行泰勒级数展开,并通过可视化的方式展示其近似效果。可以通过这个示例了解泰勒级数的适用性和效率,同时为函数逼近与数值计算提供了直观的理解。% W1 V: L! V7 F! B: l* A; G6 [1 }; N

4 ^. [& W$ }2 Q. U# @5 J! h. c( i' F" o) }
' O/ t1 F. T  h! [

+ Q" M2 o8 L, q# s

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 15:07 , Processed in 0.814239 second(s), 54 queries .

回顶部