whos FS1
Name Size Bytes Class Attributes
FS1 1x4 8 sym
Это говорит о том, что FS1
является символической функцией , которую необходимо оценить, прежде чем вы сможете построить ее:
FS1 = FourierSeries(func1, 4);
xIDX = -10:0.1:10;
array = zeros(size(xIDX));
for ii = 1:numel(xIDX)
x = xIDX(ii);
array(ii) = sum(double(subs(FS1)));
end
figure
plot(array)
subs
преобразует ваше символическое выражение в строку при условии, что символическая переменная, в данном случае x
, присутствует в рабочей области. double
затем преобразует строку в фактическое число, и, поскольку в FS
есть 4 слагаемых, нам нужно их суммировать, в конце концов, это ряд Фурье.
Еще короче, не оценивайте его численно, а используйте встроенную в MATLAB функцию символьного графика fplot
figure
hold on
fplot(func1,'b')
fplot(sum(FS1),'r') % sum over the Fourier components
legend ('func1', 'FS1')