[問題] 有關eig產生的值為複數的一些問題已回收

看板MATLAB作者 (A-So)時間16年前 (2009/12/16 17:38), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
因為作業中有兩題寫出來一直怪怪的想說上來問問看,麻煩幫解答一下~THX 1.產生一個10*10矩陣A,B=(A+A')/2,算出B的eigenvector e1,e2...e10 驗證當i≠j時,ei跟ej的內積必定為0 我寫的程式碼是 A = randn(10,10); %題目要求用randn B = (A+A')/2; [X,D] = eig(B); for i = 1 : 9 for j = i+1 : 10 dot(X(:,i),X(:,j)) end end 但是算出來的內積都只有一個是0...其他不是@@ 2.寫一程式隨機產生10個100*100的矩陣證明矩陣的行列式值會等於其eigenvalue的乘積 我寫的程式碼是 for i = 1 : 10 A = rand(100,100); prod(eig(A)) det(A) end 雖然行列式值跟其eigenvalue的乘積的"實部"都相等,但有些eigenvalue的乘積會有虛部 就變成多了一串虛部,會有的相等有的卻多虛部的情況出現,課本都看完了還是很囧@@ 不知道我到底哪邊有寫錯呢??? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.76.249.1

12/16 21:56, , 1F
不是零,那是不是很接近零?,如果是很接近零也是ok的
12/16 21:56, 1F
文章代碼(AID): #1BAAgmUD (MATLAB)