МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ СХІДНОУКРАЇНСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ імені ВОЛОДИМИРА ДАЛЯ Й УН
Л У ГА Н С Ь К
Во лод
ім е н і
ал имира Д
ІВ Е Р С И Т Е Т
ІД Н О У К Р А ЇН СХ СЬ
А Ц ІО Н А Л ЬН Й Н И
КИ
я
МЕТОДИЧНІ ВКАЗІВКИ до виконання індивідуальних завдань по дисципліні «ЧИСЕЛЬНI МЕТОДИ» (електронне видання)
Луганск 2007 МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ СХІДНОУКРАЇНСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ імені ВОЛОДИМИРА ДАЛЯ
МЕТОДИЧНІ ВКАЗІВКИ до виконання індивідуальних завдань по дисципліні «ЧИСЕЛЬНI МЕТОДИ» (для студентів усіх спеціальностей напрямку „Економічна кібернетика”) електронне видання
Затверджено на засіданні кафедри економічної кібернетики. Протокол №2 от05.09.07
2
Луганск 2007 УДК 519.2.261.02 (07) Методичні вказівки до виконання індивідуальних завдань по дисципліні "Чисельні методи" (для студентів усіх спеціальностей напрямку «Економічна кібернетика» ) / Уклад.: Н.А. Калиненко, С.М. Танченко.– Луганськ: Вид-во СНУ ім. В. Даля, 2007. – 59 с.
Приведені основні поняття, алгоритми, рекомендації, та докладні демонстрацiйнi приклади, які надають можливість самостійного виконання завдань. Усі теми мають набір варіантів завдань для самостійного рішення.
Укладачі:
Каліненко H.А., доц. Танченко С.М., асист.
Відп.за випуск
Рамазанов С.К., проф., зав. каф. eконом. кіберн.
Рецензент
Ульшин В. А., проф.
3
При розробці алгоритмів рішення конкретних інженерних задач часто доводиться вдаватися до методів чисельного аналізу. Мета даних методичних вказівок – закріплення теоретичного матеріалу і придбання практичних навиків алгоритмізації і програмування з використанням обчислювальних методів. Дані методичні вказівки містять основні поняття і рекомендації, необхідні при виконанні конкретних індивідуальних завдань. При підготовці до виконання індивідуального завдання слід уважно прочитати відповідні методичні вказівки, вивчити необхідний теоретичний матеріал, розібрати приклади рішення задач, які наведені. В результаті підготовки студент повинен : − знати мету, основні теоретичні положення і зміст iндивiдуальної роботи; − вміти складати алгоритми і програми рішення на ЕОМ типових задач згідно темі завдання. Звіт про виконання індивідуального завдання оформляється студентом на аркушах формату А4. На титульному листі вказується : назва університету та кафедри, найменування дисципліни, номер групи, прізвище і ініціали студента. Зміст звіту : − назва і мета роботи − умови завдання − схема алгоритму рішення − програма на алгоритмічній мові або за допомогою комп’ютерного пакету MathCAD − результати рішення задачі − висновки. Оформлений звіт надається студентом до захисту.
4
ІНДИВІДУАЛЬНЕ ЗАВДАННЯ 1 ОБЧИСЛЕННЯ КІНЦЕВИХ СУМ ФУНКЦІОНАЛЬНОГО ТА ЧИСЛОВОГО РЯДУ Мета завдання – закріплення теоретичного матеріалу, отримання практичних навиків програмування циклічних процесів за допомогою методу ітерацій ( методу послідовних наближень ). Порядок виконання завдання 1. Уважно прочитати відповідні відомості з теорії. 2. Згідно умови варіанта індивідуального завдання (табл..1.1.) одержати рекурентне співвідношення для обчислення членів функціонального (числового ) ряду. 3. Скласти схему алгоритму обчислення кінцевої суми функціонального (числового) ряду. 4. Скласти програму рішення задачі на алгоритмічній мови або в пакеті MathCAD, одержати результат. 5. Обчислити точне значення функції Y. Порівняти результати. 6. Оформити звіт і надати його до захисту. Таблиця 1.1. Варіанти індивідуальних завдань № п/п 1
Умова закінчення 3
Сума S 2
1
1 1 1 1 1 −4 + 3 + 5 + 7 + ... + x 3x 5x 7x (2n + 1) x 2 nε+1= 10
2
x+
x3 x5 x7 1 + + + ... + x 2 n +1 3 5 7 2n + 1
5
N=10
Точне значення функції Y 4 arth ( x )( x >1)
arth( x )( x <1)
Продовження табл.1.1 1 3
4
5 6 7
8 9
10
11
2
3
4
1 3 1⋅ 3 5 1⋅ 3 ⋅ 5 7 x− x + x − x + ... ε = 10−4 2 ⋅3 2 ⋅ 4 ⋅5 2⋅4⋅6⋅7 1 ⋅ 3 ⋅ 5(2n − 1) + ( −1) n 2 ⋅ 4 ⋅ 6 ⋅ 2n(2n + 1) 1+
x2 x4 x6 x 2n + + + ... + 2! 4! 6! ( 2n)!
x3 x5 x7 x 2 n −1 + + + ... + 3 5 7 2n − 1 3 5 7 π x x x − (x + + + + ... + (−1) n +1 2 3 5 7 π 1 1 1 1 ± − + 3 + 5 + 7 − 2 x 3x 5x 7x 1 ... + (−1) ) (2n + 1) x 2 n +1 x+
N=20
ch( x )( x <∞ )
ε = 10−4
sh ( x )( x <∞ )
x 2 n +1 N=30 ) 2n + 1
arcctg ( x )( x ≤1)
ε = 10
−4
1⋅ x3 1⋅ 3 + + ε = 10−4 2 2 ⋅3 2 ⋅ 4 ⋅5 1⋅ 3 ⋅ 5 1 ⋅ 3 ⋅ 5...( 2n −1) 2 n +1 + ... + 2⋅4⋅6⋅7 2 ⋅ 4 ⋅ 6(2n)(2n + 1)
x2 x3 x4 xn + + + ... + ) 2 3 4 n
“+” при x > 1, “-” при x < -1
arcsin( x )( x ≤1)
− (x +
− (x +
arcctg ( x )( x ≥1)
arcctg ( x )( x ≤1)
x3 x5 x7 x 2 n +1 N=20 + − + ... + (−1) 3 5 7 2n + 1 1 3 1⋅ 3 x+ x + x5 + N=30 2 ⋅3 2 ⋅ 4 ⋅5 1⋅ 3 ⋅ 5 1 ⋅ 3 ⋅ 5...(2n −1) x 2 n +1 x 7 + ... + 2⋅4⋅6⋅7 2 ⋅ 4 ⋅ 6...( 2n)(2n + 1)
x−
π
arsh ( x )( x <1)
arccos( x )( x ≤1)
Ln (1 − x )( −1 ≤ x < 1)
N=20
Продовження табл.1.1 1
2
x − 1 ( x − 1) ( x − 1) ( x − 1) + + + ... + εn =) 10−4 2 3 x 2x 3x nx 2
12
3 3
n
6
4
Ln( x)( x > 1 ) 2 13 14
15
16 17
18
x − 1 ( x − 1) 2 ( x − 1) 3 ( x − 1) n − + − ... + ( −1N=30 ) ) Ln ( x)(0 < x ≤ 1) x 2 3 n
x − 1 (x − 1) 2 + + 3 x + 1 3( x + 1) 2 5 2n+ 1 ( x − 1) + ... + (x − 1) 5(x + 1)5 (2n + 1)(x + 1) 2n+ 1 xin( a ) ( xin( a )) 2 + + 1! 2! ( xin( a )) 3 ( xin( a )) n + ... + 3! n! 2 3 4 x x x x xn 1+ + + + + ... + 1! 2! 3! 4! n! 1+
ε = 10−4 Ln( x)
( x > 0)
N=20
a x ( x < ∞)
N=30
e x ( x < ∞)
x 2 cos(a ) x 3 cos( a) N=20 + + 2! 3! n x cos(a + n(π )) x 4 cos(a ) 2 − ... − 4! n!
cos(a ) − x sin(a ) −
1−
cos( x +a ) ( x < ∞)
x2 x4 x6 x 2n −4 cos( x ) + − + ... + ( −1) n 2! 4! 6! ( 2n)! ε = 10
( x < ∞)
7
x 2 sin( a ) x 3 cos( a) N=30 + + 2! 3! n x sin( a + n(π )) x 4 sin(a ) 2 − ... − 4! n!
19
sin( a ) − x cos(a ) −
20
x−
x3 x5 x7 x 2 n −1 + − + ... + (−1) n −1 N=20 3! 5! 7! (2n −1)
sin( x +a )( x < ∞)
sin( x )( x <∞ )
Продовження табл.1.1 1 21
22
2
3
2n + 1 1 + 3 x 2 + ... + − x 2n n!
N=20
3 x + 8 x 2 + ... + n( n + 2) x n
x 5 x n 2 +1 x 1 + 2 + + ... + 2 2! 2 2n! 2
n
2
( x < ∞)
x(3 − x) ; x ≠1 (1 − x) 3
N=10
2
23
4
(1 + 2 x 2 )e x
x2
x
ε = 10−4 4 + 2 + x e
x
2
( x < 1) 3
2 n +1
5
24
x x x − + ... + (−1) n +1 3 15 4n 2 − 1
25
x+
26 27
x5 x 4 n +1 + ... + 5 4n + 1 2 4 x x x 2n − + ... + ( −1) n +1 2 12 ( 2n +1) 2n
π π π ( 6) ( 6) − + 2
6
28
3!
5!
2
4
π ) (π ) ( 1− 6 + 6 2!
29
ε = 10
4!
N=30
(π 6 )ε = 10
+ ... + ( − 1) − ... + (− 1) n
n
(2n + 1)!
(π 6 )
2n
N=10
(2n)!
1+ x2 x arctg − 2 2 1 1+ x 1 ln + arctg ( x ) 4 1− x 2 xarctg ( x) − ln 1 + x 2
N=10 2 n +1
5
−4
−4
( 6)
sin π
( 6)
cos π
1 1 1 + + ... + N=10 1/(1-1)(1-1) 1 ⋅ 2...1 2 ⋅ 3..(1 +1) n( n +1)...(n +1 −1-целое 1) число 8
30
1+
1 1 1 1 − + +... + 1! 2! 3! n!
ε = 10−4
e=2,718282
Короткі відомості з теорії Основні поняття Якщо {an} – числова послідовність, то послідовність {Sn}: S1 = a1 ; S1 = a1 ; S2 = a1 + a2 S2 = S1 + a2 ; …. …. Sn = Sn-1 + an n Sn = ∑ a k = a1 + a2+…. +an k =1
називають послідовністю часткових (кінцевих) сум (нескінченного) ряду, який позначають n
a1 + a2+…. +an або
∑a k
k =1
an називають загальним членом ряду. Нескінченний ряд, побудований з функціональної послідовності {ƒn(x)} ∞
∑ f n ( x) = ƒ1(x)+ ƒ2(x)+… +ƒn(x)+ …,
n =0
називається функціональним рядом. Розміри кінцевих сум можуть визначатися кількістю членів (задане n), що враховуються, або необхідною точністю (задане ε). В останньому випадку додавання нових членів слід припинити, якщо | an | < ε . Процедура обчислення кінцевих сум заснована на методі ітерацій (методі послідовних наближень). Для скорочення часу рахунку при обчисленні членів ряду рекомендується користуватися рекурентними співвідношеннями, тобто черговий член ряду виражається через попередній. Приклад 1 Отримати рекурентне співвідношення для членів ряду: 9
sh = x + an =
an =1 =
∞ x3 x5 x7 x 2 n +1 + + + ... = ∑ 3! 5! 7! n = 0 2n + 1
x 2 n +1 , ( 2n +1)!
n – - й член функціонального ряду ;
x 2 ( n +1) +1 , (n+1) – й член функціонального ряду ; (2(n +1) +1)!
a n +1 = an
x 2( n +1) +1 (2(n +1) +1)! x 2 n +1 (2n +1)!
a n +1 = a n
= – відношення ( n + 1) -го члена до n-го ;
x2 (2n + 3)( 2n + 2)
– рекурентне співвідношення між
членами ряду. Приклад 2 Обчислити sin(π/3), використовуючи його представлення кінцевою сумою ряду (π / 3) 3 (π / 3) 5 (π / 3) 2 n +1 sin(π / 3) = (π / 3) − + + ... + ( −1) n 3! 5! (2n +1)! де n = 15. Рекомендація : обчислення sin(π/3) організувати таким чином. Крок 1. Привласнити S = π/3, а = π/3, n = 1. (π/3)2 Крок 2. Привласнити а = - а -------------, 2n (2n + 1) S = S + а, n = n +1. Крок 3. Перевірити умову n ≤ 15. Якщо умова виконується, повернутися до кроку 2, інакше вважати обчислення sin(π/3) завершеним, тобто sin(π/3)= S. Варіанти блок-схеми представлені на малюнках 1.а, 1.б. Приклад 3 Обчислити cos(π/6), використовуючи його представлення кінцевою сумою ряду 10
(π / 6) 2 (π / 6) 42 (π / 6) n + + ... + (−1) n 2! 4! 2n! заданою точністю ε = 10−5. cos(π / 6) = 1 −
із
Рекомендація : обчислення cos(π/6) організувати таким чином. Крок 1. Привласнити S = 1, а = 1, n = 1. (π/6)2 Крок 2. Привласнити а = - а -------------, S = S + а, n = n +1. 2n (2n - 1) Крок 3. Перевірити умову | а | > ε. Якщо воно виконується, повернутися до кроку 2, інакше вважати обчислення cos(π/6) завершеним, тобто cos(π/6)= S. Варіанти блок-схем представлені на малюнках 2.а, 2.б. Приклад 4. Обчислення S=1+1/1!+1/2!+1/3!+1/4!+...1/n! , за допомогою пакету MathCAD. n=10
sum( x) :=
ε = 10−5 Summa( x) :=
[ s ← ( 0) ]
s ← ( 0)
a←1
n←0
s←a
a←1
for n ∈ 1 .. 10
ε ← 0.0001
s←s+a a← a⋅
while
( 1)
a ≥ε
s←s+a
( n + 1)
a←a⋅
s sum( 2) = 2.718
( 1) ( n + 1)
n←n+1 s Summa(2)=2.718
11
Рис.1
12
Рис.2
13
ІНДИВІДУАЛЬНЕ ЗАВДАННЯ 2 ЧИСЕЛЬНІ МЕТОДИ РІШЕННЯ НЕЛІНІЙНИХ РІВНЯНЬ Мета завдання – закріплення теоретичного матеріалу, алгоритмів і програм для вирішення нелінійних рівнянь використанням чисельних методів.
складання F(x)= 0 з
Порядок виконання завдання 1. Уважно прочитати відповідні відомості з теорії. 2. Згідно умови варіанта індивідуального завдання (табл..2.1.) провести аналіз функції і зробити висновок про можливість використовування запропонованого вам методу. 3. Представити геометричну інтерпретацію методу. 4. Скласти алгоритм вибору початкового наближення для х [ а, b ] (якщо це необхідне для даного методу). 5. Скласти алгоритм обчислення кореня рівняння F(x)= 0 з вибором початкового наближення і заданою точністю, використовуючи запропонований вам метод чисельного рішення. 6. Скласти програму рішення цієї задачі на алгоритмічній мові або в пакеті MathCAD, одержати результат. 7. Оформити звіт і представити до захисту. Таблиця 2.1. Варіанти індивідуального завдання 2 № пп
Рівняння
1
2
Метод Очікуване Відрізок чисельного значення рішення кореня 3 4 5 2; 3 Ітерацій 2.2985
1
3 sin
2
0; 2
Ньютона
1.0001
3
0.25 x + x −1.2502 = 0 x + x + 3 x − 2.5 = 0
0.4; 1
Дихотомії
0.7376
4
e x + 1 +e2x −2 = 0
-1; 0
Хорд
-0.2877
5
0.1x − x ln( x ) = 0
1; 2
Ньютона
1.1183
6
arccos( x ) − 1 −0.3 x 3 = 0
0; 1
Ітерацій
0.5629
x +0.35 x −3.8 = 0 3
2
14
7
2; 4 3 x − 4 ln( x) − 5 = 0 cos( 2 / x ) − 2 sin(1 / x ) +1 / x = 0 1; 2 0; 1 sin( x z ) + cos( x z ) −10 x = 0
Ньютона
3.2300
Дихотомії
1.8756
Хорд
0.1010
0; 1
Ітерацій
0.7672
0; 1
Ньютона
0.8814
12
e x − e −x − 2 = 0 x − 2 + sin(1 / x) = 0
1.2; 2
Ітерацій
1.3077
13
e + ln( x) −10 x = 0
3; 4
Хорд
3.5625
8 9 10 11
1 −0.4 x 2 −arcsin( x) = 0
x
Продовження табл..2.1 1 14 15 16 17 18 19 20 21 22 23 24 25
2
3 0; 1.5
4 Ітерацій
5 1.1474
1; 3
Ньютона
2.0692
0;1
Дихотомії
0.5768
3 ln z ( x) + 6 ln( x) − 5 = 0 sin( x z ) + cos( x z ) −10 x = 0 x z ln(1 + x ) − 3 = 0 2 x sin( x) − cos( x ) = 0
1; 3
Хорд
1.8832
0; 1
Дихотомії
0.1010
2; 3
Ітерацій
2.0267
0,4; 1
Ньютона
0.6533
e x + 1 + e2x − 2 = 0
-1; 0
Дихотомії
-0.2877
ln( x) − x +1.8 = 0
2; 3
Ітерацій
2.8459
2tg ( x) − 1 = 0 3 tg ( x ) − ctg ( x ) + x = 0 2 2
0.2; 1
Хорд
0.5472
1; 2
Дихотомії
1.0769
0; 1
Ньютона
0.7672
1 − x + sin( x ) − ln(1 + x) = 0
3 x − 14 + e x − e − x = 0 1 − x −tg ( x ) = 0
1 −0.4 x 2 −arcsin( x) = 0
26
cos( 2 ) − 2 sin(1 x ) + 1 x = 0 x
1; 2
Хорд
1.8756
27
0.4 + arcstg ( x ) − x = 0
1; 2
Ітерацій
1.2388
0; 1
Ньютона
0.4538
0; 0.85
Хорд
0.2624
0; 1
Дихотомії
0.8814
28 29 30
1 − x + cos 1 − x = 0
x (3 + sin(3.6 x ) −1) = 0
ex − e
−x
−2 =0
Короткі відомості з теорії та приклади розв’язання задач Визначення нелінійного рівняння F(x)=0, де F(x) –функція, нелінійна щодо невідомого. 15
Приклади : а) ex +2-ln(x)+5=0 ; б) sin(x+5) -tg2(x) -7=0 ; в) x5-4x4+3x2-10=0. Вирішити нелінійне рівняння – знайти значення х для якого F(x)=0. 2.1. Метод простих ітерацій (знаходження кореня рівняння x = f(x)) Дано : F(x)=0, x0 ∈ [ а ; b]. Метод простих ітерацій заснований на представленні рівняння F(x)=0 у вигляді :x=f(x) та багатократному вживанні формули xn+1= f(xn) до тих пір, поки дотримується умова | xn+1- xn| ≤ε , де ε – задана погрішність обчислення кореня x. Блок-схема алгоритму представлена на Рис. 5. Геометрична інтерпретація методу ітерацій При 0 < │f(x )│< 1 {xn} сходиться до x* з тієї сторони, з якою розташовано початкове наближення малюнок 3, а та б. При -1 < │f(x )│< 1 послідовні наближення {x n} по черзі розташовані з різних сторін від рішення x*, малюнок 4, а та б. При │f(x )│> 1 {x n} не сходиться до x*, тому треба скористатися іншим чисельним методом рішення нелінійного рівняння F(x)=0.
16
y
y
y= x
y= x y = ƒ (x )
y = ƒ (x )
x4
0
x0
x1
x2
x3 x*
x
0
a. x* – рішення нелінійного рівняння ; х0 – початкове наближення.
x* x4 x3 b.
Рис. 3.
17
x2
x1
x0 x
y
y
y= x
y= x
y = ƒ( x )
0 a
x1
x 3 x 5x *x 4 x 2 x 0
y = ƒ(x )
x
0
x4 x7 x0 x2 x 6 x* x5 x3
b
x1
x
Рис. 4. Вибір початкового наближення : значення X = А або X = B, або X= ( A+B) /2 може бути вибрано як початкове наближення. Початок
X, E
N =1
F - ?(x)
F- X <E
X =F
X, N
N = N +1
Рис. 5. 18
Кiнець
Приклад 1 :
x2-ln(x) -2=0 ; F(x)= x2 - ln(x) -2 f(x) = e
⇒
x = ex
2
−2
;
2
x −2
2.2. Метод Ньютона (метод дотичних) Теорема. Хай функція F(x) при а ≤x ≤ b визначена і безперервна. Хай є два числа x1 і x2 : а ≤ x1 < x2 ≤ b. Якщо F(x1) і F(x2) мають протилежні знаки, то між x1 і x2 існує хоча б один корінь рівняння F(x)=0. (рис. 6.) y
y y = F (x )
y = F (x ) A
x *x 3 x 2
x1
x 0= B
0
0
A
x *x 3 x 2
x 1 x 0= B
x
x
а.
б.
y
y
y = F (x ) x 0= A x 1
0
x2 x3 x*
B
x
x* 0
x 0= A x 1
x2 x3
B y = F (x )
В.
Рис.6
Ї 19
д.
x
Рівняння дотичної, проведеної до кривої у = F(x)
в крапці x0 :
F ( x0 ) у = F(x0)+ (x-x0) F’(x0); x1 = x 0 − , де x1 – точка перетину F ′( x 0 ) дотичної з віссю абсцис. Елементи послідовності {xn} обчислюються по
x n +1 = x n −
наступному рекурентному співвідношенню
F (xn ) до тих F ′( x n )
пір, поки виконується умова | xn+1- xn| ≥ ε, де ε – задана погрішність обчислення кореня x. Як х0 вибирається той кінець відрізка [ а ; b ], на якому знаки F(x 0) і F"(x0) співпадають. Блок-схема алгоритму представлена на рис.7. N =1 Початок
F - ?(X) A, B, E P - ?(X) F - ?(A) X = X - F/P V - ?(A) F/P < E
Так
Нi
Нi X=B
F-V >0
Так
N=N+1 X=A
X, N
Кiнець
Рис. 7
20
Кiнець
2.3. Метод дихотомії Дано : F(x)=0, x0 ∈ [ а ; b]. Знайти : корінь нелінійного рівняння з точністю ε. Елементи послідовності {xn} обчислюються по формулі x = ( А + B )/2, а черговий інтервал вибирається з умови : якщо F(x)* F(А)< 0, то В = х, інакше А = х, рис. 8, а, б. Елементи послідовності {xn} обчислюються до тих пір, поки виконується умова | B -A | > ε, де ε − точність знаходження кореня рівняння F(x)=0.
Рис. 8
Початок A, B, E
F-V > 0
HI A=X
B=X
N=N-1 X=(A+B)/2
F - ?(A) V - ?(A)
Так
Нi
Так ||B-A|<E X, N
N=N+1 Кiнець
Рис. 9 21
Нi
2.4. Метод хорд В цьому методі кожне значення xn+1 знаходиться як точка перетину осі абсцис з хордою, проведеною через крапки з координатами (F(А),A) і (F(B),B), причому з цих крапок фіксується та, для якої знаки F(x) і F"(x) однакові. Якщо нерухомий кінець хорди x = А, то
xn +1 = xn −
F ( xn ) ( xn − A) , F ( xn ) − F ( A)
початкове наближення x0 = В . Якщо нерухомий кінець хорди х = В, то
xn +1 = xn −
F ( xn ) ( xn − В) , F ( xn ) − F ( А)
початкове наближення x0=А, малюнок 10, а - г. Обчислення проводяться до тих пір, поки | xn+1 - xn | ≥ ε , де ε – точність обчислення кореня рівняння F(x)= 0. y
y
0
x
x*
A
x
3
4
x
2
x
1
x 0= B x
x 0= A
x
x
4
3
x
2
0
x
x* x
1
B
y = F (x )
y = F (x ) à.
â.
y
y
y = F (x )
y = F (x )
A
x
x* x
0
á.
2
x
1
x 0= B
x
0
22
x 0= A
ã.
x
1
x
2
3
x* B
x
Рис.. 10. Блок-схема алгоритму представлена на рис 11.
Початок
A, B, E
F - ?(A)
V - ?(A)
Так
F - V >0
Нi X =B
X =A
Z =A
Z=B
Так X n +1/X n <ξ
N =1
Нi V - ?(Z)
N=N+1
F - ?(X)
Кiнець
X = X - F/(-V + F) * (X - Z) Рис. 11
23
N=N+ 1 Нi
X, N
X, N Кiнець
Приклад 2 Обчислення кореня рівняння 1 −0.4 * x 2 −arcsin( x ) =0 на відрізку [0,1] за.. допомогою пакету MathCAD. x := 0 ,0.1 1 2
f ( x) :=
1 − 0.4⋅x −as in ( x)
1
f ( x)
0
1
0
0.5
1
x
a := 0
Метод дихотомії b := 1
f ( a) ⋅ f ( b ) = − 0.796
Метод хорд
−5
ε := 10
2
f ( x) := 1 − 0.4⋅ x − asin ( x) a := 0
bisec( f , a , b , ε ) := an ← a
H( f , a , b , ε ) := if f ( a) ⋅
bn ← b k← 0
ε := 10 d
2
da
2
f ( a) > 0
Xn ← b
while bn − an > 2⋅ ε xn ←
−5
b := 1
an + bn
Xnew ← Xn −
2
fa ← f ( an ) fxn ← f ( xn)
Xnew ← Xn −
bn ← xn if fa ⋅ fxn ≤ 0 an ← xn otherwise
⋅ ( Xn − b)
Xn ← Xnew
xn ← an an + bn
Xnew ← Xn −
2
xn k
Xnew ← Xn − Xnew
result bisec( f , a , b , ε ) =
f ( Xn ) f ( Xn) − f ( b)
while Xnew − Xn > ε
k← k+ 1
result ←
⋅ ( Xn − a)
otherwise Xn ← a
fb ← f ( bn )
xn ←
f ( Xn ) f ( Xn) − f ( a)
H( f , a , b , ε ) =
24
f ( Xn ) f ( Xn) − f ( a) f ( Xn ) f ( Xn) − f ( b)
⋅ ( Xn − a) if f ( a) ⋅
d
2
da
⋅ ( Xn − b) otherwise
2
f ( a) > 0
ІНДИВІДУАЛЬНЕ ЗАВДАННЯ 3 ІНТЕРПОЛЯЦІЯ ФУНКЦІЙ Мета завдання – закріплення теоретичного матеріалу та придбання практичних навиків, складання алгоритмів наближеного відновлення функції (апроксимація) в довільній крапці за експериментальними даними із застосуванням алгебраїчних багаточленів першої, другої та (N-1) -ої степені. Порядок виконання завдання 1. Варіанти індивідуальних завдань приведені в табл. 3.1 Перший пункт завдання потребує: a) відновлення функціональної залежності по двом експериментальним крапкам, з застосуванням інтерполяційного багаточлена, представленого в одній з своїх форм, без допомоги ЕОМ; b) обчислення значення функції у заданій крапці; c) представлення результату графічно. Другий пункт завдання потребує: a) відновлення функціональної залежності по трьом експериментальним крапкам, на основі інтерполяційного багаточлена, що має форму, вказану в завданні, без допомоги ЕОМ; b) обчислення значення функції у заданій крапці; c) представлення результату графічно. Скласти алгоритм і написати програму на алгоритмічній мові або в системі MathCad для обчислення значення функції в заданій крапці Результат представити графічно і у вигляді чисельного значення. Оформити звіт і представити до захисту.
25
26
Таблиця 3.1. Варіанти індивідуального завдання 3 № п/п 1 1
№ завдання 2 1
2
3
Значення функції 4
Функція y(x) 3
x1 y1 x2 y2 x3
1 7
-6 -2
-5 0
1 -3
7 10
1.5
2 -4.3
2.5 -5.8
y 3 -3.56
3 -4.95
3.5 -5.75
4.0 -6.15
4.5 -8.45
Форма багато-члена 5
y(4)
Ньютона
y(5.5)
Лагранжа
y(3.55)
Ньютона
Продовження табл.. 3.1 1
2
3
4
25
5
2
1
2
x1 y1 x2
y2 3
x3 y3
3
1
2
x1 y1 x2 y2
-1 7
6 -2
-3 6
1 -2
5 2
4.5 -1.56
5 -2.48
5.5 -3.75
-1 3
2 10
-2 -1
1 2
6 -4.81
6.5 -5.16
7 -6.35
y(3)
Лагранжа
y(4)
Ньютона
7.5
y(6.55 )
-7.16
4 -2
Кубічний сплайн
y(1)
Лагранжа
y(3)
Кубічний сплайн
Продовження табл.. 3.1 1
2
3 3
3
x3
10
y 3 3.7 4
1
x1 y1
-3 -1
11 4.5
12 5.9
13 6.1
14 7.8
2 5
26
15 8.5
16 9.4
17 10.5
4
5
y(11.55)
Ньютона
y(0)
Ньютона
x2
2
y2 x3
3
1 2
3 -3
6 -2
1.2
2.6 11.56
9.8 9.31
y 3 15.86
4.5 8.57
5.1 6.41
7.0 9.98
8.9 10.37
y(4)
Кубічний сплайн
y(6.2)
Лагранжа
Продовження табл.. 3.1 1 5
2 1
2
3
3
x1 y1 x2 y2 x3
-1 5
5 -1
1 5
-2 -1
-5 3
2.6
3.7 2.78
4.8 3.46
y 3 1.36 6
1
x1 y1
0 3
5.9 4.58
4
5.9 4.58
6.0 5.37
5 -1
27
7.1 6.91
8.2 7.87
5
y(3)
Ньютона
y(-3.5)
Лагранжа
y(6.5)
Лагранжа
y(3)
Лагранжа
x2
2
y2
2 4
4 -2
6 3
y(5)
Ньютона
Продовження табл.. 3.1 1 6
2 3
3
x3
1
y3 9 7
x1
1
y1 x2
2
y2 x3
3
10 6.5
19 4.1
0 -10
1 2
1 -5
3 1
5 0
10
15 19.8
17 25.3
y 3 12.1
28 2.7
4 37 1.5
20 29.7
46 0.9
25 32.4
29 36.5
32 40.1
5
y(20)
Кубічний сплайн
y(0.5)
Лагранжа
y(2)
Кубічний сплайн
y(22)
Лагранжа
Продовження табл.. 3.1 1
2
3
4
28
5
8
x1
1
y1 x2
2
y2 x3
3
-1 -5
2 7
-2 -5
0 1
2 -6
1.35
1.4 4.256
1.45 4.353
y 3 4.162 9
x1
1
y1 x2
2
y2
0 5
-3 -10
-1 5
1 0
1.5 4.455
1.55 4.562
16 4.673
3 10
1.65 4.754
y(1)
Ньютона
y(1.5)
Лагранжа
y(1.53)
Кубічний сплайн
y(-2)
Лагранжа
y(2)
Лагранжа
Продовження табл.. 3.1 1
2
9 3
3
x3 y3
1 10
x1 y1
1 5.67
5 6.48
1 -6
5 10
9 7.31
13 8.29
4 17 9.56
21 10.47
29
5
y(11.5)
Ньютона
y(4)
Ньютона
x2
2
y2 x3
3
0 5
3 0
5 10
3
5 28.3
7 38.7
y 3 21.7 11
x1
1
y1
-5 -3
9 41.4
11 55.9
13 61.8
7 1
y(5)
Лагранжа
y(1.775)
Кубічний сплайн
y(4)
Ньютона
Продовження табл.. 3.1 1 11
2 2
3
x2 y2
3
x3 y3
12
1
2
x1 y1 x2
0 4
3 -1
7 1
1.55 5.48
1.66 6.59
1.77 7.36
-1 7
3 -2
-2
1 4
y 2 -1
1.88 8.45
4
1.99 9.17
4 -1
30
2.10 10.49
5
y(5.5)
Ньютона
y(1.775)
Лагранжа
y(2)
Лагранжа
y(3)
Лагранжа
x3
3
1
y 3 5.7
2 6.9
3 7.4
4 8.1
5.98 9.8
6 10.5
y(4.5)
Ньютона
Продовження табл.. 3.1 1 13
2
3
x1
1
y1 x2
2
y2 x3
3
5 -1
7 10
-3 -10
0 2
3 -15
1.35
1.46 4.58
1.57 6.77
y 3 3.96 14
x1
1
y1 x2
2
y2
-1 0
3 5
-1 0
2 -1
1.68 8.96
4
1.79 7.56
1.8 9.48
1.94 8.54
5 1
5
y(6)
Лагранжа
y(2.5)
Лагранжа
y(1.85)
Кубічний сплайн
y(2)
Ньютона
y(3)
Лагранжа
Продовження табл.. 3.1 1 14
2 3
3
x3
1.37
2.72
7.41
9.85
4 11.72
31
15.48
19.74
y(8.5)
5 Кубічний
y 3 18.327 15
x1
1
y1 x2
2
y2 x3
3
x1
1
y1
29.781
-2 -1
3 5
1 -1
3 3
7 5
2.5
3.6 12.45
4.7 13.57
y 3 11.6 16
21.472
4 -2
32.674
34.283
5.8 4.61
6.9 15.32
40.172
43.298
8 16.21
8 6
сплайн y(1)
Лагранжа
y(5)
Ньютона
y(6.5)
Ньютона
y(6)
Лагранжа
Продовження табл.. 3.1 1 16
2 2
3
x2 y2
3
x3 y3
17
1
x1 y1
-2 7
2 -6
6 9
2 1.38
2.5 2.35
3 3.48
2 10
7 -5
3.5 4.57
4
4 5.86
32
4.5 6.47
5 7.98
5.5 8.36
5
y(0)
Ньютона
y(2.36)
Лагранжа
y(5)
Лагранжа
x2
2
y2 x3
3
-2 6
0 4
2 12
0
0.1 10
0.2 4
y3 0
0.3 2
0.4 1.5
0.5 2
0.6 5
y(-1)
Лагранжа
y(3.55)
Ньютона
Продовження табл.. 3.1 1 18
2 1
2
3
3
x1 y1 x2 y2 x3 y3
19
1
2
x1
-3 4
5 8
0 -2
4 8
8 -3
-1 0
8 -0.5
0 4.7
-5
1 5
y1 -3 x2
y2
3 -2
6 2
0.5 5.4
4
1 6.3
9 -5
33
1.5 7.1
2 8.3
5
y(2)
Ньютона
y(5)
Ньютона
y(0.25)
Лагранжа
y(-3)
Ньютона
y(7.5)
Лагранжа
Продовження табл.. 3.1 1 19
2
3
x3
3
y3 20
x1
1
y1 x2
2
y2
3.5 3.45
4.6 -4.48
5 8
-2 -10
0 2
3 -3
x3
3
1 y 19
1 21
y1
2 1
6.8 -6.71
7.9 -7.35
9 -8.26
10.1 -9.31
6 6
10 16.5
3
x1
5.7 -5.96
4
18 14.1
29 12.7
40 11.5
51 5.1
6 -1
60 -4.6
73 -15.8
5
y(6.5)
Лагранжа
y(3)
Ньютона
y(4)
Лагранжа
y(15)
y(4.5)
Ньютона
Лагранж а
Продовження табл.. 3.1 1 21
2 2
3
x2 y2
1 -1
3 3
4
7 -2
y(5)
34
5 Ньютона
x3
3
22
1.3 35 y 3 4.1 62
x1
1
y1 x2
2
y2 x3
3
1.340
1.345
1.350
1.355
1.360
4.256
4.353
4.455
4.562
4.673
-1 3
4 6
-2 4
1 -1
6 7
1
10 6.5
18 4.1
y3 9
29 2.7
40 1.5
51 0.9
60 -1.3
y(1.353)
Кубічний сплайн
y(2)
Лагранжа
y(4)
Лагранжа
y(21)
Кубічний сплайн
Продовження табл.. 3.1 1 23
2 1
2
3
3
x1 y1 x2
1 2
5 -1
-1
3 2
y 21 x3
10
4
7 2 15
20
25
30
35
35
40
5
y(4)
Ньютон а
y(5)
Кубічний сплайн
y(27)
Ньютона
y 3 12.1 24
x1
1
y1 x2
2
y2
19.8
2 1
-5 -1
-7 1
-5 -3
25.3
29.7
32.4
36.9
40.1
-1 4
y(-4)
Лагранжа
y(-3)
Кубічний сплайн
Продовження табл.. 3.1 1
2 3
3
x3 y3
25
1
2
3
x1 y1 x2
1
0.61 4.96
-5 -1
5 2
-1
3 10
7 1
2 1.33 5
1.340 5.368
1.345 6.732
4.25
5
y 2 -1 x3 y3
26
0.5 3.75
x1
0.72 5.99
0.83 6.78
0.94 7.56
1.350 7.514
4 1.05 8.31
1.355 8.962
36
1.16 9.47
1.360 9.751
5
y(0.85)
Лагранжа
y(2)
Ньютона
y(5)
Кубічний сплайн
y(1.352)
Лагранжа
y(3.5)
Лагранжа
6
y1
2
-1
Продовження табл.. 3.1 1 26
2 2
3
x2
4
y2 1 3
x3
1.56
y 3 5.78 27
1
2
x1 y1 x2 y2
3 5
5 -1
2.77 7.95
3.98 9.54
-1 5
6 -3
-3 5
0 -2
5.10 11.41
4
6.31 13.12
7.52 15.65
5
y(4)
Ньютона
y(4.5)
Кубічний сплайн
y(3)
Ньютона
y(1)
Ньютона
3 10
Продовження табл.. 3.1 37
1
2 3
3
x3
1
y 3 49.9
2 59.1
3 78.5
4 90.7
5 99.6
4 6 108.3
38
7 117.6
8 130.2
y(4.55)
5 Кубічний сплайн
Короткі відомості з теорії На практиці часто доводиться мати справу з функціями, заданими таблично, коли для значень аргументу x1, x2, …, xn відомі значення функції y1=f(x1), y2=f(x2),…., yn=f(xn). Сукупність крапок називається експериментом: x1, x2, …, xn
y1, y2, …, yn
де n – число експериментальних крапок.
Для того, щоб визначити значення функції f в якій-небудь точці х, відмінній від заданих x1, x2, …, xn, поступають таким чином: будують функцію F, яка в заданих точках x1, x2, …, xn співпадає із заданими y1, y2, …, yn, тобто F(xi)= yi, i = 1, 2, 3 ., n, а при інших х приблизно представляє функцію f. При цьому функція F називається інтерполяційною, а крапки x1, x2, …, xn – вузлами інтерполяції. Частіше за все функцію F(x) задають у вигляді багаточлена. Існує тільки один інтерполяційний багаточлен, який може бути представлений в різних формах. 3.1. Форма Лагранжа Інтерполяційний багаточлен Лагранжа, побудований по таблиці (x1, y1); (x2, y2); (x3, y3);…, (xn, yn), має вигляд n
n
Fn− 1 = ∑ y s ∏
(x − x j )
i = 1 j = 1 (xi − x j ) . j≠ i
(1)
3.1.1 Лінійна інтерполяція Хай задана таблиця
x1, x2, …, xn y1, y2, …, yn
Необхідно обчислити у в крапці x:
F 1 ( x ) = y i1
,
( x − xi 2 ) ( x − x i1 ) + yi2 ; ( x i1 − x i 2 ) ( x i 2 − x i1 )
y = y i1 + ( y i 2 − y i1 ) 43
( x − x i1 ) ; ( x i 2 − x i1 )
xi – різні.
xi1, xi2 – найближчі до х вузли з набору x1, x2, …, xn. Лінійна інтерполяція здійснюється по двох найближчих крапках. Приклад 1 a). х ∈ [ x1, x2 ]. Тоді xi1 = x1 ; yi1 = y1, xi2 = x2 ; yi2 = y2, y = y1 + ( y 2 − y1 )
( x − x1 ) , ( y 2 − y1 )
b). х ∈ [ x4, x5 ] xi1 = x4 ; yi1 = y4, xi2 = x5 ; yi2 = y5 , y = y 4 + ( y 5 − y 4 )
(x − x4 ) , (рис. ( y5 − y 4 )
12).
y y
4
y
5
y
2
y
3
y
1
F 4 '( x )
F 2 '( x )
F 1 '(x )
y
F 3 '( x )
x 0
x
1
x
x
2
x
3
x
4
x
5
Рис. 12 На рис.13 представлена блок-схема алгоритму розрахунку інтерполяційного значення функції в крапці x по двох найближчих вузлових крапках, координати яких є початковими даними. Основні позначення : x0 – значення х, при якому обчислюється інтерполяційне значення у ; у0 – інтерполяційне значення в крапці х0 ; 44
L – код помилки ;
0, якщоxi1 ≠ xi2 L= 1, якщоxi1 = xi2 ;
x(1), x(2) – табличні значення аргументів ; у(1), у(2) – табличні значення функції.
Початок
Лiнейна iнтерполяцiя
L=0
X0, X(1), Y(1) X(2), Y(2) Нi
Лінійна iнтерполяцiя
X0, Y0
X(1) = X(2)
Y0 = Y(I) + (Y(I + 1) - Y(I) *
Так
Y0 = Y(1)
(X0 - X(I))/(X(I + 1) - X(I))
L =1 Кiнець Return
Рис. 13 На малюнку 14 представлена блок-схема алгоритму розрахунку інтерполяційного значення функції в будь-якій точці х з вибором найближчих вузлових крапок, по яким буде проводитися інтерполяція. Початковими даними є координати всіх експериментальних крапок і значення х, для якого потрібно обчислити інтерполяційне значення функції. 3.1.2. Квадратична інтерполяція
45
y = y i1
( x − x i 2 )( x − x i 3 ) ( x − x i1 )( x − x i 3 ) ( x − x i1 )( x − x i 2 ) + yi 2 + y i3 ( x i1 − x i 2 )( x i1 − x i 2 ) ( x i 2 − x i1 )( x i 2 − x i 3 ) ( x i 3 − x i1 )( x i 3 − x i 2 )
де xi1, xi2, xi3 – найближчі до х вузлові крапки (рис. 15 ). Квадратична інтерполяція здійснюється по трьох крапках.
найближчих
Приклад 2 а). х ∈ [ x1, x3 ]
y = y1
( x − x 2 )( x − x 3 ) ( x − x1 )( x − x 3 ) ( x − x1 )( x − x 2 ) + y2 + y3 ( x1 − x 2 )( x1 − x 2 ) ( x 2 − x1 )( x 2 − x 3 ) ( x 3 − x1 )( x 3 − x 2 )
б). х ∈ [ x3, x5 ]
y = y3
( x − x 4 )( x − x 5 ) ( x − x 3 )( x − x 5 ) ( x − x 3 )( x − x 4 ) + y4 + y5 ( x 3 − x 4 )( x 3 − x 5 ) ( x 4 − x 3 )( x 4 − x 5 ) Початок( x 5 − x 3 )( x 5 − x 4 )
Лiнійна iнтерполяцiя
X0, N
L =0
I =1, N
Так X(0) = X(1)
X(1), Y(1)
Y0 = Y(1)
Нi
Лiнійна iнтерполяцiя
L =1
X0, Y0
I = 1, N - 1
X0
X0 < X(I +1)
Так Нi Y0 = Y(I) +(Y(I +1) - Y(I) *
Нi
(X0 - X(I))/(X(I +1) - X(I)) X0 = X(I +1)
Лiнійна iнтерполяцiя
Нi
Так
X0, Y0
46
Кiнець
Y0 = Y(1)
L =1 Return Рис.14.
Рис.15. 3.1.3. Інтерполяція багаточленом степені N-1 Інтерполяцію багаточленом степені (n-1) виконують по n експериментальних крапках (малюнок 16). Інтерполяція здійснюватиметься по формулі (1). Блок-схема алгоритму представлена на малюнку 17. Основні позначення: Х і У – масиви розмірністю N; N – число вузлових крапок; x0 – значення х, при якому необхідно знайти інтерпольоване значення функції; у0 – значення функції, обчислене в крапці x0.
47
y y
y 7
y
6
y
5
y y y
y 0
F 7( x )
8
4 3 2
1
x x
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
Рис. 16
3. 2. Форма Ньютона Визначення. Хай x1, x2, …, xn – довільні крапки (вузли), причому xi ≠ xj при i ≠ j. Значення y1, y2 ..., yn функції у в вузлах називаються розділеними різницями нульового порядку і позначаються як [xi], де i=1, ….N.
48
Iнтерполяцiя
Початок
Y0 = 0
X0, N
I =1, N
I =1, N P =1
X(1), Y(1)
J =1, N Нi
Iнтерполяцiя
I ≠J Так P = P ⋅ (X0 - X(J))/ (X(I) - X(J))
Y0 Y0 = Y0 + Y(1) ⋅ P
Кiнець
Return 49
Рис.17 [ x1] = y1 [ x2] = y2 ... [ xn] = yn
[ xi] = yi
Число у( x1; x2)= у( x2; x1)=
i = 1,… n .
y ( x2 ) − y ( x1 ) y2 − y1 = x2 − x1 x2 − x1
називається розподіленою різницею першого порядку функції позначається [x1;x2] = [x2;x1]. В загальному вигляді у( xi-1; xi)= у( xi; xi-1)= Число
y ( x1 , x 2 , x3 ) =
y ( xi ) − y ( xi −1 ) y i − y i −1 = xi − xi −1 xi − xi −1
у
і
де i =1,… n
y − y 2 y 2 − y1 1 ( 3 − ) x3 − x1 x3 − x 2 x 2 − x1
називаються розділеною різницею другого порядку функції позначаються [ x1 ; x2 ; x3 ] . В загальному вигляді
y ( xi −2 , xi −1 , xi ) =
у
і
y − y i −1 y i −1 − y i −2 1 ( i − ) де i =1,… xi − xi −2 xi − xi −1 xi −1 − xi −2
n (
Розділена різниця k-го порядку визначається через розділені різниці k-1) -го порядку по рекурентній формулі
y ( x1 , x 2 ,...x k +1 ) = =1,…
y ( x 2 , x3 , x 4 ...x k +1 ) − y ( x1 , x 2 , x3 ...x k ) , x k +1 − x1 n-1;
[ x1 ; x 2 ;...x k +1 ] = [ x 2 , x3 , x 4 ...x k +1 ] − [ x1 , x 2 , x3 ,...x k ] .
k aбо
x k +1 − x1
Наприклад,
k= 1
y ( x1 , x 2 ) =
[ x 2 ] − [ x1 ] y 2 − y1 = x 2 − x1 x 2 − x1
Лема. Хай x1, x2 ., xn довільні попарно неспівпадаючі вузли, в яких відомі значення функції y1, y2, yn. Алгебраїчний багаточлен ( n - 1) степені 50
Ln-1(x)= у(x1)+(x-x1) у(x1,x2)+ (x-x1)(x-x2)у(x1,x2,x3)+ (x-x1)(x-x2)…(x-xn-1) у(x 1,x2,x3,…xn) (2) є інтерполяційним, тобто Ln-1(xi)= у(xi), i = 1, n. Оскільки розділені різниці у(x 1), у(x 1; x2), …, у( x1; x2; …xn) це цілком певні числа то функція (2) є багаточленом (n-1)-й степені. Багаточлен (2) називається інтерполяційним багаточленом Ньютона для нерівних проміжків. Згідно твердженню, існує тільки один інтерполяційний багаточлен. Інтерполяційний багаточлен Лагранжа тотожно співпадає з інтерполяційним багаточленом Ньютона, тобто Ln-1(x)= ≡ Fn-1(x) У інтерполяційного багаточлена Лагранжа бачимо наочну його залежність від кожного значення функції y i, де i = 1, n. Це у багатьох випадках корисно. Проте при зміні n інтерполяційний багаточлен Лагранжа треба будувати наново. В цьому полягає його недолік. Інтерполяційний багаточлен Ньютона (2) виражається не через значення функції у, а через її розділені різниці. При зміні степеня n у інтерполяційного багаточлена Ньютона потрібно додати або відкинути відповідне число стандартних доданків, Це зручно на практиці і прискорює процес обчислень. Інтерполяційний багаточлен Ньютона можна записати у вигляді n
Ln −1 ( x) = ∑C i N i ( x), i =1
де N i ( x) = ( x − x1 )( x − x 2 )( x − x3 )...( x − x n −1 ), i=2,…n C i =[ x1 ; x 2 ;...x i ]; [ xi ] = y i ; i=2,…n N 1 ( x ) =1; 1 [ x1 ; x 2 ;...xi ] = ([ x 2 ; x3 ;...xi ] −[ x1 ; x 2 ;...xi −1 ]) xi − x1 При обчисленнях розділені різниці записуються у вигляді таблиці 4 xi x1
[xi] у(x1)
x2
у(x2)
[xi xi+1]
[xi;xi+1;xi+2]
[xi;xi+1;xi+2;xi+3]
Таблиця 4.1 [xi;xi+1;xi+2;xi+3;xi+4]
у(x1;x2) у(x1;x2;x3) у(x2;x3) x3
у(x3)
у(x1;x2;x3;x4) у(x2;x3;x4)
у(x3;x4) x4
у(x4)
у(x1;x2;x3;x4;x5) у(x2;x3;x4;x5)
у(x3;x4;x5) у(x4;x5)
x5
у(x5)
Програма використовує наступні змінні : Х0 – аргумент, при якому необхідно обчислити значення функції ; 51
(N-1) – ступінь багаточлена ; N – число експериментальних даних ; X(N),Y(N) – масиви, i = 1,N: I,K – параметри циклів ; L – значення багаточленів в крапці Х0 ; P і I1 – робочі змінні. Зауваження: розділені різниці заносяться в масив У. Блок-схема алгоритму представлена на рис. 18
Початок
X0, N I = 1, N X(1), Y(1)
L = Y(1) P =1 I = N - 1,1,-1 I1 = N - 1
K = 1, I Y(K) = Y(K +1) - Y(K))/(X(K + I1) - X(K)) P = P ⋅ (X0 + X(I1))
52 L = L + Y(I) ⋅ P Кiнець
L
Рис.18 3.3. Хибність інтерполяції Якщо функція f(x), яка підлягає інтерполяції, достатнє число разів диференцюєма, то можна вивести формулу для визначення хибності інтерполяції. Оцінка максимальної хибності інтерполяції на всьому відрізку [ а ; b ] : Mn max | ƒ(x) - Fn-1(x)| ≤ max | Wn-1(x)| ; [а,b] n! Mn = max | ƒ(n)(x) | < ∞ ; [а,b] Wn-1(x)= (x-x1)(x-x2)...(x-xn-1). 3.4. Багатоінтервальна інтерполяція Багатоінтервальна інтерполяція полягає в інтерполяції у(x) у ряді часткових інтервалів (які обмежені двома вузлами або групою вузлів) окремими поліномами невисокого ступеня. Така інтерполяція може застосовуватися при широкому загальному відрізку [а ; b], коли звичайна інтерполяція поліномом високого ступеня дає велику погрішність і веде до більшого часу обчислень. Помітимо також, що по вигляду полінома і значенням його коєфіціентів важко судити про вид залежності у(x). Сплайн - інтерполяця Сплайн-інтерполяція інтерполяції.
–
є
спеціальний 53
вид
багатоінтервальної
Визначення. Хай відрізок [ а ; b ] розбитий на ( N-1 ) рівних часткових відрізків [ xi, xi+1 ], де xi = а + ( i-1 ) h, i = 1, 2,..., N-1, x N = b ; x1 = а ; h = ( b - а ) / ( N-1 ). Сплайном назвається функція, яка разом з декількома похідними безперервна на всьому заданому відрізку [ xi ; xi+1 ] окремо є деяким многочленом алгебри. Максимальний по всіх часткових відрізках ступінь многочленів називається ступенем сплайна, а різниця між ступенем сплайна і порядком щонайвищої безперервної на [ а, b ] похідній – дефектом сплайна Наприклад, безперервна шматково – лінійна функція ( рис. 19 ) ( ламана ) є сплайном першому ступеню з дефектом, рівному одиниці, оскільки безперервна тільки сама функція ( нульова похідна ), а перша похідна вже розривна. На практиці найширше вживання одержали сплайны третьому ступеню, мають на [ а, b ] безперервну, принаймні, першу похідну. Ці сплайны називаються кубічними і позначаються через S3(x). Величина mi = S′3(xi) називається нахилом сплайна в точці ( вузлі ) xi. В загальному випадку сплайн задається глобальним способом, тобто з використанням всіх вузлів при будь-якому їх розташуванні. Розглянемо кубічний сплайн, заданий локальним способом. Це завдання реалізується порівняно просто і потрибує істотно меншого об'єму пам'яті ЕОМ, ніж при глобальному способі завдання. Кубічний сплайн, заданий локально – це інтерполююча функція у вигляді полінома третього ступеня, обчислювана по формулах : i = int (( b-a ) / h ) ; h = ( b-a ) / ( N-1) ; (xi+1-x)2(2(x-xi)+h) (x-xi) 2(2(xi+1-x)+h) S3(x)= ----------------------- yi + ----------------------- yi+1 + h3 h3 (xi+1-x)2(x-xi) (x-xi) 2(x-xi+1) + ----------------- mi - ---------------- mi+1 h2 h2 54
де mi, mi+1 – перші похідні S3(x). Похідні локального сплайна можуть задаватися двома способами. Спосіб 1. Похідні mi і mi+1 обчислюються за допомогою формул чисельного диференціювання по трьох крапках: mi=(yi+1-yi-1)/2h , i=2, ..., n-1 ; mi=(4y2-y3-3y1)/2h , i=1 ; mn=(3yn+yn-2-4yn-1)/2h , i=n . Спосіб зручний тим, що для завдання сплайна вимагається вводити лише ординати yi (значення mi обчислюються програмою). Для зменшення часу багатократних обчислень у(x) бажано заздалегідь обчислити масив mi і берегти його в пам'яті ЕОМ. Спосіб 2. Значення mi (обчислені окремо або одержані з графіка як нахили його у вузлах) задаються безпосередньо у вигляді масиву mi. Блок-схема алгоритму представлена на рис. 20. Примітка. Видачу результату здійснити з відповідними коментарями.
Рис. 19
55
Початок
Вирахування похiдних
X0, N, A, B M(1) = (4 ⋅ Y(2) − Y(3) − 3 ⋅ Y(1))/2/H
I =1, N
M(N) = (3 ⋅ Y(N) + Y(N − 2) − 4 ⋅ Y(N − 1))/2/H
I = 2, N - 1
X(1), Y(1)
M(I) = (Y( I + 1) − Y(I - 1))/2/H
H = ( B - A)/(N - 1)
Обчислення похiдних
Return
I = INT((X0 - A)/H)
Вирахування YO " кубiчний сплайн"
Обчислення YO “кубiчний сплайн”
Y0 = (x(I +1) - X0) ⋅ 2 ⋅ ( 2 ⋅ (X0 - X(I)) + H)/H ⋅ 3Y(I)
Y0 = Y0 +(X0 −X(I)) ⋅ 2 ⋅ (2 ⋅ (X(I +1) −X0) −X0) +H)/H ⋅ 3 ⋅ Y(I +1) Y0, X0 Кiнець
Y0 = Y0 +(X(I +1) −X0) ⋅ 2 ⋅ 2(X0 −X(1))/H ⋅ 2 ⋅ M(I) Y0 = Y0 −(X0 −X(I)) ⋅ 2 ⋅ (X0 −X(I +1))/H ⋅ 2 ⋅ M(I +1)
56
Return
Рис. 20
Форма Лагранжа
Форма Лагранжа N=3
N=2 x1 := −1
x2 := 6
y := y1 + ( y2 − y1) ⋅
y1 := 7 ( x − x1) ( x2 − x1)
y2 := −2
x := 3
−4.81
6 xi := 6.5 7
yi := −5.16
−6.35
n := length ( xi) − 1
y = 1.857
n
f ( x) :=
∑
i=0
n
yi ⋅ i
∏ if i
j =0
f ( 6.55) = −5.241
57
i := 0.. n
j, 1 ,
j := 0.. n
( x − xij) ( xii − xij)
ЛІТЕРАТУРА
1. Бронштейн И.Н., Семендяев К.А. Довідник по математиці. – М.: Наука, 1986. – 544 с.
2. Волков Е.А. Чисельні методи: Навчальний посібник для вузів. –.: Наука, 1987. – 248 с.
3. Дьяконов В.П., І.В. Абраменкова MathCad 8 PRO в математиці, фізиці та Internet. – М.: „Нолидж”, 1999., 512 с., іл..
4. Дьяконов В.П. Довідник по алгоритмах і програмах на мові Бейсік для ПЕОМ. – М.: „Наука”, 1987. – 240 с.
5. Кир’янов Д.В. MathCad 12. – СПб.: БХВ-Петербург, 2005. – 576 с.: іл.. 6. Сергованцев В.Т., Смирнов С.М. Збірка задач по обчислювальній техніці в інженерних і економічних розрахунках. – М.: ”Фінанси і статис тика”, 1985. – 160 с. 7. Черняк А.А., Новиков В.А., Мельников О.І., Кузнєцов А.В. Математика для економістів на базі MathCad. – СПб.: БХВ– Петербург, 2003. – 496 с.: іл..
58
Навчальне видання
МЕТОДИЧНІ ВКАЗІВКИ до виконання індивідуальних завдань по дисципліні «ЧИСЕЛЬНI МЕТОДИ» (для студентів усіх спеціальностей напрямку „Економічна кібернетика”) електронне видання
Укладачі:
Hаталья Алексеевна.КАЛІНЕНКО Світлана Михайлівна ТАНЧЕНКО
Авторське редагування Техн. Редактор
Т.М. Дроговоз
Оригінал - макет
І.В. Ширманова
59
Підписано до друку 4.10.07 Формат 60х84 1/16. Папір типогр. Гарнітура Times. Друк офсетний. Умов. друк. 0,9 арк. Обл.- вид. 1,5 арк . Тираж екз. Вид. № . Замов. № Ціна договірна. Видавництво Східноукраїнського національного університету імені Володимира Даля Свідоцтво про реєстрацію. Серія ДК №1620 від 18.12.2003. Адреса видавництва: 91034, м. Луганськ, кв. Молодіжний, 20а Телефон: 8(0642)41-34-12. Факс: 8(0642)41-31-60 E-mail: uni @ snu.edu.ua http:// www. snu.edu.ua
60