ВУЗ:
Составители:
Рубрика:
68
nb=norm(b,inf); % Норма вектора правой части
r = b-A * x; % Расчет невязки начального приближения
p=r;% Направление движения
nr = norm (r,inf); % Норма невязки
resvec (1) = nr; % результирующий вектор невязок
for iter = 1 : maxit
B=dot(r,r);
alpha_k=B/dot(A*p,p); % Коэффициент альфа
alpha(iter)=alpha_k;% для графика alpha
x=x+alpha_k*p; % Новое приближение решения
r = r-alpha_k*A*p; % Расчет невязки нового приближения
nr = norm (r,inf); % Норма невязки
resvec (iter+1) = nr; % Результирующий вектор невязок
relres = nr / nb; % Достигнутая относительная норма невязки
if relres <= tol % Проверка условия окончания процесса
flag = 1;
break;
end
beta_k=dot(r,r)/B; % Коэффициент бета
beta(iter)=beta_k;
p=r+beta_k*p;% Новое направление
end
Решим различными методами систему, приведенную в главной про-
грамме (матрицу и вектор правой части, естественно, можно изменить, но все
рассматриваемые методы работают с положительно определенными матри-
цами). Решать систему будем до относительных кубических норм невязки,
равных 0.001. После запуска главной программы появляется меню (рис. 2.7).
Рис. 2.7. Меню
Выбираем первый пункт: Метод Ричардсона. В командном окне про-
грамма указывает номер эксперимента и предлагает ввести итерационный
параметр. Для рассматриваемой системы оптимальное значение итерацион-
ного параметра равно 0.1774.
Для других матриц итерационный параметр
необходимо подбирать.
Зададим tau=0.17
Эксперимент 1
Метод Ричардсона
Введите требуемую точность решения: 0.001
Введите максимальное число итераций: 1000
Введите итерационный параметр: 0.17
nb=norm(b,inf); % Норма вектора правой части
r = b-A * x; % Расчет невязки начального приближения
p=r;% Направление движения
nr = norm (r,inf); % Норма невязки
resvec (1) = nr; % результирующий вектор невязок
for iter = 1 : maxit
B=dot(r,r);
alpha_k=B/dot(A*p,p); % Коэффициент альфа
alpha(iter)=alpha_k;% для графика alpha
x=x+alpha_k*p; % Новое приближение решения
r = r-alpha_k*A*p; % Расчет невязки нового приближения
nr = norm (r,inf); % Норма невязки
resvec (iter+1) = nr; % Результирующий вектор невязок
relres = nr / nb; % Достигнутая относительная норма невязки
if relres <= tol % Проверка условия окончания процесса
flag = 1;
break;
end
beta_k=dot(r,r)/B; % Коэффициент бета
beta(iter)=beta_k;
p=r+beta_k*p;% Новое направление
end
Решим различными методами систему, приведенную в главной про-
грамме (матрицу и вектор правой части, естественно, можно изменить, но все
рассматриваемые методы работают с положительно определенными матри-
цами). Решать систему будем до относительных кубических норм невязки,
равных 0.001. После запуска главной программы появляется меню (рис. 2.7).
Рис. 2.7. Меню
Выбираем первый пункт: Метод Ричардсона. В командном окне про-
грамма указывает номер эксперимента и предлагает ввести итерационный
параметр. Для рассматриваемой системы оптимальное значение итерацион-
ного параметра равно 0.1774. Для других матриц итерационный параметр
необходимо подбирать. Зададим tau=0.17
Эксперимент 1
Метод Ричардсона
Введите требуемую точность решения: 0.001
Введите максимальное число итераций: 1000
Введите итерационный параметр: 0.17
68
Страницы
- « первая
- ‹ предыдущая
- …
- 66
- 67
- 68
- 69
- 70
- …
- следующая ›
- последняя »
