У меня есть фрагмент кода, который вычисляет разложение Гельмгольца-Ходжа. Я работал на своей Mac OS Yosemite, и он работал нормально. Месяц назад, однако, мой Mac стал довольно медленным (он был действительно старым), и я решил купить новый ноутбук (Windows 8.1, Dell).
После установки всех библиотек Python и т.д., я продолжил работу над этим же кодом (версией в Git). И тогда результат был довольно странным, полностью отличным от результата, полученного в старой тетради.
Например, я создаю для матриц a
и b
(действительно долгое исчисление), а затем я вызываю решатель:
s = numpy.linalg.solve(a, b)
Это возвращало a
(неверно и отличалось от результата, полученного на моем Mac, который был прав).
Затем я попытался использовать:
s = scipy.linalg.solve(a, b)
И программа выходит с кодом 0, но в середине. Затем я просто сделал простой тест:
print 'here1'
s = scipy.linalg.solve(a, b)
print 'here2'
И here2
никогда не печатается.
Я пробовал:
print 'here1'
x, info = numpy.linalg.cg(a, b)
print 'here2'
И то же самое происходит.
Я также попытался проверить решение после использования numpy.linalg.solve
:
print numpy.allclose(numpy.dot(a, s), b)
И я получил False
(?!).
Я не знаю, что происходит, как найти решение, я просто знаю, что тот же код работает на моем Mac, но было бы очень хорошо, если бы я мог запускать его на других платформах. Теперь я застрял в этой проблеме (у меня больше нет Mac) и не имеет понятия о причине.
Самое странное, что я не получаю никакой ошибки при предупреждении о запуске, обратной связи вообще.
Спасибо за любую помощь.
EDIT:
Результаты теста на количество штук:
Результаты испытаний Scipy Suit: