1stopt中怎么求出所有的根?
我在学习1stopt中发现编写程序后,每次都只给出一个根,不太清楚怎么回事.下面用一个简单的例子来说明,以便于各位理解和回答.
(第一个问题)
Parameter x;
Function x^2-6*x+8;
每次运行(F9)后,结果不太一样.
第一个结果:
====== 结果 ======
迭代数: 16
计算用时(时:分:秒:毫秒): 00:00:00:110
计算中止原因: 达到收敛判定标准
优化算法: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
函数表达式 x^2-6*x+8
目标函数值: 0
x: 3.99999999984976
====== 计算结束 ======
第二个结果:
====== 结果 ======
迭代数: 16
计算用时(时:分:秒:毫秒): 00:00:00:81
计算中止原因: 达到收敛判定标准
优化算法: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
函数表达式 x^2-6*x+8
目标函数值: 0
x: 2.00000000003756
====== 计算结束 ======
第三个结果(基本同第一个):
====== 结果 ======
迭代数: 16
计算用时(时:分:秒:毫秒): 00:00:00:150
计算中止原因: 达到收敛判定标准
优化算法: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
函数表达式 x^2-6*x+8
目标函数值: 0
x: 4
====== 计算结束 ======
对以上这种情况,是设置的算法不对,还是怎么地?
因为一般情况,并不一定都知道实际的根个数和大致范围,直接取迭代点不太好.
(第二个问题)
怎么求算复数的根??
Parameter x;
Function x^3-8;
每次只有结果2,那么我该怎么求复数的根??
谢谢!! 对1stopt没什么研究
仅仅机器上有,对于有些问题试验过
对于你的问题,我猜,
1stopt最擅长的是最优化等
那么,你所谓的方程求根,比如三次方程,就有三个相同效用的全局极小点。
这就像你要个高手去杀人
去碰到了3胞胎。该杀谁?
而我们在实际中遇到的更多是有局部极小的干扰
这便是1STOPT称呼的强项 说错了请shamohu老兄纠正一下:
1stopt应当和MATLAB的数值非线性方程求解算法有相似之处——只能求实根不能求复根。
不同之处在于1stopt随机选取初始点,而MATLAB则相对传统,要用初值定一下搜索大致的区间,我习惯于用循环初值的方式fsolve,一般不是只定一个值,1stopt则需多算几次,当然也可以循环多次看有多少不同的根,一个道理。 看来一样是比较麻烦,因为实际上随机性比较强,不知道有多少根的情况下,很难说究竟要运行多少次才能够满足要求.
另外,1stopt有个地方也比较麻烦,就是算法的选择也比较难.我试了几个小程序,发现用有的用不同的算法不仅仅迭代次数差别巨大,而且得出的结果也有差别.
每次求解之前,不得不先分析自己的方程,然后再求解了 1stOpt的2.0已经有算法自动选择功能,即可根据不同的问题自动确定用哪种算法;另外还有一个重复运算功能(RepeatRun),如下列:
Algorithm = GLM, SM3, DE1, GBFGS, GA;
RepeatRun = 5;
自动重复运算5次,每次的算法分别为GLM, SM3, DE1, GBFGS, GA,5次当中最好的结果将被保留下来。
当然,最好的方法还是充分理解各算法的特点及所适应解决问题的范围。
对于求根问题,好像一下不能得出全部解,也不支持复数运算(不知以后支持否?)
Parameter x=1;
Function x^2-6*x+8;
上面求根例子,如果给定初值为1,将只会得到一个根x=2; 如给初值为5,则只会得到一个根x=4 好,明白了,TKS!
可惜以后2.0不提供免费下载了! 应该以后很难支持复数
从他那些的算法来看
至于求根,能画图就成个图北,瞄瞄根长在什么地方 [quote]原帖由 [i]inndoor[/i] 于 2006-11-6 08:43 发表
好,明白了,TKS!
可惜以后2.0不提供免费下载了! [/quote]
估计是dao/pj版太多的原因!国内为何难出一款象样的数值计算软件?水平低的,无人理;有水平的,pj“高手”们蜂拥而上,置之死地而后快。这种环境,即使Matlab、Maple、Origin等,仅靠中国市场,恐怕早关门了。 [quote]原帖由 [i]shamohu[/i] 于 2006-11-6 09:46 发表
估计是dao/pj版太多的原因!国内为何难出一款象样的数值计算软件?水平低的,无人理;有水平的,pj“高手”们蜂拥而上,置之死地而后快。这种环境,即使Matlab、Maple、Origin等,仅靠中国市场,恐怕早关门了。 [/quote]
是的,我用的就是dao/pj的。不过一般软件也太贵了,不是一般的人能够承受的起的。 这个也是个二面性问题。
没有D版的,哪有流行。
这些东西都死贵死贵。
一般的个人是很难以去买的,最多科研院校集体购买。
而在这之前,需要大量的人大量的传播使用心得体会
在这个基础上在考虑D版的问题吧
这东西很复杂,我们还是安静地使用D的MATLAB吧
[quote]原帖由 [i]shamohu[/i] 于 2006-11-6 09:46 发表
估计是dao/pj版太多的原因!国内为何难出一款象样的数值计算软件?水平低的,无人理;有水平的,pj“高手”们蜂拥而上,置之死地而后快。这种环境,即使Matlab、Maple、Origin等,仅靠中国市场,恐怕早关门了。 [/quote]
[color=red]=========================================[/color]
[color=Blue][b]跑题了,见仁见智的事情,不涉及纯技术,关掉了
by bainhome[/b][/color]
[color=red]=========================================[/color]
[[i] 本帖最后由 bainhome 于 2006-11-6 18:17 编辑 [/i]]
页:
[1]
