0

这是我的代码:

clearvars;
clc; 
close all;

%Define the domain: 
l=1;
%and consider, say, 4 periods
x=linspace(-4,4);
%Define the number of terms to consider
n_tot=50;
%Initialize the vectors containing each term of the series
FSS_term_x=zeros(n_tot,length(x));
%Loop to compute each term of the series up to n_tot
for n=1:n_tot
    %n-th term of the series for f(x)=x
    FSS_term_x(n,:)=((-2.*l.^2./n.pi).*cos(n.*pi)+2.*(l.^2)./(n.*pi).^2.*(cos(n.*pi)-1)).*sin(n.*pi.*x./l);
    %-2.*l./(n.*pi).*cos(n.*pi).*sin(n.*x.*pi/l);
end
%Add up all the terms of the series
FS_y=sum(FSS_term_x,1);
%Plot the series
figure
plot(x,FS_y)

这是错误消息:

Dot indexing is not supported for variables of this type.

Error in untitled3 (line 16)
    FSS_term_x(n,:)=((-2.*l.^2./n.pi).*cos(n.*pi)+2.*(l.^2)./(n.*pi).^2.*(cos(n.*pi)-1)).*sin(n.*pi.*x./l);

是否因为我试图绘制的傅立叶正弦级数是分段平滑而发生此错误?

任何反馈表示赞赏!

最好的,

RK

4

1 回答 1

1

您在for循环中的表达式中遗漏了一个乘法 (*) 符号。它涉及 rhs 上的第一个括号中的术语:在您的代码中它说(-2.*l.^2./n.pi)注意n.pi最后的!),而它应该是(-2.*l.^2./n.*pi).

所以,for循环中的表达式应该是:

FSS_term_x(n,:)=((-2.*l.^2./n.*pi).*cos(n.*pi)+2.*(l.^2)./(n.*pi).^2.*(cos(n.*pi)-1)).*sin(n.*pi.*x./l);
    %-2.*l./(n.*pi).*cos(n.*pi).*sin(n.*x.*pi/l);
于 2021-02-02T15:44:49.967 回答