Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#2 |
普通会员
注册日期: 2007-12-02
年龄: 44
帖子: 74
声望力: 19 ![]() |
![]()
书上转载的。
函数 linprog 格式 x = linprog(f,A,b) %求min f ' *x sub.to 线性规划的最优解。 x = linprog(f,A,b,Aeq,beq) %等式约束 ,若没有不等式约束 ,则A=[ ],b=[ ]。 x = linprog(f,A,b,Aeq,beq,lb,ub) %指定x的范围 ,若没有等式约束 ,则Aeq=[ ],beq=[ ] x = linprog(f,A,b,Aeq,beq,lb,ub,x0) %设置初值x0 x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options) % options为指定的优化参数 [x,fval] = linprog(…) % 返回目标函数最优值,即fval= f ' *x。 [x,lambda,exitflag] = linprog(…) % lambda为解x的Lagrange乘子。 [x, lambda,fval,exitflag] = linprog(…) % exitflag为终止迭代的错误条件。 [x,fval, lambda,exitflag,output] = linprog(…) % output为关于优化的一些信息 说明 若exitflag>0表示函数收敛于解x,exitflag=0表示超过函数估值或迭代的最大数字,exitflag<0表示函数不收敛于解x;若lambda=lower 表示下界lb,lambda=upper表示上界ub,lambda=ineqlin表示不等式约束,lambda=eqlin表示等式约束,lambda中的非0元素表示对应的约束是有效约束;output=iterations表示迭代次数,output=algorithm表示使用的运算规则,output=cgiterations表示PCG迭代次数。 例: >>f = [-5; -4; -6]; >>A = [1 -1 1;3 2 4;3 2 0]; >>b = [20; 42; 30]; >>lb = zeros(3,1); >>[x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],lb) 结果为: x = %最优解 0.0000 15.0000 3.0000 fval = %最优值 -78.0000 exitflag = %收敛 1 output = iterations: 6 %迭代次数 cgiterations: 0 algorithm: 'lipsol' %所使用规则 lambda = ineqlin: [3x1 double] eqlin: [0x1 double] upper: [3x1 double] lower: [3x1 double] >> lambda.ineqlin ans = 0.0000 1.5000 0.5000 >> lambda.lower ans = 1.0000 0.0000 0.0000 表明:不等约束条件2和3以及第1个下界是有效的 |
![]() |
![]() |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
[求助]怎么使正在运行的程序中断 | tpwxhfh | MATLAB论坛 | 2 | 2009-03-20 11:19 |
[求助]一个GUI的问题,制作的界面怎样定位在屏幕中间? | wwww1031 | MATLAB论坛 | 8 | 2008-08-28 22:52 |
[资料]周期信号的傅里叶级数实验代码!!! | zdJack0305 | MATLAB论坛 | 2 | 2008-08-05 10:53 |
[求助]matlab绘图 | wzbin0531 | MATLAB论坛 | 0 | 2008-04-24 20:27 |
【求助】变量没定义 ,急!!! | luoyunyong | MATLAB论坛 | 1 | 2007-06-14 00:01 |