import numpy as np
import matplotlib.pyplot as plt
# Convert wavelength to frequency for each filter
wavelengths_nm = [405, 450, 500, 550, 600, 670] # Wavelengths in nm
wavelengths_m = [wl * 1e-9 for wl in wavelengths_nm] # Convert nm to meters
speed_of_light = 3e8 # m/s
frequencies = [speed_of_light / wl for wl in wavelengths_m] # Calculate frequency in Hz
# Define constants
planck_constant = 6.626e-34 # Planck's constant in J*s
electron_charge = 1.602e-19 # Charge of an electron in coulombs
# Calculate kinetic energy in eV
kinetic_energy_eV = [planck_constant * freq / electron_charge for freq in frequencies]
# Plot the graph
plt.figure(figsize=(8, 6))
plt.plot(frequencies, kinetic_energy_eV, 'bo', label='Data points')
plt.xlabel('Frequency (Hz)')
plt.ylabel('Initial Kinetic Energy (eV)')
plt.title('Initial Kinetic Energy vs. Frequency')
plt.grid(True)
# Perform linear regression to fit a straight line
slope, intercept = np.polyfit(frequencies, kinetic_energy_eV, 1)
plt.plot(frequencies, np.polyval([slope, intercept], frequencies), 'r-', label='Linear fit')
# Set axis limits
plt.xlim(0, 8e14)
plt.ylim(-2, 2)
# Display slope and y-intercept
print("Slope:", slope, "eV*s")
print("Y-intercept:", intercept, "eV")
# Show legend and plot
plt.legend()
plt.show()
aW1wb3J0IG51bXB5IGFzIG5wCmltcG9ydCBtYXRwbG90bGliLnB5cGxvdCBhcyBwbHQKCiMgQ29udmVydCB3YXZlbGVuZ3RoIHRvIGZyZXF1ZW5jeSBmb3IgZWFjaCBmaWx0ZXIKd2F2ZWxlbmd0aHNfbm0gPSBbNDA1LCA0NTAsIDUwMCwgNTUwLCA2MDAsIDY3MF0gICMgV2F2ZWxlbmd0aHMgaW4gbm0Kd2F2ZWxlbmd0aHNfbSA9IFt3bCAqIDFlLTkgZm9yIHdsIGluIHdhdmVsZW5ndGhzX25tXSAgIyBDb252ZXJ0IG5tIHRvIG1ldGVycwpzcGVlZF9vZl9saWdodCA9IDNlOCAgIyBtL3MKZnJlcXVlbmNpZXMgPSBbc3BlZWRfb2ZfbGlnaHQgLyB3bCBmb3Igd2wgaW4gd2F2ZWxlbmd0aHNfbV0gICMgQ2FsY3VsYXRlIGZyZXF1ZW5jeSBpbiBIegoKIyBEZWZpbmUgY29uc3RhbnRzCnBsYW5ja19jb25zdGFudCA9IDYuNjI2ZS0zNCAgIyBQbGFuY2sncyBjb25zdGFudCBpbiBKKnMKZWxlY3Ryb25fY2hhcmdlID0gMS42MDJlLTE5ICAjIENoYXJnZSBvZiBhbiBlbGVjdHJvbiBpbiBjb3Vsb21icwoKIyBDYWxjdWxhdGUga2luZXRpYyBlbmVyZ3kgaW4gZVYKa2luZXRpY19lbmVyZ3lfZVYgPSBbcGxhbmNrX2NvbnN0YW50ICogZnJlcSAvIGVsZWN0cm9uX2NoYXJnZSBmb3IgZnJlcSBpbiBmcmVxdWVuY2llc10KCiMgUGxvdCB0aGUgZ3JhcGgKcGx0LmZpZ3VyZShmaWdzaXplPSg4LCA2KSkKcGx0LnBsb3QoZnJlcXVlbmNpZXMsIGtpbmV0aWNfZW5lcmd5X2VWLCAnYm8nLCBsYWJlbD0nRGF0YSBwb2ludHMnKQpwbHQueGxhYmVsKCdGcmVxdWVuY3kgKEh6KScpCnBsdC55bGFiZWwoJ0luaXRpYWwgS2luZXRpYyBFbmVyZ3kgKGVWKScpCnBsdC50aXRsZSgnSW5pdGlhbCBLaW5ldGljIEVuZXJneSB2cy4gRnJlcXVlbmN5JykKcGx0LmdyaWQoVHJ1ZSkKCiMgUGVyZm9ybSBsaW5lYXIgcmVncmVzc2lvbiB0byBmaXQgYSBzdHJhaWdodCBsaW5lCnNsb3BlLCBpbnRlcmNlcHQgPSBucC5wb2x5Zml0KGZyZXF1ZW5jaWVzLCBraW5ldGljX2VuZXJneV9lViwgMSkKcGx0LnBsb3QoZnJlcXVlbmNpZXMsIG5wLnBvbHl2YWwoW3Nsb3BlLCBpbnRlcmNlcHRdLCBmcmVxdWVuY2llcyksICdyLScsIGxhYmVsPSdMaW5lYXIgZml0JykKCiMgU2V0IGF4aXMgbGltaXRzCnBsdC54bGltKDAsIDhlMTQpCnBsdC55bGltKC0yLCAyKQoKIyBEaXNwbGF5IHNsb3BlIGFuZCB5LWludGVyY2VwdApwcmludCgiU2xvcGU6Iiwgc2xvcGUsICJlVipzIikKcHJpbnQoIlktaW50ZXJjZXB0OiIsIGludGVyY2VwdCwgImVWIikKCiMgU2hvdyBsZWdlbmQgYW5kIHBsb3QKcGx0LmxlZ2VuZCgpCnBsdC5zaG93KCkK