资源描述:
《数学建模常用的matlab求解命令》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、数学规划模型的matlab求解 1.线性规划问题 MATLAB中,线性规划问题(Linear Programming)的求解使用的是函数linprog。 函数 linprog 格式 x = linprog(f,A,b) %求min f ' *x sub.to A*x<=b 线性规划的最优解。 x = linprog(f,A,b,Aeq,beq) %等式约束Aeq*x=beq。 x = linprog(f,A,b,Aeq,beq,lb,ub) %指定x的范围LB<=X<=UB x = l
2、inprog(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,fval,lambda] = linprog(…) % lambda为解x的Lagrange乘子。 [x, fval,lambda,exitflag] = linprog(…) %
3、 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元素表示对应的约
4、束是有效约束;output=iterations表示迭代次数,output=algorithm表示使用的运算规则,output=cgiterations表示PCG迭代次数。 2.非线性规划问题 1)利用函数fminbnd求无约束有界的一元函数的最小值格式 x = fminbnd(fun,x1,x2) %返回自变量x在区间[x1,x2]上函数fun的最小值x = fminbnd(fun,x1,x2,options) % options为指定优化参数选项 [x,fval] = fminbnd(…)
5、% fval为目标函数的最小值 [x,fval,exitflag] = fminbnd(…) %xitflag为终止迭代的条件 [x,fval,exitflag,output] = fminbnd(…) % output为优化信息说明 若参数exitflag>0,表示函数收敛于x,若exitflag=0,表示超过函数估计值或迭代的最大数字,exitflag<0表示函数不收敛于x;若参数output=iterations表示迭代次数,output=funccount表示函数赋值次数,output=a
6、lgorithm表示所使用的算法。 2)利用函数fminsearch求无约束多元函数最小值 函数 fminsearch 格式 x = fminsearch(fun,x0) %x0为初始点,fun为目标函数的表达式字符串或MATLAB自定义函数的函数柄。 x = fminsearch(fun,x0,options) % options查optimset[x,fval] = fminsearch(…) %最优点的函数值 [x,fval,exitflag] = fminsearch(…) %
7、 exitflag与单变量情形一致[x,fval,exitflag,output] = fminsearch(…) %output与单变量情形一致 注意:fminsearch采用了Nelder-Mead型简单搜寻法。3) 利用函数fminunc求多变量无约束函数最小值 函数 fminunc 格式 x = fminunc(fun,x0) %返回给定初始点x0的最小函数值点%function[f,g]=fun(x)f=x(1)^2+2*x(1)*x(2)+x(2)^2;%functiong=[2*x(
8、1)+2*x(2)2*x(1)+2*x(2)];%gradientx = fminunc(fun,x0,options) % options为指定优化参数 [x,fval] = fminunc(…) %fval最优点x处的函数值 [x,fval,exitflag] = fminunc(…) % exitflag为终止迭代的条件,与上同。[x,fval,e