QQ登录

只需要一步,快速开始

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

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

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

1175

主题

4

听众

2803

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-12-23 16:21 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. clear all
    : q3 d5 m8 m5 e* `7 P
  2. syms x;9 a3 b7 t& i1 ~/ w
  3. f=(exp(x)-1)*(sin(x)-1);        %直接由已定义的符号变量产生符号表达式
    : |! Q3 B$ E& b3 y5 i6 _: v& ?\" w6 n\" ~
  4. xx=-pi:pi/200:pi;0 i/ Q- g% S6 V4 e# h/ m
  5. yy=subs(f,x,xx);   %将符号表达式中的x符号变量变为xx数值量求值' j' ]0 ]+ m9 K
  6. n=9;
    # L0 T# C/ o\" t  u' [5 P
  7. f1=fseries(f,x,n);
    * w4 C4 H( B1 D0 R- j) j0 T\" h
  8. y1=subs(f1,x,xx);( g  m' W3 @1 c! z$ q! M* Y
  9. plot(xx,y1,xx,yy)
复制代码
  1. function F=fseries(f,x,n,a,b)1 j! u0 O+ O5 T\" A4 L# ~, U. b1 y
  2. if nargin==3                %若输入为三个参数(缺省)表示f(x)在[-pi,pi]上展开0 O4 }7 V\" ^8 z( g3 P- p' I
  3.     a=-pi;
    5 _) V1 _/ s' v+ ?7 B, \
  4.     b=pi;
    4 [$ R( d6 L) H% p2 t
  5. end
    ) u' A4 n$ n# c/ }
  6. L=(b-a)/2;
    3 ]* {4 r3 }* p
  7. F=int(f,x,-L,L)/2*L;        %int(f,x,-L,L):以符号表达式或符号函数f为被积函数,x为积分变量,-L为下限,L为上限计算定积分4 l! p; u. W- Y2 B+ ?' S! ~
  8. for i=1:n1 x+ M. q3 N  u6 @+ [- D
  9. an=int(f*cos(i*pi*x/L),x,-L,L)/L;- A9 z# N- N' k\" _* k
  10. bn=int(f*sin(i*pi*x/L),x,-L,L)/L;2 v+ w6 y$ X2 ^' K; w
  11. F=F+an*cos(i*pi*x/L)+bn*sin(i*pi*x/L);
    2 q8 |4 r0 |$ e, K. k+ T2 E
  12. end
    * m$ A) F0 ^0 M  M
复制代码
这段 MATLAB 代码使用了符号计算工具箱来进行函数的级数展开和绘图。以下是代码的逐行解释:
0 p/ K9 ^/ g8 b/ U: u' d
" Y. H1 e( u: w: l! c1.clear all: 清除当前工作区的所有变量。
7 v) E( ~* O* X: Q2.syms x;: 声明符号变量 x。
) S# G. |: h7 x: y0 k8 ?4 P3.f=(exp(x)-1)*(sin(x)-1);: 定义符号表达式 f,该表达式为 ((e^x - 1) \cdot (\sin(x) - 1))。) E; e1 X, z. u; c- R" o% B
4.xx=-pi:pi/200:pi;: 生成一个包含从 (-\pi) 到 (\pi) 的数值的向量 xx。
# }0 s9 F! n3 l# }3 Z5.yy=subs(f,x,xx);: 使用 subs 函数将符号表达式中的符号变量 x 替换为数值向量 xx,得到数值向量 yy。
0 f+ C) W, s. V3 X6.n=9;: 设定级数展开的阶数。
+ N# G7 c+ v' |1 y$ c" z! f7.f1=fseries(f,x,n);: 使用 fseries 函数对符号表达式 f 进行级数展开,展开阶数为 n,得到符号表达式 f1。0 e  m, u) L& h7 @4 Q0 l
8.y1=subs(f1,x,xx);: 使用 subs 函数将符号表达式 f1 中的符号变量 x 替换为数值向量 xx,得到数值向量 y1。4 W$ g! {! @! q" |) G
9.plot(xx,y1,xx,yy): 绘制级数展开后的函数曲线 y1 和原始函数曲线 yy。
: P4 _# D; z# C
4 L9 p2 {; j0 ^这段代码的目的是通过符号计算工具箱,展开给定函数的级数,并绘制级数展开后的函数曲线和原始函数曲线。
; H" _' {6 T5 r& H4 }& N QQ截图20231223160601.png
3 r  Z9 Z! Y: E; w0 T( P& T! M" ~7 Q6 {( \# d. c" z
3 u# X: \% ?5 |' k8 G+ ]) n

  b6 P; V6 w$ Y# p) ]2 b$ O" T
/ M2 E! e$ c; a" H5 v- J- o

傅里叶级数实验.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, 2025-7-8 05:09 , Processed in 0.486258 second(s), 55 queries .

回顶部