QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2986|回复: 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);: R0 @) p3 @5 M\" o9 C
  2.       plot(x0,y0), axis([-2*pi,2*pi,-1.5,1.5]); hold on! h6 i4 k& v, j6 n
  3.       for n=[8:2:16]
    # p/ `: S  F2 r2 ?( A0 a
  4.          p=taylor(y,x,n), y1=subs(p,x,x0); line(x0,y1)* J\" a3 d0 G8 Z5 U9 F& B$ g/ l0 G
  5.       end2 c4 f, S+ |- r; m- n, V) P, `* L\" E
  6.       
复制代码
这段 MATLAB 代码通过泰勒级数展开绘制了正弦函数的逼近。下面是代码的逐步解释:
% a: X& d0 v' m
; V$ ?6 R' t# V0 O0 \### 代码解释' T5 g, M7 r$ q( b

: f) o9 q0 c  e0 @1 a7 H( e$ P1. **定义 x 范围**:
' F4 k* }9 |: k; Q3 K. _4 X! y/ D) o   ```matlab
$ P& b7 }6 D; z3 O1 U8 w, n% m# v" h   x0 = -2*pi:0.01:2*pi;/ \$ M" K+ s  F
   ```" U- r& m# r7 i5 V; e" Y8 b* O0 P: Q
   - 这行代码创建了一个从 \(-2\pi\) 到 \(2\pi\) 的向量 `x0`,步长为 0.01。这个向量将用于计算和绘图。* T) T4 @2 H/ x, x& E
) U+ f5 _6 E1 s2 F0 b
2. **计算 sin(x0)**:4 A) n! s% X' W' `. t
   ```matlab  Z; `+ R* c+ u' o; i, t2 @
   y0 = sin(x0);# M: f. D- h" _6 K- Y$ X
   ```  h/ I+ ^7 }6 u& Z- \
   - 计算 `x0` 中每个值的正弦,并将结果存储在 `y0` 中。`y0` 将是 `sin` 函数的实际值,用于绘图。  u) |# U1 D& m& }5 X$ u, `% p

' S9 |' R2 m$ p% t3. **定义符号变量和函数**:( D$ c( H; H# W' j
   ```matlab! F* S7 k1 x2 D2 I; J3 @! ?& |
   syms x;! L) ~9 d" f& C1 C! h
   y = sin(x);
! O3 N- @! @$ V+ E5 v/ v   ```
, ^2 s4 E9 W" z* U" E% c   - 使用 `syms` 创建符号变量 `x`,然后定义符号函数 \( y = \sin(x) \)。这个函数用于后续的泰勒级数展开。6 n1 B- ]  G0 p9 U" P7 X. F
; n& {6 \6 Y1 F: [/ ^! P, }0 o
4. **绘制 sin(x) 图形**:
- Z! s+ P* D+ Q, ^( }) }. R( L- K   ```matlab4 j1 L/ O! U4 z1 ]8 Q
   plot(x0, y0), axis([-2*pi, 2*pi, -1.5, 1.5]); hold on
2 W  z( ]& N& u" s9 H" ^   ```( T! N2 q& b. Y9 b
   - 使用 `plot` 函数绘制 `y0` 关于 `x0` 的图形,即实际的正弦波。
" W7 l8 t: t# X* @0 D* s   - `axis` 函数设置坐标轴的范围为 \([-2\pi, 2\pi]\) 和 \([-1.5, 1.5]\)。- T6 M+ u# H- M" V  u4 D7 Z
   - `hold on` 使得后续绘图不会覆盖当前的图形。/ P2 b- w2 m: X( t
- y, d5 r; p) u3 r5 _: g& S
5. **进行泰勒级数展开和绘图**:
$ G; j( U4 l* g8 \   ```matlab
3 _. n1 ]: [: z7 S   for n = [8:2:16]
( ]5 l. [: d$ Z- l3 C8 ]) b9 p  r9 h0 {, I       p = taylor(y, x, n);
' k$ h% n; r5 D- X- w6 F& l5 _4 v# _       y1 = subs(p, x, x0);
3 o+ ?8 r; D* z$ x       line(x0, y1)
! ~6 D# R/ \. @   end0 ?1 p4 ?# R/ t+ x
   ```6 ^* D* @4 J: X' v
   - 使用 `for` 循环遍历 `n` 的值,从 8 到 16,步长为 2(即分别为 8、10、12、14 和 16)。- {! W" B* @/ h6 R' U
   - 在循环内部:
3 k1 r( p5 [$ P2 ^     - `p = taylor(y, x, n)` 计算在点 0 附近的 \( n \) 次泰勒级数展开,得到多项式 \( p \)。4 a1 |7 l/ F: m/ W& \: ?: m
     - `y1 = subs(p, x, x0)` 将泰勒展开多项式 \( p \) 替换中 `x` 的值为 `x0`,以计算对应的 `y1`(即泰勒多项式的值)。. O- T) q& q' m
     - `line(x0, y1)` 在当前图中绘制泰勒级数的结果。
2 q8 b7 k( s5 ^
7 N* F; j/ y7 I: I: K2 d" V### 效果
( w6 W5 R! |* v. [0 a8 K
$ A. `, c6 Z5 Z" T6 C9 k2 {4 a- 代码运行后,会得到一幅包含原始正弦函数图像和不同阶次的泰勒多项式的图形。每个泰勒多项式的图形与正弦函数重合得越近,表示这一级数的逼近效果越好。* J" u: y+ p5 n* F

7 `' S2 k0 [' L$ N. k### 知识点总结  H2 t( n8 v& W( {( S- i

$ f2 ~; J* {" r4 P1. **泰勒级数**:1 Q0 k1 \8 {4 a( j& {
   - 泰勒级数是表示函数的一种多项式近似,适用于在某一点附近的函数描述。+ x; S3 K" }% ?! Z+ X

6 M9 }, x( G+ s' M$ q3 b; X7 P; @2. **符号计算**:! m2 y7 O% g" v2 U+ \+ O
   - 使用 MATLAB 的符号工具箱,能够对符号函数进行解析计算并获取多项式形式。( ^7 b& J4 u4 J, F$ s- Z

. S) J% j0 b: E3. **绘图与数据可视化**:# e* p! T' [/ i
   - `plot` 和 `line` 函数用于展示函数图像,`hold on` 功能允许在同一图中叠加多个图形。  U0 [& k4 V3 y9 b1 g# Q. o
, A0 H& N3 D2 [0 v3 @5 q4 }0 I) C1 n
4. **遍历与替换**:
, x* r4 v" z/ r$ o   - 通过循环和 `subs` 函数,可以对多次定义和计算的函数值进行有效处理。  \2 J8 j' l: c; ^9 w

* P' P* ~! P- X) R### 结论
& z- k2 j! f& G/ g4 V% t7 r/ X2 Y  L" m, X" {9 u
这段代码展示了如何利用 MATLAB 对正弦函数进行泰勒级数展开,并通过可视化的方式展示其近似效果。可以通过这个示例了解泰勒级数的适用性和效率,同时为函数逼近与数值计算提供了直观的理解。) j; K; `1 z* l/ A
: l. A* W( F1 O2 ]; I
: V9 G6 b) U* g9 V( e7 z9 U' j
$ E; S$ {) ~0 S9 }5 w( t
! V1 v# Y# Y- ^+ t# ?; b) ?# q- N

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.389892 second(s), 55 queries .

回顶部