Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
кафедра ЗІ
З В І Т
до лабораторної роботи №3
з курсу:“ Інформаційні технології ”
на тему:“ Застосування методу простої ітерації ”
Варіант №11
Мета роботи - навчитись використовувати середовище МАТЛАБ для реалізації методу простої ітерації.
ЗАВДАННЯ
У всіх завданнях k – номер варіанту (наданий викладачем або остання цифра номера залікової книжки студента).
Завдання. Методом простої ітерації обчислити квадратний корінь із — значення функції при із відносною похибкою ε =1%. При обчисленнях використовувати рекурентну формулу для із [3, с.30]:
Провести перевірку правильності обчислень в Ms Excel.
Скрипт-файл
fprintf('Xn=1\n');
k=11;
z=k+7;
a=k*(z^3)+(k-1)^2;
pohybka=0.01;
Xn=1;
n=0;
Xn_plus_1=1/2*(Xn+a/Xn);
while abs(Xn-Xn_plus_1)>pohybka
Xn=Xn_plus_1;
Xn_plus_1=1/2*(Xn+a/Xn);
Korin=Xn_plus_1;
pohubka=abs((Xn_plus_1-Xn)/Xn_plus_1)*100;
if(((Xn_plus_1-Xn)/Xn_plus_1)*0.01<pohybka)
n=n+1;
end;
end;
fprintf('a=%.3f\n',a);
fprintf('Korin=%.3f\n',Korin);
fprintf('pohubka=%.8f',pohubka);
fprintf('%%\n')
fprintf( 'n = %i \n', n);
fprintf('Xn=10\n');
k=11;
z=k+7;
a=k*(z^3)+(k-1)^2;
pohybka=0.01;
Xn1=10;
n=0;
Xn_plus_1=1/2*(Xn1+a/Xn1);
while abs(Xn1-Xn_plus_1)>pohybka
Xn1=Xn_plus_1;
Xn_plus_1=1/2*(Xn1+a/Xn1);
Korin=Xn_plus_1;
pohubka=abs((Xn_plus_1-Xn1)/Xn_plus_1)*100;
if(((Xn_plus_1-Xn1)/Xn_plus_1)*0.01<pohybka)
n=n+1;
end;
end;
fprintf('Korin=%.3f\n',Korin);
fprintf('pohubka=%.8f',pohubka);
fprintf('%%\n')
fprintf( 'n = %i \n', n);
fprintf('Xn=50\n')
k=11;
z=k+7;
a=k*(z^3)+(k-1)^2;
pohybka=0.01;
Xn2=50;
n=0;
Xn_plus_1=1/2*(Xn2+a/Xn2);
while abs(Xn2-Xn_plus_1)>pohybka
Xn2=Xn_plus_1;
Xn_plus_1=1/2*(Xn2+a/Xn2);
Korin=Xn_plus_1;
pohubka=abs((Xn_plus_1-Xn2)/Xn_plus_1)*100;
if(((Xn_plus_1-Xn2)/Xn_plus_1)*0.01<pohybka)
n=n+1;
end;
end;
fprintf('Korin=%.3f\n',Korin);
fprintf('pohubka=%.8f',pohubka);
fprintf('%%\n')
fprintf( 'n = %i \n', n);
fprintf('Xn=100\n')
k=11;
z=k+7;
a=k*(z^3)+(k-1)^2;
pohybka=0.01;
Xn3=100;
n=0;
Xn_plus_1=1/2*(Xn3+a/Xn3);
while abs(Xn3-Xn_plus_1)>pohybka
Xn3=Xn_plus_1;
Xn_plus_1=1/2*(Xn3+a/Xn3);
Korin=Xn_plus_1;
pohubka=abs((Xn_plus_1-Xn3)/Xn_plus_1)*100;
if(((Xn_plus_1-Xn3)/Xn_plus_1)*0.01<pohybka)
n=n+1;
end;
end;
fprintf('Korin=%.3f\n',Korin);
fprintf('pohubka=%.8f',pohubka);
fprintf('%%\n')
fprintf( 'n = %i \n', n);
fprintf('Xn=200\n')
k=11;
z=k+7;
a=k*(z^3)+(k-1)^2;
pohybka=0.01;
Xn4=200;
n=0;
Xn_plus_1=1/2*(Xn4+a/Xn4);
while abs(Xn4-Xn_plus_1)>pohybka
Xn4=Xn_plus_1;
Xn_plus_1=1/2*(Xn4+a/Xn4);
Korin=Xn_plus_1;
pohubka=abs((Xn_plus_1-Xn4)/Xn_plus_1)*100;
if(((Xn_plus_1-Xn4)/Xn_plus_1)*0.01<pohybka)
n=n+1;
end;
end;
fprintf('Korin=%.3f\n',Korin);
fprintf('pohubka=%.8f',pohubka);
fprintf('%%\n')
fprintf( 'n = %i \n', n);
fprintf('Xn=1000\n')
k=11;
z=k+7;
a=k*(z^3)+(k-1)^2;
pohybka=0.01;
Xn5=1000;
n=0;
Xn_plus_1=1/2*(Xn5+a/Xn5);
while abs(Xn5-Xn_plus_1)>pohybka
Xn5=Xn_plus_1;
Xn_plus_1=1/2*(Xn5+a/Xn5);
Korin=Xn_plus_1;
pohubka=abs((Xn_plus_1-Xn5)/Xn_plus_1)*100;
if(((Xn_plus_1-Xn5)/Xn_plus_1)*0.01<pohybka)
n=n+1;
end;
end;
fprintf('Korin=%.3f\n',Korin);
fprintf('pohubka=%.8f',pohubka);
fprintf('%%\n')
fprintf( 'n = %i \n', n);
fprintf('Xn=10000\n')
k=11;
z=k+7;
a=k*(z^3)+(k-1)^2;
pohybka=0.01;
Xn6=10000;
n=0;
Xn_plus_1=1/2*(Xn6+a/Xn6);
while abs(Xn6-Xn_plus_1)>pohybka
Xn6=Xn_plus_1;
Xn_plus_1=1/2*(Xn6+a/Xn6);
Korin=Xn_plus_1;
pohubka=abs((Xn_plus_1-Xn6)/Xn_plus_1)*100;
if(((Xn_plus_1-Xn6)/Xn_plus_1)*0.01<pohybka)
n=n+1;
end;
end;
fprintf('Korin=%.3f\n',Korin);
fprintf('pohubka=%.8f',pohubka);
fprintf('%%\n')
fprintf( 'n = %i \n', n);
Результат роботи програми MatLab
Xn=1
a=64252.000
Korin=253.480
pohubka=0.00001920%
n = 11
Xn=10
Korin=253.480
pohubka=0.00000033%
n = 8
Xn=50
Korin=253.480
pohubka=0.00055662%
n = 5
Xn=100
Korin=253.480
pohubka=0.00031917%
n = 4
Xn=200
Korin=253.480
pohubka=0.00000748%
n = 3
Xn=1000
Korin=253.480
pohubka=0.00001255%
n = 5
Xn=10000
Korin=253.480
pohubka=0.00046076%
n = 8
Скріншот від обчислень в Excel
/
Висновки: на цій лабораторній роботі я навчився використовувати середовище МАТЛАБ для реалізації методу простої ітерації. Також я встановив, що кількість ітерацій найменша при початковому наближенні, яке знаходиться найближче до значення кореня.