当前位置:   article > 正文

Matlab求解数学优化问题_matlab exitflag

matlab exitflag

Matlab求解数学优化问题

最近在研究自动泊车的轨迹规划问题,水平泊车在规划路径时会遇到一个求解泊车起始位置可行域的规划问题(以后会单独写一篇文章梳理下汽车的轨迹规划问题),于是研究了以下matlab相关数学优化函数。现在梳理如下:
在这里插入图片描述在这里插入图片描述


fmincon函数

由于APA的路径规划是非线性优化问题,因此下面着重说下fmincon函数。matlab自带的fmincon函数专门用来求解非线性规划问题,公式如下:[x fval exitflag] = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)。其中:

输入参数:
fun:目标函数
x0:因变量的迭代起始点
A,b:因变量的线性不等式约束
Aeq,beq:因变量的线性等式约束
lb,ub:因变量的上界和下界
nonlcon:非线性约束

输出参数:
x:求解得出的最优参数值
fval:在x为最优参数值时的目标函数(fun)值
exitflag:输出fmincon额外条件值


fmincon用法示例

求解如下问题:
在这里插入图片描述

主文件:fminconXY.m

% % fmincon进行非线性最优解计算
% [x fval exitflag] = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
% 
% 输入参数:
% fun:目标函数
% x0:因变量的迭代起始点
% A,b:因变量的线性不等式约束
% Aeq,beq:因变量的线性等式约束
% lb,ub:因变量的上界和下界
% nonlcon:非线性约束
% 
% 输出参数:
% x:求解得出的最优参数值
% fval:在x为最优参数值时的目标函数(fun)值
% exitflag:输出fmincon额外条件值

%% eg

clc;
clear;

lb = [0,0.2];	% lb,ub:因变量的上界和下界
ub = [0.5,0.8];	
A=[1,1;1,2];    % A,b:因变量的线性不等式约束
b=[2;3];
Aeq=[];     % Aeq,beq:因变量的线性等式约束
beq=[];

x0 = [1,4]; % x0:因变量的迭代起始点

nonlcon = @NonConstr;  % nonlcon:非线性约束
fun=@ObjFunc;    % fun:目标函数

f = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

目标函数文件:ObjFunc.m

function f = ObjFunc(t)

x=t(1);
y=t(2);

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

end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

非线性约束文件:NonConstr.m

function [c,ceq] = NonConstr(t)

x=t(1);
y=t(2);

c = (x-1/3)^2 + (y-1/3)^2 - (1/3)^2; % 不等式约束:默认为小于等于0
ceq = [];  % 等式约束

end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

matlab计算结果如下:

f =

    0.5000    0.2500

  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/350624
推荐阅读
相关标签
  

闽ICP备14008679号