matlab 怎么进行傅里叶级数展开?
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/21 14:03:08
matlab 怎么进行傅里叶级数展开?
请问这个函数是怎么进行傅里叶级数展开的?
syms x;
f=(x-abs(x))/2;
xx=-pi:.01:pi;
yy=subs(f,x,xx);
plot(xx,yy,'-'),hold on
for n=4:4:20
[a,b,f1]=f_series(f,x,n);
y1=subs(f1,x,xx);
plot(xx,y1,'-.');
if n= =8
f1
end
end
这个程序又为什么运行不出来?
请问这个函数是怎么进行傅里叶级数展开的?
syms x;
f=(x-abs(x))/2;
xx=-pi:.01:pi;
yy=subs(f,x,xx);
plot(xx,yy,'-'),hold on
for n=4:4:20
[a,b,f1]=f_series(f,x,n);
y1=subs(f1,x,xx);
plot(xx,y1,'-.');
if n= =8
f1
end
end
这个程序又为什么运行不出来?
你上面的程序,f_series函数是否有定义?若无定义,或定义不准确都有可能出错 将傅里叶系数的计算(输出a0,an,bn)以及函数图像的绘制编到m文件中 function [a0,an,bn]=fly(f,l,k)
%f为一个周期内的分段函数(分两段,对分两段以上的函数可类似处理)
%2l为周期
%k为近似展开项数,k≥1 %计算傅里叶系数
syms x n L
a0=1/L*int(f(1),-L,0)+1/L*int(f(2),0,L);
an=1/L*int(f(1)*cos(n*pi*x/L),-L,0)+1/L*int(f(2)*cos(n*pi*x/L),0,L);
bn=1/L*int(f(1)*sin(n*pi*x/L),-L,0)+1/L*int(f(2)*sin(n*pi*x/L),0,L); %选择作图步长p
if k>=4
p=fix(k/4);
else
p=1;
end %绘制4个近似子图
for i=1:4
f=a0/2+symsum(an*cos(n*pi*x/L)+bn*sin(n*pi*x/L),n,1,i*p);
f=subs(f,L,l);
subplot(2,2,i),ezplot(f,[-3*l,3*l]),title(['n=',int2str(i*p)])
end
输入:
f=sym('[x,0]');
[a0,an,bn]=fly(f,pi,32)
输出:a0 =
-1/2*L
an =
-L*(cos(n*pi)+sin(n*pi)*n*pi-1)/n^2/pi^2
bn =
-L*(-sin(n*pi)+cos(n*pi)*n*pi)/n^2/pi^2 显然以上结果并未化简(例如,sin(n*pi)=0)有了傅里叶系数,利用公式f(x)=a0/2+∑{1,∞}[an*cos(n*pi*x/L)+bn*sin(n*pi*x/L)],即得到展开式 输出图像:
%f为一个周期内的分段函数(分两段,对分两段以上的函数可类似处理)
%2l为周期
%k为近似展开项数,k≥1 %计算傅里叶系数
syms x n L
a0=1/L*int(f(1),-L,0)+1/L*int(f(2),0,L);
an=1/L*int(f(1)*cos(n*pi*x/L),-L,0)+1/L*int(f(2)*cos(n*pi*x/L),0,L);
bn=1/L*int(f(1)*sin(n*pi*x/L),-L,0)+1/L*int(f(2)*sin(n*pi*x/L),0,L); %选择作图步长p
if k>=4
p=fix(k/4);
else
p=1;
end %绘制4个近似子图
for i=1:4
f=a0/2+symsum(an*cos(n*pi*x/L)+bn*sin(n*pi*x/L),n,1,i*p);
f=subs(f,L,l);
subplot(2,2,i),ezplot(f,[-3*l,3*l]),title(['n=',int2str(i*p)])
end
输入:
f=sym('[x,0]');
[a0,an,bn]=fly(f,pi,32)
输出:a0 =
-1/2*L
an =
-L*(cos(n*pi)+sin(n*pi)*n*pi-1)/n^2/pi^2
bn =
-L*(-sin(n*pi)+cos(n*pi)*n*pi)/n^2/pi^2 显然以上结果并未化简(例如,sin(n*pi)=0)有了傅里叶系数,利用公式f(x)=a0/2+∑{1,∞}[an*cos(n*pi*x/L)+bn*sin(n*pi*x/L)],即得到展开式 输出图像:
如何用matlab实现离散傅里叶级数展开?是级数展开,不是仅仅求出最大频率.
MATLAB中如何进行级数求和
周期信号展开,傅里叶级数
傅里叶级数展开是什么东东
matlab 计算多项式的泰勒级数展开的各项系数
怎么展开成麦克劳林级数?
怎么将函数展开成傅里叶级数
以勒让德多项式为基本函数,在区间[-1,1]上把f(x)=x^4+2x^3展开为广义傅里叶级数,求MATLAB程序
将周期信号展开成傅里叶级数和进行傅里叶变换有什么区别,他们求出的式子用图像表示怎么好像是一样的?
在matlab中如何将任意函数展开成麦克劳林级数
在matlab中写个用泰勒级数展开log2(x)的方程
函数的泰勒级数在收敛域之外怎么展开?