QQ登录

只需要一步,快速开始

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

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

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

1171

主题

4

听众

2781

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-8-27 11:05 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. x0=-2*pi:0.01:2*pi; y0=sin(x0); syms x; y=sin(x);
    ( [+ a4 C2 b7 W# @% a9 I\" `
  2.       plot(x0,y0), axis([-2*pi,2*pi,-1.5,1.5]); hold on  {$ f, e& i+ p5 v* b
  3.       for n=[8:2:16]
    2 ]3 l7 R. K) g  W7 r( c6 d
  4.          p=taylor(y,x,n), y1=subs(p,x,x0); line(x0,y1)
    5 g8 F1 C* d! d+ t0 ]
  5.       end
    9 p4 H4 E' x% S. v6 ?; F) q
  6.       
复制代码
这段 MATLAB 代码通过泰勒级数展开绘制了正弦函数的逼近。下面是代码的逐步解释:3 U/ f0 ~% P" R
0 M8 s& V6 ^- V- o. h3 m- m
### 代码解释
1 h) e. K  x2 C4 ~0 h3 e0 D& L* X  f. P. P" \& j* t
1. **定义 x 范围**:0 }+ T$ M& J% Z
   ```matlab
! C1 N3 X; b8 l& L9 R   x0 = -2*pi:0.01:2*pi;  D3 c) ~! j+ @" N" B5 W6 j4 |6 B
   ```
- V2 P8 U& E6 K4 H   - 这行代码创建了一个从 \(-2\pi\) 到 \(2\pi\) 的向量 `x0`,步长为 0.01。这个向量将用于计算和绘图。9 I( V' n( p5 }7 K) A, a) ]# G
' `1 c5 F2 p0 L1 S2 @
2. **计算 sin(x0)**:
* ~& h) @+ z  ^3 I, _" t* H* B   ```matlab. R+ U% S2 l2 G, `- J) D
   y0 = sin(x0);
# x& B) }4 ?% B6 t4 K: ~( I5 v" h   ```
' j4 p& p$ g! [# d   - 计算 `x0` 中每个值的正弦,并将结果存储在 `y0` 中。`y0` 将是 `sin` 函数的实际值,用于绘图。9 o7 D) v8 [  z  U
6 t! t2 ?* E: P
3. **定义符号变量和函数**:6 Y' Z/ F9 Z+ J, B2 w8 Q
   ```matlab% V( M/ h! Y: q( Y; L
   syms x;
+ I3 L2 _: c  s& `/ `; }/ p! j' n6 _   y = sin(x);
: `) b" s* T- D( d! {0 `   ```, Y; X1 Z% ^7 G. d6 D
   - 使用 `syms` 创建符号变量 `x`,然后定义符号函数 \( y = \sin(x) \)。这个函数用于后续的泰勒级数展开。
; T4 x; s8 y) b7 F2 k
5 N* k6 V! Z" p" v+ ~4. **绘制 sin(x) 图形**:9 i. `. u1 D; d* y% K' E3 o$ r
   ```matlab4 y6 ^6 Z1 D, \& G+ D/ u
   plot(x0, y0), axis([-2*pi, 2*pi, -1.5, 1.5]); hold on2 n% {3 ]0 O0 _- O7 D* c
   ```
; W7 B0 l1 w' X2 G% K   - 使用 `plot` 函数绘制 `y0` 关于 `x0` 的图形,即实际的正弦波。
: @% a0 p7 [' F% O+ }   - `axis` 函数设置坐标轴的范围为 \([-2\pi, 2\pi]\) 和 \([-1.5, 1.5]\)。
/ m: N0 v2 {# M" N, Y   - `hold on` 使得后续绘图不会覆盖当前的图形。) Q7 h$ }% N) e, I4 c8 C" R

( d; X& S, q& V( X. U# ?- q! e. q5. **进行泰勒级数展开和绘图**:
$ B5 r5 s: I) U/ k   ```matlab  s/ G) r. F/ g+ F* R
   for n = [8:2:16]0 D; ?8 L( h7 U7 w8 O
       p = taylor(y, x, n);& n0 a% D* T6 [* F$ _+ J
       y1 = subs(p, x, x0);# y, l. @7 i/ L1 ~4 |# |/ y
       line(x0, y1)
! n+ s+ N8 ]& W0 {. V9 z  N3 k- F   end1 Q5 `6 F" ^4 e8 K$ V7 K' B- y
   ```
3 e" A1 {* ~) M, z  ^   - 使用 `for` 循环遍历 `n` 的值,从 8 到 16,步长为 2(即分别为 8、10、12、14 和 16)。
2 X. ]3 c$ S2 B) ?. D9 q   - 在循环内部:
8 B, r1 o, v1 {, Z7 l     - `p = taylor(y, x, n)` 计算在点 0 附近的 \( n \) 次泰勒级数展开,得到多项式 \( p \)。
# b( ]) V, s" \" |2 t4 D     - `y1 = subs(p, x, x0)` 将泰勒展开多项式 \( p \) 替换中 `x` 的值为 `x0`,以计算对应的 `y1`(即泰勒多项式的值)。1 J% Q& p( d( n0 G9 M& ?
     - `line(x0, y1)` 在当前图中绘制泰勒级数的结果。
1 K3 [) {0 N% Y6 \. S7 W! P) W8 \
* D) r" o- L4 H) C2 X& f### 效果6 Q6 ]; I7 Z7 X( ~$ g

/ O& t% L5 [. ]) `( E1 q- d" R" I- 代码运行后,会得到一幅包含原始正弦函数图像和不同阶次的泰勒多项式的图形。每个泰勒多项式的图形与正弦函数重合得越近,表示这一级数的逼近效果越好。/ g& S* v7 M" i

' V5 B8 u& K: b8 E, c### 知识点总结
! {4 N1 r+ x, X( N( A. Q( e6 R: j
1. **泰勒级数**:# R* j0 T* m' Y" h4 `2 l5 T
   - 泰勒级数是表示函数的一种多项式近似,适用于在某一点附近的函数描述。
* C. I( k. p( C5 I- Y" Z% O4 L, @4 Z- A5 \1 n" a2 g
2. **符号计算**:
- M3 O9 S5 ~3 W* ?   - 使用 MATLAB 的符号工具箱,能够对符号函数进行解析计算并获取多项式形式。
' g% Z' Y+ N' ?, c' }' |7 Y; R" m, a1 u7 T% B; s4 e& _! D" m
3. **绘图与数据可视化**:
; u2 ?# I" |& f; y2 E; a   - `plot` 和 `line` 函数用于展示函数图像,`hold on` 功能允许在同一图中叠加多个图形。6 Y, g6 y6 x2 r" `
- p" u# \( S  \1 t. @6 y0 }
4. **遍历与替换**:
- C6 k; b! Y4 R; e   - 通过循环和 `subs` 函数,可以对多次定义和计算的函数值进行有效处理。
* g( t/ ?9 q: z
9 _4 X; b0 B' g+ v* w. ?### 结论& J+ }! B2 H' s* v  B8 v
9 ^/ M* l9 \" D' U
这段代码展示了如何利用 MATLAB 对正弦函数进行泰勒级数展开,并通过可视化的方式展示其近似效果。可以通过这个示例了解泰勒级数的适用性和效率,同时为函数逼近与数值计算提供了直观的理解。
# x0 Z2 h8 k" l
3 C6 E/ x% b( V" F+ o$ V. e, ^
6 \  ^, E# b7 O6 a) T/ I: l- X6 d  o& y) s; Z: }0 m# O

0 X3 g5 V2 L  W- g6 N) o

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-6-24 21:30 , Processed in 0.338160 second(s), 54 queries .

回顶部