傅里叶级数展开matlab实现

傅里叶级数展开matlab实现


2024年5月17日发(作者:)

傅里叶级数展开matlab 实现 给个例子说明下:将函数 y=x*(x-pi)*(x-2*pi),在

(0,2*pi)的范围内傅里叶级数展 开 syms x fx=x*(x-pi)*(x-2*pi);

[an,bn,f]=fseries(fx,x,12,0,2*pi)%前12 项展开 latex(f)%将f 转换成latex 代码 an =

[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] bn = [ -12, 3/2, -4/9, 3/16, -12/125, 1/18, -12/343,

3/128, -4/ 243, 3/250, -12/1331, 1/144] f =

12*sin(x)+3/2*sin(2*x)+4/9*sin(3*x)+3/16*sin(4*x)+12/125*sin(5*x)+1/18*sin(6

*x)+12/343*sin(7*x)+3/128*sin(8*x)+4/243*sin(9*x)+3/250*sin(10*x)+12/1331*

sin(11*x)+1/144*sin(12*x) ans = 12,sin left( x right) +3/2,sin left( 2,x right)

+4/9,sin left( 3,x right) +3/16,sin left( 4,x right) +{frac {12}{125}},sin

left( 5,x right) +1/18,sin left( 6,x right) +{frac {12}{343}},sin left( 7,x

right) +{frac {3}{128}},sin left( 8,x right) +{frac {4}{243}},sin left( 9,x right)

+{frac {3}{250}},sin left( 10,x right) +{frac {12}{1331}},sin left( 11,x right)

+{frac {1}{144}},sin left( 12,x right) function [an,bn,f]=fseries(fx,x,n,a,b) %傅里

叶级数展开 % %an 为fourier 余弦项系数 %bn 为fourier 正弦项系数 %f 为展开表

达式 %f 为给定函数 %x 为自变量 %n 为展开系数 %a,b 为x 的区间,默认为[-pi,pi] if

nargin==3 a=-pi; b=pi; end l=(b-a)/2; if a+b fx=subs(fx,x,x+l+a); end

an=int(fx,x,-l,l)/l; bn=[]; f=an/2; for ii=1:n ann=int(fx*cos(ii*pi*x/l),x,-l,l)/l;

bnn=int(fx*sin(ii*pi*x/l),x,-l,l)/l;

f=f+ann*cos(ii*pi*x/l)+bnn*sin(ii*pi*x/l);

an=[an,ann];

end if a+b

bn=[bn,bnn];

f=subs(f,x,x-l-a);

end %%%%%%%%%%%%%%%%%%%% 【原创】MATLAB 求解符号表达式数值的

方法:subs 函数 首先说明一下,使用的函数是subs,如果你已经知道了,就没必要继续

往下看 了,浪费时间,O(

∩_∩)O 首先是调用格式: R = subs(S) R = subs(S, new) R = subs(S, old, new) 其

中S 为符号表达式,默认的是变量x! 下面看几个例子,相信大家就是使用了! 例1: >>

syms x; >> f=x^2; >> subs(f,2) ans = 4 例2:将表达式x^2+y^2 中x 取值为2 >>

syms x y; >> f=x^2+y^2; >> subs(f,x,2) ans = y^2 + 4 例3: >> syms x y; >>

f=x^2+y^2; >> subs(f,findsym(f),2) ans = y^2 + 4 其中findsym(f)为查找f 中所有

的符号变量 例4:同时对两个或多个变量取值求解 >> syms a b; subs(cos(a) + sin(b), {a,

b}, {sym('alpha'), 2}) ans = sin(2) + cos(alpha) 例5:带入数据的值也可以是数组形

式 >> syms t a; >> subs(exp(a*t), 'a', -magic(2)) ans = [ 1/exp(t), 1/exp(3*t)]

[ 1/exp(4*t), 1/exp(2*t)]

(注:文档可能无法思考全面,请浏览后下载,供参考。可复制、编制,期待你的好

评与关注)


发布者:admin,转转请注明出处:http://www.yc00.com/news/1715936433a2694607.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信