Я использую numpy и mpmath в моей программе Python. Я использую numpy, потому что он обеспечивает легкий доступ ко многим операциям с линейной алгеброй. Но поскольку решатель numpy для линейных уравнений не точен, я использую mpmath для более точных операций. После того, как я вычислить решение системы:
Precision loss numpy - mpmath
solution = mpmath.lu_solve(A,b)
я хочу решение, как массив. Поэтому я использую
array = np.zeros(m)
, а затем сделать петлю для установки значения:
for i in range(m):
array[i] = solution[i]
или
for i in range(m):
array.put([i],solution[i])
но с обоими способами я получаю снова численные неустойчивости, как:
solution[0] = 12.375
array[0] = 12.37500000000000177636
Is t вот способ избежать этих ошибок?
Это не «численная нестабильность», его ограниченная точность чисел с плавающей запятой. либо не использовать числа с плавающей запятой, либо пересмотреть вопрос, если эта ограниченная точность задает проблему какого-либо значения для вашего приложения. –