Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_1.pdf
Скачиваний:
7
Добавлен:
03.03.2016
Размер:
852.27 Кб
Скачать

87

 

y - y0

=

x - x0

Þ y = y

0

+

 

x - x0

( y

- y

0

) Þ

y = y

0

- y

0

x - x0

+

x - x0

y

 

 

 

 

 

 

 

 

 

y

- y

0

 

 

 

x

- x

0

 

 

 

 

 

 

 

x - x

0

 

1

 

 

 

 

 

x

- x

0

 

x - x

1

 

1

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

0

 

y =

x - x1

 

y

0

+

 

x - x0

 

y

- поліном Лагранжа 1-ого ступеня.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x0 - x1

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1 - x0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

l

 

(x) =

x - x1

,

 

l

(x) =

x - x0

 

, l

(x) ,

i =

 

- коефіцієнти Лагранжа.

 

 

 

 

0

 

 

0,1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x0

- x1

 

1

 

 

x1

- x0

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y = l0 (x) y0 + l1(x) y1 l0 (x0 ) = 1 , l0 (x1) = 0 , l1(x0 ) = 0 , l1(x1) = 1

 

 

 

 

 

y* = l0 (x*) y0 + l1(x*) y1

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

 

 

 

 

 

 

 

 

 

 

Краще інтерполяція:

1.Зменшити xi-xi-1

2.Підвищити ступінь полінома Лагранжа.

 

 

 

 

 

 

 

 

x0

x1

x2

xn

x

 

 

 

 

 

 

 

 

Багаточлен другого ступеня.

 

 

 

 

x

 

x0

 

x1

 

x2

y = l0 (x) y0 + l1(x) y1 + l2 (x) y2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

y0

 

y1

 

y2

 

 

 

 

 

 

 

При n=2 отримуємо багаточлен 2-го ступеня. При цьому треба задати три

точки (тому що три точки не лежачі на одній прямій обумовлюють параболу єдиним образом).

li (x), i = 0,2 - коефіцієнти Лагранжа.

 

l0

(x) =

(x - x1)(x

- x2 )

,

l1(x) =

(x - x0 )(x - x2 )

,

(x0 - x1)(x0 - x2 )

(x1 - x0 )(x1 - x2 )

 

 

 

 

 

 

l2

(x) =

(x - x0 )(x - x1)

 

 

 

 

 

(x2 - x0 )(x2 - x1)

 

 

 

 

 

 

 

 

 

 

 

 

l0 (x0 ) = l1(x1) = l2 (x2 ) = 1,

l0 (x1) = l0 (x2 ) = 0 ,

 

l1(x0 ) = l1(x2 ) = l2 (x0 ) = l2 (x1) = 0

 

 

 

 

 

Багаточлен n-го ступеня.

 

 

 

 

 

 

 

 

n

 

y = Pn (x) = l0 (x) y0 + l1(x) y1 +L+ ln (x) yn = ål j (x) y j j =0

88

 

(x - x0 )(x - x1)L(x - x j -1)(x - x j +1)L(x - xn )

Õ(x - xi )

i ¹ j

lj (x) = (x j - x0 )(x j - x1)L(x j - x j -1)(x j - x j +1)L(x j - xn ) = Õ(x j - xi )

i¹ j

Õ(x - xi )

i¹ j

lj (x) = Õ(x j - xi ) i ¹ j

1.l j (x) - багаточлен n-го ступеня.

2.l j (x j ) = 1, l j (xi ) = 0, если i ¹ j

При n=5

l2 (x) =

 

(x - x0 )(x - x1)(x - x3 )(x - x4 )(x - x5 )

 

(x2 - x0 )(x2 - x1)(x2 - x3 )(x2 - x4 )(x2 - x5 )

 

 

 

 

l0

(x) =

 

(x - x1)(x - x2 )(x - x3 )(x - x4 )(x - x5 )

 

 

(x0 - x1)(x0 - x2 )(x0 - x3 )(x0 - x4 )(x0 - x5 )

 

 

 

 

Обчислення значень полінома Лагранжа.

Чисельник і знаменник

l j (x) помножимо на x - x j

 

 

 

 

l j

(x) =

(x - x0 )(x - x1 )(x - x2 )L(x - x j -1 )(x - x j )(x - x j +1 )L(x - xn )

Õ n+1 (x)

 

 

 

 

 

 

 

=

 

 

(x j - x0 )(x j - x1 )(x j

 

 

 

 

 

 

 

D j

 

 

 

- x2 )L(x j - x j -1 )(x - x j )(x j - x j +1 )L(x j - xn )

 

 

 

 

n

n

Õ n+1 (x)

 

 

n

 

 

 

 

Þ y = Pn (x) = ål j (x) y j = å

y j

= Õ n+1 (x)å y j D j

 

 

 

 

 

 

 

j =0

j =0

D j

 

 

j =0

 

 

 

 

 

 

 

Таблиця обчислень значень полінома Лагранжа.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xi-xj

 

 

 

Di

yi

yi/Di

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x-x0 x0-x1 x0-x2 … x0-xn

 

D0

Y0

Y0/D0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1-x0 x-x1 x1-x2 … x1-xn

 

D1

Y1

Y1/D1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2-x0 x2-x1 x-x2 … x2-xn

 

D2

Y2

Y2/D2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x3-x0 x3-x1 x3-x2

x-x3… x3-xn

 

D3

Y3

Y3/D3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

---------------------------------------

 

:

:

:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xn-x0 xn-x1 xn-x2 xn-x3 … x-xn

 

Dn

Yn

Yn/Dn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

89

Pn+1(x) дорівнює добутку різниці на головній діагоналі:

Pn+1(x)=(x-x0)(x-x1)(x-x2)…(x-xn),

Di рівно добутку різниці в кожному рядку.

 

n

 

 

 

 

 

∑= å yi

D

,

 

Pn(x)= Pn+1(x)∑.

 

i =0

 

i

 

 

 

 

 

 

 

 

 

Матриця різностей є антисиметричною(числа симетричні щодо головної

діагоналі рівні по модулі й протилежні за знаком).

Приклад.

 

 

Дано три значення аргументух і відповідніним

 

 

 

 

 

 

 

 

 

i

 

0

1

 

2

значення y. Побудувати поліном Лагранжа й знай-

 

x

 

2

3

 

5

ти його значення в проміжній точці x*=4.

 

y

-2

-3

1

 

 

 

Ступінь

 

полінома

Лагранжа не одиницю менше числа точок, що тому інтерполює функція, яка ін-

терполює – квадратний тричлен (n=2).

P2 (x) = l0 (x) y0 + l1(x) y1 + l2 (x) y2

Складемо відповідної різниці:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xi-xj

 

Di

 

yi

 

Yi/Di

 

 

 

2

-1

-3

6

 

-2

 

-1/3

 

 

 

 

1

1

-2

-2

 

-3

 

3/2

 

 

 

 

3

2

-1

-6

 

1

 

-1/6

 

 

 

 

 

x*-x0

x0-x1

x0-x2

 

 

 

 

x1-x0

x*-x1 x1-x2

 

 

 

 

x2-x0

x2-x1

 

x*-x2

2

 

 

 

 

 

 

 

 

 

 

 

∑= å yi

Di

= -13 + 3 2 - 16 = 1, Õ3 (x* ) = -2, y* = P2 (x*) = Õ3 (x*) × ∑=-2

0

 

 

 

 

 

 

 

 

 

 

 

Якщо в останню формулу замість *хпідставити поточне значення ,хто отримаємо аналітичний вид функції, що інтерполює:

y=x2-6x+6

Для автоматизації методу інтерполяції приводиться блок-схема алгоритму.

90

Початок

Ввід

N, x*

i = 0, N

Ввід

x(i), y(i)

S=0, P=1

i = 0, N

 

y*=P·S

 

D=1

 

 

 

 

 

 

 

 

 

 

 

 

 

j = 0, N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S=S+y(i)/D

_

 

 

 

 

 

 

i=j

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P=P·(x*-x(i))

 

D=D·(x(i)-x(j))

 

 

 

D=D·(x*-x(i))

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вивод

y*

Кінець

91

Список літератури

1. Информатика. Базовый курс. 2-е издание / Под ред. С.В. Симоновича.

СПБ.: Питер, 2004. – 640 с.

2. Методическое пособие. «Основы алгоритмизации»/ К.Н. Ефименко, Ю.Н.

Добровольский, В.С. Ильяшенко – Донецк: ДонНТУ, 2005. – 75 с.

3. Методическое пособие. Программирование в среде Visual Basic for Application. Части 1 и 2./ В.В. Шамаев, К.Н. Ефименко и др.- Донецк: ДонНТУ, 2005. – 100 с.

4. Методичні вказівки і завдання до лабораторних робіт за курсо

«Інформатика і основи програмування»/ К.М. Єфіменко, Ю.М. Добровольський.

Донецьк: ДВНЗ «ДонНТУ». – 2009. – 60 с.

5.Д. Холи, Р. Холи. Excel 2007. Трюки. – СПб.: Питер, 2008. – 368 с.

6.Б. Джелен, Т. Сирстад. Применение VBA и макросов в Microsoft Office Excel. – М.:Вильмс, 2005. – 624 с.

7.Методическое пособие. Задачи математики с элементами функциональ-

ного анализа в MS Excel/ Ю.Н. Добровольский, К.Н. Ефименко, - Донецк: Дон-

НТУ, 2003. – 67 с.