python 最大值最小化_在python中最小化函数

在Python中,作者试图通过最小化函数(n[I]-gauss(x[I], sigma, mu))**2来计算柱状图的最小值,其中涉及到sigma和mu的调整。使用了numpy, scipy.optimize, matplotlib等库。然而,在运行过程中遇到了函数求值超过最大数量的警告,导致每次运行mu和sigma的值不同。作者寻求解决方案。" 123338692,10913267,Python算法解析:交通肇事犯、兔子产子、三色球与百钱百鸡问题,"['Python', '算法', '数学模型', '穷举法', '逻辑推理']
摘要由CSDN通过智能技术生成

我在python中有一个柱状图,我想计算和的最小值(n[I]-gauss(x[I],sigma,mu))**2,其中x[I]是n[I]对应的bins[I]的值,最小值必须通过修改sigma和mu来获得(我不想使用拟合曲线得到的值)。这是我的计划:import numpy as np

from scipy.optimize import minimize

from random import gauss

from matplotlib import pyplot as plt

from scipy.stats import norm

import math

values = []

while len(values) < 10000:

value = gauss(0,20)

if -100 < value < 100:

values.append(value)

n, bins, patches = plt.hist(values, 10, facecolor='green',normed='1')

mu, std = norm.fit(values)

x=np.arange(-100,100,0.01)

y=1/(math.sqrt(2*math.pi)*std)*np.exp(-(x-mu)**2/(2*std**2))

plt.plot(x,y,"b-")

binWidth=bins[5]-bins[4]

def gauss(x):

f=0

for i in range(len(n)):

centre=(2*bins[i]+binWidth)/2

f=f+(n[i]-1/(x[1]*math.sqrt(2*math.pi))*np.exp(-(y[(centre+100)*100]-x[0])**2/(2*x[1]**2)))**2

return f

x0=np.array([0.01,0.01])

res = minimize (gauss,x0,method='nelder-mead',options={'xtol': 1e-8, 'disp': True})

print res.x

所以在运行之后,我应该得到这个函数的最小值,这个最小值的mu和sigma(它对其他函数有效)。但是我得到了一个警告:警告:已经超过了函数求值的最大数量。我得到了mu和sigma的一些值,但是它们在每次运行中都是不同的,所以出了问题。我该怎么办?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值