1樓:匿名使用者
矩陣奇異值分解在bai矩陣分du析中佔有極其重要zhi的地位,而這種方法對於學習矩陣dao論的學生來說比回較難答以計算,並且難以理解,以下為使用matlab軟體進行矩陣奇異值分解的方法:http://jingyan.
使用的版本為matlab 2016a中文破解版
求實現矩陣奇異值分解的matlab** 150
2樓:匿名使用者
想請教一下題主,為什麼不用自帶的函式,而要自己編?
像這種線性代數的基專礎函式,真正自己編起來是屬有不小難度的,而且即使編出來,質量比起系統自帶的成熟函式,也會差很遠,可以說是完全無價值的重複勞動。
如果是學習某門課程的作業,看有沒有程式語言的要求,要是沒指定必需用matlab的話,可以考慮找c語言的,那個相對還好找一些,而m語言編的好像沒見過。
求matlab中的矩陣的奇異值分解(svd)程式
3樓:匿名使用者
使用svd函式就行了
[u,s,v]=svd(a)
4樓:匿名使用者
這是一個 build-in 的函式,底層是用 c 語言寫的了。由於是商業軟體,應該找不到相應的源程式。
matlab中怎樣用奇異值分解對矩陣進行降維處理
5樓:無古天下
安裝並執行
baimatlab軟體;
2在命令列視窗輸入
du需要進行奇zhi異值分解的矩陣,dao並輸入矩陣求秩內及求奇異值的容公式,如下圖;
3單擊回車鍵,求得奇異值分解得到的u、s、v矩陣;
4若要檢視之前輸入的求解矩陣及所求得的相關變數,從右側工作區視窗進行檢視;
5分別單擊所要檢視的變數名進行檢視;
matlab 複數矩陣矩陣奇異值分解
6樓:我行我素
不論實矩陣或是虛矩陣,奇異值分解的結果都是非負的、實數的奇異值,如:
a=magic(5);b=svd(a)
c=rand(5);d=a+1i*c;e=svd(d)結果是:
b =65.0000
22.5471
21.6874
13.4036
11.9008
e =65.0554
22.5819
21.6764
13.4087
11.8961
7樓:匿名使用者
svd同樣可以用於複數矩陣;另外svd(a),需要a是一個矩陣
求matlab 奇異值分解函式 svd和svds的區別
8樓:匿名使用者
設a為m*n階矩陣,a'表示a的轉置矩陣,a'*a的n個特徵值的非負平方根叫作a的奇異值。記為σi(a)。
這幾天做實驗涉及到奇異值分解svd(singular value de***position),涉及到這樣的一個問題,
做pca時候400幅影象拉成向量按列擺放,結果擺成了比如說10000*400大小的矩陣,
用到svd函式進行奇異值分解找主分量,結果matlab提示超出記憶體,後來想起還有個函式叫svds,看到別人用過,以為只是一個變體,沒什麼區別,就用上了,結果確實在預料之中。但是今天覺得不放心,跑到變數裡面看了下,發現這個大的矩陣被分解成了
三個10000*6,6*6,400*6大小的矩陣的乘積,而不是普通的svd分解得到的10000*10000,10000*400,400*400大小的矩陣乘積,把我嚇了一跳,都得到預期的結果,難不成這裡還出個簍子?趕緊試驗,
發現任給一個m*n大小的矩陣,都是被分解成了m*6,6*6,n*6大小的矩陣的乘積,為什麼都會出現6呢?確實很納悶。help svds看了一下,發現svds(a) 返回的就是svds返回的就是最大的6個特徵值及其對應的特徵行向量和特徵列向量,
還好,我們實驗中是在svds得到列向量中再取前5個最大的列向量,這個與普通的svd得到的結果是一致的,虛驚一場。。。還得到了一些別的,比如
改變這個預設的設定,
比如用[u,d,v]=svds(a,10)將得到最大的10個特徵值及其對應的最大特徵行向量和特徵列向量,
[u,d,v]=svds(a,10,0)將得到最小的10個特徵值及其對應的特徵行向量和特徵列向量,
[u,d,v]=svds(a,10,2)將得到與2最接近的10個特徵值及其對應的特徵行向量和特徵列向量。
總之,相比svd,svds的可定製性更強。
奇異值分解非常有用,對於矩陣a(m*n),存在u(m*m),v(n*n),s(m*n),滿足a = u*s*v』。
u和v中分別是a的奇異向量,而s是a的奇異值。
aa'的正交單位特徵向量組成u,特徵值組成s's,
a'a的正交單位特徵向量組成v,特徵值(與aa'相同)組成ss'。
matlab中svd奇異值分解是什麼作用
9樓:kyoya斯
答案1:: 奇異值分解 (sigular value de***position,svd) 是另一
種正交矩陣分解法;svd是最可靠的分解法,但是它比qr 分解法要花
上近十倍的計算時間。[u,s,v]=svd(a),其中u和v代表二個相互正交
矩陣,而s代表一對角矩陣。 和qr分解法相同者, 原矩陣a不必為正方矩陣。
使用svd分解法的用途是解最小平方誤差法和資料壓縮
答案2:: 奇異值分解是線性代數中一種重要的矩陣分解,在訊號處
啊?答案3:: [u,s,v]=svd(a)奇異值分解,就是要把矩陣a分解成
u*s*v' (v'代表v轉置).其中u s是正交矩陣(複數域對應為酉矩陣)
奇異值分解可以用來求矩陣的逆,資料壓縮等等,不過具體的用法不
是幾句話就能說清楚的。總之,奇異值分解特別重要。
:::::::::::::::::::請參考以下相關問題::::::::::::::::::::
求matlab中的矩陣的奇異值分解(svd)程式
:::::::::::::::::::請參考以下相關問題::::::::::::::::::::
最近在翻譯matlab**為vc**,遇到svd奇異值分解卡住了。
:::::::::::::::::::請參考以下相關問題::::::::::::::::::::
:::::::::::::::::::請參考以下相關問題:::::::::::::::::::::::::::::::::::::::請參考以下相關問題::::::::::::::::::::
matlab中如何進行矩陣的特徵分解
比如你的矩陣專 是屬a a 4 7 10 13 5 8 11 14 6 9 12 15 7 10 13 16 u,v eig a u 0.4252 0.7922 0.1848 0.2559 0.4731 0.3667 0.1379 0.0197 0.5211 0.0588 0.8302 0.8072...
在Matlab中,大矩陣進行SVD時出現out of mem
你的矩陣太大了!換一種演算法吧!矩陣太大,機器配置過低 請問我用matlab做svd 奇異值分解 時,出現錯誤out of memory怎麼辦?補充 我試過了,沒問題。你自己先試下面的命令 clear all temp randn 60000,10 u,s,v svd temp,0 如果這個沒問題,...
什麼軟體能進行矩陣運算
可以使用excel,比較方便。e69da5e6ba9062616964757a686964616f31333231623563 請參考excle 幫助,如下 mdeterm 返回一個陣列的矩陣行列式的值。語法 mdeterm array array 行數和列數相等的數值陣列。說明 array 可以是...