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

StackOverflow https://stackoverflow.com/questions/4717655

Вопрос

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

Это было полезно?

Решение

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

Если n (неизвестно) <n (уравнения), вам нужно будет сделать решение наименьших квадратов для получения коэффициентов.

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

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

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

Математическая библиотека Apache Commons содержит все это. Я рекомендую это, если вы кодируете в Java.

Другие советы

Попробуйте Apache Commons Math Solvers http://commons.apache.org/math/userguide/lineear.html

Есть порт Java классического библиотек линейной алгебры BLAS, доступных на

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top