Получение ошибки в строке 5, говорящей «неправильный оператор» в коде Matlab - PullRequest
0 голосов
/ 14 февраля 2019

В строке 5 появляется ошибка, и я не понимаю, как ее исправить.Предполагается использовать интерполяцию Лагранжа для перечисленных значений и функций.

x_plot = linspace(0,1,512);
n = 4;
x = linspace(0,1,n+1) ;
y = sin(2 * pi * x) ;
Ln_1_4 = lag(x_plot,n,y,x);
y1 = sin(2 * pi * x_plot);

n = 8;
x = linspace(0,1,n+1) ;
y = sin(2 * pi * x) ;
Ln_1_8 = lag(x_plot,n,y,x);

n = 16;
x = linspace(0,1,n+1) ;
y = sin(2 * pi * x) ;
Ln_1_16 = lag(x_plot,n,y,x);

n = 4;
x = linspace(0,1,n+1) ;
y = abs(x-.05) ;
Ln_2_4 = lag(x_plot,n,y,x)
y2 = abs(x_plot - .5);
n = 8;
x = linspace(0,1,n+1) ;
y = abs(x-.05) ;
Ln_2_8 = lag(x_plot,n,y,x);

n = 16;
x = linspace(0,1,n+1) ;
y = abs(x-.05) ;
Ln_2_16 = lag(x_plot,n,y,x);

plot(x_plot,y1,x_plot,Ln_1_4,'r--',x_plot,Ln_1_8,'g:');

function Ln = lag(x_plot,n,y,x)
Ln = 0;
for j = 1:n
    Ln_k = 1;
    for i = 1:n
       if i!=j
       Ln_k = (x_plot-x(i))/(x(j)-x(i)).*Ln_k

    end
    Ln = Ln + y(j)*Ln_k
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...