24小时热门版块排行榜    

查看: 2235  |  回复: 6

学术老混混

金虫 (小有名气)

[求助] 【求助】如何判断大型矩阵是否奇异?

本人在求解非线性方程组(结构动力学问题)的时候,参考Newton相关算法中有一步是判断Jacobi矩阵是否奇异,但是没给出具体的实现。本问题的Jacobi矩阵维数较大(1000×1000),本人采用VC++代码实现,请问有什么较为简便的实现方法?

用求行列式的方法对于本问题的大型矩阵好像因为数值误差的存在导致即使矩阵奇异,行列式结果也有个较大值。请问是否能够通过对结果的数量级进行大致的判断,是否靠谱?另lapack包里有没有直接求解矩阵行列式的函数,函数名是啥?

或者有什么别的方法,比如根据特征值判断之类的,总之目的就一个:判断该类大型矩阵的奇异性。最好能给出C++代码的实现,或者能否把Matlab相关函数移植过来也行,呵呵
回复此楼
行百里者半九十
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

学术老混混

金虫 (小有名气)

顶啊,求高手解惑啊
行百里者半九十
2楼2013-04-30 22:59:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wshaoxin

铁杆木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
学术老混混: 金币+50, 有帮助, 反幂法的代码你有没有啊?最好是C++的,matlab也行,多谢哈。有的话剩下的50金币也给你 2013-05-02 12:18:42
1000*1000的矩阵用matlab可以求吧,eig(矩阵)就能求出特征根,或者是反幂法迭带求最小特征值,一般的数值分析书上应该都有。当然如果是超高维(>10000)的矩阵,应该另有它法。

[ 发自手机版 http://muchong.com/3g ]
Godhelpsthosewhohelpthemselves!
3楼2013-05-02 10:53:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

学术老混混

金虫 (小有名气)

4楼2013-05-02 12:32:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wshaoxin

铁杆木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
学术老混混: 金币+50, 有帮助, 好的,多谢 2013-05-02 17:17:47
我从《数值分析》:何汉林 梅家斌,科学出版社。找了这个,你试试吧?

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : Matlab程序.docx
  • 2013-05-02 12:50:54, 12.27 K
Godhelpsthosewhohelpthemselves!
5楼2013-05-02 12:51:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sealight

铜虫 (初入文坛)

矩阵行列式是用LU分解做的,LAPACK中对应的函数是dgetrf_(double型,其余类推),判断矩阵是否奇异用LU分解就行了,很好使,matlab也是这么做的,具体可在matlab中键入“doc lu”

个人不建议自己去编写矩阵运算代码,直接用BLAS和LAPACK,省事省力,还可以用matlab来验证。

» 本帖已获得的红花(最新10朵)

6楼2013-05-03 08:51:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

学术老混混

金虫 (小有名气)

送红花一朵
引用回帖:
6楼: Originally posted by sealight at 2013-05-03 08:51:59
矩阵行列式是用LU分解做的,LAPACK中对应的函数是dgetrf_(double型,其余类推),判断矩阵是否奇异用LU分解就行了,很好使,matlab也是这么做的,具体可在matlab中键入“doc lu”

个人不建议自己去编写矩阵运算 ...

好的,多谢啦
待会儿试试,这也省得我把matlab转C++了,这会正捣鼓Mideva头大呢
行百里者半九十
7楼2013-05-03 15:34:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 学术老混混 的主题更新
信息提示
请填处理意见