Библиотека для поиска любого решения любого количества линейных уравнений с любым количеством переменных
-
12-10-2019 - |
Вопрос
Я должен найти любое решение (может существовать много или нет) любого количества заданных уравнений лайнера с любым количеством переменных. На 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, доступных на
Я не использовал это раньше, но похоже, что это может быть очень полезно.