Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОМ_лаб_укр.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

5.2. Алгоритмічна та програмна реалізація метода Ньютона-Рафсона (для системи 3-х нелінійних рівнянь з трьома невідомими)

…

Var E: real;

k,i:integer;

x0,x,F,Dx: array [1..3] of real;

DF: array [1..3,1..3] of real;

Label M,M1;

Procedure FUNKC;

Begin

F[1]:=x[1]+x[1]*x[1]-2*x[2]*x[3]-0.1;

F[2]:=x[2]+x[2]*x[2]+3*x[1]*x[3]+0.2;

F[3]:=x[3]+x[3]*x[3]+2*x[1]*x[2]-0.3;

End;

Begin

<введення вихідних даних>

k:=0;

for i:=1 to 3 do

x[i]:=x0[i];

FUNKC;

M1: DF[1,1]:=1+2*x[1];

DF[1,2]:=-2*x[3];

DF[1,3]:=-2*x[2];

DF[2,1]:=3*x[3]; DF[2,2]:=1-2*x[2];

DF[2,3]:=3*x[1];

DF[3,1]:=2*x[2]; DF[3,2]:=2*x[1];

DF[3,3]:=1+2*x[3];

GAUSS(DF,F,Dx);

for i:=1 to 3 do

x[i]:=x[i]+Dx[i];

FUNKC;

if (F[1]<=E) and (F[2]<=E) and

(F[3]<=E) then goto M;

k:=k+1;

goto M1;

M: <виведення результатів>

…

Примітки:

  1. Програма реалізує розв’язання нелінійної системи рівнянь, яка розглянута у прикладі;

  2. Для розв’язання лініаризованої системи рівнянь можна використати процедуру GAUSS, яка реалізує метод Гауса і розроблена на занятті № 2;

  3. Процедура FUNKC обчислює нев’язки рівнянь системи при чергових значеннях наближень невідомих;

  4. Використовуються масиви: x0 i x - вектори початкових і чергових наближень невідомих, F - вектор нев’язок рівнянь,

Dx - вектор поправок до невідомих, DF - матриця Якобі.

5.3. Порядок виконання роботи

Виконати пункти 1…8 і п.10 завдання Заняття № 4 (розділ 4.3), застосувавши для розв’язання заданої СНАР метод Ньютона-Рафсона. Порівняти методи розв’язання СНАР.

Результати виконання кожного пункту завдання викласти у звіті по роботі.

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

на основі наведеного фрагменту.

Заняття № 6

Розробка програми інтерполяції функцій

Мета роботи: Закріплення знань із застосування інтерполяційних формул, розробка комп’ютерної програми на мові Pascal, яка реалізує інтерполяційну формулу Лагранжа, застосування її для розв’язання індивідуального завдання.

6.1. Теоретичні відомості

Інтерполяція застосовується до функцій, які задані таблично, або які мають складні аналітичні вирази і обчислення Їх значень при довільному значенні аргумента на заданому відрізку неможливе або занадто складне.

При цьому виконується приблизна заміна таких функцій функцією простої структури.

Спрощена задача інтерполяції функції однієї змінної полягає у наступному. Функція задана таблично, тобто на відрізку [а,в] задано (n+1) точку х0, х1, х2,….., хn і відомі значення функції у цих точках:

, , ……, .

x

x0

x1

x2

...

xn

y

y0

y1

y2

..

yn


Необхідно визначити функцію F(x), яка в точках хі має ті ж значення, що і

функція f(x), тобто:

, (6.1)

Т очки хі (і=0, …, n) називаються вузлами інтерполяції, функція F(x) -інтерполююча функція. Графічно це означає , що крива у=F(x) повинна проходити через задану систему точок Mi (xi, yi), і=0,…n, тобто в цих точках вона повинна співпадати із функцією .

Y yn

y1 y2

f(x) F(x)

y0

x0 x1 x2 xn X

Для забезпечення однозначності розв’язання задачі інтерполяції, функцію F(x) можна вибрати у вигляді полінома Pn(x) ступеня не вищого n, який задовольняє умовам (6.1):

, , …, . (6.2)

Цей інтерполюючий поліном Pn(x) зазвичай використовується для приблизного обчислення значень функції f(x) при значеннях х, відмінних від заданих вузлів інтерполяції хі (і=0,….n).

У цьому занятті для інтерполяції функції використовується інтерполяційний поліном Лагранжа:

(6.3)

де x0, x1, ..., xі, ... xn - задані вузли інтерполяції,

y0, y1, ... .yі, … .yn - відомі значення функції, що інтерполюється , у

цих вузлах.

При заданому (n+1) вузлі інтерполяції, що довільно розташовані на відрізку [а, в], поліном Ln(х) повинен мати в цих точках ті ж значення, що і функція, що інтерполюється :

L n(xi)=yi; i=0,1,…, n.

y

y=Ln(x)

y=f(x)

y0 y1 yn

x2

x

x0=а x1 y2 xn=b

Поліном Лагранжа має загальний характер, застосовується при довільному розташуванні вузлів інтерполяції на заданому відрізку [а, в].

При n=1 формули Лагранжа (6.3) перетворюється на рівняння прямої лінії, яка проходить через 2 точки:

.

у у

у0 у1 у0 у2

х1

х х

х0 х1 х0 х2

у1

При n=2 отримуємо рівняння параболи, яка проходить через 3 точки:

Приклад інтерполяції функції поліномом Лагранжа

Для функції y=cos сформувати інтерполяційний поліном Лагранжа, обравши вузли інтерполяції:

х0=0; х1=0,25; х2=0,5; х3=1.

Обчислюємо точні значення функції у вузлах інтерполяції:

Застосовуємо формулу (6.3) і отримуємо:

Сформований вираз є інтерполюючим поліномом Лагранжа для заданої функції y=cos .

Обчислимо значення поліному L3 у вузлах інтерполяції і порівняємо їх з точними значеннями:

Вузли інтерполяції

х

0

0,25

0,5

1

Задана функція

У

1

0.7071

0

-1

Інтерполяційний поліном

L3

1

0.7071

0.0001

-1

Значення функції, що інтерполюється, і інтерполюючого поліному у вузлах інтерполяції співпадають, тобто обидві криві проходять через задану систему точок.

Обчислимо значення функції і поліному L3 при значеннях х, що не співпадають з вузлами інтерполяції ( ):

х

0.1

0.2

0.3

0.35

0.4

0.55

0.6

0.7

0.85

0.9

у

0.9511

0.809

0.5878

0.454

0.309

-0.1564

-0.309

-0.5878

-0.8991

-0.9511

L3

0.9591

0.8121

0.5856

0.4508

0.308

-0.1546

-0.306

-0.5856

-0.8972

-0.959

0.8

0.31

-0.22

-0.71

-0.96

-1.15

-0.97

-0.37

0.7

0.79

Інтерполяційний поліном дає значення, що незначно (похибка ) відрізняються від точних. При збільшенні кількості заданих вузлів інтерполяцій n і, відповідно, порядку полінома Ln збільшується і точність результату.