2. Жозеф Луи Лагранж
(Joseph Louis Lagrange)
Французский математик, астроном и
механик итальянского происхождения.
Внес грандиозный вклад в развитие
анализа, теории чисел, теорию
вероятностей и численные методы, создал
вариационное исчисление.
В 1797 году Ж.Л. Лагранж публикует
свою знаменитую интерполяционную
формулу для приближения функции
многочлена.
Joseph Louis Lagrange
25 января 1736 -10 апреля1813
3. Интерполяционный многочлен Лагранжа –многочлен
минимальной степени, принимающий данные значения в
данном наборе точек.
Для n+1 пар чисел , где все
различны, существует единственный многочлен
степени не более n, для которого .
В простейшем случае (n=1) – это линейный
многочлен, график которого –прямая, проходящая через две
заданные точки.
)()...,(),( ,1,10,0 nn yxyxyx jx
jj yxL )(
)(xL
4. Ж.Л.Лагранж предложил способ вычисления таких
многочленов:
где базисные полиномы определяются по формуле:
обладают следующими свойствами:
1. являются многочленами степени n
2.
3. при
)()(
0
xlyxL i
n
i
i
xx
xx
xx
xx
xx
xx
xx
xx
xx
xxxl
ni
n
ii
i
ii
i
i
n
ijj ji
j
i
......)(
1
1
1
1
0
0
,0
)(xli
1)( ii xl
0)( ii xl ij
5. Отсюда следует, что L(x), как линейная
комбинация может иметь степень
не больше n, и .
)(xli
ii yxL )(
6. Пример интерполяционного
многочлена Лагранжа
Этот пример показывает
интерполяционный многочлен
Лагранжа для четырёх точек
(-9,5), (-4,2), (-1,-2) и (7,9), а также
полиномы , каждый из
которых проходит через одну из
выделенных точек, и принимает
нулевое значение в остальных .
)(xly ii
x j
7. Пусть для функции известны значения
в некоторых точках. Тогда мы можем интерполировать эту
функцию как .
В частности, .
Значения интегралов от не зависят от , и их можно
вычислить заранее, зная последовательность .
)(xf )( ii xfy
)()()(
0
xlxfxf i
n
i
i
dxxlxfdxxf
b
a
i
b
a
n
j
i )()()(
0
il )(xf
jx
8. Реализация интерполяционного
многочлена Лагранжа в Pascal
var F, l: real;
i,j,n: integer;
x: array[1..10] of real;
y: array[1..10] of real;
begin
write('n=');
readln(n);
for i:=1 to n do begin
write('x[',i,']=');
readln(x[i]);
write('y[',i,']=');
readln(y[i]);
end;
y[n+1]:=0;
F:=0;
for j:=1 to n do begin
L:=1;
for i:=1 to n do begin
if i<>j then
if i<>j then
begin
L:=L*(x[n+1]-x[i])/(x[j]-x[i]);
end;
9. Реализация интерполяционного
многочлена Лагранжа в Pascal
end;
y[n+1]:=y[n+1]+Y[J]*L;
end;
writeln ('y[',n+1,']=',y[n+1]:1:0);
for i:=1 to n do begin
writeln('x[',i,']=',x[i]:10:10,'y[',i,']=',y[i]:10:10);
end;
begin
writeln('x[',n+1,']=',x[n+1]:10:10,'y[',n+1,']=',y[n+1]:10:10);
end;
readln;
end.