- •Отчет по численнным методам
- •Содержание
- •Тема 2. «численное решение систем линейных алгебраических уравнений» 3
- •Тема 2. «численное решение систем линейных алгебраических уравнений» Постановка задачи
- •Прямые (точные) методы
- •Метод Гаусса:
- •Алгоритм метода Гаусса
- •Выбор главного элемента и перестановка уравнений
- •Итерационные методы
- •Метод простых итераций:
- •Метод Гаусса-Зейделя:
- •Алгоритм метода Гаусса-Зейделя
- •Листинг программ
- •Результаты
- •Список литературы
Метод Гаусса:
А) Прямой ход. Это приведение матрицы системы к треугольному виду.
Б) Обратный ход. Нахождение неизвестных.
Алгоритм метода Гаусса
n-количество уравнений.
Массивы: a(n,n)-коэффициенты системы; b(n)-свободные члены (правая часть уравнений); x(n)-решение системы.
Ввод n, a, b |
FOR k=1 TO n-1 |
В ыбор главного элемента и перестановка уравнений |
F OR i=k+1 TO n |
m =aik/akk |
F OR j=k+1 TO n |
aij=aij-m*akj |
bi=bi-m*bk |
x n=bn/ann |
F OR i=n-1 TO 1 шаг - 1 |
F OR j=i+1 TO n |
S=∑aij*xi |
xi=(bi-s)/aii |
Печать xi |
Прямой ход
Обратный ход
Выбор главного элемента и перестановка уравнений
g=k |
F OR i=k+1 TO n |
Если |aik|>|agk|, то g=i |
F OR j=k TO n |
z=agj; agj=akj; akj=z |
z=bg; bg=bk;bk=z |
Итерационные методы
Для сходимости итерационного процесса достаточно, чтобы модули диагональных элементов были > или = суммы модулей не диагональных элементов:
-
3,7
-2,5
3,2
6,5
0,5
1,7
0,3
-0,24
1,6
1,5
-2,3
4,3
Метод простых итераций:
А) Выразим х1, х2, х3 из уравнений главного определителя, тогда получим:
x1=(b1-a12x2-a13x3)/a11
x2=(b2-a21x1-a23x3)/a22
x3=(b3-a31x1-a32x2)/a33
Б) Зададим начальное (нулевое) приближение x1(0), x2(0), x3(0) . Подставляя их, получаем новое приближение.
В) Обозначим k-номер итерации, тогда для n уравнений итерационные формулы можно записать так:
xi(k)= (k-1))
Итерации проводятся до тех пор, пока не будет выполнено условие
|xi(k)-xi(k-1)|<e, i=1,2,… n.
Если условие не выполняется, итерации повторяются, приняв xi(k-1)= xi(k)
Метод Гаусса-Зейделя:
Этот метод представляет собой модификацию метода простых итераций, когда на k-той итерации при j<i xi уже вычислено на этой итерации, а расчетную формулу можно записать так:
xi(k)= (k)- (k-1))
Итерационный процесс продолжается до тех пор, пока не будет выполнено условие
|xi(k)-xi(k-1)|<e, i=1,2,… n.
Если условие не выполняется, итерации повторяются, приняв xi(k-1)= xi(k)
Алгоритм метода Гаусса-Зейделя
Ввод n, e, a, b, x |
Начало цикла |
FOR i=1 TO n |
FOR j=1 TO n |
S= |
Xk=(bi-s)/aii |
S1= |
Xi=xk |
Конец цикла, по условию s1<e |
Печать xi |
n-количество уравнений; e-точность; a(n,n)-массив коэффициентов; b(n)-массив свободных членов; x(n)-массив решения. Вводится начальное приближение x(n).
Далее переходим в редактор Visual Basic (Сервис – Макрос – Редактор Visual Basic, Вставка – Модуль) и набираем программы по приведенным в лекциях алгоритмам [1].