zoukankan      html  css  js  c++  java
  • python曲线拟合

    http://blog.sina.com.cn/s/blog_aed5bd1d0102vid7.html

    做完插值,自然就要学习拟合了。参考http://wiki.klniu.com/wiki/Python/Modules/Scipy

    1.多项式拟合范例:

    import matplotlib.pyplot as plt
    import numpy as np
    #潘海东,2014/1/13

    x = np.arange(1, 17, 1)
    y = np.array([4.00, 6.40, 8.00, 8.80, 9.22, 9.50, 9.70, 9.86, 10.00, 10.20, 10.32, 10.42, 10.50, 10.55, 10.58, 10.60])
    z1 = np.polyfit(x, y, 3)#用3次多项式拟合
    p1 = np.poly1d(z1)
    print(p1) #在屏幕上打印拟合多项式
    yvals=p1(x)#也可以使用yvals=np.polyval(z1,x)
    plot1=plt.plot(x, y, '*',label='original values')
    plot2=plt.plot(x, yvals, 'r',label='polyfit values')
    plt.xlabel('x axis')
    plt.ylabel('y axis')
    plt.legend(loc=4)#指定legend的位置,读者可以自己help它的用法
    plt.title('polyfitting')
    plt.show()
    plt.savefig('p1.png')
    python曲线拟合

    2.指定函数拟合

    #潘海东,2014/1/13
    #使用非线性最小二乘法拟合
    import matplotlib.pyplot as plt
    from scipy.optimize import curve_fit
    import numpy as np
    #用指数形式来拟合
    x = np.arange(1, 17, 1)
    y = np.array([4.00, 6.40, 8.00, 8.80, 9.22, 9.50, 9.70, 9.86, 10.00, 10.20, 10.32, 10.42, 10.50, 10.55, 10.58, 10.60])
    def func(x,a,b):
        return a*np.exp(b/x)
    popt, pcov = curve_fit(func, x, y)
    a=popt[0]#popt里面是拟合系数,读者可以自己help其用法
    b=popt[1]
    yvals=func(x,a,b)
    plot1=plt.plot(x, y, '*',label='original values')
    plot2=plt.plot(x, yvals, 'r',label='curve_fit values')
    plt.xlabel('x axis')
    plt.ylabel('y axis')
    plt.legend(loc=4)#指定legend的位置,读者可以自己help它的用法
    plt.title('curve_fit')
    plt.show()
    plt.savefig('p2.png')

    python曲线拟合

  • 相关阅读:
    Servlet的生命周期
    HTTP协议简单记录
    Tomcat和JavaWeb目录和流程
    02 html 表格表单
    01 初识HTML
    Python 利用pywin32批量将doc转换成docx再读取成一行存入excel
    power bi 数据红绿灯详细用法
    Linux和Windows启动后台程序
    MySQL导出数据字典
    适用于渗透测试不同阶段的工具收集整理
  • 原文地址:https://www.cnblogs.com/zhizhan/p/5664214.html
Copyright © 2011-2022 走看看