美文网首页
python由散点拟合曲线及求函数的反函数

python由散点拟合曲线及求函数的反函数

作者: 丙吉 | 来源:发表于2023-05-28 16:46 被阅读0次
    问题,由散点图去拟合曲线,得出的曲线,再由y值算x值,原始数据如下:
    image.png
    解决方法,先用scipy中的curve_fit函数,得出函数的参数(得先写出函数式)
    from scipy.optimize import curve_fit
    # 自定义函数
    def func(x, a, b):
        return a*x+b
    
    #调用曲线拟合
    popt, pcov = curve_fit(func, df['x'], df['y'])
    yvals = func(df['x'], *popt)
    
    import matplotx
    with plt.style.context(matplotx.styles.pitaya_smoothie['light']):
        fig = plt.figure(figsize=(9,9))
        plot1= plt.plot(df['x'],df['y'],  '*',label='original values')
        plot3= plt.plot(df['x'], yvals, 'b', label='linear regression fit values')
        plt.legend(loc=1)
        plt.title('曲线拟合')
        plt.show()
    
    image.png
    由y 计算x时需要计算反函数
    from pynverse import inversefunc
    
    a = popt[0]
    b = popt[1]
    
    cube = (lambda x: a*x+b)
    # 由y值计算x值
    inv_func = inversefunc(cube, y_values=13765)
    inv_func
    

    结果为:-39.249527

    相关文章

      网友评论

          本文标题:python由散点拟合曲线及求函数的反函数

          本文链接:https://www.haomeiwen.com/subject/nojdedtx.html