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