晚上刚上完课,朋友就发来消息询问,如何用MATLAB求取不同情况下的最小值
可以看出 EM
是一个由k
和p
共同决定的二元函数,它是一个数学期望(这里省略了原题干,有兴趣的读者可在文章的末尾留言)
说实话,笔者并不熟悉 MATLAB 的相关操作,MATLAB 是一个商用的数学建模分析仿真软件,同时也是一门编程语言。但是求解这个最优化问题,我们完全可以用到我们在课堂上学到的 Python 知识.
程序在 Anaconda
带的 dupyter notebook
中运行
def optimize(min_k,p):
EM_list = []
k_list = []
for k in range(min_k,min_k**2,1):
EM = 1 - k*(1-p)**k + k
EM_list.append(EM)
k_list.append(k)
min_value = min(EM_list)
index = EM_list.index(min_value)
best_k = k_