Метод гаусса vba excel
Программированию нельзя научить, можно только научится
Главная » Уроки по Численным методам » Урок 15. Решение СЛУ методом Крамера и методом Гаусса.
Метод Крамера
(СЛУ)
- определитель системы
Если определитель СЛУ отличен от нуля, тогда решение системы определяется однозначно по формулам Крамера:
, , ()
где:
Для этого в столбец, где стоит переменная х, а значит в первый столбец, вместо коэффициентов при х, ставим свободные коэффициенты, которые в системе уравнений стоят в правых частях уравнений | |
| Для этого в столбец, где стоит переменная y (2 столбец), вместо коэффициентов при y, ставим свободные коэффициенты, которые в системе уравнений стоят в правых частях уравнений |
Для этого в столбец, где стоит переменная z, а значит втретий столбец, вместо коэффициентов при z, ставим свободные коэффициенты, которые в системе уравнений стоят в правых частях уравнений |
Задание 1. Решить СЛУ с помощью формул Крамера в Excel
Ход решения
1. Запишем уравнение в матричном виде:
2. Введите матрицу А и В в Excel.
3. Найдите определитель матрицы А. Он должен получится равным 30.
4. Определитель системы отличен от нуля, следовательно - решение однозначно определяется по формулам Крамера.
5. Заполните значения dX, dY, dZ на листе Excel (см.рис.ниже).
6. Для вычисления значений dX, dY, dZ в ячейки F8, F12, F16 необходимо ввести функцию, вычисляющую определитель dX, dY, dZ соответственно.
7. Для вычисления значения X в ячейку I8 необходимо ввести формулу =F8/B5 (по формуле Крамера dX/|A|).
8. Самостоятельно введите формулы для вычисления Y и Z.
Задание 2: самостоятельно найти решение СЛУ методом Крамера:
Формулы Крамера и матричный метод решения систем линейных уравнений не имеют серьезного практического применения, так как связаны с громоздкими выкладками. Практически для решения систем линейных уравнений чаще всего применяется метод Гаусса.
Метод Гаусса
Процесс решения по методу Гаусса состоит из двух этапов.
1. Прямой ход: система приводится к ступенчатому (в частности, треугольному) виду.
Для того чтобы решить систему уравнений выписывают расширенную матрицу этой системы
и над строками этой матрицы производят элементарные преобразования, приводя ее к виду, когда ниже главной диагонали будут располагаться нули.
Разрешается выполнять элементарные преобразования над матрицами.
С помощью этих преобразований каждый раз получается расширенная матрица новой системы, равносильной исходной, т.е. такой системы, решение которой совпадает с решением исходной системы.
2. Обратный ход: идет последовательное определение неизвестных из этой ступенчатой системы.
Пример. Установить совместность и решить систему
Решение.
Прямой ход: Выпишем расширенную матрицу системы и поменяем местами первую и вторую строки для того, чтобы элемент равнялся единице (так удобнее производить преобразования матрицы).
.
Имеем Ранги матрицы системы и ее расширенной матрицы совпали с числом неизвестных. Согласно теореме Кронекера-Капелли система уравнений совместна и решение ее единственно.
Обратный ход: Выпишем систему уравнений, расширенную матрицу которой мы получили в результате преобразований:
Итак, имеем .
Далее, подставляя в третье уравнение, найдем .
Подставляя и во второе уравнение, получим .
Подставляя в первое уравнение найденные получим .
Таким образом, имеем решение системы .
Решение СЛУ методом Гаусса в Excel:
В тексте будет предлагаться ввести в диапазон ячеек формулу вида: и т.п., это так-называемые «формулы массива». Microsoft Excel автоматически заключает ее в фигурные скобки ( < >). Для введения такого типа формул необходимо выделить весь диапазон, куда нужно вставить формулу, в первой ячейке ввести формулу без фигурных скобок (для примера выше – =A1:B3+$C$2:$C$3) и нажать Ctrl+Shift+Enter.
Пускай имеем систему линейных уравнений:
1. Запишем коэффициенты системы уравнений в ячейки A1:D4 а столбец свободных членов в ячейки E1:E4. Если в ячейке A1 находится 0, необходимо поменять строки местами так, чтоб в этой ячейке было отличное от ноля значение. Для большей наглядности можно добавить заливку ячеек, в которых находятся свободные члены.
2. Необходимо коэффициент при x1 во всех уравнениях кроме первого привести к 0. Для начала сделаем это для второго уравнения. Скопируем первую строку в ячейки A6:E6 без изменений, в ячейки A7:E7 необходимо ввести формулу: <=A2:E2-$A$1:$E$1*(A2/$A$1)>. Таким образом мы от второй строки отнимаем первую, умноженную на A2/$A$1, т.е. отношение первых коэффициентов второго и первого уравнения. Для удобства заполнения строк 8 и 9 ссылки на ячейки первой строки необходимо использовать абсолютные (используем символ $).
3. Копируем введенную формулу формулу в строки 8 и 9, таким образом избавляемся от коэффициентов перед x1 во всех уравнениях кроме первого.
5. Осталось привести коэффициент при x3 в четвертом уравнении к 0, для этого вновь проделаем аналогичные действия: скопируем полученные 11, 12 и 13-ю строки (только значения) в строки 16-18, а в ячейки A19:E19 введем формулу <=A14:E14-$A$13:$E$13*(C14/$C$13)>. Таким образом реализуется разность строк 14 и 13, умноженных на коэффициент C14/$C$13. Не забываем проводить перестановку строк, чтоб избавиться от 0 в знаменателе дроби.
6. Прямая прогонка методом Гаусса завершена. Обратную прогонку начнем с последней строки полученной матрицы. Необходимо все элементы последней строки разделить на коэффициент при x4. Для этого в строку 24 введем формулу .
7. Приведем все строки к подобному виду, для этого заполним строки 23, 22, 21 следующими формулами:
23: – отнимаем от третьей строки четвертую умноженную на коэффициент при x4 третьей строки.
22: – от второй строки отнимаем третью и четвертую, умноженные на соответствующие коэффициенты.
21: – от первой строки отнимаем вторую, третью и четвертую, умноженные на соответствующие коэффициенты.
Результат (корни уравнения) вычислены в ячейках E21:E24.
Пускай имеем систему линейных уравнений:
1. Запишем коэффициенты системы уравнений в ячейки A1:D4 а столбец свободных членов в ячейки E1:E4 . Если в ячейке A1 находится 0, необходимо поменять строки местами так, чтоб в этой ячейке было отличное от ноля значение. Для большей наглядности можно добавить заливку ячеек, в которых находятся свободные члены. (скриншот)
2. Необходимо коэффициент при x1 во всех уравнениях кроме первого привести к 0. Для начала сделаем это для второго уравнения. Скопируем первую строку в ячейки A6:E6 без изменений, в ячейки A7:E7 необходимо ввести формулу: <=A2:E2-$A$1:$E$1*(A2/$A$1)>. Таким образом мы от второй строки отнимаем первую, умноженную на A2/$A$1, т.е. отношение первых коэффициентов второго и первого уравнения. Для удобства заполнения строк 8 и 9 ссылки на ячейки первой строки необходимо использовать абсолютные (используем символ $). (скриншот)
3. Копируем введенную формулу формулу в строки 8 и 9, таким образом избавляемся от коэффициентов перед x1 во всех уравнениях кроме первого. (скриншот)
5. Осталось привести коэффициент при x3 в четвертом уравнении к 0, для этого вновь проделаем аналогичные действия: скопируем полученные 11, 12 и 13-ю строки (только значения) в строки 16-18, а в ячейки A19:E19 введем формулу <=A14:E14-$A$13:$E$13*(C14/$C$13)>. Таким образом реализуется разность строк 14 и 13, умноженных на коэффициент C14/$C$13 . Не забываем проводить перестановку строк, чтоб избавиться от 0 в знаменателе дроби. (скриншот)
6. Прямая прогонка методом Гаусса завершена. Обратную прогонку начнем с последней строки полученной матрицы. Необходимо все элементы последней строки разделить на коэффициент при x4. Для этого в строку 24 введем формулу . (скриншот)
UPDATE от 25 апреля 2012 г. Выкладываю xls-файл с решением линейных уравнений методом Гаусса в Microsoft Excel: Показать ссылку
Читайте также: