我使用的是spicy.optimize.basinhopping,它带有用户定义的目标函数c_func,从C++移植(使用ctypes),以及初始点x。
scipy.optimize.basinhopping(x, c_func)
如果我正确理解basinhopping,那么basinhopping将在其全局和局部优化部分中作为黑匣子函数调用c_func。在我的情况下,函数需要知道调用是来自本地还是全局优化过程。我怎样才能做到这一点?我们可以想象,c_func的定义如下:
myClass:: c_func(double){
if ( invoked by the local o
我正在尝试优化一个数学定义的函数对一个我知道包含类似结构的图像的拟合。有没有一种众所周知的方法来计算函数与图像拟合的残差? 我正在使用scipy.minimize.optimize尝试将曲线拟合到图像中。我的策略是通过最小化B和f之间的平均欧几里德距离来衡量我的特征(在下面的矩阵B中分割)与我的函数f的匹配程度。 我定义了以下函数,并将其传递给scipy.optimize.minimize # x is a tuple of arguments passed to f
# f is the function I am trying to fit to B, which returns a m
我完全不理解scipy.optimize.brute的语法。如果我有一个列表,比如[-1, 0, 1],和一个单变量函数x**2,我如何使它在列表上最小化?我读过,我不知道该把它传递给谁。元组不起作用,列表也不起作用,我不知道‘片对象’是什么,也不知道为什么要为此传递两个片对象。
MWE:
import scipy.optimize as spopt
def f(x):
return x**2
print(spopt.brute(f, ([-1, 0, 1])))
给我TypeError: object of type 'int' has no len()
我已经实现了scipy.optimize.minimize来最小化具有128个值的一维数组的熊猫数据帧的增量值的平均值。 它似乎在运行并做一些事情,但它不会在max iter或从另一个堆栈溢出问题中获取的回调函数处停止。 我的代码是: import numpy as np
from scipy.optimize import minimize, rosen
import time
import warnings
class TookTooLong(Warning):
pass
class MinimizeStopper(object):
def __init__(self
通过使用lambda的BFGS方法,我用scipy.minimize找到了给定函数的最大值。我已经知道,为了做到这一点,我需要最小化-(f)函数,但是我不能改变函数本身,只改变它在minimize中的调用方式。另外,asnwer必须是一个浮子。
A,abd,B是最大化的两个函数
提前感谢您的帮助!!
def A(x):
return -(x-1)**2
B = lambda x: -(x+2)**4
#This is where the minimize is called
def argmax(f):
from scipy.optimize import minimize
我需要一些关于python优化函数的帮助(Scipy)问题是优化f(x) where x=[a,b,c...n]。约束条件是a、b等的值应该介于0和1之间,以及sum(x)==1。scipy.optimise.minimize函数似乎是最好的,因为它不需要区分。如何传递参数?
使用置换创建ndarray太长。我现在的代码如下:
import itertools as iter
all=iter.permutations([0.0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1.0],6) if sum==1
all_legal=[]
for i in all:
if np.sum(i
运行scipy.minimize函数"I get TypeError:'numpy.float64‘object is not callable“。特别是在执行以下操作的过程中:
.../scipy/optimize/optimize.py", line 292, in function_wrapper
return function(*(wrapper_args + args))
我已经看过前面的类似主题了,通常这个问题是由于.minimize的第一个输入参数不是一个函数而导致的。我很难弄清楚,因为"a“是函数。你认为如何?
### "
我在scipy‘至少in’优化例程中遇到一个问题,如果我执行下面的程序,它会说
raise errors[info][1], errors[info][0]
TypeError: Improper input parameters.
有时候index out of range for an array..。
from scipy import *
import numpy
from scipy import optimize
from numpy import asarray
from math import *
def func(apar):
apar = numpy.asar
我正在尝试使用scipy.optimize最小化一个函数。这是我的程序,最后一行是错误消息。
import sympy as s
from scipy.optimize import minimize
x,y,z=s.symbols('x y z')
f= lambda z: x**2-y**2
bnds = ((70,None),(4,6))
res = minimize(lambda z: fun(*x),(70,4), bounds=bnds)
<lambda>() argument after * must be an iterable, not Sy
我一直在尝试优化三个系数。但我不能解决我所面临的错误。以下是代码。'y‘是预测函数,其中time获取时间序列数据列表和系数列表,然后在计算后返回预测列表。X是历史数据。而coeffList是具有3个系数作为值的列表。
‘'mape’函数计算实际数据和预测数据之间的差异。在优化中,我试图最小化'mape‘函数的输出。作为约束,所有三个系数都大于0且小于1。
from __future__ import division
import numpy as np
from scipy.optimize import minimize
#coeffList[0] = alp
我试图通过寻找具有最小错误值的参数来拟合sin函数。
下面是我的代码:
import numpy as np
import scipy.optimize as opt
from scipy.optimize import leastsq
import matplotlib.pyplot as plt
def func_model(x, para):
''' Model: y = a*sin(2*k*pi*x+theta)'''
a, k, theta = para
return a*np.sin(2*k*np.pi*x+
我有一段代码,它使用了来自numpy和scipy的几个函数,我需要在 C++ 中使用这些函数,但是我对C++的了解非常有限,无法将这些代码转换成这种语言。
我需要什么样的C++函数来实现这样的功能:
import numpy as np
from scipy.integrate import quad
from scipy.optimize import minimize
minor = 2.23
major = 3.05
encoderdistance = 2.53141952655
print minimize(lambda x: abs(quad(func, 0, x)[0] - en
在我之前的一个堆栈溢出问题()中,建议我使用分层聚类来对包含在基于Hamming距离的列表中的字符串进行分组。我发现了其他几个关于Python包的问题的海报,特别是链接函数( SciPy和),它们都有类似的问题。
如果我对SciPy的链接函数的理解是正确的,我需要传递一个数组,并根据Hamming距离指定到集群的链接。但是,当我试图在包含几个字符串的列表上实现这一点时:
import scipy.cluster.hierarchy as sch
X = [[i] for i in ['apples','applez','appelz','