[Python] Find the global bounds on the eigenvalues of a tri →→→→→进入此内容的聊天室

来自 , 2019-06-06, 写在 Python, 查看 106 次.
URL http://www.code666.cn/view/bdcc4121
  1. ''' lamMin,lamMax = gerschgorin(d,c).
  2.    Applies Gerschgorin's theorem to find the global bounds on
  3.    the eigenvalues of a tridiagomal matrix [A] = [c\d\c].
  4. '''
  5. def gerschgorin(d,c):
  6.     n = len(d)
  7.     lamMin = d[0] - abs(c[0])
  8.     lamMax = d[0] + abs(c[0])
  9.     for i in range(1,n-1):
  10.         lam = d[i] - abs(c[i]) - abs(c[i-1])
  11.         if lam < lamMin: lamMin = lam
  12.         lam = d[i] + abs(c[i]) + abs(c[i-1])
  13.         if lam > lamMax: lamMax = lam
  14.     lam = d[n-1] - abs(c[n-2])
  15.     if lam < lamMin: lamMin = lam
  16.     lam = d[n-1] + abs(c[n-2])
  17.     if lam > lamMax: lamMax = lam
  18.     return lamMin,lamMax
  19. #//python/7423

回复 "Find the global bounds on the eigenvalues of a tri"

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

captcha