Как я могу решить систему линейных уравнений в Excel? - PullRequest
3 голосов
/ 12 февраля 2010

У меня есть система из 22 * ​​1001 * линейных уравнений (ровно 22 уравнения и 22 неизвестных), которые динамически генерируются в электронной таблице Excel. Есть ли способ заставить Excel решить систему и вывести значение для каждой из неизвестных переменных?

Другой вопрос SO содержит много полезной информации об алгоритмах, используемых для решения таких уравнений. Правило Крамера , в частности, выглядит многообещающе, но я не уверен, как реализовать его в Excel.

Любая помощь приветствуется!

Ответы [ 6 ]

10 голосов
/ 12 февраля 2010

Эта страница дает следующий простой метод:

  1. Введите матрицу коэффициентов в nxn диапазон.

  2. Введите в векторе константы в n-высокий столбец. Выберите пустая n-высокая колонна. Это важно что у вас нет только одной клетки выбран.

  3. Тип, = МУМНОЖ (МОБРЫ (coefficients_matrix_range), constants_vector_range) в формуле текстовое поле и нажмите [CTRL] [SHIFT] [ENTER]. Это важно что вы не просто нажимаете [ENTER].

Это должно работать адекватно, так как у вас только небольшая система (22x22). Хотя в идеале вы бы не обращали матрицу напрямую, в этом случае это не должно иметь значения.

Тебе определенно не нужно правило Крамера. Из-за его довольно плохих числовых свойств, это больше теоретический, чем практический интерес.

2 голосов
/ 17 февраля 2010

А как насчет Microsoft Solver Foundation ? Кажется, я помню, что в документации, поставляемой с экспресс-версией, есть несколько примеров меньшего набора уравнений для одновременного выполнения.

1 голос
/ 02 ноября 2011

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

1 голос
/ 17 февраля 2010

Если у вас возникли проблемы с вычислением обратной матрицы, например, сверх / под потоком / усечением и т. д. вы всегда можете использовать Солвер - иначе получите копию числовых рецептов на С и переведите на VBA.

1 голос
/ 13 февраля 2010

Функция Excel LINEST должна это делать и во многих случаях будет возвращать лучшие результаты, чем MMULT (MINVERSE (...) ...).

Также могут оказаться полезными функции LOGEST, GROWTH и TREND.

1 голос
/ 12 февраля 2010

Вы никогда не должны учитывать правило Крамера для решения линейной системы! Это настолько неэффективно, что это невозможно осуществить даже для небольших систем.

Excel не является правильным инструментом для решения линейной системы. На вашем месте я написал бы простой скрипт на python, который читает файл Excel, решал уравнение (с помощью numpy) и сохранял результат в файле, который может прочитать Excel. (еще лучше, если можете, вообще избегайте Excel).

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