Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用gnuplot绘制傅里叶展开图_Gnuplot_Continuous Fourier - Fatal编程技术网

用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)

计算完函数的傅里叶系数后,我想画出级数的第一项。然而,我不能得到正确的结果

这不是一个错误的系数问题,因为它绘制正确 使用下面的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) ? 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中将
/
看作浮点除法,如果可能的话,也可以将
/
看作整数除法。就这么简单……非常感谢:我根本没有考虑整数除法。