iT邦幫忙

2024 iThome 鐵人賽

DAY 7
3
自我挑戰組

AI救我系列 第 7

Day 7 - 光學繞射:單縫繞射的強度分佈公式in Python

  • 分享至 

  • xImage
  •  

美國物理學家、諾貝爾物理學獎得主理察·費曼指出:

「沒有人能夠令人滿意地定義干涉和繞射的區別。這只是術語用途的問題,其實二者在物理上並沒有什麼特別的、重要的區別。」

因此,就接著干涉後來討論繞射吧!

光學繞射
繞射是指當光波遇到障礙物或穿過狹縫時,波會偏離原來直線前進的方向,進而在屏幕上形成特定的圖樣。

單縫繞射的強度分佈公式如下:
https://ithelp.ithome.com.tw/upload/images/20240919/20168442lFyNnngkY7.png

其中https://ithelp.ithome.com.tw/upload/images/20240919/201684425wcuWFEVHI.png

a為狹縫寬度,λ為光的波長,θ為繞射角度,I0 為中心最大強度。

以下是使用Python中的numpy和matplotlib來模擬單縫繞射圖樣的範例:

import numpy as np
import matplotlib.pyplot as plt

# 定義參數
wavelength = 500e-9  # 波長,單位為米
slit_width = 1e-6    # 狹縫寬度,單位為米
screen_distance = 1   # 屏幕距離,單位為米

# 定義角度範圍
theta = np.linspace(-0.01, 0.01, 1000)  # 繞射角度範圍
beta = (np.pi * slit_width * np.sin(theta)) / wavelength

# 計算強度
intensity = (np.sin(beta) / beta)**2
intensity[beta == 0] = 1  # 防止除以零的情況

# 繪製繞射圖樣
plt.figure(figsize=(10, 6))
plt.plot(theta, intensity, label='SingleSlitDiffractionIntensity')

plt.xlabel('Angle θ (radians)')
plt.ylabel('Intensity I(θ)')
plt.title('Single Slit Diffraction')
plt.grid(True)
plt.legend()
plt.show()

https://ithelp.ithome.com.tw/upload/images/20240919/20168442NyganhV9pR.png

以上是和ChatGPT合作生出的程式碼,雖然有微調不過內容沒有錯誤,大家可以調整wavelength,slit_width和screen_distance等參數,看看光的強度分佈長怎樣,就像自己在虛擬世界做物理實驗!


上一篇
Day 6 - 光學干涉:在python上計算光的干涉強度
下一篇
Day 8 - 光學繞射:單狹縫一維傅立葉轉換公式in Python (1)
系列文
AI救我15
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言