【智能仪器】基于python的非线性校正(曲线拟合法)
生活随笔
收集整理的這篇文章主要介紹了
【智能仪器】基于python的非线性校正(曲线拟合法)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
智能儀器-第四章-基礎數據處理算法與軟測量技術
系統非線性校正
智能儀器 第3版 吉林大學 程德福、林君 機械工業出版社 第124頁 表4-1
對表格中數據用曲線擬合法,連續函數直線擬合,進行非線性校正。并指出最大誤差點。
from functools import reduce import numpy import matplotlib.pyplot as plt x = [0, 0.4, 0.8, 1.2, 1.61, 2.02, 2.44, 2.85, 3.27, 3.68, 4.1, 4.51, 4.92, 5.33, 5.73, 6.14, 6.54,6.94, 7.34, 7.74, 8.14, 8.54, 8.94, 9.34, 9.75, 10.15, 10.56, 10.97, 11.38, 11.8, 12.21, 12.62,13.04, 13.46, 13.87, 14.29, 14.71, 15.13, 15.55, 15.97, 16.4, 16.82, 17.24, 17.67, 18.09,18.51, 18.94, 19.36, 19.79, 20.21] y = range(0,500,10) A = sum(x) #x的和 B = reduce(lambda x, y: x + y, (map(lambda x: x ** 2, x))) #x的平方和 C = sum(y) #y的和 D = sum([a*b for a,b in zip(x,y)]) #x*y的和 E = numpy.array([[50,A],[A,B]]) F = numpy.array([[C],[D]]) [a0,a1] = numpy.linalg.solve(E,F) #linalg線性代數包,solve求矩陣函數E*[a0,a1]=Y Y = a0+a1*x error = Y-y v=max(error) #最大誤差 print(a0,a1) print(v)#作圖 plt.title('0-490°C的鎳鉻-鎳鉻熱電偶分度圖') # 折線圖標題 plt.rcParams['font.sans-serif'] = ['SimHei'] # 顯示漢字 plt.xlabel('溫度/°C') # x軸標題 plt.ylabel('電動勢/mV') # y軸標題 plt.plot(x, y) # 繪制折線圖 plt.plot(x, Y) plt.legend(['真實值', '預測值']) # 設置折線名稱 plt.show() # 顯示折線圖分度圖如下:
總結
以上是生活随笔為你收集整理的【智能仪器】基于python的非线性校正(曲线拟合法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高德地图城市编码
- 下一篇: python和java的格斗动画_Uni