Advertisement
Guest User

Untitled

a guest
Mar 15th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Wed Dec 19 09:34:29 2018
  4.  
  5. @author: Ranged
  6. """
  7.  
  8. import numpy as np
  9. import matplotlib.pyplot as plt
  10.  
  11. """
  12. Dunne lensformule
  13. 1/f = 1/v + 1/b
  14. b=-vf/(f-v)
  15. M = -b/v
  16. """
  17. lens1 = 100 #mm
  18. v1 = 550 #begin bij 550mm
  19. veind = 200
  20. vwaarden = []
  21.  
  22. while v1 >= veind:
  23. vwaarden.append(v1)
  24. v1 -= 50
  25.  
  26. vwaarden = np.asarray(vwaarden)
  27.  
  28. def func(f, v): #functie voor b
  29. return (-v*f)/(f-v)
  30.  
  31. bverwacht = func(lens1, vwaarden)
  32.  
  33. vfout = 5 #mm meetfout liniaal
  34. def foutfunc(f, v, uv):
  35. return abs((-f**2)/((v-f)**2)*uv) #ub=|-f^2/(v-f)^2 * uv|
  36.  
  37. bfout = foutfunc(lens1, vwaarden, vfout)
  38. bfoutgemeten = 1
  39. bgemeten = np.array([114, 116, 120, 124, 130, 142, 161, 190])
  40.  
  41. c0 = bverwacht - bgemeten
  42. c0avg = np.average(c0)
  43.  
  44. def foutc0(ub, ubg):
  45. return np.sqrt((ub)**2+(ubg)**2)
  46.  
  47. c0fout = foutc0(bfout, bfoutgemeten)
  48.  
  49. #gewogen gemiddelde
  50. w = 1/c0fout**2
  51. average = sum(w*c0)/sum(w)
  52. averageplt = np.full(8, average)
  53. alpha = np.sqrt(1/sum(w))
  54.  
  55. #plotten. x-as is vwaarden. y as is gemeten b en bverwacht met foutvlaggen bfout
  56. plt.subplot(2,1,1)
  57. plt.errorbar(vwaarden, bverwacht, yerr=bfout, label="Beeld verwacht", color="blue")
  58. plt.errorbar(vwaarden, bgemeten, yerr=bfoutgemeten, label="Beeld gemeten", color="red")
  59. plt.legend()
  60. plt.xlabel("Voorwerpafstanden (mm)")
  61. plt.ylabel("Beeldafstanden (mm)")
  62. plt.savefig("Opdracht1plot1.png")
  63.  
  64. plt.subplot(2,2,3)
  65. plt.errorbar(vwaarden, c0, yerr=c0fout, label="c0 verwacht", color="green")
  66. plt.plot(vwaarden, averageplt, '--', label="gewogen gemiddelde", color="red")
  67. plt.legend()
  68. plt.xlabel("Voorwerpafstanden (mm)")
  69. plt.ylabel("Beeldafstanden (mm)")
  70. plt.savefig("Opdracht1plot2.png")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement