作者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