![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 01.04.2011
Сообщений: 6
|
![]()
Нужно для универа написать простенькую программу, моделирование интерференции двух источников света. Вроде и по физике в школе всех впереди всех был, но всё равно не совсем понятна именна физическая суть процесса.
Общая концепция проги - задаётся два источника света, есть поверхность, для каждой точки этой поверхности просчитываем интенсивность света от каждого источника, и складываем её. Интенсивность света каждого источника считаю по уравнению волны. Итак Intensity = (255*Math.cos(k*S1/waveLength))+ 255*Math.cos(k*S2/waveLength))/2; Intensity - результирующая интенсивность в данной точке, S1 и S2 - соответственно расстояния до источников, просчитываемые отдельно ранее. Получается картина не совсем похожая на действительность. Да и возникают подозрения в правильности моих формул и моих подходов, ведь если убрать один источник и оставить Intensity = 255*Math.cos(k*S1/waveLength)) То у нас будет на поверхности неравномерное освещение, хотя источник только один, и поверхности, по идее, должна быть освещена равномерно. Направьте пожалуйста на правильную мысль! ![]() |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 10.06.2010
Сообщений: 239
|
![]()
А откуда вообще такая формула взялась? есть ссылка на источник?
И вообще у вас источники света когерентные? Обычно рассматривается задача когда есть один источник света, который проходит через две (или больше) щелей и только потом считается интерференция света. Щели принято рассматривать как источники плоской когерентной волны.
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 01.04.2011
Сообщений: 6
|
![]()
Формула взята в принципе из собственных догадок, которые, видимо, не совсем похожи на реальность
![]() Уравнение волны E=Emax*cos(w*t), где E -интенсивность в данный момент времени, Emax - максимальная интенсивность, преобразуем к зависимости интенсивности от пройденного расстояния. Получаем мою формулу - E = Emax*cos(const*S), S - расстояние до точки от источника света. Считаю что у меня два когерентных источника, излучающих свет в одной фазе. В принципе это совершенно аналогично одному источнику и двум щелям. Считаю пока кстати только плоскую картину. |
![]() |
![]() |
![]() |
#4 |
Регистрация: 01.04.2011
Сообщений: 6
|
![]()
Ребят, поможете?
![]() |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 10.06.2010
Сообщений: 239
|
![]()
поможете, тока ближе к вечеру
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 10.06.2010
Сообщений: 239
|
![]()
Почитал вот это
http://ru.wikipedia.org/wiki/Опыт_Юнга Получается что интенсивность в точки x будет равна 2*E0*(1+cos(2*pi*Delta/Lambda)) где E0=const, lambda - длинна волны, delta = sqrt(D^2+x^2)-sqrt(D^2+(x+a)^2), D-расстояние до экрана, а-расстояние между источниками. х-точка в которой ищется освещенность, начало координат следует выбрать под одним из источников света. Т.к. косинус функция четная то под каким именно источником будет начало отсчета роли не играет. Ну дальше считаешь значения функции E(x) с шагом h в цикле и выводишь график на экран. Для простоты можно взять E(0)=1/2, тогда значение освещенности будет в пределах от 0 до 2.
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 01.04.2011
Сообщений: 6
|
![]()
KobolD, спасибо за ответ, у меня кстати первая используемая формула как раз такой и была, я её взял из чьей-то курсовой работы в инете, но...
Тогда похоже я просто не до конца понимаю задачи компьютерного моделирования. Ведь по сути это просто просчёт массива значений по форуме, и его визуализация... А мне "романтики" хотелось - задать каждую волну отдельно, и т.п. Получается это совсем даже лишнее? |
![]() |
![]() |
![]() |
#8 |
Регистрация: 01.04.2011
Сообщений: 6
|
![]()
И ещё вдогонку - у нас есть плоские волны и сферические. Разница, как понимаю, только в том, что можем ли считать радиус фронта достаточно большим, когда он доходит до экрана. Получается, что если расстояние от источников до экрана - большое - у нас плоские волны, если маленькое - то сферические - или нет?
|
![]() |
![]() |
![]() |
#9 |
Регистрация: 01.04.2011
Сообщений: 6
|
![]()
В общем пока остановился на таком варианте. Вроде бы похоже на правду. Интерфейсная часть заключается пока только в возможности перетащить источник света и ввести длину волны. Пока что всё в уловным расстояниях, высота источников над плоскостью равна 200, и если ввести длину волны намного меньше этого расстояния - получается фигня. Нормально ли это?
http://195.211.190.11/work/interfere...renceProg.html Интересный результат получается при "граничной" длине волны - 0.25 - это похоже на истину, или это уже глюки расчётной части? Если меньше - получается совсем грустная картинка. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Движение со скоростью света и быстрее скорости света - Сверхсветовое движение | Alar | Свободное общение | 354 | 13.11.2011 21:32 |
Простая программа | Freeman-des | Помощь студентам | 1 | 02.12.2010 18:07 |
Простая программа | russian-stalker | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 27.11.2010 22:52 |
Программа для моделирования систем | Newbie2010 | Общие вопросы C/C++ | 0 | 07.03.2010 19:09 |
Простая программа | Distr | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 15.11.2007 08:27 |