请问有没好点的办法生成非奇异矩阵[Matlab]

2015-03-14 02:44:06 +08:00
 meteor2013
我目前用的办法是用
magic(n)生成随机的n阶矩阵
然后用det()检查是否非奇异矩阵
但这种办法效率太低了。
大家有好点的办法吗?

对了,v2ex能加一个Matlab板块吗?
3330 次点击
所在节点    问与答
7 条回复
yangzh
2015-03-14 02:48:09 +08:00
meteor2013
2015-03-14 02:54:51 +08:00
@yangzh

我目前用magic(n)生成

如果 n=10, 奇异矩阵的概率极低
但是n=100,为什么奇异矩阵的概率就非常高了啊?
h4x3rotab
2015-03-14 03:25:06 +08:00
非奇异矩阵 <=> 行列式不为0 <=> 可以高斯-约当消元得到单位矩阵
反过来,拿一个单位矩阵,随机做线性变换,是不是就能得到一个非奇异矩阵?
脑洞出来的,不知道对不对
ruoyu0088
2015-03-14 07:49:58 +08:00
你确定magic函数是生成随机矩阵的吗?
jokester
2015-03-14 09:20:06 +08:00
re 4f
然后用det判定singuarity有点那个
rank应该会快些
facat
2015-03-14 12:15:58 +08:00
我以前试过用rand,生成的矩阵几乎不奇异。
或者楼主先找出一个非奇异矩阵,然后在此基础上做初等变换,依据线性代数的知识,得到的矩阵仍然是非奇异的。
meteor2013
2015-03-14 12:36:24 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/176763

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX