如果函数找不到解,能否通过改变TolX使方程组有解?
ThereCS 发表于 2011-9-29 19:08



    建议换一个优化方法,比如用1stOpt试一下。

TOP

TOP

找不到解的意思是迭代不收敛?还是什么? 我个人的经验是这个函数收敛到局部极值问题不大(dF/dxi=0),但是不一定是全局解。你如果对问题参数不熟悉且问题的规模也一般可以试试Generic Algorithm(GA)和Simulated Annealing (SA)。

TOP

提示说,options.TolX<设定值1e-3,但是TolCon超过设定值1e-3。所以optimization停止了,方程最小值,没找到。然后,我把TolCon的值改大到1e0,他算出了一个结果,但是下一个循环TolCon又超出了。
难道我只能把TolCon的值再改大?这个TolCon的值对结果会有影响吗?

TOP

options.DiffMinChange设了没?

TOP

1。检查初始值值是否是feasible,对非线性问题初始值很关键
2。检查equation的Tol,适当调大一点,比如1e-3
3。换个solver,比如snopt。matlab自带的optimizer不好用

TOP

1。检查初始值值是否是feasible,对非线性问题初始值很关键
2。检查equation的Tol,适当调大一点,比如1e- ...
windyabit 发表于 2011-9-30 18:46


你是指MaxFunEvals(函数允许估值的最大值)还是TolFun(函数迭代的终止误差)?
不太明白两者的区别。

TOP

Ding

TOP

回复 7# windyabit


   
应该都不是我说的,feasible是指初始值是否满足约束条件

TOP