zwei Messreihen mit systematischen und zufälligen Fehlern |
N=1000
truex=3
biasx=0.1
sigmax=0.3
x=normal(truex+biasx,sigmax,N)
truey=1.5
biasy=0.02
sigmay=0.1
y=normal(truey+biasy,sigmay,N)
plot(arange(0,N),x,'.',arange(0,N),y,'.')
show()
mls0=" abs.syst.F. | rel.syst.F. | Var{abs.zuf.F.}| Var{rel.zuf.F.}"
mls1=" x | %8f | %8f | %8f | %8f"%(mean(x)-truex,(mean(x)-truex)/float(truex),var(x,ddof=1),var(x,ddof=1)/float(truex)**2)
mls2=" y | %8f | %8f | %8f | %8f"%(mean(y)-truey,(mean(y)-truey)/float(truey),var(y,ddof=1),var(y,ddof=1)/float(truey)**2)
print(mls0+"\n"+mls1+"\n"+mls2+"\n")
mls3="x+y | %8f | %8f | %8f | %8f"%(mean(x+y)-(truex+truey),(mean(x+y)-(truex+truey))/float(truex+truey),var(x+y,ddof=1),var(x+y,ddof=1)/float(truex+truey)**2)
mls4="x-y | %8f | %8f | %8f | %8f"%(mean(x-y)-(truex-truey),(mean(x-y)-(truex-truey))/float(truex-truey),var(x-y,ddof=1),var(x-y,ddof=1)/float(truex-truey)**2)
print(mls0+"\n"+mls1+"\n"+mls2+"\n"+mls3+"\n"+mls4+"\n")
mls5="x*y | %8f | %8f | %8f | %8f"%(mean(x*y)-(truex*truey),(mean(x*y)-(truex*truey))/float(truex*truey),var(x*y,ddof=1),var(x*y,ddof=1)/float(truex*truey)**2)
mls6="x/y | %8f | %8f | %8f | %8f"%(mean(x/y)-(truex/truey),(mean(x/y)-(truex/truey))/float(truex/truey),var(x/y,ddof=1),var(x/y,ddof=1)/float(truex/truey)**2)
print(mls0+"\n"+mls1+"\n"+mls2+"\n"+mls3+"\n"+mls4+"\n"+mls5+"\n"+mls6+"\n")
|
N=1000;
truex=3;
biasx=0.1;
sigmax=0.3;
x=truex+biasx+sigmax*randn([1,N]);
truey=1.5;
biasy=0.02;
sigmay=0.1;
y=truey+biasy+sigmay*randn([1,N]);
plot((1:N),x,'.',(1:N),y,'.')
mls0=sprintf(" abs.syst.F. | rel.syst.F. | Var{abs.zuf.F.}| Var{rel.zuf.F.}");
mls1=sprintf(" x | %f | %f | %f | %f",mean(x)-truex,(mean(x)-truex)/truex,var(x),var(x)/truex^2);
mls2=sprintf(" y | %f | %f | %f | %f",mean(y)-truey,(mean(y)-truey)/truey,var(y),var(y)/truey^2);
sprintf("\n%s\n%s\n%s\n",mls0,mls1,mls2)
mls3=sprintf("x+y | %f | %f | %f | %f",mean(x+y)-(truex+truey),(mean(x+y)-(truex+truey))/(truex+truey),var(x+y),var(x+y)/(truex+truey)^2);
mls4=sprintf("x-y | %f | %f | %f | %f",mean(x-y)-(truex-truey),(mean(x-y)-(truex-truey))/(truex-truey),var(x-y),var(x-y)/(truex-truey)^2);
sprintf("\n%s\n%s\n%s\n%s\n%s\n",mls0,mls1,mls2,mls3,mls4)
mls5=sprintf("x*y | %f | %f | %f | %f",mean(x.*y)-(truex*truey),(mean(x.*y)-(truex*truey))/(truex*truey),var(x.*y),var(x.*y)/(truex*truey)^2);
mls6=sprintf("x/y | %f | %f | %f | %f",mean(x./y)-(truex/truey),(mean(x./y)-(truex/truey))/(truex/truey),var(x./y),var(x./y)/(truex/truey)^2);
sprintf("\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n",mls0,mls1,mls2,mls3,mls4,mls5,mls6)
|
Temperaturbestimmung aus NTC-Widerstandsmessung mit systematischen und zufälligen Fehlern |
N=1000
RN=20000
TN=25+273.15
B=4000
trueR=30000
biasR=200
sigmaR=100
R=normal(trueR+biasR,sigmaR,N)
plot(R,'.')
show()
trueT=1/(1/float(TN)+1/float(B)*log(trueR/float(RN)))
print(trueT-273.15)
T=1/(1/float(TN)+1/float(B)*log(R/float(RN)))
plot(T-273.15,'.')
show()
print(mean(T)-trueT)
print(-B*TN**2/(trueR*(B+TN*log(trueR/float(RN)))**2)*biasR)
print(var(T,ddof=1))
print((-B*TN**2/(trueR*(B+TN*log(trueR/float(RN)))**2))**2*sigmaR**2)
|
N=1000;
RN=20000;
TN=25+273.15;
B=4000;
trueR=30000;
biasR=200;
sigmaR=100;
R=trueR+biasR+sigmaR*randn([1,N]);
plot(R,'.')
waitforbuttonpress
trueT=1/(1/TN+1/B*log(trueR/RN));
trueT-273.15
T=1./(1/TN+1/B*log(R/RN));
plot(T-273.15,'.')
mean(T)-trueT
-B*TN^2/(trueR*(B+TN*log(trueR/RN))^2)*biasR
var(T)
(-B*TN^2/(trueR*(B+TN*log(trueR/RN))^2))^2*sigmaR^2
|