2013-10-03 148 views
-1

我應該生成一個隨機的40 x 40矩陣A,指數級遞歸奇異值定義爲2^-1 2^-2 ... 2^-40。我如何去做這件事?它說np.linalg.qr是有用的。 我在想這樣做 np.random.rand(40,40),但我不知道如何使對角線呈指數上升Python矩陣和執行Gram-Schmidt程序

,然後它說實現Gradm施密特過程 幫助!

+0

作爲就數學而言,將D = 2^-1 ... 2^-40寫成40×40對角線矩陣並生成隨機酉U和V會更容易。將它們相乘以得到所需的「原始」矩陣。對於編程,你有什麼嘗試? – kalhartt

+0

我在考慮定義投影,然後爲矩陣A中的每個矢量找到正交矢量 – user2843309

回答

0

這對評論有點長,所以即使它不是真正的答案,我也會在這裏留下。

如果您首先生成一個隨機的40x40矩陣,則無法將其強制爲具有所需的特徵值。相反,從對角化反向工作會更容易。給出特徵值,只需製作一些隨機特徵向量並重新計算矩陣。

由於給出了截然不同的特徵值\ mu_i = 2^-i,您知道特徵向量跨度R^40。我會親自採取40×40的身份矩陣,並隨機旋轉它,使U然後做A = UDU *。其中D_如果需要使用的革蘭氏施密特,可以改爲生成40隨機線性獨立的向量{IJ} = \ delta_ {IJ} \ mu_i

和革蘭氏施密特他們獲得U.