當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python SciPy linalg.cdf2rdf用法及代碼示例


本文簡要介紹 python 語言中 scipy.linalg.cdf2rdf 的用法。

用法:

scipy.linalg.cdf2rdf(w, v)#

將複特征值 w 和特征向量 v 轉換為塊對角形式的實特征值 wr 和相關的實特征向量 vr ,例如:

vr @ wr = X @ vr

繼續保持,其中 X 是原始數組,其中 wv 是特征值和特征向量。

參數

w (…, M) 數組

複數或實數特征值,數組或數組堆棧

共軛對不能交錯,否則會產生錯誤的結果。所以[1+1j, 1, 1-1j] 會給出正確的結果,但[1+1j, 2+1j, 1-1j, 2-1j] 不會。

v (…, M, M) 數組

複數或實數特征向量、方陣或方陣堆棧。

返回

wr (…, M, M) ndarray

特征值的實對角塊形式

vr (…, M, M) ndarray

wr 相關的實特征向量

注意

w,v一定是某些的本征結構真實的矩陣X。例如,通過以下方式獲得w, v = scipy.linalg.eig(X)或者w, v = numpy.linalg.eig(X)在這種情況下X也可以表示堆疊數組。

例子

>>> import numpy as np
>>> X = np.array([[1, 2, 3], [0, 4, 5], [0, -5, 4]])
>>> X
array([[ 1,  2,  3],
       [ 0,  4,  5],
       [ 0, -5,  4]])
>>> from scipy import linalg
>>> w, v = linalg.eig(X)
>>> w
array([ 1.+0.j,  4.+5.j,  4.-5.j])
>>> v
array([[ 1.00000+0.j     , -0.01906-0.40016j, -0.01906+0.40016j],
       [ 0.00000+0.j     ,  0.00000-0.64788j,  0.00000+0.64788j],
       [ 0.00000+0.j     ,  0.64788+0.j     ,  0.64788-0.j     ]])
>>> wr, vr = linalg.cdf2rdf(w, v)
>>> wr
array([[ 1.,  0.,  0.],
       [ 0.,  4.,  5.],
       [ 0., -5.,  4.]])
>>> vr
array([[ 1.     ,  0.40016, -0.01906],
       [ 0.     ,  0.64788,  0.     ],
       [ 0.     ,  0.     ,  0.64788]])
>>> vr @ wr
array([[ 1.     ,  1.69593,  1.9246 ],
       [ 0.     ,  2.59153,  3.23942],
       [ 0.     , -3.23942,  2.59153]])
>>> X @ vr
array([[ 1.     ,  1.69593,  1.9246 ],
       [ 0.     ,  2.59153,  3.23942],
       [ 0.     , -3.23942,  2.59153]])

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.linalg.cdf2rdf。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。