最近写小论文做数值仿真时遇到了问题,模型的目标函数中包含上下限为决策变量的正态分布概率密度函数以及分布函数,使用yalmip调cplex求解发现结果有点问题,网上求助无果,最后求助于matlab自带的fmincon函数。由于模型比较复杂,因此下文把核心问题列出来进行说明。
上式为模型目标函数中的一部分,其中、
为模型的决策变量,
、
均为正态分布概率密度函数,但服从不同的均值和方差。
首先,对积分项进行表达,通过matlabFunction将int输出的syms转化为句柄函数,然后使用integral对外层进行积分,保证输出为数值型。由于fmincon要求输入为句柄函数,因此最外层利用@将整个式子转化为句柄函数。完整代码如下:
Matlab代码
syms x;
f =