主题:关于调用IMSL中函数dlsarg进行LU分解时的问题
gxut
[专家分:0] 发布于 2011-04-05 23:11:00
请较大家一个算法问题,我用在IVF中调用IMSL中的函数dlsarg来求解Ax=B的问题,但是提示说在对A进行LU分解时由于上三角阵U的某些对角元接近于零了,因此算不下去了,不知道碰到这种情况,大家是如何解决的,有什么其它更好的办法吗,相对应的在IMSL中的函数是什么,谢谢。
最后更新于:2011-04-05 23:13:00
回复列表 (共4个回复)
沙发
cgl_lgs [专家分:21040] 发布于 2011-04-05 23:20:00
半正定啊,貌似只能自己寫程序搞定了。
IMSL里貌似沒有這樣的東東。
主要是因為不同的應用有不同的處理辦法,你可以置0他可以置1:)
板凳
dongyuanxun [专家分:7180] 发布于 2011-04-06 00:08:00
LU分解也不是很高深的算法,对角元为0可以互换主元啊,最后结果也只是-1的几次方而已
3 楼
gxut [专家分:0] 发布于 2011-04-06 10:02:00
[quote]半正定啊,貌似只能自己寫程序搞定了。
IMSL里貌似沒有這樣的東東。
主要是因為不同的應用有不同的處理辦法,你可以置0他可以置1:)[/quote]
那请教一下对于这种半正定的问题,有什么比较好的算法吗?我现在主要是不知道算法,有算法自己写程序也无所谓的。
4 楼
cgl_lgs [专家分:21040] 发布于 2011-04-06 15:47:00
正如董兄所说,如果仅是对角出现0元素在一部分情况下互换主元就可以解决。
不过有些时候换了还是算不过去,就拿我最熟悉的结构力学来说吧,当这种现象出现时,往往是因为把梁单元当做二力杆单元计算时会出现的,从结构方程上来说,有些节点会被允许任意大小的位移,但实际上却不是这样的,所以在这里我们就需要限制其部分位移了。
我来回复