数学建模社区-数学中国

标题: matlab傅里叶实验 [打印本页]

作者: 2744557306    时间: 2023-12-23 16:21
标题: matlab傅里叶实验
  1. clear all! Y# _2 Q: q. A' r: g' r  E
  2. syms x;
    5 e% b* C4 G. I9 T, d6 _# X7 o: I
  3. f=(exp(x)-1)*(sin(x)-1);        %直接由已定义的符号变量产生符号表达式
      F% D" G0 o2 p8 P! T: h
  4. xx=-pi:pi/200:pi;
    5 T; N0 [6 W: f  f
  5. yy=subs(f,x,xx);   %将符号表达式中的x符号变量变为xx数值量求值
    0 ?: r% X' X2 v2 H  y5 a; F4 r5 B
  6. n=9;
    # Q/ @% \9 h4 c3 }- \
  7. f1=fseries(f,x,n);
    0 S1 L: c- k: c2 U
  8. y1=subs(f1,x,xx);: N1 v! l; Y! r7 |5 f1 V  a
  9. plot(xx,y1,xx,yy)
复制代码
  1. function F=fseries(f,x,n,a,b)/ y0 T9 D; ~; _# S9 E
  2. if nargin==3                %若输入为三个参数(缺省)表示f(x)在[-pi,pi]上展开0 R' ]0 v/ [( ?- r: B
  3.     a=-pi;9 t) I! L  l8 B1 M) J5 }' o/ d
  4.     b=pi;
    : n" G& P5 Q7 v% N
  5. end
    3 E; }. g/ k$ J$ P- j3 N
  6. L=(b-a)/2;$ r5 v: B9 Z. k
  7. F=int(f,x,-L,L)/2*L;        %int(f,x,-L,L):以符号表达式或符号函数f为被积函数,x为积分变量,-L为下限,L为上限计算定积分- o5 y, H, M# W: v
  8. for i=1:n2 V$ B5 A8 |. E8 ~- \8 u
  9. an=int(f*cos(i*pi*x/L),x,-L,L)/L;0 U! z0 Z6 g0 S( |/ s
  10. bn=int(f*sin(i*pi*x/L),x,-L,L)/L;1 |3 u; g4 X6 O% L8 r# i
  11. F=F+an*cos(i*pi*x/L)+bn*sin(i*pi*x/L);; _7 S3 p7 f% ?8 l% d2 @
  12. end
    8 l: g% r8 F8 C% s  k% b2 m
复制代码
这段 MATLAB 代码使用了符号计算工具箱来进行函数的级数展开和绘图。以下是代码的逐行解释:
! ^, R1 r& H9 A2 a9 Q4 r) k) m& L/ n; d$ {# h2 U/ e# h. R' L3 h
1.clear all: 清除当前工作区的所有变量。
. f8 c7 o, u7 ^2 t0 b3 C3 e2.syms x;: 声明符号变量 x。+ e4 i& v% I9 m, _0 ~+ i
3.f=(exp(x)-1)*(sin(x)-1);: 定义符号表达式 f,该表达式为 ((e^x - 1) \cdot (\sin(x) - 1))。
# t+ ]7 U; g# ~$ y- ~1 L; |+ x4.xx=-pi:pi/200:pi;: 生成一个包含从 (-\pi) 到 (\pi) 的数值的向量 xx。
( J& r# ]  m& f! F5.yy=subs(f,x,xx);: 使用 subs 函数将符号表达式中的符号变量 x 替换为数值向量 xx,得到数值向量 yy。6 D, U/ Z. m- l( \" T1 x
6.n=9;: 设定级数展开的阶数。
; h- o% M9 b1 S; f, M/ {7.f1=fseries(f,x,n);: 使用 fseries 函数对符号表达式 f 进行级数展开,展开阶数为 n,得到符号表达式 f1。
4 L/ V# q. B4 _8 }8.y1=subs(f1,x,xx);: 使用 subs 函数将符号表达式 f1 中的符号变量 x 替换为数值向量 xx,得到数值向量 y1。: l- F$ E5 q! b% X# i9 v* u
9.plot(xx,y1,xx,yy): 绘制级数展开后的函数曲线 y1 和原始函数曲线 yy。
! A( u: p+ G- d1 [. ?
% @0 K$ n% I* v" D5 I这段代码的目的是通过符号计算工具箱,展开给定函数的级数,并绘制级数展开后的函数曲线和原始函数曲线。3 q' X1 B& X& i) Y
QQ截图20231223160601.png ; v$ {" `, R) h. N: n2 r* ~( ?

/ L" i" [9 L9 r+ {: b
$ @5 k' p3 I0 e6 I& s/ u9 E  H2 I, d9 B4 [( @( {7 |7 O; x
+ ~! T. b9 p. \' k9 @

傅里叶级数实验.rar

734 Bytes, 下载次数: 0, 下载积分: 体力 -2 点

售价: 1 点体力  [记录]  [购买]






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5