- •Запорізький національний технічний університет
- •Зміст та оформлення лабораторних робот
- •Лабораторна робота № 1 Рішення нелінійних рівнянь методами половинного розподілу та хорд
- •1.1 Мета роботи
- •1.2 Завдання на лабораторну роботу
- •Основні теоретичні відомості
- •1.3.2 Функції MatLab для рішення нелінійних рівнянь
- •Індивідуальні завдання до лабораторної роботи
- •1.5 Завдання на самостійну роботу
- •1.6 Контрольні питання
- •Лабораторна робота № 2 Рішення нелінійних рівнянь методами Ньютона та простих итерацій
- •2.1 Мета роботи.
- •2.2 Завдання на лабораторну роботу
- •2.3 Основні теоретичні відомості
- •2.3.2 Метод простої ітерації (метод послідовних повторень)
- •Індивідуальні завдання до лабораторної роботи
- •2.5 Завдання на самостійну роботу
- •2.6 Контрольні питання
- •Лабораторна робота №3 Тема: рішення систем лінійних алгебраїчних рівнянь
- •3.1 Мета роботи
- •3.2 Порядок виконання лабораторної роботи
- •3.3 Основні теоретичні відомості
- •3.3.1 Прямі методи і їх реалізація в пакеті MatLab
- •3.3.2 Ітераційні методи і їх реалізація в пакеті MatLab
- •Контрольні питання
- •Лабораторна робота №4 Тема: Побудова 3d- графіків у системі matlab
- •4.1 Мета роботи
- •4.2 Порядок виконання лабораторної роботи
- •4.3 Основні теоретичні відомості
- •Сохранение в файлах графических изображений matlab
- •4.5 Завдання на самостійну роботу
- •4.6 Контрольні питання
- •5 Лабораторна робота №5 Тема: Решение систем нелинейных уравнений
- •5.1 Мета роботи.
- •5.3.3 Метод простых итераций
- •Рішення систем нелінійних рівнянь за допомогою функції fsolve
- •5.4 Индивидуальные задания к лабораторной работе
- •5.5 Завдання на самостійну роботу
- •5.6 Контрольні питання
- •Список літератури
Зміст та оформлення лабораторних робот
Лабораторні роботи з дисципліни “ Обчислювальна техніка та програмування за фахом ” мають мету вивчення чисельних методів, які застосовуються при розв’язуванні інженерних задач за фахом, практичного закріплення знань з основ алгоритмізації та програмування, а також вивчення можливостей системи MatLab для розв’язання означених задач. Для виконання лабораторних робот передбачається використання знань, що отримані в курсах “Обчислювальна техніка та програмування” та “Вища математика”.
В умовах кредитно-модульної системи навчальна дисципліна “ Обчислювальна техніка та програмування за фахом ” у 3-ому семестрі відповідає: 32 годинам лабораторних робот та 38 годинам самостійної роботи.
По кожній лабораторній роботі оформлюється звіт, він мусить відповідати діючим стандартам ЗНТУ. Загальна структура звіту по лабораторній роботі винна бути такою:
тема роботи;
формулювання задачі;
ручний розрахунок за формулами алгоритму метода, що досліджується;
текст програми;
протокол розв’язування задачі (в вигляді скрипта) за допомогою: а) власних програм; б)команд та функцій системи MatLab;
протокол, що містить отриманні результати ;
висновки.
Лабораторна робота № 1 Рішення нелінійних рівнянь методами половинного розподілу та хорд
1.1 Мета роботи
Вивчення чисельних методів рішення нелінійних рівнянь та придбання практичних навиків роботи в системі MatLab.
1.2 Завдання на лабораторну роботу
Для виконання лабораторної роботи необхідно:
1. Вивчити алгоритми ітераційних методів(половинного розподілу та хорд).
2. Скласти програми-функції для знаходження коренів будь-якого нелінійного рівняння методами половинного розподілу та хорд з заданою точністю.
3. Виконати в MatLab індивідуальні завдання наведені в розділі 1.4 та завдання на самостійну роботу – розділ 1.5.
4. Зберегти результати роботи (програми, протоколи обчислень, графіки).
5. Скласти звіт.
Основні теоретичні відомості
Найбільш загальний вигляд нелінійного рівняння:
f(x)= 0, (1.1)
де
функція f(x) визначена і безперервна на
кінцевому або
Коренем рівняння називається таке значення , при якому . Корінь називається простим, якщо , інакше корінь називається кратним. Ціле число k називається кратністю кореня, якщо при x = разом з функцією дорівнюють нулю її похідні до (k-1|) порядку включно:
Постановка задачі обчислення наближеного значення кореня із точністю ε: знайти таке значення x, що .
Рішення задачі розбивається на два етапи: на першому етапі здійснюють локалізацію кореня, на другому етапі проводять ітераційне уточнення кореня. На етапі локалізації кореня знаходять достатньо вузькі відрізки (або відрізок, якщо корінь єдиний), які містять один і лише один корінь рівняння . На другому етапі обчислюють наближене значення кореня із заданою точністю. Часто замість відрізка локалізації досить вказати початкове наближення до кореня.
Методи ітераційного уточнення кореня
Метод бісекції (розподілу навпіл)
Нехай [а,b] – відрізок локалізації. Припустимо, що функція f(x) безперервна на [а,b] і на кінцях набуває значень різних знаків .
Алгоритм методу розподілу навпіл полягає в побудові послідовності вкладених відрізків, на кінцях яких функція набуває значень різних знаків. Кожен наступний відрізок отримують діленням навпіл попереднього. Опишемо один крок ітерацій методу. Нехай на k-ом кроці знайдений відрізок такий, що . Знайдемо середину відрізка . Якщо , то – корінь і задача вирішена. Якщо ні, то из двух половин відрізка вибираємо той, на кінцях якого функція має протилежні знаки:
, якщо ,
, якщо ,
Рисунок 1.1 – Метод розподілу навпіл
Критерій закінчення ітераційного процесу: якщо довжина відрізку локалізації менша , то ітерації припиняють і як значення кореня із заданою точністю приймають середину відрізка.
Теорема про збіжність методу бісекцій. Нехай функція f(x) безперервна на [а,b] і на кінцях набуває значень різних знаків . Тоді метод сходиться і справедлива оцінка погрішності: .
З останнього равенства легко отримати апріорну оцінку кількості кроків, необхідних для досягнення заданої точності:
звідки отримуємо
Приклад програми-функції, яка вирішує рівняння методом розподілу навпіл, наведений в Лістингу 1.1.
Лістинг 1.1. Файл Bisection|.m
function [x,k]=Bisection(f,a,b,eps)
%Data Input f – ім’я функції;
% a і b – ліва і права границі інтервалу локалізації;
% eps – точність;
%Data Output x – корінь;
% k – кількість ітерацій.
Ya= feval(f,a); yb= feval(f,b);
if ya*yb>0
error(‘[a, b] не є інтервалом локалізації’);
end;
k=0;
while abs(a-b)>eps
k=k+1; x=(a+b)/2; fx=feval(f,x);
if fx==0
break;
elseif fa*fx<0
b=x; fb=fx;
else
a=x; fa=fx;
end;
end;
Метод хорд
В деяких випадках декілька більшою швидкістю збіжності володіє метод хорд, у якого на другому етапі при виборі чергового наближення усередині відрізка, що містить корінь, враховується величина нев’язки на кінцях відрізка: точка вибирається ближче до того кінця, де нев’язка менша.
Геометричний
сенс полягає в заміні кривої
хордою. Чергове
наближення знаходиться
як точка пересічення хорди із
віссю
Рисунок 1.2 – Метод хорд
Якщо [a,b] – відрізок, що містить корінь, то рівняння хорди
Для
точки пересічення
хорди із
віссю
,
береться за чергове наближення до кореню. Далі вибирається той з проміжків, на кінцях якого функція має значення різних знаків, і т.д. При цьому, якщо функція і її друга похідна зберігають знак на даному проміжку, то отримані наближення сходитимуться до кореню монотонно. В цьому випадку у| всіх отриманих проміжків один кінець буде спільним, саме той, на якому збігаються знаки функції і другої похідної. Цей кінець називають нерухомим, а протилежний кінець відрізку приймають за початкове наближення до кореню. Нехай с – той з кінців відрізку , для якого виконується умова , а - початкове значення (протилежний кінець відрізку), тоді ітерації проводимо по формулі:
, k=0,1,2,…