- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
优化问题 ;;说明 若exitflag0表示函数收敛于解x,exitflag=0表示超过函数估值或迭代的最大数字,exitflag0表示函数不收敛于解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个下界是有效的 ;二、非线性规划问题;函数 fminbnd
格式 x = fminbnd(fun,x1,x2) %返回自变量x在区间
上函数fun取最小值时x值,fun为目标函数
的表达式字符串或MATLAB自定义函数的函数柄。
x = fminbnd(fun,x1,x2,options) % options为指定优化参数选项
[x,fval] = fminbnd(…) % fval为目标函数的最小值
[x,fval,exitflag] = fminbnd(…) %xitflag为终止迭代的条件
[x,fval,exitflag,output] = fminbnd(…) % output为优化信息;说明 若参数exitflag0,表示函数收敛于x,若exitflag=0,表示超过函数估计值或迭代的最大数字,exitflag0表示函数不收敛于x;参数
output.iterations表示迭代次数,output.funccount表示函数赋值次数,output.algorithm表示所使用的算法。 ;例:计算 在区间(0,1)内的最小值。
解:
[x,fval,exitflag,output]=fminbnd((x^3+cos(x)+x*log(x))/exp(x),0,1)
x =
0.5223
fval =
0.3974
exitflag =
1
output =
iterations: 9
funcCount: 9
algorithm: golden section search, parabolic interpolation;例:在[0,5]上求 的最小值
解:先自定义函数:在MATLAB编辑器中建立M文件为:
function f = myfun(x)
f = (x-3).^2 - 1;
保存为myfun.m,然后在命令窗口键入命令:
x=fminbnd(@myfun,0,5)
则结果显示为:
x =
3;2. 无约束多元函数最小值
多元函数最小值的标准形式为
命令 利用函数fminsearch求无约束多元函数最小值
函数 fminsearch
格式 x = fminsearch(fun,x0) %x0为初始点,fun为目标函数的表达式字符串或MATLAB自定义函数的函数柄。
x = fminsearch(fun,x0,
文档评论(0)