Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4 Лагранж и Ньютон.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
443.9 Кб
Скачать

Интерполяционный многочлен Лагранжа

Пусть функция y=f(x) задана таблицей. Построим интерполяционный многочлен Ln(x), степень которого не больше n и выполняются условия: Ln(x) =уi i = 0, 1, ..., п. Будем искать Ln(x) в виде

Ln(x) = р0(х)у0 + р1(х)у1 + ... + рп(х)уп = рi(х)уi,

где рi(х) — многочлен степени п;

, т. е. рi(х) только в одной точке отличен от нуля при i=j, а в остальных точках он обращается в нуль. Сле­довательно, все эти точки являются для него корнями:

pi(x) = с(х - х0)(х х1)...(ххi-1)(ххi+1)...(х – хn);

При x = xi

pi(xi) = с(xix0)(хix1)...(хiхi-1)(хiхi+1)...(хi – хn);

с = [(xi - х0)(хiхi)...(хi – хi-1)(хiхi+1)...(хi – хn)]-1;

подставим с в формулу pi(x), получим:

отсюда

Это и есть интерполяционный многочлен Лагранжа. По не­полной таблице формула позволяет весьма просто составить внешний вид многочлена.

Пример 1. Построить интерполяционный многочлен Лагранжа для функции, заданной таблично

X

1

2

3

5

Y

1

5

14

81

Решение

Степень Ln(x) не выше третьей, так как функция задается четырьмя значениями:

Пример 2. Для функции у = sin( x) построить интерполяционный полином Лагранжа, выбрав узлы х0 = 0; x1 = ; х2 =

Решение

Вычислим соответствующие значения функции:

у0 = 0;

Применяя формулу, получаем

Пример 3. Построить интерполяционный полином Лагранжа для двух узлов интерполяции:

x

x0

x1

y

y0

y1


x

1

3

y

1

9



Решение

N= 0, 1 (два узла интерполяции).

— уравнение прямой, проходящей через точки (х0, у0), (х1, у1);

Пример 4. Построить интерполяционный полином Лагранжа для трех узлов интерполяции:

x

1

3

4

y

12

4

6


x

x0

x1

x2

y

y0

y1

y2

Решение

N= 0, 1, 2 (три узла интерполяции).

- уравнение параболы, проходящей через точки (x0, y0), (x1, y1), (x2, y2);

Построим график этой функции (рис. 1) и отметим на нем узловые точки Мii, уi).

Рис 1. График полученной функции (к примеру 4)

Пример 5. Найти приближенное значение функции f(arg) при данном значении аргумента arg с помощью интерполяционного многочлена Лагранжа, если функция задана таблицей

x

x0

x1

...

xn

y

y0

y1

yn

arg=…

Программа________________________________________

program Lagrange;

uses Crt;

var X, Y : array[1.. 100] of Real;

Arg, L, F : Real;

I, J, N integer;

begin

Write('Введите количество узлов интерполяции');

Readln(n);

Writeln ('В ведите таблицу значений xi, yi');

for I:=0 to N do begin

Write('X[',I,']='); ReadLn(X[I]);

Write('Y[',I,']^); ReadLn(Y[I]);

end;

Write('Введите аргумент '); Readln(Arg);

L:=0;

For I:—0 to N do begin

F:=l;

for J:=0 to N do

if IOJ then F:=F*(Arg-X[J])/(X[I]-X[J]);

F:=F*Y[I]; L:=L+F;

end;

Writeln('Значение многочлена Лагранжа в точке ',Arg:0:3);

Writeln('Равно ', L:0:3);

Readln;

end.