作者NoManInCar (NMIC)
看板MATLAB
标题Re: [问题] 解出矩阵系数
时间Mon Dec 7 16:53:29 2015
※ 引述《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://webptt.com/cn.aspx?n=bbs/MATLAB/M.1449478411.A.791.html
1F:→ celestialgod: 14个式子解8个未知数? 12/07 17:33
2F:→ celestialgod: 我跑出来都是无解阿qq 12/07 17:33
3F:→ celestialgod: 更正,是13个式子 12/07 17:34
5F:→ NoManInCar: 对 但我用手算是有解的 虚数解 12/07 18:52
6F:→ NoManInCar: 想说让他有无限多组解 之後我随便挑一个来用 12/07 18:55
7F:→ s4300026: matlab 有办法算无限多组解吗? 12/08 22:32
8F:→ s4300026: 仔细深入後还发现如果未知数遮的不好,还会减rank 12/08 22:34
9F:→ s4300026: 但matlab似乎看不出来... 12/08 22:35
10F:→ NoManInCar: 这也是我想知道的XD 对matlab不是很熟悉 12/09 13:42