QQ登录

只需要一步,快速开始

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

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

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

1176

主题

4

听众

2887

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-8-27 11:05 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. x0=-2*pi:0.01:2*pi; y0=sin(x0); syms x; y=sin(x);
    # c! \. z/ ~1 q: ~
  2.       plot(x0,y0), axis([-2*pi,2*pi,-1.5,1.5]); hold on9 L0 y' z' b: D& V
  3.       for n=[8:2:16]
    4 Q- m! Z( u6 I# C+ m/ B
  4.          p=taylor(y,x,n), y1=subs(p,x,x0); line(x0,y1)
    & v' L' i+ z3 x3 v# Q1 N
  5.       end1 s9 |1 Z+ z, I6 h. B/ o1 U( Y
  6.       
复制代码
这段 MATLAB 代码通过泰勒级数展开绘制了正弦函数的逼近。下面是代码的逐步解释:# ]6 M" V! f7 W( a0 S
9 ^5 f: z$ K$ G) {
### 代码解释
* Z2 `/ N3 B% r$ `( f+ Y
" G5 M( X/ i8 t1 R; h1. **定义 x 范围**:
- f* S% z5 h" a: P6 Q   ```matlab" ~) }( Z& R* s" O
   x0 = -2*pi:0.01:2*pi;
& k5 n) {4 a8 ^& U! M5 \. ]+ A   ```
- r' \% ~8 ?2 Q   - 这行代码创建了一个从 \(-2\pi\) 到 \(2\pi\) 的向量 `x0`,步长为 0.01。这个向量将用于计算和绘图。2 T5 B! |, u, X6 i+ K$ j* h
' `: L8 q7 W. X- w' C" a& x8 o9 X: H
2. **计算 sin(x0)**:% f; n; w) Z. o" F. S
   ```matlab. u; E0 M2 W2 k7 M; P6 w
   y0 = sin(x0);" n5 y: Y/ b6 Z2 r; ?3 E6 ^
   ```* G6 x1 J% |5 C5 _
   - 计算 `x0` 中每个值的正弦,并将结果存储在 `y0` 中。`y0` 将是 `sin` 函数的实际值,用于绘图。6 W- p$ Q. {! y( O2 V5 T' }) E

7 V' b3 S! I- _- b2 U( R0 I$ O5 M# @3. **定义符号变量和函数**:  S; i) o1 t( {' y9 g0 k
   ```matlab. C& m% C) v* Y8 @# K4 W
   syms x;3 ~3 M/ A2 ?" f
   y = sin(x);! l+ ~+ _5 v$ i. k" ?  W
   ```
5 ?$ P' w! l. J8 y/ a' Y: H   - 使用 `syms` 创建符号变量 `x`,然后定义符号函数 \( y = \sin(x) \)。这个函数用于后续的泰勒级数展开。$ F# c) b& n0 J6 q8 f
$ T( ~( C: D; b1 Z$ q2 ^
4. **绘制 sin(x) 图形**:8 f" \5 a, w3 ^4 V; K) i# Y6 r$ y
   ```matlab
2 b3 O7 T7 k* v3 Y2 q) N# R   plot(x0, y0), axis([-2*pi, 2*pi, -1.5, 1.5]); hold on
7 K7 S  w  F6 k   ```+ X+ k+ R2 g. N% @
   - 使用 `plot` 函数绘制 `y0` 关于 `x0` 的图形,即实际的正弦波。
8 Y/ v' K2 F, a! \. E% G1 s   - `axis` 函数设置坐标轴的范围为 \([-2\pi, 2\pi]\) 和 \([-1.5, 1.5]\)。
6 q) q  v& U. C* u  o   - `hold on` 使得后续绘图不会覆盖当前的图形。
; v* {% _5 K6 B6 n! d; @* e4 H: t9 Y  d% }4 @/ E
5. **进行泰勒级数展开和绘图**:
& Y2 U1 l5 k1 x! R   ```matlab) a/ q' J( h  n8 d! z
   for n = [8:2:16]
) a8 Q* T+ \8 K2 u+ _- F       p = taylor(y, x, n);$ M+ _- s& z6 i; x0 @
       y1 = subs(p, x, x0);
5 d9 ~. J0 E/ a% g3 e# b       line(x0, y1)
8 _( ~) A: H& n  _3 R+ \1 l   end
& N+ Z9 h! l: o) |. ?+ `   ```+ I/ e+ O7 U: Y- \) Q0 Z
   - 使用 `for` 循环遍历 `n` 的值,从 8 到 16,步长为 2(即分别为 8、10、12、14 和 16)。) k" _; R, k+ W: C
   - 在循环内部:1 m  P% Z1 Y; W7 Z
     - `p = taylor(y, x, n)` 计算在点 0 附近的 \( n \) 次泰勒级数展开,得到多项式 \( p \)。! X3 k5 C4 l! {6 u. @. ?
     - `y1 = subs(p, x, x0)` 将泰勒展开多项式 \( p \) 替换中 `x` 的值为 `x0`,以计算对应的 `y1`(即泰勒多项式的值)。- @3 y/ N, f5 z1 C( [) q9 I0 l
     - `line(x0, y1)` 在当前图中绘制泰勒级数的结果。
$ U! y( M/ }; Z. ?  r
8 H; A$ _8 H3 @' z8 s3 i" }### 效果8 P0 @1 z# m' E# {$ P; m

7 A. R7 p9 J& Q- i3 b, t- 代码运行后,会得到一幅包含原始正弦函数图像和不同阶次的泰勒多项式的图形。每个泰勒多项式的图形与正弦函数重合得越近,表示这一级数的逼近效果越好。/ S( W& q6 o, f' k6 t1 g6 D2 t

& m+ s1 `1 N3 [6 R7 r$ P### 知识点总结
* J- ~3 |: w0 K7 M0 N; v' m0 {- ~1 A7 ], R9 U8 }
1. **泰勒级数**:
8 y. B4 S$ h+ K- P% o   - 泰勒级数是表示函数的一种多项式近似,适用于在某一点附近的函数描述。
; N: u4 G! Y7 M8 W- i! _* X4 V
5 c, m4 r" C# G. ?: R, y2. **符号计算**:. j& q! A  k7 c
   - 使用 MATLAB 的符号工具箱,能够对符号函数进行解析计算并获取多项式形式。3 p" G7 Q( n1 y- ]; J2 Y
- x7 }  i0 H3 K. d8 h0 {$ e* M* A
3. **绘图与数据可视化**:' \' X3 w( |+ b( |
   - `plot` 和 `line` 函数用于展示函数图像,`hold on` 功能允许在同一图中叠加多个图形。5 W3 a' J; C# Y
5 B6 A3 |+ E7 K% K! j: t
4. **遍历与替换**:
& f* r- T% m4 ^0 J- s: u   - 通过循环和 `subs` 函数,可以对多次定义和计算的函数值进行有效处理。
# R0 Z( H4 a5 g9 E/ T
) O2 x$ [- S" u" A- Y; a* O$ L0 h& j### 结论
; o9 e/ c) O! g( Q% q0 t6 e* `! ?% G% j: R! ?
这段代码展示了如何利用 MATLAB 对正弦函数进行泰勒级数展开,并通过可视化的方式展示其近似效果。可以通过这个示例了解泰勒级数的适用性和效率,同时为函数逼近与数值计算提供了直观的理解。
0 S& o) W# B: z: }2 E5 ~" U# ]# ]
$ J  {4 O, r# K, I6 {/ k4 i' E' o, i! @, D2 V' L% C  ~( k
1 U$ \: ~  ^' u" b; Z1 Y; M+ z
) ~9 f- l7 s* }4 |/ q7 ~

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, 2025-11-4 19:00 , Processed in 0.525193 second(s), 55 queries .

回顶部