QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3976|回复: 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);$ b- z5 s7 e, U) t, z4 ]  K
  2.       plot(x0,y0), axis([-2*pi,2*pi,-1.5,1.5]); hold on; u* y: o6 K& R
  3.       for n=[8:2:16]
    ! A5 ~3 V9 Z* }3 I/ u8 O( i
  4.          p=taylor(y,x,n), y1=subs(p,x,x0); line(x0,y1)
    ) U1 X- j\" V. X- d
  5.       end
    \" k+ L$ P\" J' Q7 t! v
  6.       
复制代码
这段 MATLAB 代码通过泰勒级数展开绘制了正弦函数的逼近。下面是代码的逐步解释:: q: Z7 k5 i: G

  H$ y5 L2 N' z; f9 X9 C: a### 代码解释+ P6 ?8 w8 T* ~! B
; P9 j- o1 F3 R* e8 ^# j) ^  |
1. **定义 x 范围**:; a9 E$ H6 b3 p" k/ A4 j
   ```matlab
5 X4 Q1 l. q0 Q   x0 = -2*pi:0.01:2*pi;
3 z2 y/ i$ D, j, t# p' |, M   ```, t: l1 X' H7 g0 R5 s9 r
   - 这行代码创建了一个从 \(-2\pi\) 到 \(2\pi\) 的向量 `x0`,步长为 0.01。这个向量将用于计算和绘图。7 h8 |. ^# a! _) W: H# g7 c

0 m* L6 Y( T" G7 ^  T7 ^8 G2. **计算 sin(x0)**:
$ G8 q& t  H0 j% g& r/ B   ```matlab1 f' w8 K4 D1 L3 W
   y0 = sin(x0);
; U, Y! d  o, a) i# h   ```" j5 S* ?8 M- Q! F
   - 计算 `x0` 中每个值的正弦,并将结果存储在 `y0` 中。`y0` 将是 `sin` 函数的实际值,用于绘图。
3 T& J# L' u  c. P/ a; B
* U  {3 Q0 |$ j& p& a% X7 e, M3. **定义符号变量和函数**:
5 ~, o/ I$ Z- m! a7 g   ```matlab
4 H, G7 A3 E6 h8 o$ ?   syms x;
. A8 O0 I, f# v. q   y = sin(x);( q  L. @! _( G/ z" ]/ B! j
   ```
: z" n* A7 R; c/ W/ E* Q# O   - 使用 `syms` 创建符号变量 `x`,然后定义符号函数 \( y = \sin(x) \)。这个函数用于后续的泰勒级数展开。8 G& i8 S) U; H& m

& k" w- G  b1 j& K6 A4. **绘制 sin(x) 图形**:: x8 @9 N# E  b! J2 a5 S' {
   ```matlab
; u2 E8 O" D' |   plot(x0, y0), axis([-2*pi, 2*pi, -1.5, 1.5]); hold on
$ K8 c* C6 [; ~# K$ U7 I- z- v) B# e   ```
0 k( E% \& x7 M! V   - 使用 `plot` 函数绘制 `y0` 关于 `x0` 的图形,即实际的正弦波。
5 z( {% M# L/ g4 w  U   - `axis` 函数设置坐标轴的范围为 \([-2\pi, 2\pi]\) 和 \([-1.5, 1.5]\)。
7 K- |; \( ^4 Z7 B   - `hold on` 使得后续绘图不会覆盖当前的图形。: N) `. P3 f5 [. E& n

/ k  Y& N2 b$ ]. ^2 }5. **进行泰勒级数展开和绘图**:
! {; H0 p3 f5 k% E, ]5 R8 Q   ```matlab  s& a8 a: J$ S; x5 n
   for n = [8:2:16]
# [% U! R9 E$ t  S# J- B& A+ @0 O       p = taylor(y, x, n);
8 L2 x  l* x6 F0 g       y1 = subs(p, x, x0);
) [& {/ h3 v% r( [. X+ s; l       line(x0, y1)
  r, l4 L2 S4 T( n3 y1 ~) F; u   end/ F; S& k: n, }0 I* g4 Q4 C& ~
   ```
7 }: {7 z4 |+ x+ x   - 使用 `for` 循环遍历 `n` 的值,从 8 到 16,步长为 2(即分别为 8、10、12、14 和 16)。' N* J2 L9 L2 q: g& D5 R! G
   - 在循环内部:0 N7 i* A8 r) g2 J9 V( U: @8 a* P* a0 g
     - `p = taylor(y, x, n)` 计算在点 0 附近的 \( n \) 次泰勒级数展开,得到多项式 \( p \)。: Z6 y' k% C% R2 Z* g  F
     - `y1 = subs(p, x, x0)` 将泰勒展开多项式 \( p \) 替换中 `x` 的值为 `x0`,以计算对应的 `y1`(即泰勒多项式的值)。; M! Q: X2 A' }1 l. o) `
     - `line(x0, y1)` 在当前图中绘制泰勒级数的结果。
2 E9 H" ~3 k' T$ b" V2 d& q/ }; N" W9 w: M: S0 I2 Y
### 效果
7 a$ D( D$ K/ p; J& g* R
6 d( m) q# ~  x. z0 @- 代码运行后,会得到一幅包含原始正弦函数图像和不同阶次的泰勒多项式的图形。每个泰勒多项式的图形与正弦函数重合得越近,表示这一级数的逼近效果越好。
* v" P+ g1 p$ Y/ T' j) p# `5 H+ [
' D! S+ e! P% y( a3 S9 i: _& I3 B### 知识点总结2 y7 ?- l  B4 W/ r# D
! h) x+ i9 w! ^0 k8 Y
1. **泰勒级数**:8 F, ?) [1 X: x4 X
   - 泰勒级数是表示函数的一种多项式近似,适用于在某一点附近的函数描述。7 ]9 j! R9 \, g+ t% P

, r8 r1 w$ |0 }1 ^2. **符号计算**:0 R) a& a* n" `
   - 使用 MATLAB 的符号工具箱,能够对符号函数进行解析计算并获取多项式形式。% ]# Y9 K! p# m4 u7 r

0 t* }; }0 _) k  z) P! {3. **绘图与数据可视化**:# F* @. _$ N5 i' R
   - `plot` 和 `line` 函数用于展示函数图像,`hold on` 功能允许在同一图中叠加多个图形。
" P. M3 Z: \" ]8 y" q. c$ Q# B. m
) c4 [; r5 d/ c6 \9 ^4. **遍历与替换**:5 ~  G# x3 W8 A( d3 }
   - 通过循环和 `subs` 函数,可以对多次定义和计算的函数值进行有效处理。
! r4 }. U& u/ h& G  R4 ~; G  @& B( e7 k8 I; Z6 |  ^$ m
### 结论
" T+ B1 I$ b- J. n3 `& l/ |" n: \& _$ n
2 p& h' M' i! y% G! C+ P这段代码展示了如何利用 MATLAB 对正弦函数进行泰勒级数展开,并通过可视化的方式展示其近似效果。可以通过这个示例了解泰勒级数的适用性和效率,同时为函数逼近与数值计算提供了直观的理解。7 d, Y6 t6 N! e7 z* q/ h! ^
! R, G: o1 D- h' O, B  S2 q

5 v0 E$ Q4 o$ x- \. g9 z
4 k3 G( y2 U! I( N9 ~4 O& l( f2 g5 ], _- k! [# \! M3 w

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-6-11 02:31 , Processed in 0.347316 second(s), 55 queries .

回顶部