2009-12-16 9 views
0

Мне понадобилось приложение для решения линейных систем уравнений (от N до 10), поэтому я получил разные коды и скомпилировал их, и они, похоже, работают, но у меня много проблем с точность. Я имею в виду, что решатели действительно очень чувствительны к небольшим изменениям системы.Применение для решения линейной системы уравнений

Итак, может ли кто-нибудь порекомендовать мне надежное приложение commandl ine для этой цели? Или какой-нибудь полезный открытый исходный код (и легко скомпилировать)

Благодаря

ответ

0

GNU Octave по существу является бесплатной версией Matlab (синтаксис идентичен для основных операций), так что вы можете попробовать вещи там и посмотреть, как они сравните с ответами, которые вы получаете.

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

Кроме того, вы не указали, какой метод вы используете в настоящее время. Гауссово исключение (т. Е. «То, что вы изучили в математическом классе»), как известно, является численно неустойчивым, если вы не используете поворот (см. Запись в википедии «Поворот»); добавив, что этого может быть достаточно для улучшения качества результатов.

0

Подходом является использование пакета numpy в Python. Вы можете создать 2d-матрицу A и 1d-вектор b, а затем решить Ax = b для x с помощью решения (A, x). Это часть подпапки linalg numpy.

+0

спасибо Можете ли вы дать мне ссылку о том, как создать матрицу на python? – flow

+0

извините, если это глупый вопрос ... – flow

+0

Отъезд http://www.scipy.org/Tentative_NumPy_Tutorial Существует также книга Numpy http://www.tramy.us/numpybook.pdf –

Смежные вопросы