
- •Чисельні методи
- •Загальні положення
- •1 Операції з наближеними величинами
- •1.1 Основні терміни і визначення
- •1.2 Робота в MatLab
- •1.2.1 Інтерфейс MatLab
- •1.2.2 Сценарії
- •1.3 Теорія
- •1.3.1 Змінні. Символьні змінні
- •1.3.2 Частинна похідна в точці
- •1.3.3 Основні функції
- •1.4 Порядок виконання роботи а) Для функції №1 з табл.1.1 оцініть відносну та абсолютну похибку обчислення значень функції f в точці (a, b, c). Визначите кількість правильних знаків результату.
- •1.5 Приклад
- •2 Рішення систем лінійних алгебраїчних рівнянь
- •2.1 Теоретичні відомості
- •2.2 Робота в MatLab
- •2.2.1 Введення матриць до MatLab
- •2.2.3 Оператори MatLab
- •2.2.4 Розв’язок матриць стандартними засобами MatLab
- •2.3 Завдання
- •Варіанти завдань:
- •2.4 Приклад
- •2.4.1 Покроковий розв’язок за допомогою метода Гауса
- •2.4.2 Приклад функції, що реалізує зворотній хід методу Гауса
- •Лабораторна робота №3 розв’язок нелінійних рівняннь
- •3.1 Побудування графіка в Matlab
- •3.2 Розв’язок рівняннь засобами Matlab
- •3.3 Завдання до лабораторної работи
- •3.5 Контрольні питання
- •Лабораторна работа 4 Рішення нелінійних рівнянь
- •Варіанти завдання
- •Лабораторна робота № 5 Апроксимація функцій
- •5.1 Робота в Matlab
- •5.1.1. Функція polyfit(X, y, n) - Апроксимація даних поліномом
- •5.1.2. Polyval - Розрахунок полінома
- •5.1.3. Interpft - Апроксимація періодичної функції,
- •5.1.4. Spline - Інтерполяція функції однієї змінної кубічним сплайном
- •5.1.5. Diff - Розрахунок кінцевих різниць та наближене диференціювання
- •5.2 Короткі теоритичні відомості
- •5.2.1. Інтерполяційний многочлен Лагранжа
- •5.2.2. Таблиця різниць
- •5.2.3. Інтерполяційний многочлен Ньютона
- •5.3 Завдання до лабораторної роботи
- •Варіанти завдань
1.5 Приклад
// Текст програми l1:
syms a b c // оголошуємо символьні змінні
f=log((((a^3+b^2)*c)))^2*log(1+a*c^2)
a1-0.2556
b1=0.50078
c1=0.8
// введення абсолютних похибок
abs_a=0.0005
abs_b=0.00003
abs_c=0.013
// визначення відносних похибок
otn_a=abs_a/a1
otn_b=abs_b/b1
otn_c=abs_c/c1
// отримуєм частинні похідні у символьному виді
dfa=diff(f,a)
dfb=diff(f,b)
dfc=diff(f,c)
f1=subs(f,{a,b,c},{a1,b1,c1} // розраховуємо значення функції f у заданій точці
// розраховуємо значення частинних похідних функції f у заданій точці
u_a=subs(dfa,{a,b,c},{a1,b1,c1})
u_b=subs(dfb,{a,b,c},{a1,b1,c1})
u_c=subs(dfc{a,b,c}.{a1,b1,c1})
ABS=abs(u_a)*abs_a+abs(u_b)*abs_b+abs(u_c)*abs_c//абсолютна похибка функції f
OTN=ABS/abs(f1) // відносна похибка функції f
Результат розрахунків:
>>syms a b c
>> f=log((((a^3+b^2)*c)))^2*log(1+a*c^2)
f=
log((a^3+b^2)*c)^2*log(1+a*c^2)
>>a1=0.2556
a1=
0.2556
>>b1=0.50078
b1=
0.5008
>>c1=0.8
c1=
0.8000
>>abs_a=0.0005
abs_a=
5.0000e-004
>>abs_b=0.00003
abs_b=
3.0000e-005
>>abs_c=0.013
abs_c=
0.0130
>>otn_a=abs_a/a1
otn_a=
0.0020
>>otn_b=abs_b/b1
otn_b=
5.9907e-005
>>otn_c=abs_c/c1
otn_c=
0.0162
>>dfa=diff(f,a)
dfa=
6*log((a^3+b^2)*c)*log(1+a*c^2)*a^2/(a^3+b^2)+log((a^3+b^2)*c)^2*c^2/(1+a*c^2)
>>dfb=diff(f,b)
dfb=
4*log((a^3+b^2)*c)*log(1+a*c^2)*b/(a^3+b^2)
>>dfc=diff(f,c)
dfc=
2*log((a^3+b^2)*c)*log(1+a*c^2)/c+2*log((a^3+b^2)*c)^2*a*c/(1+a*c^2)
>>f1=subs(f,{a,b,c},{a1,b1,c1})
f1=
0.3602
>>u_a=subs(dfa,{a,b,c},{a1,b1,c1})
u_a=
0.9652
>>u_b=subs(dfb,{a,b,c},{a1,b1,c1})
u_b=
-1.7494
>>u_c=subs(dfc,{a,b,c}.{a1,b1,c1})
u_c=
0.2516
>>ABS=abs(u_a)*abs_a+abs(u_b)*abs_b+abs(u_c)*abs_c
ABS=
0.0038
>>OTN=ABS/abs(f1)
OTN=
0.0106
Висновок:
значення
функції у точці (0.2556;0.50078;0.8).
f(0.2556;0.50078;0.8)
=0.3602.
Абсолютна похибка функції: ABS=0.0038.
Відносна похибка функції: OTN=0.0106.
Кількість вірних цифр - дві, оскільки:
0.0038<0.5
,
тому дві цифри після коми вважають
вірними.
1.6 Зміст Звіта
Звіт з лабораторної роботи повинен містити:
мету роботи;
завдання на виконання роботи;
M-файл сценарія MatLab для обчислення відносної та абсолютної похибки обчислення функції;
M-файл сценарія MatLab для обчислення відносної та абсолютної похибки вихідних даних;
висновки.
2 Рішення систем лінійних алгебраїчних рівнянь
2.1 Теоретичні відомості
Матриця – прямокутний масив чисел, який упорядкований по рядкам і стовпцям.
Необхідною
і достатньою умовою існування єдиного
розв’язку системи лінійних рівнянь є
умова D
,
де D
– визначник
(детермінант) матриці:
=
,
де
індекси
пробігають усі можливі n!
переміщень номерів 1,2,…,n; k – число
інверсій у даній перестановці.
Поганообумовлені
матриці – матриці,
для яких невеликі похибки розрахунків
або вихідних даних можуть привести до
суттєвих похибок у розв’язку. Необхідною
умовою поганої обумовленості системи
лінійних рівнянь:
.
Вироджена матриця – матриця, визначник якої дорівнює нулю.
Прямі методи розв’язку лінійних систем – засоби, які використовують кінцеве відношення (формули) для розрахунку невідомих. Вони дають розв’язок після виконання заздалегідь відомого числа операцій.
Ітераційні методи – методи послідовних наближень.
Метод Гауса (прямий хід) :
З рівнянь
послідовно виключаються невідомі, тобто
вихідну систему призводять до вигляду,
у якому матриця коефіцієнтів стає
трикутною. Таке приведення базується
на к-кратному
застосуванні формули перерахування
коефіцієнтів:
по всім елементам матриці коефіцієнтів
з (i>k) і (j>k), k=1,2,…,(n-1) , де n-порядок
матриці.
У перерахуванні стовпець вільних членів необхідно розглядати як (n+1)–й стовпець зміненої матриці: тобто AX=B, створюється розширена матриця A\B.
Метод Гауса (обернений хід):
Полягає
у обчисленні невідомих, починаючи з
визначення із n-го рівняння матриці.
Вирішуючи останні рівняння, знаходимо
єдину невідому x
.
Далі, використовуючи це значення, із
попереднього рівняння розраховуємо
і.т.д.
Метод LU – розкладу:
Матриця А розкладається на добуток нижньої трикутної матриці L (lower) на головній діагоналі якої – одиниці, та верхньої трикутної матриці U (upper).
AX=B
LUX=B
Y=UX
LY=B
Y
UX=Y X