首页 > 解决方案 > 快速求解数值方程

问题描述

scipy.optimize.newton_krylov用来解决下面描述的问题。但是,它相当慢(这需要数千个点)。即使我最初的猜测非常接近解决方案,它也很慢。这让我想知道是否有更好的方法来做到这一点。

找到满足三个方程 el1、el2 和 el3的 3D 点的最快方法是什么(x,y,z)=pvec(例如,最小化向量 [el1,el2,el3] 的范数)。

sr1=np.sqrt(np.sum( (pvec - p2)**2 )) 
sr2=np.sqrt(np.sum( (pvec - p1)**2 )) 

el1=(sr1 + sr2)/(2.0*scalar1) - 1.0
el2=np.sum( (pvec/scalar2)**2 ) - 1.0
el3=np.dot(v1,(pvec - p1) )/(sr1*scalar3) + \
    np.dot(v2,(pvec - p2) )/(sr2*scalar3) - 1.0

标签: pythonnumerical-methodssolverscipy-optimize

解决方案


我会尝试这里提到的不同方法

根据我的经验,默认方法“hybr”效果很好。


推荐阅读