Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- """
- Created on Wed Dec 19 09:34:29 2018
- @author: Ranged
- """
- import numpy as np
- import matplotlib.pyplot as plt
- """
- Dunne lensformule
- 1/f = 1/v + 1/b
- b=-vf/(f-v)
- M = -b/v
- """
- lens1 = 100 #mm
- v1 = 550 #begin bij 550mm
- veind = 200
- vwaarden = []
- while v1 >= veind:
- vwaarden.append(v1)
- v1 -= 50
- vwaarden = np.asarray(vwaarden)
- def func(f, v): #functie voor b
- return (-v*f)/(f-v)
- bverwacht = func(lens1, vwaarden)
- vfout = 5 #mm meetfout liniaal
- def foutfunc(f, v, uv):
- return abs((-f**2)/((v-f)**2)*uv) #ub=|-f^2/(v-f)^2 * uv|
- bfout = foutfunc(lens1, vwaarden, vfout)
- bfoutgemeten = 1
- bgemeten = np.array([114, 116, 120, 124, 130, 142, 161, 190])
- c0 = bverwacht - bgemeten
- c0avg = np.average(c0)
- def foutc0(ub, ubg):
- return np.sqrt((ub)**2+(ubg)**2)
- c0fout = foutc0(bfout, bfoutgemeten)
- #gewogen gemiddelde
- w = 1/c0fout**2
- average = sum(w*c0)/sum(w)
- averageplt = np.full(8, average)
- alpha = np.sqrt(1/sum(w))
- #plotten. x-as is vwaarden. y as is gemeten b en bverwacht met foutvlaggen bfout
- plt.subplot(2,1,1)
- plt.errorbar(vwaarden, bverwacht, yerr=bfout, label="Beeld verwacht", color="blue")
- plt.errorbar(vwaarden, bgemeten, yerr=bfoutgemeten, label="Beeld gemeten", color="red")
- plt.legend()
- plt.xlabel("Voorwerpafstanden (mm)")
- plt.ylabel("Beeldafstanden (mm)")
- plt.savefig("Opdracht1plot1.png")
- plt.subplot(2,2,3)
- plt.errorbar(vwaarden, c0, yerr=c0fout, label="c0 verwacht", color="green")
- plt.plot(vwaarden, averageplt, '--', label="gewogen gemiddelde", color="red")
- plt.legend()
- plt.xlabel("Voorwerpafstanden (mm)")
- plt.ylabel("Beeldafstanden (mm)")
- plt.savefig("Opdracht1plot2.png")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement