翻译Matlab中的fminsearch到Python中

2024-10-03 13:20:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在将一些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中是什么意思?谢谢你的帮助。你知道吗


Tags: 函数代码scipyfindmethodcffitmarkov
1条回答
网友
1楼 · 发布于 2024-10-03 13:20:34

下面是一个使用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)')

相关问题 更多 >