前两天做半导体激光泵浦实验,记录了一些数据,看起来像是直线,想用python拟合一下,翻看了帮助的文档,写了一些代码,在此由衷希望本科新生早早学会一门编程语言,虽然excel也能胜任,但编程能做到更多。
主要用的numpy里面的函数是polyfit,这个函数有三个参量(x,y,n),x和y是要输入的数据,n是要进行要拟合的多项式的最高次数,比如此次用的就是线性拟合,n=1,其返回值是多项式拟合的系数,对于线性拟合就是斜率和截距,另外要调用的函数就是poly1d,拟合出这个多项式来,用polyfit的返回值作为参数。
代码如下
import matplotlib.pyplot as plt
x1=[20,33,51,79,101,121,132,145,162,182,203,219,232,243,256,270,287,310,325]
y1=[49,48,48,48,48,87,106,123,155,191,233,261,278,284,297,307,341,319,341]
x2=[31,52,73,92,101,112,126,140,153,175,186,196,215,230,240,270,288,300]
y2=[48,48,48,48,49,89,162,237,302,378,443,472,522,597,628,661,690,702]
x3=[30,50,70,90,105,114,128,137,147,159,170,180,190,200,210,230,243,259,284,297,311]
y3=[48,48,48,48,66,173,351,472,586,712,804,899,994,1094,1198,1360