非线形规划matlab题,高手进!!

来源:百度知道 编辑:UC知道 时间:2024/06/01 21:09:25
目标函数及约束条件:http://hiphotos.baidu.com/%D1%A9%BF%C9%C8%BC/pic/item/dc6f5051df72fb968d54303f.jpg
a=[0 180 420 540 600 500 780 800 1340 1040 1100 1700 1880 1750 1620 1300 1420 1400180 0 240 600 660 560 840 860 1400 1100 1160 1760 1940 1810 1680 1360 1480 1460420 240 0 360 420 320 600 620 1160 860 920 1520 1700 1570 1440 1120 1240 1220540 600 360 0 300 440 480 740 1280 980 1040 1640 1820 1690 1560 1240 1360 1340600 660 420 300 0 500 180 480 1020 720 780 1380 1560 1430 1300 980 1100 1080500 560 320 440 500 0 600 300 840 540 600 1200 1380 1250 1120 800 920 900780 840 600 480 180 600 0 300 840 540 600 1200 1380 1250 1120 800 920 900800 860 620 740 480 300 300 0 540 240 300 900 1080 950 820 500 620 6001340 1400 1160 1280 1020 840 840 540 0 300 840 360 540 600 970 1040 970 11401040 1100 860 980 720 540 540 240 300 0 540 660 840 900 1060 740 860 8401100 1160

约束条件
Matlab下输入:edit opt_con2.m,将下述两行百分号间复制进去,并保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [cc,ceq]=opt_con2(x)
global a b c;
xx=reshape(x,18,18);
cc=(sum(xx)-b)'; %对i求和
ceq=(sum(xx')-c)'; %对j求和
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

目标函数
Matlab下输入:edit opt_fun2.m,将下述两行百分号间复制进去,并保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=opt_fun2(x)
global a b c;
xx=reshape(x,18,18);
cc=(sum(xx)-b)'; %对i求和
y=sum(sum(a.*xx))+5902.9*(sum(cc.*exp(-0.0014*cc)));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

在Matlab下输入:
global a b c;

a=[0 180 420 540 600 500 780 800 1340 1040 1100 1700 1880 1750 1620 1300 1420 1400;
180 0 240 600 660 560 840 860 1400 1100 1160 1760 1940 1810 1680 1360 1480 1460;
420 240 0 360 420 320 6