[Python] Use python to calculate the N smallest eigenvalues →→→→→进入此内容的聊天室

来自 , 2020-08-31, 写在 Python, 查看 128 次.
URL http://www.code666.cn/view/c900ced7
  1. ## module eigenvals3
  2. ''' lam = eigenvals3(d,c,N).
  3.    Returns the N smallest eigenvalues of a
  4.    tridiagonal matrix [A] = [c\d\c].
  5. '''    
  6. from lamRange import *
  7. from ridder import *
  8. from sturmSeq import sturmSeq
  9. from numpy import zeros
  10.  
  11. def eigenvals3(d,c,N):
  12.  
  13.     def f(x):             # f(x) = |[A] - x[I]|
  14.         p = sturmSeq(d,c,x)
  15.         return p[len(p)-1]
  16.  
  17.     lam = zeros(N)
  18.     r = lamRange(d,c,N)   # Bracket eigenvalues
  19.     for i in range(N):    # Solve by Brent's method
  20.         lam[i] = ridder(f,r[i],r[i+1])
  21.     return lam
  22. #//python/7430

回复 "Use python to calculate the N smallest eigenvalues"

这儿你可以回复上面这条便签

captcha