QQ登录

只需要一步,快速开始

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

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

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

1192

主题

4

听众

2946

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-8-27 11:05 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. x0=-2*pi:0.01:2*pi; y0=sin(x0); syms x; y=sin(x);
    - h3 H: Z! L( s\" _4 X$ \
  2.       plot(x0,y0), axis([-2*pi,2*pi,-1.5,1.5]); hold on9 {8 U  n4 G6 s& z8 P
  3.       for n=[8:2:16]
    % w$ L- L/ t4 k9 h: a; n1 U
  4.          p=taylor(y,x,n), y1=subs(p,x,x0); line(x0,y1)8 I. k7 |1 N  \9 O
  5.       end- ?$ h! u/ B% S, `
  6.       
复制代码
这段 MATLAB 代码通过泰勒级数展开绘制了正弦函数的逼近。下面是代码的逐步解释:
5 v2 K, s& b7 C7 l& X% r  e3 `1 R6 _* W& c2 V% B" h7 r# z
### 代码解释5 d* _7 A  Z0 Z/ A2 G' o, ^& [

& x1 o4 ]6 d6 {# ^  f1. **定义 x 范围**:* r, Y3 x  m2 O
   ```matlab
+ b7 v  w6 k& R  O   x0 = -2*pi:0.01:2*pi;! q# z2 ?2 U! Y. A' c( V
   ```" S0 H7 z% i9 ^2 L
   - 这行代码创建了一个从 \(-2\pi\) 到 \(2\pi\) 的向量 `x0`,步长为 0.01。这个向量将用于计算和绘图。
6 c) b2 G4 g! P  X; [9 }
7 z6 z! W8 \+ L# }, D3 P" t' D2. **计算 sin(x0)**:
5 T+ Z7 ]) F, S- I- J   ```matlab9 n. A# }5 n0 C6 h; j  D
   y0 = sin(x0);5 N, s4 b; f9 `1 ]1 x2 Y" N7 q' Q
   ```9 x' X) Z( @% e9 \
   - 计算 `x0` 中每个值的正弦,并将结果存储在 `y0` 中。`y0` 将是 `sin` 函数的实际值,用于绘图。
* A) d9 b5 h  |8 U' k
( }: B  B! q# W7 |: J. K+ i8 S& r( c3. **定义符号变量和函数**:  Q( q: g( N" B1 P- |( X# E
   ```matlab9 X) M8 j1 V* e9 B
   syms x;! \7 Q+ r! f4 g" u+ V7 ^
   y = sin(x);
" t2 a) A/ U: _* \4 H   ```5 V2 f, ]8 E& h$ `$ L% F' E
   - 使用 `syms` 创建符号变量 `x`,然后定义符号函数 \( y = \sin(x) \)。这个函数用于后续的泰勒级数展开。) K/ d6 g" P+ t7 ^
, C0 J! P$ n/ Y4 s( p1 K
4. **绘制 sin(x) 图形**:
1 X- w6 F+ P: Z+ s/ j8 V5 m   ```matlab. f( o" b& }4 P0 z% \& o7 h+ a. v$ Y
   plot(x0, y0), axis([-2*pi, 2*pi, -1.5, 1.5]); hold on0 }! k6 {, Y+ f7 C/ |- U
   ```# u. D" y% Q' R) H! [
   - 使用 `plot` 函数绘制 `y0` 关于 `x0` 的图形,即实际的正弦波。
, W/ F) s8 ~: Z2 U# r   - `axis` 函数设置坐标轴的范围为 \([-2\pi, 2\pi]\) 和 \([-1.5, 1.5]\)。( n/ i/ V3 S: z. g8 S) D
   - `hold on` 使得后续绘图不会覆盖当前的图形。1 \$ H. V5 i. D! M' b8 s' f- z
. P6 ~/ V3 T, `' ^3 u% [  O0 T
5. **进行泰勒级数展开和绘图**:
5 l6 q3 n3 k5 C1 F2 F$ R   ```matlab
4 [3 G$ y$ w6 F* M   for n = [8:2:16]  o- k4 |9 R9 y% c
       p = taylor(y, x, n);
& a, n$ }* R2 N$ q$ ~       y1 = subs(p, x, x0);$ r; F5 Y- E4 |' i' c9 J
       line(x0, y1)
" B, X0 l- U) ~: W* A   end1 w/ D8 n  G* C1 W! K' s
   ```8 N6 o( A9 ]* O% Z
   - 使用 `for` 循环遍历 `n` 的值,从 8 到 16,步长为 2(即分别为 8、10、12、14 和 16)。' a$ c+ E. N0 E6 `2 X
   - 在循环内部:% |5 [/ ?- B9 S* m! G1 Y* ~. ~
     - `p = taylor(y, x, n)` 计算在点 0 附近的 \( n \) 次泰勒级数展开,得到多项式 \( p \)。$ M- K! i! s6 [& n3 C- P, U
     - `y1 = subs(p, x, x0)` 将泰勒展开多项式 \( p \) 替换中 `x` 的值为 `x0`,以计算对应的 `y1`(即泰勒多项式的值)。
# y5 F0 E" Z% k4 e6 {- i     - `line(x0, y1)` 在当前图中绘制泰勒级数的结果。8 f; Q" ^2 u9 K9 Y  L: Y1 X/ }

9 u4 r+ T. C. t* e/ j### 效果# I9 r' I4 M0 D, A

7 \% U  N$ n: b* U5 d3 M- 代码运行后,会得到一幅包含原始正弦函数图像和不同阶次的泰勒多项式的图形。每个泰勒多项式的图形与正弦函数重合得越近,表示这一级数的逼近效果越好。
  W; |; {8 h& W  O- [  N. {/ F  k( e$ |1 J( C! H
### 知识点总结6 g% e1 d% `) N. V% E

# ~" R: J! k0 M) q$ U5 z1. **泰勒级数**:* u! r4 u/ z; ~' y1 {
   - 泰勒级数是表示函数的一种多项式近似,适用于在某一点附近的函数描述。
1 {' Y4 l5 {# k4 L
8 @+ U. \4 n: e* t. n2 j2. **符号计算**:
4 ^+ L+ F' B) d/ E8 K$ l   - 使用 MATLAB 的符号工具箱,能够对符号函数进行解析计算并获取多项式形式。/ Z6 J! c) L, ^- Z9 Y5 u) q3 R" v

/ ^2 q8 e7 y) v6 K- [$ P3. **绘图与数据可视化**:
6 `% N9 t6 e4 O+ F   - `plot` 和 `line` 函数用于展示函数图像,`hold on` 功能允许在同一图中叠加多个图形。
! O9 l2 U4 q$ j2 M! m* Z) i
  \( ~* G% e# b0 e4. **遍历与替换**:
6 {/ u5 f$ b) }' p8 I   - 通过循环和 `subs` 函数,可以对多次定义和计算的函数值进行有效处理。
+ I( B, r" v+ l; Q0 y
# u8 x1 q; r! [7 y3 |### 结论
. E9 R% j0 J1 g
1 t5 H7 T* J2 z- R7 D* g这段代码展示了如何利用 MATLAB 对正弦函数进行泰勒级数展开,并通过可视化的方式展示其近似效果。可以通过这个示例了解泰勒级数的适用性和效率,同时为函数逼近与数值计算提供了直观的理解。4 L1 T4 Y0 f1 b+ p1 m, ~

% _6 M* c$ J! Z/ c/ I$ Q" }! `# j  ^4 q- ]' U  k0 P

+ d0 E  s2 w- @6 \8 D% c' B( O& C; M& Q* f* C1 R; }' L! \

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-8-25 18:53 , Processed in 0.407934 second(s), 55 queries .

回顶部