Автор Тема: Обратная матрица на visual C++, метод Гаусса  (Прочитано 9247 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн MasterOfDizzaster

  • Новичок
  • *
  • Сообщений: 2
  • героинщик со стажем
    • Просмотр профиля
всем времени суток.
собственно, вопрос созвучен с самим сабжем. нужна именно та часть программы, которая этот алгоритм проводит (не могу его понять именно с математической  и теоретической  сороны, потому и прошу о помощи).
не написать полностью, хотя бы набросать основные моменты и расписать что, куда и в какое место вписывать.
заранее благодарю.
буквы.. и тут они

Оффлайн testtest

  • Старожил
  • ****
  • Сообщений: 376
    • Просмотр профиля
Re: Обратная матрица на visual C++, метод Гаусса
« Ответ #1 : 17 Января 2011, 13:10:42 »
допустим, мы хотим решить систему:
\( Ax = b \Rightarrow \begin{cases}
a_{11}x_1 + a_{12}x_2 + a_{13}x_3 = b_1\\ a_{21}x_1 + a_{22}x_2 + a_{23}x_3 = b_2\\ a_{31}x_1 + a_{32}x_2 + a_{33}x_3 = b_3
\end{cases} \)

мы идем дальше, и пишем так:
\(
\begin{cases}
a_{11}x_1 + a_{12}x_2 + a_{13}x_3 = e_{11}b_1 + e_{12}b_2 + e_{13}b_3\\ a_{21}x_1 + a_{22}x_2 + a_{23}x_3 = e_{21}b_1 + e_{22}b_2 + e_{23}b_3\\ a_{31}x_1 + a_{32}x_2 + a_{33}x_3 = e_{31}b_1 + e_{32}b_2 + e_{33}b_3
\end{cases}
 \)

где
\( e_{ij} = \begin{cases}1, i = j\\ 0, i \neq j\end{cases} \)
то есть единичная матрица

теперь, так как мы знаем, что \( A^{-1}A = E \) из за чего \( A^{-1}Ax = A^{-1}b \) а значит \( x = A^{-1}b \), то если нам удастся, сохраняя знаки равенства, "перенести" единичную матрицу влево, справа мы получим \( A^{-1}b \), то есть обратную матрицу.

гаусс тут при том, что преобразования делаются по его методу, то есть зануляются элементы, не находящиеся на главной диагонали.

вот пример:
\( \left(\begin{array}{cccccc}
3 & 1 & 5 & 1 & 0 & 0\\ 4 & 2 & -7 & 0 & 1 & 0\\ 6 & -3 & 4 & 0 & 0 & 1
\end{array}\right) \Rightarrow
\left(\begin{array}{cccccc}
3 & 1 & 5 & 1 & 0 & 0\\ 0 & 0.667 & -13.667 & -1.333 & 1 & 0\\ 0 & -5 & -6 & -2 & 0 & 1
\end{array}\right) \Rightarrow
\left(\begin{array}{cccccc}
3 & 0 & 25.5 & 3 & -1.5 & 0\\ 0 & 0.667 & -13.667 & -1.333 & 1 & 0\\ 0 & 0 & -108.5 & -12 & 7.5 & 1
\end{array}\right) \Rightarrow \)

\( \Rightarrow \left(\begin{array}{cccccc}
3 & 0 & 0 & 0.180 & 0.263 & 0.235\\ 0 & 0.667 & 0 & 0.178 & 0.055 & -0.126\\ 0 & 0 & -108.5 & -12 & 7.5 & 1
\end{array}\right) \Rightarrow \)

ну вот, осталось только разделить элементы каждой строки на соответствующее число слева

 

Помогите решить систему в бэйсике методом Гаусса-Зейделя

Автор Света3

Ответов: 0
Просмотров: 2591
Последний ответ 08 Октября 2011, 19:40:30
от Света3
Задача в бейсике, решить систему Гаусса-Зейделя

Автор Лопанова

Ответов: 1
Просмотров: 3612
Последний ответ 05 Октября 2011, 16:08:50
от tig81
Решение СЛУ методом Гаусса на С++

Автор keppler

Ответов: 0
Просмотров: 7857
Последний ответ 11 Ноября 2014, 16:14:30
от keppler
Мднф и Мкнф используя метод непосредственного преобразования

Автор Tankograd

Ответов: 0
Просмотров: 8116
Последний ответ 09 Января 2011, 19:12:43
от Tankograd
Метод простой итерации в MS Excel: ошибка в формуле

Автор lonesome_pirate

Ответов: 3
Просмотров: 4789
Последний ответ 06 Марта 2014, 19:41:34
от mad_math