二次约束在Matlab /优化错误2020 b但不是2020 Matlab
3视图(30天)
显示旧的评论
你好,我有Matlab 2020 a和2020 b在不同的电脑。我的代码运行二次最优化(二次目标函数,二次约束)新版本中遇到错误但不是Matlab的旧版本。
这是一个例子:我写了下面的代码在两个圆之间找到最短的距离:
% % %定义优化问题
CircleDistance = optimproblem;
% % % % %变量
x1 = optimvar (x1的1);
日元= optimvar (“日元”1);
x2 = optimvar (“x2”1);
y2 = optimvar (“日元”1);
%的约束
CircleDistance.Constraints。为Circle1 = x1。^ 2 +日元。^ 2 < = 5;
CircleDistance.Constraints。Circle2 = (x2-10)。^ 2 + (y2-5)。^ 2 < = 5;
%目标函数
CircleDistance。目标= (x1, x2))。^ 2 + (y1, y2)。^ 2;
%初始点
x0。x1 = 0;
x0。日元= 0;
x0。x2 = 10;
x0。y2 = 5;
%解决这个问题
x =解决(x0 CircleDistance);
在Matlab 2020,我得到正确的解决方案(如上面列出的),但我得到以下错误当我运行Marlab 2020 b中的代码(在不同的电脑上)。
错误使用strjoin(38)行
的第一个参数应该是一个细胞的字符串数组。
错误在optim.internal.problemdef.compile.compileQuadraticConstraints
错误在optim.problemdef.OptimizationProblem / compileConstraints
错误在optim.internal.problemdef.ProblemImpl / prob2structImpl
错误在optim.internal.problemdef.ProblemImpl / solveImpl
错误在optim.problemdef.OptimizationProblem /解决
错误在Untitled(27)行
x =解决(x0 CircleDistance);
有人能帮帮我吗?提前谢谢你。