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

Практичне заняття 5. Обчислення означених інтегралів у системі matlab

У MATLAB-програмі означений інтеграл обраховано точним методом і трьома наближеними. Обраховано відносні похибки інтегрування.

%*******************************************************************

%***** Evaluation of integral означений***************************

%*******************************************************************

clear; format long;

xmin=-0; xmax=4; n=100; h=(xmax-xmin)/n;

x=xmin:h:xmax;

f=x.*x-1; %f=sin(x); %f=tan(x);

plot(x,f); grid;

%*** Newton-Leibniz formula ************************************

InNL=(xmax.^3/3-xmax)-(xmin.^3/3-xmin),

%InNL=funint(xmax)-funint(xmin),

%InNL=-cos(xmax)+cos(xmin),

%InNL=-log(cos(xmax))+log(cos(xmin)),

%*** Rectangle metod *********************************************

InRL=h*sum(f(1:n)), erRL=abs((InRL-InNL)/InNL),

InRR=h*sum(f(2:n+1)), erRR=abs((InRR-InNL)/InNL),

%*** Trapezium metod *********************************************

InT=h*((f(1)+f(n))/2+sum(f(2:n-1))), erT=abs((InT-InNL)/InNL),

%*** Adaptive Simpson metod ************************************

F='x.*x-1'; [InS,NbEval]=quad(F,xmin,xmax),

%[InS,NbEval]=quad(@fun,xmin,xmax),

%[InS,NbEval]=quad('x.*x-1',xmin,xmax),

%[InS,NbEval]=quad('sin(x)',xmin,xmax),

%[InS,NbEval]=quad('tan(x)',xmin,xmax),

erS=abs((InS-InNL)/InNL),

%**** Content of the file fun.m ************************************

%function y=fun(x); y=x.*x-1;

%**** Content of the file funint.m *********************************

%function y=funint(x); y=x.^3./3-x;

Після перших операторів, що очищують робочу область пам’яті та задають формат виводу чисел в командне вікно, утворено вектор x значень аргументу в інтервалі інтегрування та вектор f відповідних значень підінтегральної функції. Передбачено три різні функції. Графік функції в інтервалі інтегрування виведено у графічне вікно з координатною сіткою (рис. 15).

Наступний блок програми обраховує точне значення інтеграла за формулою Ньютона-Лейбніца. Для функції x2-1 показано, як використати первісну функцію funint, записану в окремому файлі з іменем funint.m. Вміст цього файла – в самому кінці програми.

В подальших трьох блоках обраховано наближені значення інтеграла за трьома методами. Для метода прямокутників (5.2) є два різновиди формули: зі значенням функції у лівому та у правому кінці кожного елемента. Далі записана формула трапецій (5.3). За адаптивним методом Сімпсона (5.4) обчислює інтеграл MATLAB-функція quad. Для функції x2-1 показано використання стрічкових змінних з текстовим описом функції та функції з іменем fun, записаної в окремому файлі з іменем fun.m. Вміст цього файла – в кінці програми. У кожному блоці обчислено відносну похибку інтегрування.

Значення інтегралів та відносні похибки виведено в командне вікно (дивись таблицю 1).

Таблиця 1. Результати обрахунку означених інтегралів для параболічної підінтегральної функції.

InNL = 17.33333333333333

InRL = 17.01440000000000

erRL = 0.01840000000000

InRR = 17.65440000000000

erRR = 0.01852307692308

InT = 16.74076800000000

erT = 0.03418646153846

InS = 17.33333333333333

NbEval = 5

erS = 0

Лабораторна робота 5. Обчислення означених інтегралів у системі MATLAB.

1.  Набрати в системі MATLAB та відлагодити текст програми порівняльного обчислення означеного інтеграла.

2.  Дослідити похибки інтегрування трьома методами для трьох функцій. Пояснити, чому похибка обрахунку означеного інтеграла за методом Сімпсона для підінтегральної функції x2-1 рівна нулю.

3.  Дослідити вплив кількості кроків інтегрування n на величини похибок. Пояснити, чому n не впливає на похибку за методом Сімпсона.

4.  Пояснити всі оператори MATLAB-програми.

Контрольні завдання до розділу 5

1. Чому потрібні числові методи обрахунку означених інтегралів?

2. Вивести формули прямокутників і трапецій.

3. В чому полягає некоректність диференціювання?

4. Чому похибка обрахунку означеного інтеграла за методом Сімпсона для підінтегральної функції x2-1 рівна нулю?

Розділ 6. Розв’язування нелінійних рівнянь

Навколишній світ є суцільно нелінійним. Будь-яке явище, процес, система є неминуче нелінійними або містять нелінійні складові. Формулювати та розв’язувати нелінійні математичні моделі значно складніше, ніж лінійні. Тому потужним математичним засобом є заміна нелінійних задач їх лінійним наближенням. Однак така заміна – це завжди спрощення дійсності, тому лінеаризація повинна застосовуватись дуже обережно, з врахуванням та обгрунтуванням її обмеженого застосування.

Фундаментальним критерієм лінійності є принцип суперпозиції (накладання). Якщо реакція об’єкта на суму впливів є сумою реакцій на кожний вплив зокрема, то об’єкт можна вважати лінійним. Невиконання цього критерія засвідчує нелінійність об’єкта. Отже, лінеаризація повинна супроводжуватись перевіркою за принципом суперпозиції.

Лінеаризація часто не вдається. Тоді треба розв’язувати нелінійні задачі.

У СЛАР невідомі лише множаться на елементи матриць та додаються. Тому для СЛАР принцип суперпозиції виконується, на відміну від нелінійних алгебричних та трансцендентних рівнянь (від латинського transcendens – що виходить за межі). Почнемо їх розгляд з нелінійного рівняння з одним невідомим, загальний запис якого такий:

f(x)=0; ; (6.1) де f(x) – нелінійна неперервна функція, що може бути степеневим поліномом (алгебричне рівняння) або містити тригонометричні, показникові, логариф­мічні і т.п. функції (трансцендентне рівняння).

Рівняння (6.1) на [a,b] може мати кілька розв’язків, на відміну від лінійного рівняння. На жаль, знайти розв’язки рівняння (6.1) аналітично можна лише у виключних випадках (наприклад, формула Вієта для квадрат­ного рівняння). Тому створені числові пошукові ітераційні методи. Спільним для цих методів є попередня оцінка розв’язку, щоб задати початковий відрізок, в якому він знаходиться, або точку початкового наближення.

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

На кінцях початкового відрізка [a,b] знаки функції f(x) різні. З двох половинних відрізків [a,(a+b)/2] та [(a+b)/2,b] треба вибрати другий, бо саме там функція змінює знак. Далі поділ навпіл продовжується на відрізку [(a+b)/2,b]. Послідовні наближення припиняються, коли довжина відповідного відрізка стане меншою заданої точності.

Метод простий та надійний, але повільно збігається до розв’язка.

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

Запишемо цей процес математичними співвідношеннями. Рівняння прямої, що на k-му кроці проходить через точки з координатами (xk–1f(xk–1)) та (xkf(xk)), можна записати як рівність відношень приростів функції і аргумента:

. (6.2)

Координати точки перетину цієї прямої з віссю абсцис: y=0; x=xk+1. Підставимо ці значення в рівняння (6.2) і розв’яжемо його відносно xk+1:

. (6.3)

Формула (6.3) є ітераційною формулою метода січних. Треба лише пам’ятати, що на кожному кроці вибираємо з відрізків [xk–1xk+1] і [xk+1xk] той, на кінцях якого функція має різні знаки. Процес пошуку розв’язку завершується, коли модуль приросту аргументу |xk+1xk| стане меншим заданої точності.

Єдиним недоліком метода січних порівняно з методом половинного ділення є більша кількість обчислень на кроці. Втім, кроків значно менше.

Найменше кроків має метод Ньютона (метод дотичних).

Цей метод є чи не найменшим з усього грандіозного наукового спадку геніального англійського математика, фізика, філософа кінця 17-го – початку 18-го сторіч Ісаака Ньютона (Isaak Newton), який, народившись у незаможній фермерській родині, завдяки таланту та наполегливій праці заслужив такий напис на надгробку у Вестмінстерському абатстві: „Тут упокоївся сэр Ісаак Ньютон, який майже божественою силою свого розуму вперше пояснив за допомогою свого математичного методу рух і форми планет, шляхи комет, припливи та відпливи океану. Він перший дослідив різноманіття світлових променів і випливаючі звідси особливості кольорів ... Нехай смертні радіють, що серед них жила така прикраса людського роду”. Щоправда, текст епітафії написав та узгодив сам Ньютон за кілька років до смерті.

Ітерації за методом Ньютона ілюструє рис. 18.

Дотична до графіка функції в початковій точці х0 перетинає вісь абсцис у точці х1, яка є початковою для наступної ітерації.

Виведемо ітераційну формулу. Рівняння дотичної на k-му кроці:

. (6.4)

Точка перетину дотичної з віссю абсцис має координати: y=0; x=xk+1. Підставимо ці значення в рівняння (6.4) і розв’яжемо його відносно xk+1:

. (6.5)

Формула (6.5) є ітераційною формулою метода Ньютона. Критерій завершення ітерацій такий самий, як в методі січних.

Загалом кількість ітерацій в десятки разів менша, ніж за методом половинного ділення, і в кілька разів менша, ніж за методом січних. Однак ітераційний процес (6.5) не завжди збігається до розв’язку, а лише якщо початкове наближення достатньо близьке до нього. Це – значний недолік метода. Ще один недолік – громіздке обчислення похідної f ′(x) на кожній ітерації.

Можна зменшити вагу останнього недоліка, якщо обчислювати похідну один раз на кілька ітерацій (модифікований метод Ньютона). Але тоді зростає кількість ітерацій.

Швидко збігається без обчислення похідної метод простої ітерації (метод послідовних наближень). Рівняння (6.1) еквівалентно перетворимо:

x=φ(x); (6.6)

де φ(x)≡xf(x), τ≠0 – дійсний параметр.

М ожливий графік допоміжної функції φ(x) показано на рис. 19. Очевидно, розв’язками рівняння (6.6), а значить (6.1), є координати точок перетину графіка функції φ(x) з прямою y=x, в яких виконується рівність (6.6).

Ітераційний процес наближення до розв’язку описує формула (6.7):

xk+1=φ(xk). (6.7)

Критерій завершення ітерацій такий самий, як в методі січних.

На рис. 19 показано графічно ітераційні наближення до розв’язку x2, по­чинаючи з точки x0. Разом з тим неважко перевірити графічними побудовами, що до розв’язків x1 та x3 ітераційний процес ніколи не збігається.

Умова збіжності до розв’язку має вигляд:

|(x)/dx|<1 в околі розв’язку. (6.8)

Можна домогтись збіжності до будь-якого розв’язку, підбираючи параметр τ в (6.6), але це значно ускладнює метод. Загалом умова збіжності (6.8) є значним недоліком метода, бо можуть бути розв’язки, до яких метод не збігається за будь-яких початкових умов.

Інтерполяційні методи полягають в інтерполяції функції f(x) в рівнянні (6.1) степеневим поліномом першого або другого степеня, для яких є прості формули коренів. До речі, лінійний інтерполяційний метод збігається з методом січних (спробуйте показати це самі). Очевидно, добре наближення можливе на невеликому інтервалі, тому інтерполяційні методи комбінують з іншими методами. Наприклад, спочатку інтервал, де знаходиться розв’язок, звужують методом половинного ділення, а потім застосовують інтерполяційний метод. В такому разі можна значно позбутись повільної збіжності метода половинного ділення і зберегти його надійність і простоту. Відповідні програми є найкращими з відомих.

Описані методи можна поширити на пошук комплексних розв’язків, якщо задавати комплексні початкові умови.

Перейдемо до числових методів розв’язування систем нелінійних рівнянь з багатьма невідомими, загальний запис яких такий:

(6.9)

За методом простої ітерації систему (6.9) еквівалентно перетворимо:

Нехай задано початкову точку (а1а2,...,аn). Тоді вектор невідомих можна обрахувати так:

(6.10)

Далі знайдений вектор (х1х2,...,хn) вважаємо початковим для наступної ітерації та повторюємо обрахунок (6.10). Ітераційний процес припиняється, коли зміна вектора на ітерації стане достатньо малою.

Метод є простим, але його теорія є складною. Головні недоліки методу – значна кількість ітерацій та ймовірне існування розв’язків, до яких ітерації не збігаються.

Набагато швидше збігається до розв’язків метод Ньютона.

Для одного нелінійного рівняння f(x)=0 формулу ітерацій за Ньютоном можна отримати розкладом f(x) в ряд Тейлора в початковій точці, обмежившись лінійними членами розкладу: f(xk+1)≈f(xk)+df(xk)/dx∙(xk+1xk)=0. Звідси одразу маємо формулу (6.5). Застосуємо цю ідею до системи (6.9).

Розкладемо функції рівнянь (6.9) в ряди Тейлора в початковій точці а=(а1а2,...,аn) і обмежимось лінійними членами розкладу:

де Δxk=xkak., а всі частинні похідні обчислені в точці (а1а2,...,аn).

Отримали СЛАР відносно приростів Δxk, (k=1,…,n):

(6.11)

В матричному записі системи (6.11) JΔx=–f матрицю J з елементами Jij=fi/xj називають якоб’яном на честь знаменитого німецького математика першої половини 19-го сторіччя Карла Якобі (Carl Gustav Jacobi). Його рідний старший брат Борис Семенович Якобі (Moritz Hermann Jacobi) замолоду переїхав до Росії, де став знаменитим фізиком, російським академіком, винайшов гальванопластику, один з перших електродвигунів, і пережив брата на 23 роки.

Отже, за методом Ньютона наступне наближення x=ax, де вектор Δx є розв’язком системи (6.11). Далі знайдений вектор x=(х1х2,...,хn) вважаємо початковим для наступної ітерації, складаємо та розв’язуємо систему (6.11). Ітераційний процес припиняється, коли вектор Δx на ітерації стане достатньо малим.

Поряд зі швидкою збіжністю метод Ньютона має недоліки: початкова точка повинна бути досить близькою до розв’язка і обрахунок якоб’яна на кожному кроці є громіздким. Останній недолік можна зменшити, якщо обчислювати якоб’ян раз на кілька кроків (модифікований метод Ньютона). Але тоді зростає кількість кроків.