数学建模:非线性规划:凸规划问题

一、定义

凸集定义​​:设Ω是n维欧氏空间的一点集,若任意两点x₁∈Ω,x₂∈Ω,其连线上的所有点αx₁+(1-α)x₂∈Ω,(0≤α≤1),则称Ω为凸集。

​凸函数定义​​:给定函数f(x)(x∈D⊂Rⁿ),若∀x₁,x₂∈D,λ∈[0,1],有

f(λx₁+(1-λ)x₂) ≤ λf(x₁)+(1-λ)f(x₂)

则称f(x)为D上的凸函数;若不等式严格成立,则称为严格凸函数。

复制代码

二、性质

最优性特征

  1. ​局部最优即全局最优​​:凸规划的任一局部最优解都是全局最优解

  2. ​最优解集为凸集​​:若最优解存在,则所有最优解构成的集合是凸集

  3. ​严格凸函数的唯一性​​:当目标函数f(x)为严格凸函数时,最优解唯一

判别条件

三、用内点法解决凸规划问题

内点法通过在可行域内部构造一条路径并沿着这条路径向最优解逼近。其核心特征包括:

​障碍函数​​:将约束条件转化为目标函数的惩罚项

中心路径​​:定义一系列严格可行解的参数化路径

​牛顿迭代​​:利用二阶导数信息快速逼近最优解

代码

Matlab 复制代码
clear
clc

prob = optimproblem;

%用optimvar函数定义优化变量x,包含2个元素,且设置下界为0(x₁,x₂ ≥ 0)
x = optimvar('x', 2, 'LowerBound', 0);

%定义目标函数f(x) = x₁² + x₂² -4x₁ +4
prob.Objective = x(1)^2 + x(2)^2 - 4*x(1) + 4;

%定义第一个不等式约束:-x₁ + x₂ ≤ 2
con1 = -x(1) + x(2) - 2 <= 0;

%定义第二个不等式约束:x₁² -x₂ +1 ≤ 0
con2 = x(1)^2 - x(2) + 1 <= 0;

%将约束条件添加到问题中
prob.Constraints.con1 = con1;
prob.Constraints.con2 = con2;

%设置初始点为随机值(2维列向量)
x0.x = rand(2,1);

%配置优化选项(使用内点法)
options = optimoptions('fmincon', 'Algorithm', 'interior-point',...
                      'Display', 'iter');

%求解凸规划问题
[sol, fval, exitflag, output] = solve(prob, x0, 'Options', options);

% 最优解输出
fprintf('\n最优解:\n');
fprintf('x₁ = %.4f, x₂ = %.4f\n', sol.x(1), sol.x(2));
fprintf('目标函数最小值: %.4f\n', fval);

% 约束条件验证输出
fprintf('\n约束条件验证\n');
con1_val = -sol.x(1) + sol.x(2) - 2;
con2_val = sol.x(1)^2 - sol.x(2) + 1;
fprintf('约束1 (-x₁ + x₂ ≤ 2): %.4f (满足)\n', con1_val);
fprintf('约束2 (x₁² -x₂ +1 ≤ 0): %.4f (满足)\n', con2_val);
fprintf('非负约束: x₁=%.4f ≥0, x₂=%.4f ≥0\n', sol.x(1), sol.x(2));

运行结果

相关推荐
2zcode8 小时前
基于Matlab不同作战类型下兵力动力学模型的构建与稳定性分析
开发语言·matlab
小文数模13 小时前
2025高教社国赛数学建模C题参考论文(含模型和代码)
python·数学建模·matlab
阿里matlab建模师17 小时前
【直流电机鲁棒控制】matlab实现H无穷大控制的直流电机鲁棒控制研究
开发语言·数学建模·matlab·全国大学生数学建模竞赛·美赛·科研项目
MediaTea17 小时前
Python 第三方库:SymPy(符号计算工具)
开发语言·python·数学建模
机器学习之心17 小时前
MATLAB基于博弈论-云模型的城市道路塌陷风险评价模型
matlab·博弈论-云模型·风险评价模型
明天再做行么1 天前
数学建模资源合集
数学建模
猫天意1 天前
【CVPR2025-DEIM】基础课程二十:顶会中的Partial创新思想,随意包装你想包装的!
图像处理·人工智能·yolo·计算机视觉·matlab
RickyWasYoung1 天前
【matlab】YALMIP、GLPK安装资源及安装方法
matlab
点灯小铭2 天前
基于MATLAB的车牌识别系统
开发语言·单片机·数码相机·matlab·毕业设计·课程设计
茜茜西西CeCe2 天前
数字图像处理-图像的基本运算
图像处理·人工智能·计算机视觉·matlab·图像的基本运算