
拉格朗日函数是f(x,y,z)=0.4xy+0.4(x+y)z+λ(xyz-512)。
根据fx=0,fy=0,fz=0得到x=y=z。代入xyz-512=0中得x=y=z=8。
你只算了2个侧面,实际有4个侧面。
1、首先在电脑中启动matlab,新建一个函数文件,用来写目标函数。
2、在编辑器窗口中写入要求的目标函数,并保存,注意使函数名与文件名相同。
3、然后再新建一个函数文件,用来编写非线性约束条件。步骤及其注意事项同上。额外需要注意的是,需要将两个函数文件放在同一个文件夹中。
4、最后,在命令行窗口处写入fmincon命令。此处需要注意的是,对于没有的线性约束条件的位置药用空矩阵代替,并且初始条件需要满足非线性约束条件。
5、敲下键盘上的enter建,结果得出。可以发现exitflag=1是大于0的,所以结果正确。
M是一个“十分大”,也叫“足够大”的正数。。。其作用是使得检验数得到足够的数值,以将相应的变量从基变量中排除。。。一般是为了人造一个初始基,然后将其变量排除用。。。上题中:f是原始的目标函数,g则是原始目标函数加上一个初始基之后的新目标函数。
单纯形法原理中,Cj = M 则 检验数 Cj - CbB^(-1)Pj 总是和M的符号一致(因为M足够大,所以只用考虑Cj的符号就行了)。
则在求最大化问题中,使得人工变量的系数为-M,则此变量将一定会被排除出基变量。
在求最小化问题中,使得人工变量的系数为M,则此变量也一定会被排除出基变量。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)