今天,帮别人做了个优化问题
问题是一个“分布函数的变上限积分的最大值问题”,
还涉及到了分布函数的逆,
“Inverse of the normal cumulative distribution function”
可能是我遇到过的比较难算的东西。
求解思想;
1.积分可分解化为求和SUM, 间距划的越小计算时间越长,间距过大精确度降低....
2.变上限积分同上,但间距要统一,不能因上限改变,间距改变,
解决方法:
function final_f=Cal_dis(x_F)
f=0;
x_temp=0;
while x_temp<x_F
x_temp=x_temp+0.02; %space between
f=f+0.02*normcdf(x_temp,10,2);
end
final_f=f;
3.最优化求解,由于做了以上的处理,目标函数不再具有可微性....
(也有其他方法),就不能在用牛顿法求下降方向了,我用的是类似仿真的方法在可行域内随机取点,选最优值(比较耗时)结果还行...
还在世个2维问题,要是高维就不好办了...
呵呵,有点成就感!
matlab;
norminv 逆正态累积分布函数
normpdf 正态分布概率密度函数
normcdf 正态累积分布函数