1
我打電話給gges,我想獲得特徵值。在應用筆記中,我讀了這個免責聲明:防止過量或下溢
商alphar(j)/ beta(j)和alphai(j)/ beta(j)可能很容易上溢或下溢,beta(j)甚至可能爲零。因此,你應該避免簡單地計算比率。然而,alphar和alphai總是小於並且通常與規範(A)相當,並且beta總是小於並且通常與規範(B)相當。
我想,以防止過度或下溢,並以一個錯誤終止程序:提前
do i=1,N
if (sometest(alphar(i), beta(i)) then
stop 'Eigenvalues over- or underflow!'
endif
Lambda(i) = alphar(i)/beta(i)
enddo
感謝
謝謝!很有幫助! – BCartolo
+1這是一個很好的方法。或者,如果您不想更改代碼,則可以使用可捕獲浮點異常的標誌進行編譯,例如如果它是-fpe [0123],或者爲其他編譯器讀取手冊頁。 – milancurcic
新代碼,所以我不在乎修改代碼。 – BCartolo