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

看板MATLAB作者 (NMIC)時間8年前 (2015/12/07 16:53), 編輯推噓0(0010)
留言10則, 3人參與, 最新討論串3/3 (看更多)
※ 引述《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); -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.14.250 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1449478411.A.791.html

12/07 17:33, , 1F
14個式子解8個未知數?
12/07 17:33, 1F

12/07 17:33, , 2F
我跑出來都是無解阿qq
12/07 17:33, 2F

12/07 17:34, , 3F
更正,是13個式子
12/07 17:34, 3F

12/07 17:39, , 4F
12/07 17:39, 4F

12/07 18:52, , 5F
對 但我用手算是有解的 虛數解
12/07 18:52, 5F

12/07 18:55, , 6F
想說讓他有無限多組解 之後我隨便挑一個來用
12/07 18:55, 6F

12/08 22:32, , 7F
matlab 有辦法算無限多組解嗎?
12/08 22:32, 7F

12/08 22:34, , 8F
仔細深入後還發現如果未知數遮的不好,還會減rank
12/08 22:34, 8F

12/08 22:35, , 9F
但matlab似乎看不出來...
12/08 22:35, 9F

12/09 13:42, , 10F
這也是我想知道的XD 對matlab不是很熟悉
12/09 13:42, 10F
文章代碼(AID): #1MPKaBUH (MATLAB)
文章代碼(AID): #1MPKaBUH (MATLAB)