讨论求知 发表于 2009-4-3 19:17

非线性方程组求解

大家有没有求解过大型非线性方程组,我用的是牛顿迭代法,输入初值都是10以内的,为什么结果ans=1e+014*
                                                                                                                                                                  3.14
                                                                                                                                                                  2.1
                                                                                                                                                                   -1.7
结果会相差这么大?
还有精度很难提高,有时会一直循环,不出结果,大家能指点一下吗?

logxing 发表于 2009-4-9 20:59

如果有一项是1/x,而这项为0时就是方程的解就会出现你的情况。简单地说就是该值越大,对目标函数的贡献越小的情况下就会这样吧。

讨论求知 发表于 2009-4-10 14:58

回复 沙发 logxing 的帖子

指的有一项是哪里的一项啊,我不太明白啊,能详细些吗,谢谢

无水1324 发表于 2009-4-10 20:09

回复 楼主 讨论求知 的帖子

这个有可能是方程奇异,你试一下其他的初始条件怎么样呢 ?

logxing 发表于 2009-4-10 20:29

原帖由 讨论求知 于 2009-4-10 14:58 发表 http://www.chinavib.com/forum/images/common/back.gif
指的有一项是哪里的一项啊,我不太明白啊,能详细些吗,谢谢
比如你的非线性方程是
1/x+y=5
y^3=125

这时你迭代求得的结果自然是相差极大,x是超大数,y接近5,这个结果看似荒谬却是正确的。
我解非线性方程组也遇到过这个问题,所以有沙发里那些说法。
具体的你要看极大项在你方程里的位置,是不是其越大对目标函数贡献越小,总之这个不一定是错误。

logxing 发表于 2009-4-10 20:32

精度很难提高的问题。
你要看看你的方程能否保证一阶导数连续,如果不能,使用牛顿法就有可能出现循环,精度无法提高。当然换一个初值有可能就好了。

讨论求知 发表于 2009-4-12 11:57

回复 地板 无水1324 的帖子

是啊,我的雅可比矩阵是奇异的,我正在调试数据,但初值不好选啊,我是做齿轮的,初值的选择好像很难

讨论求知 发表于 2009-4-12 12:03

回复 6楼 logxing 的帖子

我的方程没有类似1/x+y=5的式子,你说的很有道理,好像就是原始数据和初值的问题,我那方程太大了,修改调试太费事,一头雾水啊

logxing 发表于 2009-4-12 19:04

原帖由 讨论求知 于 2009-4-12 11:57 发表 http://www.chinavib.com/forum/images/common/back.gif
是啊,我的雅可比矩阵是奇异的,我正在调试数据,但初值不好选啊,我是做齿轮的,初值的选择好像很难
我也做齿轮相关的,你的问题背景是什么?

讨论求知 发表于 2009-4-13 16:36

我做齿轮减速器的非线性稳态分析,求解方程要求频率与幅值的关系,请问你是做哪一方面的啊

logxing 发表于 2009-4-14 09:25

我做齿轮刀具的。你这个方向我不懂,不过也许以后会涉及到。

gouxu 发表于 2009-5-5 19:01

检查你的雅克比矩阵:
1、是否奇异;2、是否病态
若你的雅可比矩阵合乎以上两点中任意一点,则要用阻尼牛顿法求解。
详见数值分析教材。

讨论求知 发表于 2009-5-5 19:11

我看了很多数值书,没看到过阻尼牛顿法求解,还有别的叫法吗,请详细些啊
谢谢
页: [1]
查看完整版本: 非线性方程组求解