QQ登录

只需要一步,快速开始

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

[代码资源] matlab傅里叶实验

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

1186

主题

4

听众

2923

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-12-23 16:21 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. clear all
    - e* c6 C( s  e4 U. l6 r/ R
  2. syms x;
    + g( V$ ^( ]9 e/ A/ U# L
  3. f=(exp(x)-1)*(sin(x)-1);        %直接由已定义的符号变量产生符号表达式
    : [- u. F. T' x* V
  4. xx=-pi:pi/200:pi;
    # g4 U6 R4 O( C+ v  `! o! H- T# U2 [
  5. yy=subs(f,x,xx);   %将符号表达式中的x符号变量变为xx数值量求值
    \" ^# Q  D3 ]& M( ]. Q
  6. n=9;
    ) b3 t/ v- j% F7 [) q, E) ^% L2 C9 l
  7. f1=fseries(f,x,n); 5 }) m& R; |6 a\" i% a7 Y
  8. y1=subs(f1,x,xx);! V$ e& Z8 K! K: p8 y4 |
  9. plot(xx,y1,xx,yy)
复制代码
  1. function F=fseries(f,x,n,a,b)5 T- A0 W/ R\" l\" M\" ~
  2. if nargin==3                %若输入为三个参数(缺省)表示f(x)在[-pi,pi]上展开
    ; j* K+ r0 [) p' g$ t8 a
  3.     a=-pi;# R- {! I- v; C( j# j/ I5 K
  4.     b=pi;
    . \( T1 h! K# N
  5. end
    + T! @+ C, U6 k6 K+ \
  6. L=(b-a)/2;
    , F8 \; E; O$ M) c  N; Q+ x  `
  7. F=int(f,x,-L,L)/2*L;        %int(f,x,-L,L):以符号表达式或符号函数f为被积函数,x为积分变量,-L为下限,L为上限计算定积分
    . j7 P2 N  h& r6 G' V
  8. for i=1:n7 O3 C+ |: L' |\" Z\" k7 T
  9. an=int(f*cos(i*pi*x/L),x,-L,L)/L;
    ) V1 K8 w0 r! n( u3 e& @. N
  10. bn=int(f*sin(i*pi*x/L),x,-L,L)/L;
    \" v4 G( s# Q1 c2 x3 S  b6 Y6 a
  11. F=F+an*cos(i*pi*x/L)+bn*sin(i*pi*x/L);
    7 B5 w) p8 W8 E8 N5 k: X6 u4 \
  12. end
    4 t; f5 Z. W1 l, P( p
复制代码
这段 MATLAB 代码使用了符号计算工具箱来进行函数的级数展开和绘图。以下是代码的逐行解释:6 x, a9 t- e. p

, ~. Q4 _; X) K- N9 B' f1.clear all: 清除当前工作区的所有变量。
* o2 Z5 O& f% ]$ v: }0 U2.syms x;: 声明符号变量 x。8 x" t" d% B0 }' j$ D2 d7 I* F" F
3.f=(exp(x)-1)*(sin(x)-1);: 定义符号表达式 f,该表达式为 ((e^x - 1) \cdot (\sin(x) - 1))。: k1 [, a) ^  u& l
4.xx=-pi:pi/200:pi;: 生成一个包含从 (-\pi) 到 (\pi) 的数值的向量 xx。; w  ]8 J. K4 w; [7 ]+ F9 }) a
5.yy=subs(f,x,xx);: 使用 subs 函数将符号表达式中的符号变量 x 替换为数值向量 xx,得到数值向量 yy。; t% g" Y1 P& m% j, i- C4 ~' ]; K* Q
6.n=9;: 设定级数展开的阶数。+ \5 i" ^. P. A5 X. L  s
7.f1=fseries(f,x,n);: 使用 fseries 函数对符号表达式 f 进行级数展开,展开阶数为 n,得到符号表达式 f1。8 X5 G8 E6 v9 Z: ~6 ?* ?% ~
8.y1=subs(f1,x,xx);: 使用 subs 函数将符号表达式 f1 中的符号变量 x 替换为数值向量 xx,得到数值向量 y1。9 i% p  ~& ~1 z% N
9.plot(xx,y1,xx,yy): 绘制级数展开后的函数曲线 y1 和原始函数曲线 yy。
. l1 }& t; m# C. X
3 X- X' R( \1 E这段代码的目的是通过符号计算工具箱,展开给定函数的级数,并绘制级数展开后的函数曲线和原始函数曲线。$ Y0 A9 h9 |& c( P8 b
QQ截图20231223160601.png % e- o" I1 T0 [/ a2 B2 M2 `# {
: Q! v3 Z" j  t* G" F& m1 E5 h
& y" {. ~6 V' g! H
; l% F, c" |! X4 m* x: y

9 D: o' i2 a5 `, B1 Z) e

傅里叶级数实验.rar

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

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

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-4-21 01:34 , Processed in 0.407731 second(s), 55 queries .

回顶部