Добавил:
Кафедра ВТ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

get_poly_newton

.m
Скачиваний:
8
Добавлен:
08.02.2022
Размер:
910 б
Скачать
function poly_newton = get_poly_newton(nodes,f_labels,x)
table = get_table(nodes,f_labels);

for i = 1:length(nodes)
a(i) = table(i,i);
end

%P_n(x) = f_0 + f(x_0;x_1)(x-x_0) + f2(x_0;x_1;x_2)(x-x_0)(x-x_1) + ... + f(x_0;...;x_n)(x-x_0)(x-x_1)...(x-x_(n-1))
for k = 1:length(x)
res = 0;
for i = 1:length(nodes)
tmp = 1;
for j = 1:i-1
tmp = tmp*(x(k)-nodes(j));
end
res = res + tmp*a(i);
end
poly_newton(k) = res;
end
end

function table_div_diff = get_table(nodes,f_labels)
table_div_diff = zeros(length(nodes));

for i = 1:length(nodes)
table_div_diff(i,1) = f_labels(i);
end

for i = 2:length(nodes)
for j = 2:length(nodes)
if(i >=j)
table_div_diff(i,j) = (table_div_diff(i,j-1) - table_div_diff(j-1,j-1))/(nodes(i) - nodes(j-1));
end
end
end
end
Соседние файлы в предмете Компьютерная математика