график разложения Фурье с помощью gnuplot - PullRequest
0 голосов
/ 11 февраля 2019

После вычисления коэффициентов Фурье моей функции я хотел бы построить первые члены серии.Тем не менее, я не могу получить правильный результат ...

Это не вопрос неправильных коэффициентов, поскольку он отображает правильно 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)

I 'у нас есть разрывы, но часть «cos» становится прямой.

enter image description here

1 Ответ

0 голосов
/ 11 февраля 2019

Поскольку "k" в вашем вызове Фурье (k, x) является индексной переменной итератора [k = 1: 50], это целое число.Функция Фурье, однако, ожидает реального.Ваш сюжет фиксируется путем изменения команды plot на

 plot ff(repete(x)), 2/pi*sum [k=1:50] fourier(real(k),x)
...