资源描述:
《利用matlab求多元函数的极值(2)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、利用MATLAB求多元函数的极值分两种情况,(1)无约束条件;(2)有约束条件。(2)有约束条件下求极小值的方法:假设多变量非线性函数的数学模型为 minf(x) c(x)<=0 ceq(x)=0 A·x<=b Aeq·x<=x<=beq lb<=x<=ubX,b,beq,lb,ub为矢量,A,Aeq为矩阵,c(X),ceq(X)为函数(可非线性)。命令格式:x=fmincon(fun,x0,A,b)x=fmincon(fun,x0,A,b,Aeq,beq)x=fmincon(fun,x0,A,
2、b,Aeq,beq,lb,ub)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)[x,fval]=fmincon(...)[x,fval,exitflag]=fmincon(...)[x,fval,exitflag,output]=fmincon(...)[x,fval,exitflag,output,lambda]=fmincon(...)[x,fval,exitflag,output,lambda,grad]=fmincon(...) [
3、x,fval,exitflag,output,lambda,grad,hessian]=fmincon(...)例如 求函数 满足条件 的极小值解:首先,编制M-file文件functionfmyfun(x)f=-x(1)*x(2)*x(3)然后重写约束条件为两个小于或等于一个常数的不等式,因为约束条件是线性的,用矩阵表示为Ax<=b其中;其次,猜测估计提供一个起点,调用优化程序。x0=[10;10;10]; %猜测可能的结果作为起点[x,fval]=fmincon(@myfun,x0,A,b)x= 24.0000
4、 12.0000 12.0000fval=-3.4560e+03A*x-b= -72 0当x1=24,x2=12,x3=12,时函数有极小值-3.4560e+03