我试图在matlab中制作这样的功能
但是,它必须是l_k
wheres的数组k
from 1 to n
。
在代码中:x
- 一些向量(数组),z
- 标量;in codew
是 frac 的上半部分,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
问题是 - 当涉及到这个循环时,它只是在第一次检查 if 语句后退出!穿什么?
%вычислим 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