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

MatLab / Hermite_Interpol

.m
Скачиваний:
8
Добавлен:
10.04.2019
Размер:
1.06 Кб
Скачать
function [matrRR,polinom_hermite]=Hermite_Interpol(xii, f, df)

%xii - массив значений аргумента
%f - массив значений функции
%df - массив первых производных функции

n=size(f,2);
m=size(df,1)+1;

matrRR=zeros(m*n,m*n);
matrxii=zeros(m*n,1);

for nn=1:size(matrRR,2)
matrxii(nn,1)=xii(ceil(nn/m));
end

for nn=1:size(matrRR,2)
matrRR(nn,1)=f(ceil(nn/m));
end

dfn=df;
dfn=repmat(dfn,n*m,1);

for j=2:size(matrRR,2)
for i=j:size(matrRR,1)
if matrRR(i-1,j-1)==matrRR(i,j-1)
matrRR(i,j)=dfn(j-1,ceil(i/m))/factorial(j-1);
else
matrRR(i,j)=(matrRR(i-1,j-1)-matrRR(i,j-1))/(matrxii(i-(j-1),1)-matrxii(i,1));
end
end
end

syms x
polinom_hermite=matrRR(1,1);
qw=1;

for i=2:n*m
qw=qw*(x-xii(ceil((i-1)/m)));
polinom_hermite=polinom_hermite+matrRR(i,i)*qw;
end

xy=linspace(xii(1),xii(size(xii,2)),100);
yy=subs(polinom_hermite,xy);
plot(xy,yy)
% fplot(polinom_hermite,[xii(1) xii(size(xii,2))])
% polinom_hermite=factor(polinom_hermite);
Соседние файлы в папке MatLab