ВУЗ:
Составители:
Рубрика:
64
можно, с использованием невязки предыдущего приближения. Затем нахо-
дится невязка нового приближения. Причем, невязка находится даже в тех
методах (Якоби, Зейделя, последовательной верхней релаксации), в которых
она не применяется для формирования нового приближения. Это позволяет
сравнивать разные методы по величине нормы невязки. Далее вычисляется
отношение кубических норм невязки и вектора правой
части, которое ис-
пользуется для проверки критерия окончания итерационного процесса.
В функции
richardson, реализующей метод Ричардсона, использует-
ся дополнительный входной параметр
tau – итерационный параметр.
Функция имеет вид:
function [x,flag,relres,iter,resvec] = richardson (A,b,tol,maxit,x0, tau)
% Метод Ричардсона
%ПЕРЕДАВАЕМЫЕ ЗНАЧЕНИЯ
% A,b – Матрица и вектор правой части (соответственно)
% tol - требуемая точность (относительно нормы невязки)
% tau - итерационный параметр
% maxit - Максимальное число итераций
% x0 - Начальное приближение
%ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
% x - вектор решения
% flag - признак достижения решения (flag = 1, если достигнута точность tol
% в пределах числа итераций maxit; flag = 0, если за число итераций
% maxit точность tol не достигнута)
% relres - достигнутая относительная норма невязки
% iter - Число проделанных итераций
% resvec - Вектор полученных невязок
%
x = x0;
flag = 0;
nb=norm(b,inf); %Норма вектора правой части
r = b - A * x; %Расчет невязки начального приближения
nr = norm (r,inf); % Норма невязки
resvec (1) = nr; % результирующий вектор невязок
for iter = 1 : maxit
x = x + tau * r; %Вычисление очередного приближения
r = b - A * x; % Расчет невязки очередного приближения
nr = norm (r,inf); % Норма невязки
resvec (iter+1) = nr; % результирующий вектор невязок
relres = nr / nb; % Достигнутая относительная норма невязки
if relres <= tol % Проверка условия окончания процесса
flag = 1;
break;
end
end
Функция jacobi, реализующая метод Якоби, имеет вид:
function [x,flag,relres,iter,resvec] = jacobi (A,b,tol,maxit,x0)
% Метод Якоби
%ПЕРЕДАВАЕМЫЕ ЗНАЧЕНИЯ
% A,b – Матрица и вектор правой части (соответственно)
% tol - требуемая точность (относительно нормы невязки)
% maxit - Максимальное число итераций
можно, с использованием невязки предыдущего приближения. Затем нахо-
дится невязка нового приближения. Причем, невязка находится даже в тех
методах (Якоби, Зейделя, последовательной верхней релаксации), в которых
она не применяется для формирования нового приближения. Это позволяет
сравнивать разные методы по величине нормы невязки. Далее вычисляется
отношение кубических норм невязки и вектора правой части, которое ис-
пользуется для проверки критерия окончания итерационного процесса.
В функции richardson, реализующей метод Ричардсона, использует-
ся дополнительный входной параметр tau – итерационный параметр.
Функция имеет вид:
function [x,flag,relres,iter,resvec] = richardson (A,b,tol,maxit,x0, tau)
% Метод Ричардсона
%ПЕРЕДАВАЕМЫЕ ЗНАЧЕНИЯ
% A,b – Матрица и вектор правой части (соответственно)
% tol - требуемая точность (относительно нормы невязки)
% tau - итерационный параметр
% maxit - Максимальное число итераций
% x0 - Начальное приближение
%ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
% x - вектор решения
% flag - признак достижения решения (flag = 1, если достигнута точность tol
% в пределах числа итераций maxit; flag = 0, если за число итераций
% maxit точность tol не достигнута)
% relres - достигнутая относительная норма невязки
% iter - Число проделанных итераций
% resvec - Вектор полученных невязок
%
x = x0;
flag = 0;
nb=norm(b,inf); %Норма вектора правой части
r = b - A * x; %Расчет невязки начального приближения
nr = norm (r,inf); % Норма невязки
resvec (1) = nr; % результирующий вектор невязок
for iter = 1 : maxit
x = x + tau * r; %Вычисление очередного приближения
r = b - A * x; % Расчет невязки очередного приближения
nr = norm (r,inf); % Норма невязки
resvec (iter+1) = nr; % результирующий вектор невязок
relres = nr / nb; % Достигнутая относительная норма невязки
if relres <= tol % Проверка условия окончания процесса
flag = 1;
break;
end
end
Функция jacobi, реализующая метод Якоби, имеет вид:
function [x,flag,relres,iter,resvec] = jacobi (A,b,tol,maxit,x0)
% Метод Якоби
%ПЕРЕДАВАЕМЫЕ ЗНАЧЕНИЯ
% A,b – Матрица и вектор правой части (соответственно)
% tol - требуемая точность (относительно нормы невязки)
% maxit - Максимальное число итераций
64
Страницы
- « первая
- ‹ предыдущая
- …
- 62
- 63
- 64
- 65
- 66
- …
- следующая ›
- последняя »
