Re: [問題] 解出矩陣係數

作者: NoManInCar (NMIC)   2015-12-07 16:53:29
※ 引述《s4300026 (s4300026)》之銘言:
: syms unknown_variables;
: P=[];
: ss = length(X);
: for ii = 1:ss-1
: for jj = ii+1:ss
: P=[P;A(ii,:)*A(jj,:)'];
: end
: end
: solve(P)
: 最笨的做法~~~ 呼叫 celestialgod 補充~~~
不好意思
我試了很久
但是搞不出來
matlab 一直busy中跑不出結果...
以下是我的程式碼
我用小維度的矩陣來測試就這樣了
請求幫忙看一下有沒有寫錯
謝謝
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
X = sym('X',[4,3]);%complex
P = [];
[sizeX, sizeY]=size(X);
sizE = 0;
while 1
G = [];
Y = ones(sizeX,sizeY);
%對於X的每個row向量 隨機給定零元素
for i = 1:sizeX
r = randperm(sizeY);%sizeY個排序
sizE = sizeY-2;%零元素個數
b = r(1:sizE);%零元素位置
for j = 1:sizE
G = [G;X(i,b(j))==0];
Y(i,b(j)) = 0;
end
end
%不要產生出全零col向量
%藉由Y來判定
breakflg = true;
for i = 1:sizeY
if ~any(Y(:,i))
breakflg = false;
break;
end
end
if breakflg
break;
end
end
P=[P;G];
%X'*X=I(identity matirx)
%等於0的部份
for i = 1:sizeY
for j = 1:sizeY
if i==j
continue;
end
P=[P;X(:,j)'*X(:,i)==0];
end
end
%等於1的部份
for i = 1:sizeY
P=[P;X(:,i)'*X(:,i)==1];
end
Z = solve(P,X);
作者: celestialgod (天)   2015-12-07 17:33:00
14個式子解8個未知數?我跑出來都是無解阿qq更正,是13個式子十個一樣 http://pastebin.com/XgV1S40X
作者: NoManInCar (NMIC)   2015-12-07 18:52:00
對 但我用手算是有解的 虛數解想說讓他有無限多組解 之後我隨便挑一個來用
作者: s4300026 (s4300026)   2015-12-08 22:32:00
matlab 有辦法算無限多組解嗎?仔細深入後還發現如果未知數遮的不好,還會減rank但matlab似乎看不出來...
作者: NoManInCar (NMIC)   2015-12-09 13:42:00
這也是我想知道的XD 對matlab不是很熟悉

Links booklink

Contact Us: admin [ a t ] ucptt.com