Re: [問題] 找垂直向量

看板MATLAB作者 (~口卡口卡 修~)時間12年前 (2013/07/16 18:59), 編輯推噓5(5019)
留言24則, 3人參與, 最新討論串2/3 (看更多)
※ 引述《snaredrum (好聽木琴)》之銘言: : 有個問題 我手算不了,想用MATLAB幫忙 請各為大大指教 : 我想找七個21維向量 u1,u2,...,u7 : 有底下性質 : 1) <u_i,u_j> = 0 if i不等j (兩兩垂直的意思) : 2) 向量長度為1 : 3) 這七個向量,每個向量的21個 digits 加起來=3 : 請問如何寫出這七個向量呢? : 感恩~~ === 令 U = [u1, u2, u3, ...] 為 21 by 7 matrix e_n = [1, 1, ..., 1]^T 為 n by 1 all one vector by (1)&(2) , (U')U = I_7 ____ <a> (I_7: 7x7 identity mat.) by (3), (e_21')U = 3(e_7') ____ <b> ┌ I_7 3(e_7) ┐ combine <a><b>, 可得 (M')M = │ │ := f(M) └ 3(e_7') 21 ┘ 其中 M = [U | e_21] is a 21 by 8 matrix ===== 根據上述結論,你可以這樣子做: <1> SVD or cholesky 分解 f(M) 得到 (A')A, 其中 A: 8x8 matrix <2> 考慮一 13x8 矩陣 B, 使得 (B')B = [0] 這時 f(M) 可改寫成 = (A')A + (B')B = (N')N , 其中 N = [A' | B']' 為 21 by 8 matrix <3> 考慮一 21x21 orthogonal matrix Q, 使得 M = QN ( since f(M) = (N')N = (N')(Q')QN = (QN)'(QN) = (M')M ) 更進一步,若 N_n := n-th column 則找出 Q, 使得 Q(N_n) = e_21 一旦有了 Q 跟 N, 你就能得知 M, 也就等於知道了 U Note: A / B / Q 三個 matrix 都不 unique 自然有無窮多組解 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.98.124.34

07/16 19:03, , 1F
抱歉,<2> 的 B 可能要再細分成 [B1 | B2], 不能直接
07/16 19:03, 1F

07/16 19:03, , 2F
相乘等於 0矩陣
07/16 19:03, 2F

07/16 19:04, , 3F
結論就是要湊出 M'M 的 format, 流程大同小異
07/16 19:04, 3F

07/16 20:49, , 4F
cholesky的前提是positive definite, 但f(M)不是.
07/16 20:49, 4F

07/16 20:55, , 5F
所以在這個例子中f(M)無法寫成 A'A
07/16 20:55, 5F
==== 感謝,我沒有真的去算它的 eigenvalue 事實上只要是 positive semi-definite 就能做分解 (matlab 會 display 正定 的 constrain 應該是打錯了) 我手算了一下, f(M) 要能分解成 (M')M 除非是 u_i 的維度 >= 63 不然必不存在 U in |R^(dim,7) , 滿足 constrain (1)~(3) ※ 編輯: doom8199 來自: 175.98.124.34 (07/17 13:10)

07/17 15:35, , 6F
>=63相當於是給夠多的0,把之前說的特解排成一組basis了.
07/17 15:35, 6F
可以列出來嗎? 我不覺得 (1/3,...1/3,0,...0) 的組合可以滿足 case (1) ┌ I_7 3(e_7) ┐ 令 g(M,k) = │ │ └ 3(e_7') k ┘ 真的去計算它的 eigenvalue 會滿足 (1-λ)^6 * [λ^2 - (1+k)λ + k-63] = 0 若要求 g 是半正定, 唯有當 (1+k) >= 0 && (k-63) >=0 亦即 k >= 63 ※ 編輯: doom8199 來自: 175.98.124.34 (07/18 09:50)

07/18 10:22, , 7F
vector_1: 1~9 entry 為 1/3, 其餘為0
07/18 10:22, 7F

07/18 10:22, , 8F
vector_2: 10~18 entry 為 1/3, 其餘為0
07/18 10:22, 8F

07/18 10:23, , 9F
其他類推,當然同時滿足原po的條件.
07/18 10:23, 9F

07/18 10:24, , 10F
當n>=63時,滿足這條件七個向量,就會有不只一組解.
07/18 10:24, 10F

07/18 10:42, , 11F
所以我之前才會說(以原本n=21來看),夠成一組frame沒問題
07/18 10:42, 11F

07/18 10:42, , 12F
但能不能構成一組basis,就要打問號.
07/18 10:42, 12F

07/18 13:01, , 13F
那 vector_3, vector_4 要怎麼挑呢?
07/18 13:01, 13F

07/18 13:12, , 14F
剛看了一下推文,你這樣的組法只有滿足 <2><3>
07/18 13:12, 14F

07/18 13:12, , 15F
<1> 根本不可能會成立,就簡單的反證法就可以說明了
07/18 13:12, 15F

07/18 13:13, , 16F
文中我也證明過了,dim>62 才會有解
07/18 13:13, 16F

07/18 13:14, , 17F
而且必然是無窮多組解,用 SVD 可以說明一切
07/18 13:14, 17F

07/18 13:35, , 18F
vector_3 = 19~29 entry為1/3, 其餘為0
07/18 13:35, 18F

07/18 13:36, , 19F
vector_7: 55~63 entry 為1/3, 其餘為0
07/18 13:36, 19F

07/18 13:37, , 20F
vector_3: 19~27 entry為1/3, 其餘為0
07/18 13:37, 20F

07/18 13:38, , 21F
所以我之前才說,一定能找到一組frame,但是否能構成basis
07/18 13:38, 21F

07/18 13:38, , 22F
是另外一回事.
07/18 13:38, 22F

07/18 14:04, , 23F
抱歉,我以為你那個推文是在說 dim=21 的case
07/18 14:04, 23F

07/19 12:55, , 24F
謝謝d大的詳細解說~
07/19 12:55, 24F
文章代碼(AID): #1HvIUIcZ (MATLAB)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 2 之 3 篇):
文章代碼(AID): #1HvIUIcZ (MATLAB)