- •Запорізький національний технічний університет
- •Зміст та оформлення лабораторних робот
- •Лабораторна робота № 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 Контрольні питання
- •Список літератури
4.6 Контрольні питання
Загальна метода побудови графіків функцій двух змінних в системі MatLab.
Головні функції побудови троьхмірних графіків (mesh, surf, plot3).
Формат функції plot3 для візуалізації параметрически заданої лінії.
Яким чином можливо змінити кольорове оформлення графіка поверхні в MatLab?
Що означає поняття – лінії рівня функції? Як побудувати поверхню, що складаїться із ліній рівня?
Можливості оформлення графіка поверхні в MatLab? Редагування?
5 Лабораторна робота №5 Тема: Решение систем нелинейных уравнений
5.1 Мета роботи.
Вивчення чисельних методів рішення систем нелінійних рівнянь та придбання практичних навиків по реалізації цих методів в MatLab.
5.2 Порядок виконання лабораторної роботи
Постановка задачи.
Скласти відповідні програми-функції методів Якобі та Зейделя.
Виконати в MatLab індивідуальні завдання наведені в розділі 5.4.
Скласти звіт.
5.3 Основні теоретичні відомості
5.3.1 Постановка задачи
В общем случае система нелинейных уравнений записывается в виде:
, где - функции действительных переменных .
Для удобства запишем последнюю систему в виде операторного уравнения F(x)=0, где
х = ; F(x) = .
Для решения систем используются те же методы, что и для уравнений с одной переменной.
5.3.2 Метод Ньютона
Итерационный процесс для решения нелинейного уравнения методом Ньютона проводим по формуле:
xi+1 = xi - f(xi)/f'(xi).
Для решения системы нелинейных уравнений итерационная формула метода Ньютона:
,
где - матрица Якоби.
Примечание. Когда применяется функция от нескольких переменных, тогда должны использоваться частные производные. Обобщением «производной» для системы функций от нескольких переменных является матрица Якоби.
Предположим, что и - функции от независимых переменных x и y, тогда их матрица Якоби J(x,y) имеет вид
В итерационной формуле Ньютона для решения систем нелинейных уравнений на каждом шаге требуется обращение матрицы Якоби функций . Расчетную формулу можно переписать в неявном виде:
.
Применение последней формулы предполагает решение линейной алгебраической системы относительно вектора поправки затем .
Таким образом, решение системы нелинейных уравнений методом Ньютона сводится к многократному решению системы линейных уравнений с пересчетом значений элементов ее матрицы и вектора правых частей.
Пример 5.3. Найти методом Ньютона решение системы:
исходя из начального приближения .
F(x(0))=(-0.25, -3.25, -3.0).
;
;
.
Просчитайте самостоятельно еще одну итерацию.
Ниже приведены программы, которые решают эту задачу в среде MatLab.
function [y,w]=fun(x)
y=[x(1)^2+x(2)^2+x(3)^2-1;
2*x(1)^2+x(2)^2-4*x(3);
3*x(1)^2-4*x(2)+x(3)^2];
w(1,1)=2*x(1); w(1,2)=2*x(2); w(1,3)=2*x(3);
w(2,1)=4*x(1); w(2,2)=2*x(2); w(2,3)=-4;
w(3,1)=6*x(1); w(3,2)=-4; w(3,3)=2*x(3);
end
function r=norm(x)
r=0;
for i=1:length(x)
r=r+x(i)^2;
end
r=sqrt(r);
end
function [x1,k]=newt3(x0,eps)
[y,w]=fun(x0);
x1=x0-w^-1*y;
k=0;
while norm(x1-x0)>eps & k<5
x0=x1;
[y,w]=fun(x0);
x1=x0-w^-1*y;
k=k+1;
end
Листинг файла-скрипта test3.m
x=[0.5;0.5;0.5];
[x1,iter]=newt3(x,1e-6)
Результаты работы test3.m в командном окне:
>> test3
x1 =0.7852
0.4966
0.3699
iter = 4