shareice 发表于 2010-1-9 18:21

讨论优化函数fminimax的使用

很着急,请大家帮忙。

数学模型是
function y=myfun(x)
y=abs(sqrt(2*1179.447*x(1)-0.5006*x(1)^2)/(x(1)-x(2))-sqrt(2*1179.447*x(1)- 0.5006*x(1)^2)/(0.5006*x(1)-1179.447));

用的优化函数的界面进行优化;

选择fminimax

目标函数 输入 @myfun

初始点为

边界点 lb ub

运行后,matlab 报错为:Optimization running.
Warning: Large-scale algorithm not currently available for this problem type.
Optimization terminated.
Objective function value: -1.269278871460569E-18
Optimization terminated: magnitude of search direction less than 2*options.TolX
and maximum constraint violation is less than options.TolCon.

请问,怎么会算法不支持呢,前几天我同样运算了一遍,顺利得到结果的,今天想再算一下,就变成这样了。

请高手指教一下。
x0=
我用命令行的运行结果也一样:=fminimax(@myfun,x0,[],[],[],[],,);


很着急,请大家帮忙。

maigicku 发表于 2010-1-10 10:22

我这里没有出现LZ的错误,而出现下面的信息:

Optimization terminated: magnitude of search direction less than 2*options.TolX
and maximum constraint violation is less than options.TolCon.
Active inequalities (to within options.TolCon = 1e-006):
lower      upper   ineqlin   ineqnonlin
    1                              1
    2      

需要将Tolx设定一下,改后程序为:

clear;clc
y=@(x) abs(sqrt(2*1179.447*x(1)-0.5006*x(1)^2)/(x(1)-x(2))-sqrt(2*1179.447*x(1)- 0.5006*x(1)^2)/(0.5006*x(1)-1179.447));
x0=;
lb=;
ub=;
options=optimset('fminimax');
options.TolX=0.000001;            % 控制被估参数的迭代精度
options.Display='off';            % 避免显示收敛信息
=fminimax(y,x0,[],[],[],[],lb,ub,[],options);
但最后结果跟改前一样,只不过没有警告信息而已。。奇怪。。

[ 本帖最后由 maigicku 于 2010-1-10 10:25 编辑 ]

ChaChing 发表于 2010-1-10 14:39

回复 楼主 shareice 的帖子

末怪个人删帖! 是新手才没扣体能!
想想若每个人都如此催帖, 那不是一帖变4~5帖, 别人阅读方便吗?
LZ心急个人可以体谅, 但也请想想别人!

shareice 发表于 2010-1-11 13:18

难道是我不经意间更改了matlab的设置?

上述函数的我有计算结果的,在这个区间里绝对有最小最大绝对值得。。
页: [1]
查看完整版本: 讨论优化函数fminimax的使用