QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3979|回复: 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);
    ( G0 \8 A6 x/ E\" K3 @\" {) h
  2.       plot(x0,y0), axis([-2*pi,2*pi,-1.5,1.5]); hold on9 {2 _8 Y) [! z  \% u1 o
  3.       for n=[8:2:16]
    1 c0 Y  ?) l! q, A$ G4 I4 s
  4.          p=taylor(y,x,n), y1=subs(p,x,x0); line(x0,y1)
    ) `, {$ |7 M' R) A& T- t
  5.       end8 B2 M: a6 b$ k6 q3 ^' w& e
  6.       
复制代码
这段 MATLAB 代码通过泰勒级数展开绘制了正弦函数的逼近。下面是代码的逐步解释:
4 K* b( g' U. F3 I1 t, _; G
* l( C" U0 O% f. }- i( @; C### 代码解释! o9 T: v: F. \' @

$ Q, b7 }% P8 Q7 m% w! Z1. **定义 x 范围**:) u* e5 C' Q# @4 f$ a9 V
   ```matlab  s& n7 \: a% z4 l
   x0 = -2*pi:0.01:2*pi;
: |6 Y: B. J( e. ~   ```7 K4 P& q; k% X: R, h
   - 这行代码创建了一个从 \(-2\pi\) 到 \(2\pi\) 的向量 `x0`,步长为 0.01。这个向量将用于计算和绘图。
! q) x6 a6 X# q9 }$ s4 K  r3 ?4 X' V
$ ^1 p, u6 z. M& p9 E, H+ J2. **计算 sin(x0)**:
- \( U9 R$ U- v0 q, g   ```matlab
. ]$ C8 I, X; o- [$ i7 w* B, |   y0 = sin(x0);) `. f% U0 H4 [) q7 D
   ```
( G) Z* z! p) W) I0 w% P   - 计算 `x0` 中每个值的正弦,并将结果存储在 `y0` 中。`y0` 将是 `sin` 函数的实际值,用于绘图。
* F* A7 B- v& D( m. }, C
4 z, {0 R  v/ w) T/ f$ F, V+ O3. **定义符号变量和函数**:$ W% y! j3 k; c. P, N# |2 r1 ]
   ```matlab- {. `% W6 u: y' E
   syms x;
- S, I- {0 F4 R   y = sin(x);/ }, J1 i. q7 F, N) X- M
   ```
9 P+ ?) H: r) ^6 w$ h, {7 m' l' K   - 使用 `syms` 创建符号变量 `x`,然后定义符号函数 \( y = \sin(x) \)。这个函数用于后续的泰勒级数展开。
5 V9 A* s6 p( m8 `, a# s, Y2 F/ h; z+ m% G! M8 j. o
4. **绘制 sin(x) 图形**:0 S" v  P. ]/ e
   ```matlab, `6 c  w7 o) r" _/ H
   plot(x0, y0), axis([-2*pi, 2*pi, -1.5, 1.5]); hold on
& l! m4 S3 F: }3 t$ [   ```
/ G( }  N5 f1 U: p9 w   - 使用 `plot` 函数绘制 `y0` 关于 `x0` 的图形,即实际的正弦波。
' c% A' v  V6 d) [& D! {7 w2 l   - `axis` 函数设置坐标轴的范围为 \([-2\pi, 2\pi]\) 和 \([-1.5, 1.5]\)。1 {' c8 h2 \& G) p
   - `hold on` 使得后续绘图不会覆盖当前的图形。
# y) K7 Q# T* Y' ~4 n: B) x* W
. {) ?' d0 J3 Y7 x+ W* N, q5. **进行泰勒级数展开和绘图**:
8 a) V: Z  f  l; a0 p   ```matlab
5 F( |; |' Y: ^, h   for n = [8:2:16]9 S  C& `/ E0 r+ w8 m! y- T
       p = taylor(y, x, n);0 H1 |, s9 n' Q- y7 g
       y1 = subs(p, x, x0);- V$ [. s# @! [. }; u5 t) z2 u
       line(x0, y1)) U0 i: x4 W  M
   end
: S: s) Q% U9 }& e! j$ V' ~   ```
& \, P6 g. `  r/ }0 F2 |0 n* s4 P   - 使用 `for` 循环遍历 `n` 的值,从 8 到 16,步长为 2(即分别为 8、10、12、14 和 16)。
" |1 [) x) I  S; `9 j  Z   - 在循环内部:' |. m  C* t$ r# K3 U& D2 N# G
     - `p = taylor(y, x, n)` 计算在点 0 附近的 \( n \) 次泰勒级数展开,得到多项式 \( p \)。
/ D) N. @8 P; p7 b     - `y1 = subs(p, x, x0)` 将泰勒展开多项式 \( p \) 替换中 `x` 的值为 `x0`,以计算对应的 `y1`(即泰勒多项式的值)。
; L+ X, N' k! R! R9 m     - `line(x0, y1)` 在当前图中绘制泰勒级数的结果。/ c6 e% d* r8 P
, ^* u! I7 `0 {0 S# }" D  G
### 效果4 Q, s( ^0 l  K# w7 n" c
4 t8 q) s7 R  E" `
- 代码运行后,会得到一幅包含原始正弦函数图像和不同阶次的泰勒多项式的图形。每个泰勒多项式的图形与正弦函数重合得越近,表示这一级数的逼近效果越好。
1 f$ j, S# ?3 [$ S9 O  L5 w& X; [; `. ]4 D# L
### 知识点总结1 J, d4 v" V4 @& |2 {; q

6 D& E  E+ y+ m3 d) b1. **泰勒级数**:; ?8 J$ l* S0 [7 C, z$ N" S# I7 N7 \
   - 泰勒级数是表示函数的一种多项式近似,适用于在某一点附近的函数描述。* O) T+ d/ M) I3 a
) d; Z3 r3 Z$ }9 ~' m! _2 a
2. **符号计算**:4 T; D' _4 N% r+ H  j% F+ y- j+ M
   - 使用 MATLAB 的符号工具箱,能够对符号函数进行解析计算并获取多项式形式。3 A* H* d6 a- J1 j9 s% v6 m
+ z8 f6 I5 S% W( }
3. **绘图与数据可视化**:
' M) x1 j' K0 g& g1 @   - `plot` 和 `line` 函数用于展示函数图像,`hold on` 功能允许在同一图中叠加多个图形。
& M0 c4 s: q# m+ |" Z
/ I& |+ w" c+ c6 s# j- l4. **遍历与替换**:4 J/ W2 y- e& `" V- m
   - 通过循环和 `subs` 函数,可以对多次定义和计算的函数值进行有效处理。
% Q5 j* n2 T  G: D3 A6 m1 C3 Z! _" G9 l' Y& I6 c0 q, B  e; f
### 结论' ^6 h. T6 I" F% L, a

' a; j( C8 w' x: r7 J/ y3 k这段代码展示了如何利用 MATLAB 对正弦函数进行泰勒级数展开,并通过可视化的方式展示其近似效果。可以通过这个示例了解泰勒级数的适用性和效率,同时为函数逼近与数值计算提供了直观的理解。1 r- ?$ A0 k8 B  K& y7 k

. B; @6 K5 f8 p; r1 z5 r# E( p3 z4 B! k0 m, K
: T2 U# N+ x% U! O" C
1 I3 U) U. v# w" K$ \

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 11:15 , Processed in 0.446518 second(s), 55 queries .

回顶部