24小时热门版块排行榜    

查看: 2750  |  回复: 26

自己的歌

银虫 (初入文坛)

[求助] 求助:非线性方程组的求解(郁闷中) 已有10人参与

各位大侠好,本人工科出身,数学功底实在一般。最近自编一个计算程序,涉及到一个非线性方程组的求解,无奈解法不理想,很多时候不收敛,求大侠指导一二。

方程形式:方程组中的每个方程的形式都是这样的,x + A = f1(x) + f2(x) ,其中f(x)的形式为 f(x) = (x+ B) / ln (x + C)
其中A,B,C为常数。

解法:采用不动点迭代法,即假设一组初值,带入方程的右边,从而得到一组新的值。如误差值大于允许误差,采用加权因子的方式获得新的迭代值,加权因子从0.1到0.625已尝试过多个。

问题:有时迭代过程中变量计算值超过边界条件。例如x的允许范围为8<= x <=12 , 迭代过程中x会超过12或小于8,会导致计算出错。因此我限定如果x超过12,则等于12;小于8,则等于8。但是没有效果,最后x值总是一直超过12就是小于8。费解。

Help:各位大侠对于这个不动点解法,有没有优化的方法,或者有没有其它可行的解法?谢谢先!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

jerkwin

专家顾问 (正式写手)

【答案】应助回帖


感谢参与,应助指数 +1
fegg7502: 金币+1, 鼓励交流 2013-12-26 09:04:08
要用优化法来做, 不要直接解
2楼2013-12-22 22:11:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)


fegg7502: 金币+1, 鼓励交流 2013-12-26 09:03:58
引用回帖:
9楼: Originally posted by 自己的歌 at 2013-12-23 09:29:16
具体的方程组是写在程序里不太好导出,我写一个具体的方程:

3*(x-7) = (11-x) /ln (13-x) + (10-x) / ln(12-x) 。

右边有两个对数。...

就这个非常而言,很容易啊:
1:x: 8.0795169746152
2:x: 11.0838211610833
17楼2013-12-23 15:14:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖


感谢参与,应助指数 +1
fegg7502: 金币+1, 鼓励交流 2013-12-26 09:04:16
具体方程和数据都给出来看看。
3楼2013-12-22 22:16:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

onesupeng

金虫 (职业作家)

【答案】应助回帖


感谢参与,应助指数 +1
fegg7502: 金币+1, 鼓励交流 2013-12-26 09:04:22
不动点收敛的条件看看,是不是不能用不动点。公式太长我就不写了。

可以采用牛顿迭代这一类的

另外,也可以采用对分法,比较慢,但是有时候很管用
长期招收博士生,参见http://fsl-unsw.com
4楼2013-12-23 08:47:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

自己的歌

银虫 (初入文坛)

引用回帖:
2楼: Originally posted by jerkwin at 2013-12-22 22:11:22
要用优化法来做, 不要直接解

优化法确实正在了解中,希望可以解决!
5楼2013-12-23 09:15:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mahong123

禁虫 (正式写手)


感谢参与,应助指数 +1
fegg7502: 金币+1, 鼓励交流 2013-12-26 09:04:30
本帖内容被屏蔽

6楼2013-12-23 09:18:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

自己的歌

银虫 (初入文坛)


fegg7502: 金币+1 2013-12-26 09:04:38
引用回帖:
4楼: Originally posted by onesupeng at 2013-12-23 08:47:21
不动点收敛的条件看看,是不是不能用不动点。公式太长我就不写了。

可以采用牛顿迭代这一类的

另外,也可以采用对分法,比较慢,但是有时候很管用

牛顿迭代貌似不太可行,求导过程实在复杂。。对分法可以了解下,谢啦!
7楼2013-12-23 09:18:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

自己的歌

银虫 (初入文坛)

引用回帖:
6楼: Originally posted by mahong123 at 2013-12-23 09:18:10
如楼上所言,不动点原理,里面有很多跌代方法,牛顿法,割线法,等等。迭代不收敛原因有很多,确定程序没错的前提下,建议看看初始条件,我上次也是这样

程序可能没问题,因为大多数情况是收敛的,初始条件说的是看下初始条件给的合不合理么?
8楼2013-12-23 09:22:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

自己的歌

银虫 (初入文坛)

引用回帖:
3楼: Originally posted by dingd at 2013-12-22 22:16:24
具体方程和数据都给出来看看。

具体的方程组是写在程序里不太好导出,我写一个具体的方程:

3*(x-7) = (11-x) /ln (13-x) + (10-x) / ln(12-x) 。

右边有两个对数。
9楼2013-12-23 09:29:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

onesupeng

金虫 (职业作家)

引用回帖:
7楼: Originally posted by 自己的歌 at 2013-12-23 09:18:14
牛顿迭代貌似不太可行,求导过程实在复杂。。对分法可以了解下,谢啦!...

这个。。。非线性有限元里面的牛顿迭代比这复杂太多量级了啊。。。
长期招收博士生,参见http://fsl-unsw.com
10楼2013-12-23 09:42:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 自己的歌 的主题更新
信息提示
请填处理意见