小编mar*_*sch的帖子

为什么scipy.optimize.curve_fit不能正确匹配数据?

我一直在尝试使用一些功能来使用某些数据,scipy.optimize.curve_fit但我确实遇到了困难.我真的看不出为什么这不起作用的原因.

# encoding: utf-8
from __future__ import (print_function,
                        division,
                        unicode_literals,
                        absolute_import,
                        with_statement)
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as mpl

x, y, e_y = np.loadtxt('data.txt', unpack=True)

def f(x, a, k):
    return (1/(np.sqrt(1 + a*((k-x)**2))))

popt, pcov = curve_fit(f, x, y, maxfev = 100000000)

mpl.plot(x, f(x, *popt), 'r-', label='Fit')
mpl.plot(x, y, 'rx', label='Original')
mpl.legend(loc='best')
mpl.savefig('curve.pdf')
print(popt)

# correct values which should be calculated
# a=0.003097
# k=35.4
Run Code Online (Sandbox Code Playgroud)

这是由上层代码生成的情节图像: 在此输入图像描述

data.txt:
#x      y       e_y
4.4     0.79    0.13 …
Run Code Online (Sandbox Code Playgroud)

python numpy matplotlib curve-fitting data-fitting

4
推荐指数
1
解决办法
1万
查看次数

scipy curve_fit错误:遇到零除零

我一直试图使用scipy.optimize.curve_fit将函数拟合到某些数据一段时间:

from __future__ import (print_function,
                    division,
                    unicode_literals,
                    absolute_import)
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as mpl
x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,     20, 21, 22, 23, 24, 25, 26, 27, 28, 29])
y = np.array([20.8, 20.9, 22.9, 25.2, 26.9, 28.3, 29.5, 30.7, 31.8, 32.9, 34.0, 35.3, 36.4, 37.5, 38.6, 39.6, 40.6, 41.6, 42.5, 43.2, 44.2, 45.0, 45.8, 46.5, 47.3, 48.0, …
Run Code Online (Sandbox Code Playgroud)

python runtime-error curve-fitting scipy

3
推荐指数
2
解决办法
4713
查看次数