Библиотека для поиска любого решения любого числа линейных уравнений с любым количеством переменных

Я должен найти любое решение (может существовать много или ни одного) из любого числа заданных уравнений лайнера с любым числом переменных. На Яве. Какие библиотеки и метод используете? Что реализовать? Я хочу сделать это как минимум с работой, насколько это возможно.

3 ответа

Решение

Любое количество уравнений? Средства решения различаются в зависимости от того, как это соотносится с количеством неизвестных.

Если N(неизвестные)

Если N(неизвестные) = N(уравнения), вы можете решить, используя LU-разложение с поворотом или разложение по сингулярному значению.

Если N(неизвестные) > N(уравнения), вам нужно выполнить разложение по сингулярному значению, которое даст вам нулевое пространство и лучшее решение, которое он может.

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

Библиотека Apache Commons Math содержит все это. Я рекомендую это, если вы пишете код на Java.

Попробуйте решатели Apache Commons Math http://commons.apache.org/math/userguide/linear.html

Существует порт Java для библиотек классической линейной алгебры BLAS, доступных на

http://icl.cs.utk.edu/f2j/

Я не использовал это раньше, но похоже, что это может быть очень полезно.

Другие вопросы по тегам