Я пытаюсь вывести очень сложную матрицу (~ 1,3 МБ в виде обычного текста) из Mathematica для использования в программе на Фортране.Когда я делаю это (через Splice
), результирующая матрица отключается на ~ 2%, когда переменные получают числовые значения.Это проблема, так как должно быть собственное значение, которое точно равно нулю, и состав собственных векторов должен быть точно правильным.
Я сделал все обычные должные проверки в отношении точности, правильных переменных, правильныхкод диагонализации и т. д. И все сводилось либо к тому, что сам Фортран не смог справиться с такой большой матрицей, либо к Mathematica испортили вывод FortranForm.
Поэтому я заставил Mathematica дать мне CForm матрицы и попробовал,Кроме того, было ~ 2% от того, что должно было быть, что более поразительно, это было то же самое (с точностью до машины), что и матрица FortranForm!
Кто-нибудь сталкивался с такой проблемой?У вас есть идеи, что может вызвать это?Я боюсь пройти через 25000 строк кода Fortran, отформатированного в Mathematica, чтобы выяснить это.
РЕДАКТИРОВАТЬ: Матрица, о которой идет речь, сложная, а не большая.Это всего лишь 6x6, но каждый элемент индивидуально алгебраически очень беспорядочный, включая тригонометрические функции, логарифмы и различные корни и степени.
Открытый текст элемента (1,1) нашей матрицы,код C и код Fortran .Значения параметров в здравом уме: 0 <лямбда, каппа, Y *** <1;все остальные между 100 и 1000. </p>