Я пытаюсь закодировать функцию, вычисляющую разностные отношения. Мне нужно это для полиномиальной интерполяции. Данные узлы x = linspace(a,b,n+1)
, значения функций в узлах y = func(x)
Я хочу найти значения разностных коэффициентов f[x0], f[x_0,x_1], ..., f[x_0,x_1,...,x_n]
. Для расчета f[x_0,x_1,...,x_n]
мне понадобится f[x_0,x_1,...,x_(n-1)]
и т. Д., Поэтому было бы неплохо сохранить промежуточные шаги на моем пути до f[x_0,x_1,...,x_n]
, так что на моем пути к f[x_0,x_1,...,x_n]
я сохраню предыдущие разностные факторы как элементы вектора.Сохранение промежуточных значений переменных рекурсивной функции
Может ли кто-нибудь сказать мне, как исправить мой код, чтобы сохранить соответствующие значения коэффициентов разности? Вот код:
function [fx, all_fx] = ilo2(a,b,x,y,fx,all_fx)
if a == b
fx(end+1) = y(a);
if a == 1
all_fx(end+1) = fx(end);
end
return
end
a;
b;
[c, all_fx] = ilo2(a+1,b,x,y,fx,all_fx);
[d, all_fx] = ilo2(a,b-1,x,y,fx,all_fx);
fx(end+1) = (c-d)/(b-a);
if a == 1
all_fx(end+1) = fx(end);
end
end
В разностных отношениях мне нужно находятся под «if a == 1
» состоянием.