非线性方程组求解
大家有没有求解过大型非线性方程组,我用的是牛顿迭代法,输入初值都是10以内的,为什么结果ans=1e+014*3.14
2.1
-1.7
结果会相差这么大?
还有精度很难提高,有时会一直循环,不出结果,大家能指点一下吗? 如果有一项是1/x,而这项为0时就是方程的解就会出现你的情况。简单地说就是该值越大,对目标函数的贡献越小的情况下就会这样吧。
回复 沙发 logxing 的帖子
指的有一项是哪里的一项啊,我不太明白啊,能详细些吗,谢谢回复 楼主 讨论求知 的帖子
这个有可能是方程奇异,你试一下其他的初始条件怎么样呢 ? 原帖由 讨论求知 于 2009-4-10 14:58 发表 http://www.chinavib.com/forum/images/common/back.gif指的有一项是哪里的一项啊,我不太明白啊,能详细些吗,谢谢
比如你的非线性方程是
1/x+y=5
y^3=125
这时你迭代求得的结果自然是相差极大,x是超大数,y接近5,这个结果看似荒谬却是正确的。
我解非线性方程组也遇到过这个问题,所以有沙发里那些说法。
具体的你要看极大项在你方程里的位置,是不是其越大对目标函数贡献越小,总之这个不一定是错误。 精度很难提高的问题。
你要看看你的方程能否保证一阶导数连续,如果不能,使用牛顿法就有可能出现循环,精度无法提高。当然换一个初值有可能就好了。
回复 地板 无水1324 的帖子
是啊,我的雅可比矩阵是奇异的,我正在调试数据,但初值不好选啊,我是做齿轮的,初值的选择好像很难回复 6楼 logxing 的帖子
我的方程没有类似1/x+y=5的式子,你说的很有道理,好像就是原始数据和初值的问题,我那方程太大了,修改调试太费事,一头雾水啊 原帖由 讨论求知 于 2009-4-12 11:57 发表 http://www.chinavib.com/forum/images/common/back.gif是啊,我的雅可比矩阵是奇异的,我正在调试数据,但初值不好选啊,我是做齿轮的,初值的选择好像很难
我也做齿轮相关的,你的问题背景是什么? 我做齿轮减速器的非线性稳态分析,求解方程要求频率与幅值的关系,请问你是做哪一方面的啊 我做齿轮刀具的。你这个方向我不懂,不过也许以后会涉及到。 检查你的雅克比矩阵:
1、是否奇异;2、是否病态
若你的雅可比矩阵合乎以上两点中任意一点,则要用阻尼牛顿法求解。
详见数值分析教材。 我看了很多数值书,没看到过阻尼牛顿法求解,还有别的叫法吗,请详细些啊
谢谢
页:
[1]