QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3999|回复: 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);/ R$ [7 v9 X. V& m+ }/ c& w
  2.       plot(x0,y0), axis([-2*pi,2*pi,-1.5,1.5]); hold on
    0 U7 l, P\" }1 f& x. Y
  3.       for n=[8:2:16]
    ' k/ P/ Y  O5 o! b; D+ f
  4.          p=taylor(y,x,n), y1=subs(p,x,x0); line(x0,y1)
    : x) J) c0 z( {2 u1 Q) N
  5.       end
    # d- ~7 W3 y* Z% A
  6.       
复制代码
这段 MATLAB 代码通过泰勒级数展开绘制了正弦函数的逼近。下面是代码的逐步解释:
$ V; H( w5 j% |% e) H2 y
8 b4 }# C- W% U. a2 h$ ?### 代码解释
3 L. A# q5 H7 l- a- U5 e. |' `* A5 g8 W  m4 ^* a
1. **定义 x 范围**:3 @/ H, U2 Y2 U0 e$ M1 H8 y
   ```matlab
) L' S8 c  d! |1 m: }. L   x0 = -2*pi:0.01:2*pi;
8 A7 S: f( ~& W! }! B, n   ```( @! n9 i; \9 a0 o
   - 这行代码创建了一个从 \(-2\pi\) 到 \(2\pi\) 的向量 `x0`,步长为 0.01。这个向量将用于计算和绘图。
' F( @, i: b( k  N: N: S+ |( M; x) o$ @8 B- \; w
2. **计算 sin(x0)**:
. g) y  z. F* b' B' a   ```matlab
& {4 S1 F5 ~7 [- C8 r   y0 = sin(x0);/ }; y* e  g8 \. F: e
   ```
  N) g  t2 T$ V$ B   - 计算 `x0` 中每个值的正弦,并将结果存储在 `y0` 中。`y0` 将是 `sin` 函数的实际值,用于绘图。
+ E+ {9 {! `2 x* [- Z' [1 k
& z1 H  E" `$ v" t% D0 D6 g$ r1 |3. **定义符号变量和函数**:
; L  P/ u( Q8 J9 Q7 I   ```matlab
% j3 `9 C3 z2 p* S+ {   syms x;
! @  |9 h, F' ]! \6 N   y = sin(x);
/ q5 G; }/ c* k9 `. L% o   ```0 U/ S7 ]  A  p/ Q5 g6 M7 D
   - 使用 `syms` 创建符号变量 `x`,然后定义符号函数 \( y = \sin(x) \)。这个函数用于后续的泰勒级数展开。
% }' k' X: O( P( M9 h1 j/ g0 `' Y0 R. [/ W$ J  E# p/ W0 Z2 d
4. **绘制 sin(x) 图形**:
& `9 S$ J/ K! [   ```matlab" R0 F( K% |5 @* h( }
   plot(x0, y0), axis([-2*pi, 2*pi, -1.5, 1.5]); hold on
  O5 m8 G* ~# C- Z: N2 q# Q$ e   ```
* [6 k. j0 t# A6 H   - 使用 `plot` 函数绘制 `y0` 关于 `x0` 的图形,即实际的正弦波。" p) V; q% j! l* C$ p6 j
   - `axis` 函数设置坐标轴的范围为 \([-2\pi, 2\pi]\) 和 \([-1.5, 1.5]\)。
3 A+ B# I& Y3 r5 S- Y) @; r- l   - `hold on` 使得后续绘图不会覆盖当前的图形。
; ^0 W  J9 p' ^# s& Y' C+ i6 I
- k; i5 `. h" l, B5. **进行泰勒级数展开和绘图**:! }: B6 O, J0 ]; P
   ```matlab2 l7 R5 _2 y* x4 I$ t: I
   for n = [8:2:16]
! n, `0 E% }& u( u       p = taylor(y, x, n);8 _9 w* e2 n1 _
       y1 = subs(p, x, x0);" L2 S, p1 ?0 q
       line(x0, y1)- J% P% ]$ D9 A; n
   end
; A. T! k& z& D) y2 v' C/ F3 U* |   ```
# d- R7 A! o0 C& L   - 使用 `for` 循环遍历 `n` 的值,从 8 到 16,步长为 2(即分别为 8、10、12、14 和 16)。7 k4 i! X  T. N- j" v6 O
   - 在循环内部:) u6 O5 h4 Y' i" h
     - `p = taylor(y, x, n)` 计算在点 0 附近的 \( n \) 次泰勒级数展开,得到多项式 \( p \)。0 D! A$ j0 u) T2 D/ a
     - `y1 = subs(p, x, x0)` 将泰勒展开多项式 \( p \) 替换中 `x` 的值为 `x0`,以计算对应的 `y1`(即泰勒多项式的值)。1 \/ u: H' i, G( @: ^9 d
     - `line(x0, y1)` 在当前图中绘制泰勒级数的结果。( x: x# U  ]. R2 ^, y
5 a) j' x3 o( J' n
### 效果0 L) h0 |$ v; g' j, M5 r& e. [. K

9 G4 s% G1 a) I( v5 o- 代码运行后,会得到一幅包含原始正弦函数图像和不同阶次的泰勒多项式的图形。每个泰勒多项式的图形与正弦函数重合得越近,表示这一级数的逼近效果越好。
3 x/ A3 _" W+ j# o$ y
0 X* V- ^/ j6 }! m3 D: q4 v+ @### 知识点总结( C$ R5 T7 u1 L' A! H6 u# Z$ O  [
% @7 l8 @7 i' N1 \( q% E
1. **泰勒级数**:
, G" @; C7 ^3 H  Z  h2 y9 P   - 泰勒级数是表示函数的一种多项式近似,适用于在某一点附近的函数描述。
) y3 S6 B8 l' b5 A- H5 O0 P% n) z$ L) m! c1 v# s$ }8 p
2. **符号计算**:
9 b9 n5 \+ m, ]* o' G& ]   - 使用 MATLAB 的符号工具箱,能够对符号函数进行解析计算并获取多项式形式。$ ]$ G( [) r: V6 U+ X

. n9 }9 y  k& {5 ?7 C3 l; w' b3. **绘图与数据可视化**:; c7 n: @" ]7 G: N2 I8 c7 C0 ?" G& i, i
   - `plot` 和 `line` 函数用于展示函数图像,`hold on` 功能允许在同一图中叠加多个图形。/ q" v4 P! q  |6 R) Z" h

/ Q0 @- B  Z& E* n1 v1 x4 m* P( E! S: r4. **遍历与替换**:6 U: Z5 u4 Q4 d  {- Q2 d
   - 通过循环和 `subs` 函数,可以对多次定义和计算的函数值进行有效处理。
& |: ^* {# s! o, ]
8 b6 P& J! z$ D### 结论
" T# q) y; r% K4 q- B! A( N/ b; d; e& D7 E+ `2 X& P
这段代码展示了如何利用 MATLAB 对正弦函数进行泰勒级数展开,并通过可视化的方式展示其近似效果。可以通过这个示例了解泰勒级数的适用性和效率,同时为函数逼近与数值计算提供了直观的理解。, g4 M( @- C# e5 ?% \

6 S* x( T, v9 U6 n7 q' W; J
$ n7 e7 f; I# D% ]6 t: b1 l7 w5 q9 x8 o
7 _! n$ S0 d. P3 M6 [

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-7-10 00:16 , Processed in 0.325260 second(s), 55 queries .

回顶部