我正在使用 Python 中的 Newton-Raphson 方法求解非线性方程组。这涉及迭代地使用solve(Ax,b)函数(spsolve在我的例子中,它用于稀疏矩阵),直到错误或更新减少到某个阈值以下。我的具体问题涉及计算函数,例如, 对于小的计算错误通过 Python,甚至使用np.expm1().
尽管有这些困难,我的解决方案似乎收敛了,因为错误变成了. 但是,相关量在物理上没有表现,我怀疑这是由于这些计算的精度。例如,由于电位差很小,我正在尝试计算电流。当这个电位差变得非常小时,这个电流开始振荡,这是错误的,因为电流必须守恒。
我想全局提高代码的精度,但我不确定这是否有用,因为我不确定这种提高的精度是否会反映在诸如spsolve. 我对使用Decimal library也有同样的感觉,这也很麻烦。有人可以就如何解决这个问题给我一些一般性建议或将我指向相关帖子吗?