ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »