gnuplot - 使用 gnuplot 绘制傅立叶展开式

标签 gnuplot continuous-fourier

计算完函数的傅里叶系数后,我想绘制该级数的第一项。但是,我无法得到正确的结果......

这不是系数错误的问题,因为它绘制正确 https://www.desmos.com/calculator/dh84khkc1o 使用下面的 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)

我得到了不连续性,但“cos”部分变成了直线。

enter image description here

最佳答案

因为调用 fourier(k,x) 时的“k”是迭代器的索引变量 [k=1:50],所以它是一个整数。然而,傅里叶函数期望的是实数。通过将绘图命令修改为

来修复您的绘图
 plot ff(repete(x)), 2/pi*sum [k=1:50] fourier(real(k),x)

关于gnuplot - 使用 gnuplot 绘制傅立叶展开式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54629366/

相关文章:

linux - 如何在 shell 命令行(-e 开关)中将 gnuplot 与 awk 一起使用

python - 傅立叶变换 Sympy 中的三角函数返回意外结果

math - numpy离散连续傅里叶变换

c++ - 我想减少在 1 亿个复杂数据上用 C++ 计算 2D FFT 的时间

python - 傅里叶变换与 Numpy FFT

linux - gnuplot - 两个图的交集

graph - 使用 gnuplot 绘制点的标记坐标

linux - 学习qplot(gnuplot)

colors - gnuplot:如何创建彩色网格区域,而不仅仅是彩色网格线?

python - 使用 Python/Sympy 进行连续傅里叶变换(解析解)