MATLAB 鍑芥暟瑙d紭鍖栭棶棰?- 鐧惧害鏂囧簱 联系客服

发布时间 : 星期五 文章MATLAB 鍑芥暟瑙d紭鍖栭棶棰?- 鐧惧害鏂囧簱更新完毕开始阅读34d5b3679b6648d7c1c7460c

fval =

5.4234e-031

exitflag =

1

2. minsearch函数

调用格式: x=fminsearch(fun,x0) x=fminsearch(fun,x0,options) x=fminsearch(fun,x0,options,P1,P2) [x,fval]=fminsearch(…) [x,fval, exitflag]=fminsearch(…) [x,fval, exitflag,output]=fminsearch(…)

[x,fval, exitflag,output,grad]=fminsearch(…) [x,fval, exitflag,output,grad,hessian]=fminsearch(…)

说明:参数及返回变量同上一函数。对求解二次以上的问题,fminsearch函数比fminunc函数有效。

3. 多元非线性最小二乘问题:

非线线性最小二乘问题的数学模型为:

其中L为常数。

调用格式: x=lsqnonlin(fun,x0) x=lsqnonlin(fun,x0,lb,ub)

x=lsqnonlin(fun,x0,options)

x=lsqnonlin(fun,x0,options,P1,P2)

[x,resnorm]=lsqnonlin(…)

[x,resnorm, residual,exitflag]=lsqnonlin(…)

[x,resnorm, residual , exitflag,output]=lsqnonlin(…)

[x,resnorm, residual,exitflag, output,lambda]=lsqnonlin(…)

[x,resnorm, r esidual,exitflag, output,lambda,jacobian]=lsqnonlin(…)

说明:x返回解向量;resnorm返回x处残差的平方范数值:sum(fun(x).^2);residual返回x处的残差值fun(x);lambda返回包含x处拉格朗日乘子的结构参数;jacobian返回解x处的fun函数的雅可比矩阵。

lsqnonlin默认时选择大型优化算法。Lsqnonlin通过将options.LargeScale设置为’off’来作中型优化算法。其采用一维搜索法。

例4.求 minf=4(x2-x1)2+(x2-4)2 ,选择初始点x0(1,1) 程序:

f ='4*(x(2)-x(1))^2+(x(2)-4)^2' [x,reshorm]=lsqnonlin(f,[1,1]) 结果: x =

3.9896 3.9912

reshorm =

5.0037e-009

例5:求

求解:先编辑ff5.m文件: function f=ff5(x) k=1:10;

f=2+2*k-exp(k*x(1))-exp(k*x(2)); 然后作程序:x0=[0.2,0.3];

[x,resnorm]=lsqnonlin(@ff5,x0)

选择初始点,x0(0.2,0.3)

结果 : x =

0.2578 0.2578

resnorm =

124.3622

二. 有约束非线性规划问题:

数学模型: min F(x)

s.t Gi (x) ≤0 i=1,…,m Gj (x) =0 j=m+1,…,n xl≤x≤xu

其中:F(x)为多元实值函数,G(x)为向量值函数,

在有约束非线性规划问题中,通常要将该问题转换为更简单的子问题,这些子问题可以求并作为迭代过程的基础。其基于K-T方程解的方法。它的K-T方程可表达为:

方程第一行描述了目标函数和约束条件在解处梯度的取消。由于梯度取消,需要用拉格朗日乘子λi来平衡目标函数与约束梯度间大小的差异。

调用格式: x=fmincon(f,x0,A,b)

x=fmincon(f,x0,A,b,Aeq,beq) x=fmincon(f,x0,A,b,Aeq,beq,lb,ub) x=fmincon(f,x0,A,b,Aeq,beq,lb,ub,nonlcon) x=fmincon(f,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=fmincon(f,x0,A,b)返回值x为最优解向量。其中:x0为初始点。A,b为不等式约束的系数矩阵和右端列向量。

x=fmincon(f,x0,A,b,Aeq,beq) 作有等式约束的问题。若没有不等式约束,则令A=[ ]、b=[ ] 。

x=fmincon(f, x0,A,b,Aeq,beq,lb,ub, nonlcon ,options) 中lb ,ub为变量x的下界和上界;nonlcon=@fun,由M文件fun.m给定非线性不等式约束c (x) ≤0和等式约束g(x)=0;options为指定优化参数进行最小化。

例6:求解:min 100(x2-x12 )2+(1-x1)2 s.t x1≤2;

x2≤2

程序:首先建立ff6.m文件:

function f=ff6(x)

f=100*(x(2)-x(2)^2)^2+(1-x(1))^2;

然后在工作空间键入程序:

x0=[1.1,1.1]; A=[1 0;0 1]; b=[2;2];

[x,fval]=fmincon(@ff6,x0,A,b) 结果: x = 1.0000 1.0000

fval =

3.1936e-011

例7:求解: