24小时热门版块排行榜    

查看: 2859  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xiaoxuan1111

铁杆木虫 (正式写手)

[求助] 用fortran程序遗传算法解非线性方程组 已有1人参与

一个复杂的六元非线性方程组,用牛顿迭代法因找不到好的初值,我就用fortran编了个遗传算法求解,可是该算法收敛速度太慢,解一次平均得花40秒才收敛,而求解方程组只是整个程序的一小部分,整个程序要解成千上万次方程组,该怎样才能提高收敛速度呢,哦,对了,我一开始用的是二进制编码,后来改为浮点数编码,速度仍然是那么慢,求问怎么办呢?
在找不到好的初始值情况下,fortran解非线性方程组还有其他方法么?谢谢各位……
回复此楼

» 猜你喜欢

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

你想要什么,如何得到想要的,现在应该怎么做?
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pippi6

铁杆木虫 (著名写手)

工程和科学数值计算咨询

【答案】应助回帖

★ ★
xiaoxuan1111: 金币+2, 有帮助, 两种算法相结合我倒也想过,不过没有尝试行不行,抽空试一下,谢谢了 2013-05-23 14:35:41
此事与Fortran无关。不错,Newton法是和初值选取有很大关系。不过,错不在Newton法。Newton法无非就是保证初值在解附近可以迅速收敛。但只要是非线性,就有初值选取问题。而且,没有一般的方法。一般说来,经验最好从应用里来。比如说,可以预选初值,事前检查函数变号,初步确定初值范围。即便这样,也很大程度依赖你对具体问题的经验。

如果是解很多方程,不知解之间是否有一定程度的关联性。我曾有过这样的例子,使用前一方程的解作为下一方程的迭代初值。

6元方程要解40s,这实在是太慢。比如,遗传算法是否可以做为初值选取。算几回不等到收敛就切换到Newton法。
6楼2013-05-23 12:57:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

SEEDEN

银虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
2楼2013-05-16 23:10:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

onesupeng

金虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
什么样子的方程贴出来瞄一眼嘛,应该有很多办法求解的吧。。。
长期招收博士生,参见http://fsl-unsw.com
3楼2013-05-17 03:02:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaoxuan1111

铁杆木虫 (正式写手)

引用回帖:
2楼: Originally posted by SEEDEN at 2013-05-16 23:10:34
http://muchong.com/bbs/viewthread.php?tid=4595014
可以参考下这个帖子

牛顿下山法对初值依赖性强么?我这个找不到好的初值……
你想要什么,如何得到想要的,现在应该怎么做?
4楼2013-05-17 08:28:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见