МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА, кафедра “Захист інформації”
Звіт
з ЛАБОРАТОРНої РОБОТи № 5
З КУРСУ “Комп’ютерні методи досліджень”
НА ТЕМУ:
“МЕТОД НЬЮТОНА ДЛЯ РОЗВ’ЯЗУВАННЯ СИСТЕМ НЕЛІНІЙНИХ РІВНЯНЬ ”
Варіант 12
виконав:
ст. гр. ІБ-2
Львів – 2007
Завдання
до лабораторної роботи
Розв’яжіть систему нелінійних рівнянь одним із методів, вказаних викладачем, вибираючи за початкові наближення EMBED Microsoft Equation 3.0 . Ітерації проводити до збігу двох послідовних наближень з похибкою EMBED Microsoft Equation 3.0 .
12) EMBED Microsoft Equation 3.0 EMBED Microsoft Equation 3.0
Короткі теоретичні відомості
3. Модифікований метод Ньютона
При використанні стандартного методу Ньютона на кожній ітерації доводиться обчислювати новий якобіан EMBED Equation.3 , хоч зрозуміло, що при закінченні ітерацій він повинен прийняти стабільне значення EMBED Equation.3 , де EMBED Equation.3 –розв'язок. У модифікованому або спрощеному методі Ньютона якобіан EMBED Equation.3 заміняють правильно підібраною матрицею А. Звичайно, найкращим, але практично недосяжним варіантом була б заміна EMBED Equation.3 , де EMBED Equation.3 - розв'язок.
Але на практиці користуються компромісним рішенням:
– вибирають за А якобіан в початковій точці EMBED Equation.3 , a ітерації проводять за наступною формулою
EMBED Equation.3
– зберігають А протягом певного числа ітерацій;
– на певній r-й ітерації змінюють А, прирівнюючи її якобіану EMBED Equation.3 і з новим значенням знову виконують певне число ітерацій і т.д.
Отже, якобіан обчислюється тільки час від часу, за рахунок чого досягається економія машинного часу. Однак, збіжність методу при цьому стає практично лінійною.
Блок-схема
SHAPE Ch_h1=-f1(x0,y0)*f2y(x0,y0)+f2(x0,y0) *f1y(x0,y0);
Ch_k1=-f1x(x0,y0)*f2(x0,y0)+f2x(x0,y0) *f1(x0,y0);
Zn=f1x(x0,y0)*f2y(x0,y0)-f2x(x0,y0)*f1y(x0,y0);
H1=ch_h1/zn;
K1=ch_k1/zn;
Y1=y0+k1;
X1=x0+h1;
|x0-x1|>eps
|y0-y1|>eps
x1, x2
X0=x1;
K=k+1;
Таблиця ідентифікаторів констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення:
Z1Похідна df1 по dx1Z2Похідна df1 по dx2Z3Похідна df2 по dx1Z4Похідна df2 по dx2eпохибкаmain()Головна функція
Текст програми мовою C
#include <stdio.h>
#include <math.h>
#include <stdio.h>
main ()
{ double x1, x2,z1,z2,z3,z4,xp,xd,dx1,dx2,e=100000,f1,f2;
x1=-1; x2=1;
do{
f1=x1-(x1/(x1*x1+x2*x2))-0.4;
f2=x2-1.4-(x2/(x1*x1+x2*x2));
z1=1-(((x1*x1+x2*x2)*(x1*x1+x2*x2)-x1*2*x2)/(x1*x1+x2*x2)*(x1*x1+x2*x2));
z2=2*x2*x1/(x1*x1+x2*x2);
z3=2*x1*x2/(x1*x1+x2*x2)*(x1*x1+x2*x2);
z4=1-((x1*x1+x2*x2)-x2*2*x2/(x1*x1*x2*x2)*(x1*x1+x2*x2));
dx2=(z1*f2/z3-f1)/(z2-z4*z1/z3);
dx1=-(f1+z2*x2)/z1;
xp=x1; xd=x2; x1+=dx1; x2+=dx2;
} while ((x1-xp)>e && (x2-xd)>e);
printf ("rozvjazik:\n x1=%lf\nx2=%lf",x1,x2);
return 0;}
Результати роботи програми:
x1=1.38
x2= 1.58824
Висновок: На цій лабораторній роботі я ознайомився з методом ньютона для розв’язування систем нелінійних рівнянь.