Моделирование определения длины световой волны с помощью дифракционной решетки на Python

Автор: Матисаков Ж. К., Мамбетов Ж. И., Матисаков Ж.

Журнал: Бюллетень науки и практики @bulletennauki

Рубрика: Физико-математические науки

Статья в выпуске: 7 т.10, 2024 года.

Бесплатный доступ

Для моделирования лабораторной работы по определению длины световой волны с использованием дифракционной решетки на Python предлагается использовать библиотеки numpy, matplotlib и ipywidgets. Создается симуляция для моделирования положения максимумов на экране. Разработанный код может быть запущен в среде, поддерживающей виджеты ipywidgets, такой как Jupyter Notebook, для получения интерактивной симуляции определения длины световой волны с помощью дифракционной решетки. В коде определены следующие шаги: импорт необходимых библиотек: numpy для численных расчетов, matplotlib для построения графиков, ipywidgets для создания интерактивных виджетов; определение констант: d - расстояние между щелями дифракционной решетки, L - расстояние от решетки до экрана; создание функции calculate_maxima для расчета позиций максимумов; создание функции plot_diffraction_pattern для построения дифракционной картины; создание интерактивных виджетов: wavelength_slider для изменения длины волны света, order_max_slider для изменения максимального порядка интерференционных максимумов; запуск интерактивной симуляции, которая позволяет изменять параметры и наблюдать результаты в реальном времени.

Еще

Дифракционная решетка, интерференция, максимумы, длина волны, моделирование, python

Короткий адрес: https://sciup.org/14130513

IDR: 14130513   |   DOI: 10.33619/2414-2948/104/02

Текст научной статьи Моделирование определения длины световой волны с помощью дифракционной решетки на Python

Бюллетень науки и практики / Bulletin of Science and Practice

УДК 535.542.1; 535.015                             

Дифракционная решетка представляет собой оптическое устройство, состоящее из множества узких параллельных щелей или рифлей, расположенных на некотором расстоянии друг от друга. Когда параллельный пучок света проходит через дифракционную решётку, каждая щель или рифль действует как источник вторичных волн, и эти вторичные волны интерферируют между собой [1].

Для анализа дифракционной решетки обычно используется условие интерференции для максимумов и минимумов интенсивности. Для максимума интерференции (яркий максимум) для дифракционной решетки, имеющей N широких параллельных щелей с шириной щели d и расстоянием между соседними щелями D, условие интерференции записывается следующим образом [1]:

dsin(0) = mA                                         (1)

где: d — ширина каждой щели, в — угол, под которым наблюдается максимум интерференции, m — порядок интерференции (целое число), A — длина волны света.

Если m=0 , это соответствует центральному максимуму, а если m=±1,±2,±3,…, это соответствует боковым максимумам.

Таким образом, для определения длины волны света с помощью дифракционной решётки необходимо измерить угол в под которым наблюдается интерференционный максимум для заданного порядка интерференции m и известные параметры решетки d и D . Подставив измеренные значения в уравнение, можно рассчитать длину волны света λ.

Материал и методы исследования

Для создания симуляции лабораторной работы по определению длины световой волны с помощью дифракционной решетки на Python, можно использовать библиотеки numpy, matplotlib и ipywidgets для визуализации и интерактивного управления параметрами [2-4].

Будем использовать уравнение (1) для моделирования положения максимумов на экране и реализуем код.

Программный код состоит из следующих блоков:

  • 1.    Импорт библиотек:

  • -    numpy для численных расчетов.

  • -    matplotlib для построения графиков.

  • -    ipywidgets для создания интерактивных виджетов.

  • 2.    Константы:

  • -    d — расстояние между щелями дифракционной решетки.

  • -    L — расстояние от решетки до экрана.

  • 3.    Функция calculate_maxima:

  • -    Вычисляет углы θ для заданных порядков максимумов.

  • -    Преобразует эти углы в позиции на экране.

  • 4.    Функция plot_diffraction_pattern:

  • -    Использует calculate_maxima для получения позиций максимумов.

  • -    Строит вертикальные линии на графике для визуализации дифракционной картины.

  • 5.    Интерактивные виджеты:

  • -    wavelength_slider позволяет изменять длину волны света.

  • -    order_max_slider позволяет изменять максимальный порядок интерференционных максимумов.

  • 6.    Интерактивная симуляция:

  • - interact из ipywidgets связывает функции и виджеты, что позволяет интерактивно изменять параметры и видеть результаты в реальном времени.

Результаты и обсуждение

Запустим код в Jupyter Notebook или другой среде, поддерживающей виджеты ipywidgets, чтобы получить интерактивную симуляцию определения длины световой волны с помощью дифракционной решетки. Программа позволяет изменять длину волны и наблюдать, как это влияет на положение дифракционных максимумов.

На Рисунках 1-3 представлены результаты работы программы. Используя интерактивные виджеты wavelength_slider и order_max_slider, можно изменять соответственно длину волны света и максимальный порядок интерференционных максимумов, получая различные дифракционные картины.

Wavelengt..-   ----------------- 0.00

Order Max:  —^^^^^^^^“    1

Position on Screen (m)

Рисунок 1. Дифракционная картина при значениях Л =550нм, т=1

Wavelengt... -^^^^^^^—    0.00

Order Max:                  -      1

Poston on screen (m)

Рисунок 2. Дифракционная картина при значениях Л =700нм, m=1

I Wavelengt... ®^^^^^^^^^“   0.00

Order Max: ^^^“ ^^^^“    5

Рисунок 3. Дифракционная картина при значениях Л =400нм, m=5

Заключение

Для моделирования лабораторной работы по определению длины световой волны с использованием дифракционной решетки на Python предлагается использовать библиотеки numpy, matplotlib и ipywidgets. Создается симуляция для отображения положений максимумов на экране. Разработанный код можно запускать в среде, поддерживающей виджеты ipywidgets, такой как Jupyter Notebook, чтобы получить интерактивную симуляцию определения длины световой волны с помощью дифракционной решетки. В коде выполняются следующие шаги:

  • 1.    Импорт необходимых библиотек: numpy для численных расчетов, matplotlib для построения графиков, ipywidgets для создания интерактивных виджетов.

  • 2.    Определение констант: d — расстояние между щелями дифракционной решетки, L — расстояние от решетки до экрана.

  • 3.    Создание функции calculate_maxima для расчета позиций максимумов.

  • 4.    Создание функции plot_diffraction_pattern для построения дифракционной картины.

  • 5.    Создание интерактивных виджетов: wavelength_slider для изменения длины волны света, order_max_slider для изменения максимального порядка интерференционных максимумов.

  • 6.    Запуск интерактивной симуляции, которая позволяет изменять параметры и наблюдать результаты в реальном времени.

Список литературы Моделирование определения длины световой волны с помощью дифракционной решетки на Python

  • Трофимова Т. И. Курс физики. М.: Академия, 2006. 560 с.
  • Бабаев Д. Б., Матисаков Ж. К. Моделирование физических явлений и процессов в VPython // Бюллетень науки и практики. 2023. Т. 9. №7. С. 370-374. https://doi.org/10.33619/2414-2948/92/51.
  • Бабаев Д. Б., Матисаков Ж. К. Создание виртуальных лабораторных работ по физике в VPython // Бюллетень науки и практики. 2023. Т. 9. №7. С. 375-378. https://doi.org/10.33619/2414-2948/92/52.
  • Asanova S., Matisakov Zh. K., Atamkulova M. T. Application of training simulators in teaching programming // Izvestiy Oshskogo technologicheskogo university. 2018. №2. P. 104-107. EDN IDIARD.
Статья научная