不足数量的输出从右手边的等号来满足作业

13个视图(30天)
我看过其他有关此主题的问题和答案,但找不到我的问题的答案。
函数测查[c] = nonlcon(右)
s = [1 2 0.18 - 0.0997;
2 3 0.3 - 0.102;
3 4 0.5 - 0.1045;
4 5 0.5 - 0.1064);
vv = 6;
量表(1)= (s (1,1) - r (1))。^ 2 + (s - r (1、2) (2)) ^ 2 + (s (1,3) - r (3))。^ 2-vv。* (s (1,4) - r (4)) ^ 2 = = 0;
量表(2)= (s (2,1) - r (1))。^ 2 + (s (2, 2) - r (2)) ^ 2 + (s (2、3) - r (3))。^ 2-vv。* (s (2、4) - r (4)) ^ 2 = = 0;
量表(3)= (s (3,1) - r (1))。^ 2 + (s (3 2) - r (2)) ^ 2 + (s (3、3) - r (3))。^ 2-vv。* (s (3、4) - r (4)) ^ 2 = = 0;
量表(4)= (s (4,1) - r (1))。^ 2 + (s (4,2) - r (2)) ^ 2 + (s (4,3) - r (3))。^ 2-vv。* (s (4, 4) - r (4)) ^ 2 = = 0;
c = [];
结束
r0 = (2.5 - 5 0 0);
ob = @ (r) (r (1) 3)。^ 2 + (r (2) 4)。^ 2 + (r (3) -0.18)。^ 2;
有趣= @ (r) @nonlcon;
[x, fval exitflag、输出]= fmincon (ob, r0、[][],[],[],[],[],有趣)
为什么我得到这个错误?希望有人可以开导我。
错误jisuan > @ (r) @nonlcon(第10行)
有趣= @ (r) @nonlcon;
错误fmincon(第654行)
[ctmp, ceqtmp] =函数宏指令(confcn {3}, X,变长度输入宗量{:});
错误jisuan(11行)
[x, fval exitflag、输出]= fmincon (ob, r0、[][],[],[],[],[],有趣)

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2021年7月8日
有趣= @nonlcon;
4评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年7月9日
注意你的约束有四个方程四个变量,所以他们解决两个 特定的 万博 尤文图斯解决方案。唯一的问题是一个集比另一种更好的解决方案,答案是否定的,他们都是一样的。万博 尤文图斯

登录置评。

答案(1)

Fangjun江
Fangjun江 2021年7月8日
nonlcon()是一个定义函数所以有趣= @nonlcon应该够了。,可能会更容易一些,如果函数只有一个返回变量。返回的“c”是空的所以你可以删除“c”nonlcon ()
2的评论

登录置评。

类别

找到更多的在Solver-Based非线性优化帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!