def _gauss_from_coefficients_numpy(alpha, beta):
assert isinstance(alpha, numpy.ndarray)
assert isinstance(beta, numpy.ndarray)
# eigh_tridiagonal is only available from scipy 1.0.0
try:
from scipy.linalg import eigh_tridiagonal
except ImportError:
# Use eig_banded
x, V = eig_banded(numpy.vstack((numpy.sqrt(beta), alpha)), lower=False)
w = beta[0]*scipy.real(scipy.power(V[0, :], 2))
else:
x, V = eigh_tridiagonal(alpha, numpy.sqrt(beta[1:]))
w = beta[0] * V[0, :]**2
return x, w
评论列表
文章目录