求助初值问题
怎么确定matlab的初值,让它能得到最优解回复
“初值”一般都是任取或猜测的.当然,如果能画出图形,则“初值”的选取会更有目的性. 针对不同问题取初值可能有个经验值
描述一下你的问题 是个求最大化最小化模型的问题:有5个投资项目,其中有两个元素决定其投资损失,设为x1,x2,每个项目的损失函数为:
f1(x)=3*x1^2+x2^2-46*x1-20*x2+265
f2(x)=x1^2-3*x2^2
f3(x)=x1+3*x2-16
f4(x)=-2*x1+x2
f5(x)=x1+x2-4
求其最大损失最小是多少? 我不清楚怎么来确定它的初值
回复
是求总投资损失吗?没有约束吗?如果是这样,那就是一个很简单的无约束优化问题啊. 恩,没有约束条件,我就是搞不懂初值怎么设 随便设??为什么初值x0与x0得到的结果一样?
回复
这正是“优化”的意义所在。如果有最优解,那么最后解都会朝最优解收敛的.打一个不是很恰当的比方,例如有一个漏斗,无论你将一个小球放在哪个初始位置,小球都会向势能最低的底部靠近.---只是所花费的时间可以相差很大.[ 本帖最后由 xjzuo 于 2006-11-10 10:28 编辑 ] 1stOpt不用猜初值,上面的最大最小化问题解决如下:
ConstStr f1=3*x1^2+x2^2-46*x1-20*x2+265,
f2=x1^2-3*x2^2,
f3=x1+3*x2-16,
f4=-2*x1+x2,
f5=x1+x2-4;
MinMax f(1:5);
结果:
优化算法: 标准差分进化算法
极大极小值(MinMax): 8.53162505401555
x1: 6.53162505401555
x2: 6
极大极小函数:
1: (3*x1^2+x2^2-46*x1-20*x2+265) = 8.531625054
2: (x1^2-3*x2^2) = -65.33787415
3: (x1+3*x2-16) = 8.531625054
4: (-2*x1+x2) = -7.063250108
5: (x1+x2-4) = 8.531625054
回复
1stOpt在曲线拟合,非线性回归,非线性模型参数估算求解方面的确算是很优秀的了.值得向大家推荐. 多谢#10的,也谢谢大家帮忙 ConstStr f1=3*x1^2+x2^2-46*x1-20*x2+265,
f2=x1^2-3*x2^2,
f3=x1+3*x2-16,
f4=-2*x1+x2,
f5=x1+x2-4;
MinMax f(1:5);
在1stOpt中输入后,怎么不计算结果呀?? MinMax最大最小功能好像是2.0才加的,如果是老版本,自然无法计算了。 那么dingd是不是有2.0版本,能否上传共享一下啊?
1.5免费版有很多功能都受限制.
页:
[1]
2