作者doom8199 (~口卡口卡 修~)
看板MATLAB
標題Re: [問題] 找垂直向量
時間Tue Jul 16 18:59:27 2013
※ 引述《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
1F:→ doom8199:抱歉,<2> 的 B 可能要再細分成 [B1 | B2], 不能直接 07/16 19:03
2F:→ doom8199:相乘等於 0矩陣 07/16 19:03
3F:→ doom8199:結論就是要湊出 M'M 的 format, 流程大同小異 07/16 19:04
4F:推 YoursEver:cholesky的前提是positive definite, 但f(M)不是. 07/16 20:49
5F:→ YoursEver:所以在這個例子中f(M)無法寫成 A'A 07/16 20:55
====
感謝,我沒有真的去算它的 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)
6F:推 YoursEver:>=63相當於是給夠多的0,把之前說的特解排成一組basis了. 07/17 15:35
可以列出來嗎? 我不覺得 (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)
7F:推 YoursEver:vector_1: 1~9 entry 為 1/3, 其餘為0 07/18 10:22
8F:→ YoursEver:vector_2: 10~18 entry 為 1/3, 其餘為0 07/18 10:22
9F:→ YoursEver:其他類推,當然同時滿足原po的條件. 07/18 10:23
10F:→ YoursEver:當n>=63時,滿足這條件七個向量,就會有不只一組解. 07/18 10:24
11F:推 YoursEver:所以我之前才會說(以原本n=21來看),夠成一組frame沒問題 07/18 10:42
12F:→ YoursEver:但能不能構成一組basis,就要打問號. 07/18 10:42
13F:→ doom8199:那 vector_3, vector_4 要怎麼挑呢? 07/18 13:01
14F:→ doom8199:剛看了一下推文,你這樣的組法只有滿足 <2><3> 07/18 13:12
15F:→ doom8199:<1> 根本不可能會成立,就簡單的反證法就可以說明了 07/18 13:12
16F:→ doom8199:文中我也證明過了,dim>62 才會有解 07/18 13:13
17F:→ doom8199:而且必然是無窮多組解,用 SVD 可以說明一切 07/18 13:14
18F:→ YoursEver:vector_3 = 19~29 entry為1/3, 其餘為0 07/18 13:35
19F:→ YoursEver:vector_7: 55~63 entry 為1/3, 其餘為0 07/18 13:36
20F:→ YoursEver:vector_3: 19~27 entry為1/3, 其餘為0 07/18 13:37
21F:→ YoursEver:所以我之前才說,一定能找到一組frame,但是否能構成basis 07/18 13:38
22F:→ YoursEver:是另外一回事. 07/18 13:38
23F:→ doom8199:抱歉,我以為你那個推文是在說 dim=21 的case 07/18 14:04
24F:推 snaredrum:謝謝d大的詳細解說~ 07/19 12:55