ІКТА / КБ-24 / Інформаційні технології Лах Ю.В. / IT Звіт №3 Войтович О.О
.docxМІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
З В І Т
до лабораторної роботи № 3
з курсу: «ІНФОРМАЦІЙНІ ТЕХНОЛОГІЇ»
Варіант № 2
Виконав: ст. гр. КБ-24
Войтович О. О.
Прийняв: Крет Т.Б.
Львів – 2018
Мета роботи – навчитись використовувати середовище МАТЛАБ для реалізації методу простої ітерації.
ЗАВДАННЯ
Методом простої ітерації обчислити квадратний корінь із — значення функції при (k – номер варіант) із відносною похибкою ε =1%. При обчисленнях використовувати рекурентну формулу для із [3, с.30]:
Визначити число N необхідних ітерацій для одержання результату (з заданою відносною похибкою ε) при таких значеннях нульових наближень (x0) : 1, 10, 50, 100, 200, 1000, 10000. Обчислення похибки здійснювати за такою формулою:
Провести перевірку правильності обчислень в Ms Excel/LibreOffice Calc.
Код програми
k=2;
z=k+7;
e=0.01;
a=k*(z^3)+(k-1)^2;
n=0;
X1=1;
Xn_plus_1=1/2*(X1+a/X1);
while abs(X1-Xn_plus_1)>e
X1=Xn_plus_1;
Xn_plus_1=1/2*(X1+a/X1);
Sqrt=Xn_plus_1;
p=abs((Xn_plus_1-X1)/Xn_plus_1)*100;
if(((Xn_plus_1-X1)/Xn_plus_1)*0.01<e)
n=n+1;
end;
end;
fprintf('При x нульове =1\n');
fprintf('a=%.3f\n',a);
fprintf('Корінь квадратний числа а=%.3f\n',Sqrt);
fprintf( 'Кількість ітерацій = ( %i )\n', n);
fprintf('Похибка=%.3f\n',p);
fprintf('\n');
k=2;
z=k+7;
e=0.01;
a=k*(z^3)+(k-1)^2;
n=0;
X10=10;
Xn_plus_1=1/2*(X10+a/X10);
while abs(X10-Xn_plus_1)>e
X10=Xn_plus_1;
Xn_plus_1=1/2*(X10+a/X10);
Sqrt=Xn_plus_1;
p=abs((Xn_plus_1-X10)/Xn_plus_1)*100;
if(((Xn_plus_1-X10)/Xn_plus_1)*0.01<e)
n=n+1;
end;
end;
fprintf('При x нульове =10\n');
fprintf('a=%.3f\n', a);
fprintf('Корінь квадратний числа а=%.3f\n',Sqrt);
fprintf( 'Кількість ітерацій = ( %i )\n', n);
fprintf('Похибка=%.3f\n',p);
fprintf('\n');
k=2;
z=k+7;
e=0.01;
a=k*(z^3)+(k-1)^2;
n=0;
X50=50;
Xn_plus_1=1/2*(X50+a/X50);
while abs(X50-Xn_plus_1)>e
X50=Xn_plus_1;
Xn_plus_1=1/2*(X50+a/X50);
Sqrt=Xn_plus_1;
p=abs((Xn_plus_1-X50)/Xn_plus_1)*100;
if(((Xn_plus_1-X50)/Xn_plus_1)*0.01<e)
n=n+1;
end;
end;
fprintf('При x нульове =50\n');
fprintf('a=%.3f\n',a);
fprintf('Корінь квадратний числа а=%.3f\n',Sqrt);
fprintf( 'Кількість ітерацій = ( %i )\n', n);
fprintf('Похибка=%.3f\n',p);
fprintf('\n');
k=2;
z=k+7;
e=0.01;
a=k*(z^3)+(k-1)^2;
n=0;
X100=100;
Xn_plus_1=1/2*(X100+a/X100);
while abs(X100-Xn_plus_1)>e
X100=Xn_plus_1;
Xn_plus_1=1/2*(X100+a/X100);
Sqrt=Xn_plus_1;
p=abs((Xn_plus_1-X100)/Xn_plus_1)*100;
if(((Xn_plus_1-X100)/Xn_plus_1)*0.01<e)
n=n+1;
end;
end;
fprintf('При x нульове =100\n');
fprintf('a=%.3f\n',a);
fprintf('Корінь квадратний числа а=%.3f\n',Sqrt);
fprintf( 'Кількість ітерацій = ( %i )\n', n);
fprintf('Похибка=%.3f\n',p);
fprintf('\n');
k=2;
z=k+7;
e=0.01;
a=k*(z^3)+(k-1)^2;
n=0;
X200=200;
Xn_plus_1=1/2*(X200+a/X200);
while abs(X200-Xn_plus_1)>e
X200=Xn_plus_1;
Xn_plus_1=1/2*(X200+a/X200);
Sqrt=Xn_plus_1;
p=abs((Xn_plus_1-X200)/Xn_plus_1)*100;
if(((Xn_plus_1-X200)/Xn_plus_1)*0.01<e)
n=n+1;
end;
end;
fprintf('При x нульове =200\n');
fprintf('a=%.3f\n',a);
fprintf('Корінь квадратний числа а=%.3f\n',Sqrt);
fprintf( 'Кількість ітерацій = ( %i )\n', n);
fprintf('Похибка=%.3f\n',p);
fprintf('\n');
k=2;
z=k+7;
e=0.01;
a=k*(z^3)+(k-1)^2;
n=0;
X1000=1000;
Xn_plus_1=1/2*(X1000+a/X1000);
while abs(X1000-Xn_plus_1)>e
X1000=Xn_plus_1;
Xn_plus_1=1/2*(X1000+a/X1000);
Sqrt=Xn_plus_1;
p=abs((Xn_plus_1-X1000)/Xn_plus_1)*100;
if(((Xn_plus_1-X1000)/Xn_plus_1)*0.01<e)
n=n+1;
end;
end;
fprintf('При x нульове =1000\n');
fprintf('a=%.3f\n',a);
fprintf('Корінь квадратний числа а=%.3f\n',Sqrt);
fprintf( 'Кількість ітерацій = ( %i )\n', n);
fprintf('Похибка=%.3f\n',p);
fprintf('\n');
k=2;
z=k+7;
e=0.01;
a=k*(z^3)+(k-1)^2;
n=0;
X10000=10000;
Xn_plus_1=1/2*(X10000+a/X10000);
while abs(X10000-Xn_plus_1)>e
X10000=Xn_plus_1;
Xn_plus_1=1/2*(X10000+a/X10000);
Sqrt=Xn_plus_1;
p=abs((Xn_plus_1-X1000)/Xn_plus_1)*100;
if(((Xn_plus_1-X10000)/Xn_plus_1)*0.01<e)
n=n+1;
end;
end;
fprintf('При x нульове =10000\n');
fprintf('a=%.3f\n',a);
fprintf('Корінь квадратний числа а=%.3f\n',Sqrt);
fprintf( 'Кількість ітерацій = ( %i )\n', n);
fprintf('Похибка=%.3f\n',p);
Результат виконання роботи
При x нульове =1
a=1459.000
Корінь квадратний числа а=38.197
Кількість ітерацій = ( 8 )
Похибка=0.000
При x нульове =10
a=1459.000
Корінь квадратний числа а=38.197
Кількість ітерацій = ( 5 )
Похибка=0.000
При x нульове =50
a=1459.000
Корінь квадратний числа а=38.197
Кількість ітерацій = ( 3 )
Похибка=0.000
При x нульове =100
a=1459.000
Корінь квадратний числа а=38.197
Кількість ітерацій = ( 4 )
Похибка=0.001
При x нульове =200
a=1459.000
Корінь квадратний числа а=38.197
Кількість ітерацій = ( 5 )
Похибка=0.001
При x нульове =1000
a=1459.000
Корінь квадратний числа а=38.197
Кількість ітерацій = ( 7 )
Похибка=0.011
При x нульове =10000
a=1459.000
Корінь квадратний числа а=38.197
Кількість ітерацій = ( 11 )
Похибка=0.011
Результати роботи в Excel
Висновок
Під час виконання даної лабораторної роботи я навчився використовувати середовище МАТЛАБ для реалізації методу простої ітерації.