请高手帮我看一下我的matlab程序错在哪里了?max(min{f1,f2,f3,f4,f5,f6,f7})求7个目标函数的最小值的最大化问题:f1 = 15 - x(1) - x(8);f2 = 15 - x(2) - x(9);f3 = 15 - x(3) - x(10);f4 = 15 - x(4) - x(11);f5 = 15 - x(5) - x(1
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/19 23:41:39
![请高手帮我看一下我的matlab程序错在哪里了?max(min{f1,f2,f3,f4,f5,f6,f7})求7个目标函数的最小值的最大化问题:f1 = 15 - x(1) - x(8);f2 = 15 - x(2) - x(9);f3 = 15 - x(3) - x(10);f4 = 15 - x(4) - x(11);f5 = 15 - x(5) - x(1](/uploads/image/z/4522156-52-6.jpg?t=%E8%AF%B7%E9%AB%98%E6%89%8B%E5%B8%AE%E6%88%91%E7%9C%8B%E4%B8%80%E4%B8%8B%E6%88%91%E7%9A%84matlab%E7%A8%8B%E5%BA%8F%E9%94%99%E5%9C%A8%E5%93%AA%E9%87%8C%E4%BA%86%3Fmax%28min%7Bf1%2Cf2%2Cf3%2Cf4%2Cf5%2Cf6%2Cf7%7D%29%E6%B1%827%E4%B8%AA%E7%9B%AE%E6%A0%87%E5%87%BD%E6%95%B0%E7%9A%84%E6%9C%80%E5%B0%8F%E5%80%BC%E7%9A%84%E6%9C%80%E5%A4%A7%E5%8C%96%E9%97%AE%E9%A2%98%EF%BC%9Af1+%3D+15+-+x%281%29+-+x%288%29%3Bf2+%3D+15+-+x%282%29+-+x%289%29%3Bf3+%3D+15+-+x%283%29+-+x%2810%29%3Bf4+%3D+15+-+x%284%29+-+x%2811%29%3Bf5+%3D+15+-+x%285%29+-+x%281)
请高手帮我看一下我的matlab程序错在哪里了?max(min{f1,f2,f3,f4,f5,f6,f7})求7个目标函数的最小值的最大化问题:f1 = 15 - x(1) - x(8);f2 = 15 - x(2) - x(9);f3 = 15 - x(3) - x(10);f4 = 15 - x(4) - x(11);f5 = 15 - x(5) - x(1
请高手帮我看一下我的matlab程序错在哪里了?max(min{f1,f2,f3,f4,f5,f6,f7})
求7个目标函数的最小值的最大化问题:
f1 = 15 - x(1) - x(8);f2 = 15 - x(2) - x(9);f3 = 15 - x(3) - x(10);f4 = 15 - x(4) - x(11);f5 = 15 - x(5) - x(12);
f6 = 15 - x(6) - x(13);f7 = 15 - x(7) - x(14);
用fminmax,转化为:
F1 = x(1) + x(8) - 15...F7 = x(7) + x(14) -15;
线性约束条件为
x(1) + x(2) + x(3) + x(4) + x(5) + x(6) + x(7) = 28;x(8) + x(9) + x(10) + x(11) + x(12) + x(13) + x(14) = 28;
1=
请高手帮我看一下我的matlab程序错在哪里了?max(min{f1,f2,f3,f4,f5,f6,f7})求7个目标函数的最小值的最大化问题:f1 = 15 - x(1) - x(8);f2 = 15 - x(2) - x(9);f3 = 15 - x(3) - x(10);f4 = 15 - x(4) - x(11);f5 = 15 - x(5) - x(1
有两点疑问:
1、为了保证整数解且两两不等而引入的非线性等式约束,为什么不从1次方开始(当然,经测试,似乎并无影响)?
2、非线性等式约束的第4次项加入时,为什么认为“得到的解是错误的”?就因为“不但不满足整数要求,最小的最大值也不为-7”吗?
这种原因好像有点说不过去:
(1)要满足整数解的要求,7个变量应该有7个方程的约束,你刚加了两个方程不满足整数解是很正常的;
(2)怎么知道最小的最大值就一定为-7呢?(另,我这里试过,加入第4项约束时,最小最大值的确还是-7)
帮你改写了一下非线性约束条件:
function [C,ceq] = ghun(x)
C = [];
ceq = zeros(14,1);
for i=1:7
ceq(2*i-1) = sum(x(1:7).^(i+1)) - sum((1:7).^(i+1));
ceq(2*i) = sum(x(8:14).^(i+1)) - sum((1:7).^(i+1));
end
求解得到的结果是:
x =
Columns 1 through 11
7 4 1 5 6 2 3 2 3 5 6
Columns 12 through 14
7 4 1
y =
-6
-8
-9
-4
-2
-9
-11
也就是说,最终优化的结果是-2(换用另外一种优化方法得到的结果相同).