用gnuplot绘制傅里叶展开图
计算完函数的傅里叶系数后,我想画出级数的第一项。然而,我不能得到正确的结果 这不是一个错误的系数问题,因为它绘制正确 使用下面的gnuplot代码用gnuplot绘制傅里叶展开图,gnuplot,continuous-fourier,Gnuplot,Continuous Fourier,计算完函数的傅里叶系数后,我想画出级数的第一项。然而,我不能得到正确的结果 这不是一个错误的系数问题,因为它绘制正确 使用下面的gnuplot代码 set terminal pngcairo set output 'Fourier.png' set samples 2000; aa = -pi/2; bb = pi/2; repete(x) = (x-(bb-aa)*floor((x-aa)/(bb-aa))); ff(x) = (-pi/2<x) && (x<0)
set terminal pngcairo
set output 'Fourier.png'
set samples 2000;
aa = -pi/2;
bb = pi/2;
repete(x) = (x-(bb-aa)*floor((x-aa)/(bb-aa)));
ff(x) = (-pi/2<x) && (x<0) ? x-cos(x)+1 : ((0<=x) && (x<pi/2)) ? x+cos(x)-1: 0;
fourier(k, x) = ((1-pi/2)*((-1)**k)+1/(4*k**2-1)) * sin(2*k*x) / k;
plot ff(repete(x)), 2/pi*sum [k=1:50] fourier(k,x)
设置终端pngcairo
设置输出“Fourier.png”
2000个样本;
aa=-pi/2;
bb=pi/2;
重复(x)=(x-(bb aa)*地板((x-aa)/(bb aa));
ff(x)=(-pi/2因为调用fourier(k,x)时的“k”是迭代器[k=1:50]的索引变量,它是一个整数。但是,fourier函数需要一个实数。通过将plot命令修改为
plot ff(repete(x)), 2/pi*sum [k=1:50] fourier(real(k),x)
在你的帖子中没有问号。那么你的问题是什么?你想避免不连续被直线连接吗?问题是“为什么绿色曲线与粉色曲线不匹配?”这确实是gnuplot最严重的陷阱之一:“意外”整数除法。我知道,有些编程语言也做同样的事情。但是我真的很想在gnuplot中将/
看作浮点除法,如果可能的话,也可以将/
看作整数除法。就这么简单……非常感谢:我根本没有考虑整数除法。