考虑在导电体中放置20个电子的静电问题。电子将以最小化其总势能的方式安排自己,这受到躺在身体内部的约束。所有电子至少在主体的边界上最小。电子难以区分,因此问题没有独特的最小值(在一个解决方案中置换电子提供另一种有效的解决方案)。这个例子是由Dolan,Moré和蒙德森的启发[1]。 本算例的目标约束函数和非线性约束函数均为 该示例涉及由以下不等式定义的导电体。对于带坐标的每个电子
这些约束形成一个看起来像球体上的金字塔的身体。要查看正文,请输入以下代码。 在图的上表面和下表面之间存在轻微的间隙。该间隙是用于创建图形的一般绘图程序的伪影。常规在一个触摸另一个表面的一个表面上擦除任何矩形贴片。 问题有二十个电子。约束对每个约束给出界限 这个问题有两种类型的约束。第一个是球面约束,它是一个简单的多项式不等式,分别适用于每个电子。定义这个球面约束。 上述约束命令创建十个约束的向量。查看约束矢量使用 问题中的第二种限制是线性的。您可以以不同方式表达线性约束。例如,您可以使用 目标函数是系统的势能,它是每个电子对的距离倒数的总和:
将目标函数定义为优化表达式。为了获得良好的性能,以向量化的方式编写目标函数。看到 使用随机分布的电子在半径1/2的球体上随机分布的优化开始,以[0,0,-1]为中心。 通过呼叫来解决问题 将解决方案绘制在导电体上的点。 电子在约束边界上分布相当均匀。许多电子在金字塔的边缘和点上。 [1] Dolan,Elizabeth D.,Jorge J.Moré和Todd S. Munson。“使用COPS 3.0基准测试优化软件。”Argonne国家实验室技术报告ANL / MCS-TM-273,2004年2月。问题几何形状
(X, Y) = meshgrid (1: .01:1);Z1 = -abs(X) -abs(Y);Z2 = -1 -根号(1 - x ^2 - y ^2)Z2 =实际(Z2);W1 = Z1;W2 = Z2;W1(Z1 < Z2) = nan;
定义问题的变量
N = 20;x = optimvar (
定义约束
elecprob.constraints.spherec =(x。^ 2 + y。^ 2 +(z + 1)。^ 2)<= 1;
显示(elecprob.Constraints.spherec)
((x。^ 2 + y。^ 2)+(z + 1)。^ 2)<= arg_rhs其中:arg2 = 1;arg1 = arg2(1,20));arg_rhs = arg1(:);
elecprob.constraints.plane1 = z <= -x-y;elecprob.constraints.plane2 = z <= -x + y;elecprob.constraints.plane3 = z <= x-y;elecprob.constraints.plane4 = z <= x + y;
定义目标功能
能量= optimexpr (1);
运行优化
rng
[SOL,FVAL,EXITFLAG,输出] =求解(ELECPROB,INIT)
使用fmincon解决问题。找到满足约束条件的局部最小值。优化完成是因为目标函数在可行方向上不减小到最优性公差的值内,约束条件满足到约束公差的值内。
索尔=
fval = 163.0099.
ExitFlag = OptimalAllyolution.
输出=
查看解决方案
图(手)plot3 (sol.x、sol.y sol.z,
参考
相关的话题