这是我求解线性系统方程的 4 个函数的 python 代码:
def inverse_solution(A, B):
inv_A = scipy.linalg.inv(A)
return [numpy.dot(inv_A, b) for b in B]
def scipy_standart_solution(A, B):
return [scipy.linalg.solve(A, b) for b in B]
def cholesky_solution(A, B):
K = scipy.linalg.cholesky(A, lower = True)
t_K = K.T
return [scipy.linalg.solve_triangular(t_K, scipy.linalg.solve_triangular(K, b, lower = True)) for b in B]
def scipy_cholesky_solution(A, B):
K = scipy.linalg.cho_factor(A)
return [scipy.linalg.cho_solve(K, b) for b in B]
Run Code Online (Sandbox Code Playgroud)
我知道第一个解决方案效率不高,如果中的元素数量b小,则第二个解决方案很好,如果b大,则解决方案 3 和 4 很好。
但我的测试结果恰恰相反
A = numpy.array([[1,0.000000001],[0.000000001,1]])
for length in …Run Code Online (Sandbox Code Playgroud)