【问题标题】:Translating Matlab fminsearch in to Python将 Matlab fminsearch 翻译成 Python
【发布时间】:2020-03-12 10:08:02
【问题描述】:

我正在将一些 Matlab 代码转换为 python 并且 fminsearch 出现问题。我想知道是否有人可以帮助我。

method={'gausse' 'markov'};
subset=find(r>0 & r<=rMax);

a{1}=fminsearch('myfunction',[10 50],[],r(subset),cf(subset),'gausse');
a{2}=fminsearch('myfunction',[10 50],[],r(subset),cf(subset),'markov');

fit(1)=myfunction(a{1},r(subset),cf(subset),'gauss');
fit(2)=myfunction(a{2},r(subset),cf(subset),'markov');

我在 python scipy.optimize.fmin 中找到了类似的功能,但我不知道如何使用它。 python中的{}括号是什么意思?感谢您的帮助。

【问题讨论】:

  • 你应该先看看一些 Python 介绍。这里有一些不错的(免费)教程:realpython.com

标签: python matlab optimization scipy fminsearch


【解决方案1】:

这里是一个使用 fmin 的例子。

import numpy as np
import scipy.optimize as opt
import matplotlib.pyplot as plt
from matplotlib import cm

myfun = lambda x: -np.exp(-(x[0]-2)**2-(x[1]+1)**2)
X = np.arange(-5,5,0.01)
Y = np.arange(-3,3,0.01)
xopt = opt.fmin(myfun, [-3,2])
print(xopt)

myfun([2,-1]) #ANALYTIC SOLUTION
myfun(xopt) #NUMERICAL SOLUTION

# FOR PLOT
xx,yy = np.meshgrid(X,Y)
zz = -np.exp( -(xx-2)**2-(yy+1)**2)

fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(xx,yy,zz,cmap=cm.jet)
plt.xlabel('X=x[0]')
plt.ylabel('Y=x[1]')
plt.zlabel('Z=f(X,Y)')

【讨论】:

    猜你喜欢
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    相关资源
    最近更新 更多