liji2003888 发表于 2006-11-10 09:21

求助初值问题

怎么确定matlab的初值,让它能得到最优解

xjzuo 发表于 2006-11-10 09:30

回复

“初值”一般都是任取或猜测的.
当然,如果能画出图形,则“初值”的选取会更有目的性.

mulan 发表于 2006-11-10 09:33

针对不同问题取初值可能有个经验值
描述一下你的问题

liji2003888 发表于 2006-11-10 09:52

是个求最大化最小化模型的问题:有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
求其最大损失最小是多少?

liji2003888 发表于 2006-11-10 09:57

我不清楚怎么来确定它的初值

xjzuo 发表于 2006-11-10 10:01

回复

是求总投资损失吗?没有约束吗?
如果是这样,那就是一个很简单的无约束优化问题啊.

liji2003888 发表于 2006-11-10 10:05

恩,没有约束条件,我就是搞不懂初值怎么设

liji2003888 发表于 2006-11-10 10:08

随便设??为什么初值x0与x0得到的结果一样?

xjzuo 发表于 2006-11-10 10:27

回复

这正是“优化”的意义所在。如果有最优解,那么最后解都会朝最优解收敛的.打一个不是很恰当的比方,例如有一个漏斗,无论你将一个小球放在哪个初始位置,小球都会向势能最低的底部靠近.---只是所花费的时间可以相差很大.

[ 本帖最后由 xjzuo 于 2006-11-10 10:28 编辑 ]

dingd 发表于 2006-11-10 11:11

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

xjzuo 发表于 2006-11-10 13:40

回复

1stOpt在曲线拟合,非线性回归,非线性模型参数估算求解方面的确算是很优秀的了.
值得向大家推荐.

liji2003888 发表于 2006-11-10 15:32

多谢#10的,也谢谢大家帮忙

liji2003888 发表于 2006-11-10 15:36

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中输入后,怎么不计算结果呀??

dingd 发表于 2006-11-10 16:14

MinMax最大最小功能好像是2.0才加的,如果是老版本,自然无法计算了。

xjzuo 发表于 2006-11-10 17:00

那么dingd是不是有2.0版本,能否上传共享一下啊?
1.5免费版有很多功能都受限制.
页: [1] 2
查看完整版本: 求助初值问题