ВУЗ:
Составители:
Рубрика:
62
title('SOR-метод')% заголовок окна
xlabel ('Номер итерации');
ylabel ('Относительная норма невязки');
end
disp('Нажмите Enter')
pause
case 5 % Метод минимальных невязок
H=H+1;
fprintf(1,'\nЭксперимент %u\n', H)
disp('Метод минимальных невязок')
tol = input('Введите требуемую точность решения: ');
maxit = input('Введите максимальное число итераций: ');
[x,flag,relres,iter,resvec,t] = min_residual(A,b,tol,maxit,x0);
if flag == 0 % Решение не достигнуто
disp ('Решение не достигнуто')
fprintf(1, '\nДостигнута относительная норма невязки …
%e за %u итераций\n', relres, iter)
end
if flag == 1 % Решение достигнуто
disp ('Решение достигнуто')
fprintf(1, '\nДостигнута
относительная норма невязки …
%e за %u итераций\n', relres, iter)
disp('Решение методом минимальных невязок');
x
figure;
subplot(2,1,1);
% График изменения относительной нормы невязки
semilogy (0:iter, resvec / norm (b,inf))
grid on;
title('Метод минимальных невязок')% заголовок окна
xlabel ('Номер итерации');
ylabel ('Относительная норма невязки');
subplot(2,1,2);
plot(1:iter,t);
grid on;
xlabel ('Номер итерации');
ylabel ('Итерационный параметр');
end
disp('Нажмите Enter')
pause
case 6 % Метод сопряженных градиентов
H=H+1;
fprintf(1,'\nЭксперимент %u\n', H)
disp('Метод сопряженных градиентов')
tol = input('Введите требуемую точность решения: ');
maxit = input('
Введите максимальное число итераций: ');
[x,flag,relres,iter,resvec,alpha,beta] =
con_grad(A,b,tol,maxit,x0);
if flag == 0 % Решение не достигнуто
disp ('Решение не достигнуто')
fprintf(1, '\nДостигнута относительная норма невязки …
%e за %u итераций\n', relres, iter)
end
if flag == 1 % Решение достигнуто
disp ('Решение достигнуто')
fprintf(1, '\nДостигнута относительная норма невязки …
%e за %u итераций\n', relres, iter)
disp('Решение методом сопряженных градиентов');
x
figure;
subplot(3,1,1);
% График изменения относительной нормы невязки
semilogy(0:iter, resvec / norm (b,inf))
grid on
title('SOR-метод')% заголовок окна
xlabel ('Номер итерации');
ylabel ('Относительная норма невязки');
end
disp('Нажмите Enter')
pause
case 5 % Метод минимальных невязок
H=H+1;
fprintf(1,'\nЭксперимент %u\n', H)
disp('Метод минимальных невязок')
tol = input('Введите требуемую точность решения: ');
maxit = input('Введите максимальное число итераций: ');
[x,flag,relres,iter,resvec,t] = min_residual(A,b,tol,maxit,x0);
if flag == 0 % Решение не достигнуто
disp ('Решение не достигнуто')
fprintf(1, '\nДостигнута относительная норма невязки …
%e за %u итераций\n', relres, iter)
end
if flag == 1 % Решение достигнуто
disp ('Решение достигнуто')
fprintf(1, '\nДостигнута относительная норма невязки …
%e за %u итераций\n', relres, iter)
disp('Решение методом минимальных невязок');
x
figure;
subplot(2,1,1);
% График изменения относительной нормы невязки
semilogy (0:iter, resvec / norm (b,inf))
grid on;
title('Метод минимальных невязок')% заголовок окна
xlabel ('Номер итерации');
ylabel ('Относительная норма невязки');
subplot(2,1,2);
plot(1:iter,t);
grid on;
xlabel ('Номер итерации');
ylabel ('Итерационный параметр');
end
disp('Нажмите Enter')
pause
case 6 % Метод сопряженных градиентов
H=H+1;
fprintf(1,'\nЭксперимент %u\n', H)
disp('Метод сопряженных градиентов')
tol = input('Введите требуемую точность решения: ');
maxit = input('Введите максимальное число итераций: ');
[x,flag,relres,iter,resvec,alpha,beta] =
con_grad(A,b,tol,maxit,x0);
if flag == 0 % Решение не достигнуто
disp ('Решение не достигнуто')
fprintf(1, '\nДостигнута относительная норма невязки …
%e за %u итераций\n', relres, iter)
end
if flag == 1 % Решение достигнуто
disp ('Решение достигнуто')
fprintf(1, '\nДостигнута относительная норма невязки …
%e за %u итераций\n', relres, iter)
disp('Решение методом сопряженных градиентов');
x
figure;
subplot(3,1,1);
% График изменения относительной нормы невязки
semilogy(0:iter, resvec / norm (b,inf))
grid on
62
Страницы
- « первая
- ‹ предыдущая
- …
- 60
- 61
- 62
- 63
- 64
- …
- следующая ›
- последняя »
