Matlab求解数学优化问题

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)

目标函数文件:ObjFunc.m

function f = ObjFunc(t)

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

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

end

非线性约束文件: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

matlab计算结果如下:

f =

    0.5000    0.2500

  • 7
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值