查看: 799|回复: 8|关注: 0

[已解决] 如何生成随机矩阵A,并满足A*A'≤I?

[复制链接]

新手

7 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
本帖最后由 wangzhizhuo 于 2019-10-18 13:24 编辑

求助各位大佬,有没有某种算法可以生成一个随机矩阵A,并满足A'*A≤I? (其中【A'】表示矩阵A的转置,【I】表示单位矩阵)

万分感谢!~

PS:我目前采用的方法是生成一群随机矩阵,然后寻找并判断符合要求的,但该方法不适用于高维(n>4)的情况,希望找到能从根本上解决问题的方法。代码如下:
  1. n=4;                        % 维数(仅适用于4维以下,高于4维求解很困难)
  2. I=eye(n);                   % 适维单位矩阵
  3. while(1)                    % 死循环
  4.     A=2*(rand(n,n)-0.5);    % 生成各元素数值在-1~1之间的随机矩阵A(因为丨aij丨>1一定不满足[A'*A-I]半负定的要求)
  5.     if all(eig(A'*A-I)<=0)  % 筛选
  6.         A                   % 输出矩阵A
  7.         eig(A'*A-I)         % 输出[A'*A-I]的特征根用于检验
  8.         break;              % 终止循环
  9.     end
  10. end
复制代码

论坛优秀回答者

权威

4047 麦片

财富积分



3

主题

4240

帖子

888

最佳答案
  • 关注者: 195
发表于 2019-10-18 16:38:32 | 显示全部楼层
A'*A≤I  
矩阵可以比较大小?
每一个元素相比较?
还是行列式?

新手

7 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
 楼主| 发表于 2019-10-18 16:40:29 | 显示全部楼层
maple1314168 发表于 2019-10-18 16:38
A'*A≤I  
矩阵可以比较大小?
每一个元素相比较?

其实就是A'*A-I≤0,即矩阵【A'*A-I】半负定。

论坛优秀回答者

权威

4047 麦片

财富积分



3

主题

4240

帖子

888

最佳答案
  • 关注者: 195
发表于 2019-10-21 09:19:32 | 显示全部楼层 |此回复为最佳答案
wangzhizhuo 发表于 2019-10-18 16:40
其实就是A'*A-I≤0,即矩阵【A'*A-I】半负定。

可以把半负定的条件作为约束。
用定值的目标函数优化。一般每次都可以得到一个符合条件的。

新手

7 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
 楼主| 发表于 2019-10-22 14:16:34 | 显示全部楼层
maple1314168 发表于 2019-10-21 09:19
可以把半负定的条件作为约束。
用定值的目标函数优化。一般每次都可以得到一个符合条件的。 ...

定值目标函数优化没有做过,可不可以给一个简单的例子?非常感谢。

论坛优秀回答者

权威

4047 麦片

财富积分



3

主题

4240

帖子

888

最佳答案
  • 关注者: 195
发表于 2019-10-23 08:56:10 | 显示全部楼层
wangzhizhuo 发表于 2019-10-22 14:16
定值目标函数优化没有做过,可不可以给一个简单的例子?非常感谢。

我以为你懂了!
比如n=4,变量是16个。
objfun=@(x)sum(0*x);
这个就是定值为0的函数。
因为我们不关注目标函数,只要求符合约束就可以。

新手

5 麦片

财富积分


050


0

主题

5

帖子

0

最佳答案
发表于 2019-11-19 16:22:27 | 显示全部楼层
maple1314168 发表于 2019-10-23 08:56
我以为你懂了!
比如n=4,变量是16个。
objfun=@(x)sum(0*x);

楼主  为了得到满足约束条件的点  按照你这个方法做了   但是每次结果都是一样的该怎么解决?

论坛优秀回答者

权威

4047 麦片

财富积分



3

主题

4240

帖子

888

最佳答案
  • 关注者: 195
发表于 2019-11-19 17:41:27 | 显示全部楼层
victori_m02Ol 发表于 2019-11-19 16:22
楼主  为了得到满足约束条件的点  按照你这个方法做了   但是每次结果都是一样的该怎么解决? ...

你每次使用一样的初值吧?
可以试试随机的初值。

新手

5 麦片

财富积分


050


0

主题

5

帖子

0

最佳答案
发表于 2019-11-19 20:17:41 | 显示全部楼层
maple1314168 发表于 2019-11-19 17:41
你每次使用一样的初值吧?
可以试试随机的初值。

您说的思路对我很有启发。
例如x1和x2满足
x1+x2<=3
x1-0.5*x2<=0
x1-2*x2>=0
这些条件构成一个有界区域。根据您的思路,我用定值优化就可以获得很多组满足这些条件的点。
如果问题引申到高维的话,我分析不出初始点的特征,该怎么给定初始点呢?还是说初始点的给定不需要满足限制条件呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

快速回复 返回顶部 返回列表