fmincon函数的决策变量可以是二维矩阵,但不建议是高维矩阵

1)二维矩阵代码

c 复制代码
clear all
clc

% 定义目标函数
fun = @(x) sum(sum(x.^2));

% 初始矩阵
x0 = 2 + rand(2, 2);

% 定义空的线性不等式约束
A = [];
b = [];

% 定义空的线性等式约束
Aeq = [];
beq = [];

% 定义变量的上下界
lb = ones(2,2);
ub = [];

% 使用 fmincon 求解
options = optimoptions('fmincon', 'Display', 'iter');
[x_opt, fval_opt] = fmincon(fun, x0, A, b, Aeq, beq, lb, ub, [], options);

% 显示最优解和最优值
disp('最优解:');
disp(x_opt);
disp('最优值:');
disp(fval_opt);

2)运行结果

由此可见,确实可计算得到最优解!.

3)高维矩阵代码(五维)

c 复制代码
clear all
clc

% 定义目标函数
fun = @(x) sum(sum(sum(sum(sum(x.^2)))));

% 初始矩阵(五维)
x0 = 2 + rand(2, 2, 2, 2, 2);

% 定义空的线性不等式约束
A = [];
b = [];

% 定义空的线性等式约束
Aeq = [];
beq = [];

% 定义变量的上下界
lb = ones(2, 2, 2, 2, 2);
ub = [];

% 使用 fmincon 求解
options = optimoptions('fmincon', 'Display', 'iter');
[x_opt, fval_opt] = fmincon(fun, x0, A, b, Aeq, beq, lb, ub, [], options);

% 显示最优解和最优值
disp('最优解:');
disp(x_opt);
disp('最优值:');
disp(fval_opt);

4)运行结果

此外,即使是凸优化问题,fmin仍可能会显示求得"Local minimum found that satisfies the constraints."

5)需要注意:非常不建议fmin中使用高维矩阵(三维及三维以上)

前述案例中的目标函数太简单,不具有泛化意义。因此,我更换了一组复杂一些的目标函数和约束条件,并应用在三维矩阵上,然后发现各种报错:

分析报错原因:第一轮迭代时,"决策变量"是初始的高维矩阵( 4 ∗ 3 ∗ 4 4*3*4 4∗3∗4维矩阵);但在第二轮迭代时,目标函数中的"决策变量"、以及非线性约束中的"决策变量",就全部变为二维矩阵了!(因为第一轮迭代的结果,会以二维矩阵的形式来存储!所以,在第二轮迭代时,决策变量又变成了 4 ∗ 12 4*12 4∗12维的二维矩阵!)

因此,建议fmin中的决策变量,最高维度只设为二维矩阵!!不建议设成高维矩阵!!

相关推荐
用户7121227512614 小时前
MATLAB 自动化 Excel 转 SLDD 数据字典完整方案(适配自定义 THBPackage 存储类)
matlab
ZhengEnCi2 天前
P2M-Matplotlib折线图完全指南-从数据可视化到趋势分析的Python绘图利器
python·matlab·数据可视化
ZhengEnCi2 天前
P2L-Matplotlib饼图完全指南-从数据可视化到图表定制的Python绘图利器
python·matlab
xiao5kou4chang6kai413 天前
MATLAB机器学习、深度学习--从数据预处理到模型训练
深度学习·机器学习·matlab·数据预处理
bubiyoushang88814 天前
电力线信道“五类噪声”仿真MATLAB
开发语言·matlab
cici1587414 天前
彩色图像模糊增强(Fuzzy Enhancement)MATLAB 实现
开发语言·算法·matlab
kaikaile199514 天前
图像稀疏化分解 + 压缩感知(CS)重建 MATLAB
开发语言·计算机视觉·matlab
yugi98783814 天前
PNCC(Power-Normalized Cepstral Coefficients)— MATLAB 实现
开发语言·人工智能·matlab
cooldog123pp14 天前
cplex完全安装手册,适配matlab和python!
人工智能·python·matlab·cplex
2zcode14 天前
项目文档:基于MATLAB语音信号变声算法设计与实现
算法·matlab·语音识别