я пытаюсь сделать такую функцию в MATLAB функции MATLAB работает неправильно
Он должен быть массив l_k
Wheres k
from 1 to n
но однако.
Код: x
- некоторый вектор (массив), z
- scalar; в коде w
- верхняя часть ГРП, а g
- ниже.
function out_l = l_k(z, x)
%вычисления массива l_k для числа z
%x - узлы интерполяции
%z - значение для которог овычисляем значение полинома
n = size(x);
w = 1;
g = 1;
out_l = zeros(n);
for k = 1:n
for j = 1:n
%вычислим w
for i=1:n
if((i ~= k) && (i ~= j))
w = w * (z - x(i));
end
end
%вычислим g
for i=1:n
if(i ~= k)
g = g * (x(k) - x(i));
end
end
end
out_l(k) = (w/g);
end
end
Проблема - когда дело доходит до этого для циклов, это просто выходит после первого запуска проверки! Что случилось?
%вычислим w
for i=1:n
if((i ~= k) && (i ~= j))
w = w * (z - x(i));
end
end
%вычислим g
for i=1:n
if(i ~= k)
g = g * (x(k) - x(i));
end
end
О, это выглядит сложным -_- – DanilGholtsman
Я никогда не использовал matlab до на прошлой неделе – DanilGholtsman