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