MATLAB方程求解 范围中所有解目标函数是f(x)=x1+x2+x3+x4+x5+x6+x7+x8+x9还有个约束条件是x1-x9的范围x1>=61;x2>=35;x3>=139;x4>=69;x5>=37;x6>=35;x7>=13;x8>=21;x9>=20;x1给出正解的,
问题描述:
MATLAB方程求解 范围中所有解
目标函数是f(x)=x1+x2+x3+x4+x5+x6+x7+x8+x9
还有个约束条件是x1-x9的范围
x1>=61;
x2>=35;
x3>=139;
x4>=69;
x5>=37;
x6>=35;
x7>=13;
x8>=21;
x9>=20;
x1
给出正解的,
答
这个可以用MATLAB的编写M文件的方法来做,用for循环来做
M文件的编写如下
clc;
l=[61 35 139 69 37 35 13 21 20];
u=[110 66 153 102 72 72 40 40 40];
for x1=l(1):u(1)
for x2=l(2):u(2)
for x3=l(3):u(3)
for x4=l(4):u(4)
for x5=l(5):u(5)
for x6=l(6):u(6)
for x7=l(7):u(7)
for x8=l(8):u(8)
for x9=l(9):u(9)
a=[x1 x2 x3 x4 x5 x6 x7 x8 x9];
if sum(a)==500
a
end
end
end
end
end
end
end
end
end
end
由于循环的次数超过10^12,所以需要的时间比较多,我运行了以下程序,解的个数也是非常之多的;这里我就不全部列出: