Использование ezplot для построения частичных сумм Фурье - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь создать скрипт для построения рядов синусов и косинусов Фурье с учетом ряда терминов и заданной функцией.Код выглядит следующим образом:

syms x k L n
evalin(symengine,'assume(k,Type::Integer)');

f = (cos((k*pi*x)/L))^2;

% Cosine series

a_0 = @(f,x,L) int(f,x,-L,L); % a0
a_n = @(f,x,k,L) int(f*cos(k*pi*x/L)/L,x,-L,L); % an

fs_cosine = @(f,x,n,L) a_0(f,x,L)/(2*L) + ...
    symsum(a_n(f,x,k,L)*cos(k*pi*x/L),k,1,n); % nth partial sum for cosine series

% Sine Series

b = @(f,x,k,L) int(f*sin(k*pi*x/L)/L,x,-L,L); % bn

fs_sine = @(f,x,n,L)symsum(b(f,x,k,L)*sin(k*pi*x/L),k,1,n); % nth partial sum sine series

% Plot partial sums
ezplot(fs_cosine(f,x,3,1),-1, 1) % n = 3
title('Partial sum with n=2')

Я получаю сообщение об ошибке для ezplot:

Число переменных не должно превышать двух при построении уравнения.

После просмотра других постов я в сущности понимаю в чем проблема.Ряд косинусов Фурье для n = 3 имеет L, k и x в уравнении.

fs_cosine_3 = (L*sin((2*pi*k)/L))/(4*k*pi) - (4*L*cos(pi*x)*cos(pi/L)*sin(pi/L))/(- pi*L^2 + 4*pi) + (4*L*cos(2*pi*x)*cos((2*pi)/L)*sin((2*pi)/L))/(- 2*pi*L^2 + 8*pi) - (4*L*cos(3*pi*x)*cos((3*pi)/L)*sin((3*pi)/L))/(- 3*pi*L^2 + 12*pi) + 1/2

Полагаю, я немного запутался;Я думал, что передал значения для k и L, поэтому не уверен, почему они все еще появляются.Будем весьма благодарны за любые советы о том, как это исправить и сделать так, чтобы ezplot не выдавал ошибку.

...