Российский государственный педагогический университет им. А. И. Герцена Факультет физики Кафедра физической электроники ...
95 downloads
239 Views
793KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Российский государственный педагогический университет им. А. И. Герцена Факультет физики Кафедра физической электроники
А.А.Лужков
Решение физических задач на компьютере в формате интерактивных WEB страниц Учебное пособие
сокращенная версия, пособие можно приобрести, обратившись на кафедру физической электроники, ауд. № 48 Программные коды всех примеров, рассмотренных в книге, можно загрузить с WEB-сайта факультета физики РГПУ им. А.И.Герцена по адресу: http://physics.herzen.spb.ru.
Санкт-Петербург 2009
Печатается по решению Ученого совета факультета физики РГПУ им. А.И.Герцена
Рецензенты: кандидат физ.-мат наук, доцент А. С. Тюканов (РГПУ им. А. И. Герцена); кандидат физ.-мат наук, доцент В. И. Прошин (СанктПетербургский государственный политехнический университет)
Л 82
Лужков А. А. Решение физических задач на компьютере в формате интерактивных WEB-страниц: Учебное пособие. – СПб.: Изд. РГПУ им. А. И. Герцена, 2009. – 72с.
В пособии изложены методы решения учебных задач вычислительной физики с использованием языка JavaScript, дополненного языком век-
торной графики VML. Рассматриваются основные типы задач и алгоритмы их решения. Программы, приведенные в каждом разделе, воспроизводят изложенный в тексте алгоритм решения задач средствами JavaScript и могут быть использованы как шаблоны для выполнения индивидуальных заданий. Варианты индивидуальных заданий по всем разделам пособия содержатся в приложении. Пособие предназначено для студентов физического факультета РГПУ им. А.И.Герцена.
ББК 74я73
ISBN 978-5-8064-1419-0
2
Лужков А. А., 2009 Изд-во РГПУ им. А. И. Герцена, 2009
Содержание Введение……………………………………………………………..
4
1. Организация вычислений по заданным формулам…………..... 1.1. Арифметический калькулятор……………………………... 1.2. Вычисление значения функции из заданного списка…….. 1.3. Программируемый калькулятор…………………………… 1.4. Спектр излучения атома водорода…………………………
6
2. Решение уравнений движения для одной или нескольких частиц………………………………………………………..…… 2.1. Секундомер………………………………………………….. 2.2. Движение под действием постоянной силы в вязкой среде 2.3. Системы взаимодействующих частиц……………………... 2.4. Абсолютно упругий центральный удар…………………… 2.5. Абсолютно упругий нецентральный удар………………… 3. Построение графиков и траекторий средствами VML………… 3.1. Построение фигуры Лиссажу………………………………. 3.2. Представление функций рядами Фурье…………………… 3.3 Динамическая траектория частицы………………………… 3.4. Фокус «толстой» линзы…………………………………….. 4. Использование генератора случайных чисел при моделировании физических явлений……………………… 4.1. Основные свойства генератора случайных чисел………… 4.2. Задача о случайных блужданиях…………………………… 4.3. Задача протекания…………………………………………...
11
18
28
Приложение. Варианты индивидуальных заданий……………….
35
Литература…………………………………………………………..
43
3
Введение Решение физических задач на компьютере обязательно опирается на использование различных языков программирования и пакетов математических программ. Если не касаться высокотехничных специализированных пакетов прикладных программ, которые позволяют достаточно быстро решать некоторые типы задач, во многих случаях решение сводится к написанию и отладке определенной компьютерной программы на языке высокого уровня. При работе на компьютерах вне компьютерного класса часто возникают определенные трудности, связанные с установкой на эти (например, «домашние») компьютеры мощного программного обеспечения: MathCAD, Pascal, C++, Delphi и др. При этом фактически на начальных этапах обучения оно используется буквально на несколько процентов. Альтернативный подход состоит в использовании языка JavaScript, дополненного языком векторной графики VML. JavaScript – интерпретируемый язык web-программирования. Это значит, что для создания программ-скриптов на JavaScript достаточно иметь только браузер и любой текстовый редактор. Трудно найти компьютер, на котором не был бы установлен браузер для выхода в Интернет. Но этот браузер может выполнять и другие функции. В частности, он позволяет выполнять программы на языке сценариев, которые могут быть достаточно сложными. Этим обеспечивается универсальность и доступность программного обеспечения. Поскольку программыскрипты всегда интегрированы с конкретной WEB-страницей (непосредственно в ее коде или в виде присоединенного файла), этот подход можно также назвать решением физических задач в формате интерактивных WEB страниц. JavaScript воплощает следующие качества: простоту и мощь, безопасность, объектную ориентированность, надежность, интерактивность, архитектурную независимость, высокую производительность и легкость в изучении. Эти качества очень удобны при решении учебных физических задач. Технология JavaScript, интегрированная с языком векторной графики, находит применение не только при создании сценариев, обеспечивающих привлекательный вид WEB-страниц, но прекрасно подходит и для обучения основам объектно-ориентированного программирования. Использование JavaScript вводит в круг представлений о современных технологиях и позволяет решать многие серьезные задачи программирования. Поэтому представляется целесообразным 4
использовать при решении многих физических задач на компьютере в качестве базового или второго языка JavaScript, так как JavaScript содержит некоторые методы, характерные только для него, и позволяет обеспечить удобный и привлекательный диалог пользователя с программой. Поэтому в рамках такого подхода определенное внимание уделяется «внешнему виду» выполненного задания. Освоение операторной части языка JavaScript (циклы, условные операторы, арифметические выражения и т. д.) не представляет для студентов особых трудностей, так как ранее по учебному плану ими уже освоен базовый курс информатики. Что касается специфической части языка, основанной на объектах, то для выполнения учебных задач достаточно овладеть методами и свойствами небольшого числа объектов. Для обучения этому применяется технология «быстрый старт», когда на конкретных примерах сразу объясняется содержание, способ применения и формат записи соответствующего элемента языка. При этом учащиеся также закрепляют или получают представление о языке HTML и структуре WEB-страницы. Обычно программы, написанные на традиционно используемых базовых языках, не обладают большими возможностями при организации удобного диалога с пользователем, а экранное оформление этого диалога обычно оставляет желать лучшего. В то же время предложенный подход обладает гораздо большей интерактивностью и позволяет создавать красочно оформленные WEB-страницы с текстом и рисунками, которые непосредственно интегрированы с программами в форме встроенных скриптов. Эти WEB-страницы могут быть частью электронного учебного пособия. Разделы пособия расположены по возрастанию уровня сложности, в них приведены основные типы задач и алгоритмы их решения. Программы, приведенные в каждом разделе, являются одним из возможных вариантов решения рассматриваемых задач, и могут быть использованы как шаблоны для выполнения индивидуальных заданий. Основное содержание программ сводится к точному изложению алгоритма решения конкретных задач средствами JavaScript. В приложении содержатся варианты индивидуальных заданий по всем разделам пособия, в количестве достаточном для стандартной учебной группы. Решение каждого задания рассматривается как самостоятельное творчество и допускает любые подходы и методы решения, а также способы оформления, оставаясь, разумеется, в рамках общей концепции данного пособия. 5
1. Организация вычислений по заданным формулам Основная цель данного раздела – продемонстрировать на примерах методику создания программ, выполняющих математические вычисления по заданным формулам. Такая задача часто возникает при решении физических задач и выполнении расчетов для лабораторных работ, в которых требуется вычислить теоретическое значение физической величины для сравнения с ее экспериментальным значением. Примеры, приводимые в этом и последующих разделах, следует рассматривать как готовые шаблоны для решения аналогичных задач. Используя их, можно просмотреть коды программ и общую структуру страницы, а затем изменить код в соответствии с конкретными потребностями. Это общий подход для большинства пособий по практическому применению Java Script. Типичная задача раздела – написать программу, использующую вводимый пользователем набор данных, дать команду на выполнение и отобразить результат вычислений. Следовательно, методика создания такой программы включает в себя три основных этапа: 1. Разработка алгоритма вычислений по заданным математическим формулам и конкретная запись этого алгоритма с помощью операторов языка Java Script. 2. Организация ввода данных (с помощью полей ввода) и создание управляющих элементов (кнопок и т.д.) для запуска и управления работой программы. 3. Организация вывода результатов (в частности, с учетом целесообразности записи результатов в том же окне в набор полей вывода, или в новом документе в другом окне или фрейме при неопределенной длине списка вывода). Для всех, кто знаком с основами программирования, первый этап не представляет особых трудностей и реализуется с помощью стандартных алгоритмических приемов, единых для любых языков высокого уровня. Требуется лишь минимальное знакомство с незначительными изменениями в синтаксисе. В стандартный набор соответствующих элементов языка входят: понятие переменных и их типов, арифметические выражения, элементарные математические функции, операторы цикла, условные операторы и т.д. Вторая и третья части списка являются специфическими для рассматриваемого языка и представляют основную трудность при первом знакомстве. Поэтому данному вопросу и будет уделено основное внимание при комментировании кодов программ. 6
Сам текст программы, написанный на языке JavaScript, помещается между парой дескрипторов … , и может располагаться как в блоке … , так и в блоке … , причем таких программных вставок может быть несколько. В большинстве случаев интерактивный диалог с программой будет осуществляться через различные элементы HTML форм. Объект Form очень важный объект в рамках объектно-ориентированной модели JavaScript, а исторически он был основным инструментом по передаче данных для обработки (первоначально на сервере). С помощью различных элементов HTML форм можно создавать поля ввода и вывода для наборов чисел и символов (input, textarea), которые передаются в программу, а также разнообразные управляющие инструменты типа кнопок (button, submit, reset, radio) и объектов выбора вариантов (select). Элементы управления и выбора необходимы для структурирования и управления наборами данных, а также для запуска и управления работой программы. Следует отметить, что внешнее оформление элементов HTML форм с помощью стилей может быть весьма изысканным, но в приводимых ниже примерах используется только их канонический вид, определяемый браузером по умолчанию.
1.1. Арифметический калькулятор Данный пример демонстрирует один из способов создания на странице элементарного калькулятора (рис.1), выполняющего сложение или умножение двух вводимых чисел (x и y).
Рис. 1. WEB-страница с калькулятором. 7
Оба числа вводятся с экрана в поля ввода. На странице имеется две кнопки «Сложение» и «Умножение». Результат появляется при нажатии на соответствующую кнопку и выводится в расположенное справа от кнопки поле вывода.
1.2. Вычисление значения функции из заданного списка Данный сценарий позволяет вычислять значения стандартных математических функций по заданному аргументу и в принципе может быть частью сценария для расширенного калькулятора. При загрузке страницы создается одно поле ввода для аргумента x и набор стандартных переключателей – радиокнопок () – напротив имени каждой функции. При щелчке правой кнопкой мыши по радиокнопке вычисляется соответствующая функция от числа x (см. рис. 2).
Рис. 2. Вычисление значения математических функций по заданному аргументу.
.
1.3. Программируемый калькулятор Данная небольшая программа демонстрирует возможность вводить в качестве аргумента в поле ввода формулу общего вида y=f(x), готовое арифметическое выражение или набор операторов языка JavaScript, реализующих заданное вычисление. Эта формула или мини программа будут обрабатываться по правилам языка JavaScript, а полученное в результате вычислений число выводится в отдельное поле 8
вывода, как показано на рис. 3. При этом следует обратить внимание на обязательное условие – это вычисленное число в тексте минипрограммы должно быть присвоено переменной y. а не какой-либо другой, потому что в поле вывода выводится значение переменной y, а не какой либо другой. Если этого не сделать, то программа напомнит об этом сама.
Рис. 3. Фрагмент окна Internet Explorer с результатом работы сценария. В поле ввода значение переменной x изменено пользователем с x=3 на x=10.
1.4. Спектр излучения атома водорода В некоторых случаях нам заранее неизвестно количество данных, которые мы получим после выполнения требуемых расчетов. Например, при вычислении набора значений длин волн с фиксированным номером серии, излучаемых атомом водорода, заранее неизвестно, какое их количество будет выводится на экран. Для решения такой задачи можно использовать различные приемы. Одним из универсальных способов является печать результатов в новый документ, который создается в новом окне. Для этого программным путем создается HTML код, содержащий эти результаты, который является частью полного HTML кода документа, загружаемого в новое окно. С помощью этого метода можно создавать элементы кода текущей страницы программным путем при ее загрузке. Полный формат вызова этого метода выглядит как window.document.write(“…”), где 9
между кавычек записывают любые элементы HTML кода в виде символьной строки, которая может содержать и какие-то переменные. В сокращенной записи префикс window можно опустить. Важно, что этот метод участвует в создании документа только один раз, при генерации содержимого загружаемой текущей страницы. Однако этот же метод можно использовать для создания нового документа, загружаемого в новое окно, которое может создаваться в любом месте программы в любой момент времени. Для этого необходимо сначала открыть это новое окно, а затем записывать содержимое в новый документ с помощью строк вида new_win.document.write(“…”), где new_win – выбранное пользователем обозначение нового окна, которое было ранее указано при его открытии. При этом новое окно new_win является новым объектом, имеющим все основные свойства и методы объекта window. Все что является аргументом метода document.write(“…”), то есть находится внутри круглых скобок, является частью полного HTML кода соответствующей (новой ) страницы, и будет интерпретироваться при еѐ создании согласно обычным правилам языка HTML В приведенном ниже примере (рис. 4), на основе известной формулы квантовой оптики определяется набор значений длин электромагнитных волн: λ=Z(1/m2 – 1/n2)–1, где целое число m – это номер серии, n=m+1, m+2,…, а постоянная Z приблизительно равна 91.127нм.
Рис. 4. WEB страница для примера 1.4. Поскольку все длины волн не поместились в пределах созданного программой нового окна, оно автоматически снабжено полосой прокрутки. 10
2. Решение уравнений движения для одной или нескольких частиц Решение уравнений движения является классической задачей механики. В общем случае уравнения движения представляются системой дифференциальных уравнений для координат и скоростей частицы вида dx/dt=vx , dvx/dt=ax=Fx/m и аналогично для остальных координат y и z. Сила Fx является в общем случае функцией координат и скоростей, явный вид которой определяется условиями задачи. Для численных расчетов координат и скоростей в произвольный момент времени применяется один из методов приближенного решения дифференциальных уравнений. Воспользуемся методом Эйлера, позволяющим находить координаты и скорости в момент времени t+Δt если известны параметры движения в момент времени t: x(t+Δt) = x(t) + vx (t)·Δt , vx(t+Δt) = vx(t) + ax (t)·Δt. Повторяя эти действия N раз, можно рассчитать отрезок траектории за время (N Δt). Соответственно, в программе эти строчки запишутся в виде x=x+vx*dt vx=vx+ax*dt
Знак (=) в данном случае является символом присваивания, а формулы имеют следующий смысл: x «новое» равно x «старое» плюс малое смещение на величину vx*dt. Переменная dt есть величина шага, которая должна быть достаточно малой, чтобы погрешность вычислений не превысила допустимую величину. Если имеется программа для решения уравнений движения для частицы под действием определенной силы, то код этой программы легко может быть изменен для решения задачи с произвольными силами. Для этого достаточно изменить строчку, определяющую ускорение, а результирующую силу находить по обычному правилу суперпозиции. Если не интересоваться непосредственным построением траекторий (см. далее Раздел 3), поставленная задача сводится либо к вычислению каких-либо параметров движения, либо к прямой демонстра11
ции этого движения. Проблема создания движущихся объектов (анимация) на JavaScript решается достаточно легко. В первую очередь для этого требуется таймер, который выполняет заданные действия или вызывает подпрограмму через определенный промежуток времени. В языке JavaScript имеется два стандартных таймера: setTimeout – однократный таймер и setInterval – многократный таймер. Однократный таймер выполняет одно действие через заданный интервал времени и останавливается. Многократный таймер периодически выполняет заданное действие до тех пор, пока не будет принудительно остановлен. С правилами использования таймера setTimeout познакомимся на следующем примере
2.1. Секундомер Рассмотрим WEB-страницу, при создании которой используется однократный таймер, через каждую секунду осуществляющий вывод целого числа, равного суммарному количеству отсчитанных секунд.
Рис. 5. WEB-страница, созданная программой «секундомер».
2.2. Движение под действием постоянной силы в вязкой среде Рассмотрим задачу о движении тела, на которое действуют сила тяжести, направленная вертикально вниз, и сила сопротивления воздуха, величина которой прямо пропорциональна скорости. Направим ось Y вертикально вверх, а ось X так, чтобы вектор начальной скорости лежал в плоскости XY. В этом случае задача становится двумерной. Компоненты вектора ускорения можно записать в
12
виде ax (t) = –α vx(t) , ay (t) = –g –α vy(t) , где α – коэффициент сопротивления воздуха.
Рис. 6. Фрагмент окна Internet Explorer для задачи о полете частицы. После нажатия кнопки «ПУСК» мы видим движение частицы в реальном времени по своей траектории. Чтобы подчеркнуть это движение, положения частицы в предшествующие моменты времени указаны пустыми кружками, хотя непосредственно на странице их конечно не видно.
2.3. Системы взаимодействующих частиц При описании эволюции системы из N частиц как правило приходится решать соответствующую систему дифференциальных уравнений движения
dri N ( взаим. ) mi Fi Fi , j , dt j 1 j i
где i=1…N. и введено разделение сил на внешнюю (по отношению к системе) силу и силы взаимодействия между частицами. С математической точки зрения эта задача принципиально не отличается от задачи, требующей решения одного уравнения движения для отдельной частицы. Новое физическое содержание появляется при построении модели взаимодействия между частицами. Наиболее популярны следующие типы взаимодействия:
1. Абсолютно упругое взаимодействие при столкновении частиц, рассматриваемых в приближении «твердых шаров». В этом исключительном случае уравнения движения решать не нужно. Задача сводится к преобразованию скоростей в момент столкновения. 13
) 2. Дальнодействующие центральные силы ( Fi (,взаим F (ri r j ) ), j например взаимодействие кулоновского типа. 3. Квазиупругое взаимодействие (модель шариков и пружин). Число частиц в общем случае может быть произвольным, однако реальные расчеты ограничиваются набором из нескольких сотен или тысяч частиц. Кроме выбора типа взаимодействия следует также определить и граничные условия, которые существенно зависят от физических свойств рассматриваемой системы. При моделировании поведения жидкостей и газов используют взаимодействие первых двух типов. Например, для случая газа в замкнутом сосуде рассматриваемую систему частиц помещают в замкнутый объем («ящик») с непроницаемыми стенками. Задать граничные условия для этой модели означает задать характер взаимодействия частиц со стенками. Для идеального газа принимают, что частицы абсолютно упруго отражаются от стенок (нормальная компонента скорости при касании стенки меняет знак). Такое граничное условие автоматически обеспечивает сохранение энергии системы. При моделировании свойств твердого тела используется третья модель или другие модели с более реалистичным потенциалом межатомного взаимодействия.
2.4. Абсолютно упругий центральный удар Данный пример воспроизводит финитное движение трех одинаковых шаров, двигающихся вдоль одной прямой, причем движение шаров слева и справа ограничено стенками (см. рис.7). Шары являются абсолютно твердыми и абсолютно упруго сталкиваются между собой и также отражаются от стенок.
Рис. 7. Фрагмент окна Internet Explorer для примера 2.3. Демонстрация движения шаров вдоль прямой при их абсолютно упругом соударении между собой и со стенками. 14
2.5. Абсолютно упругий нецентральный удар Рассмотрим двумерную систему типа «шары в ящике» в рамках модели абсолютно твердых и идеально гладких шаров. Согласно курсу общей физики известно, что соударение происходит мгновенно, а изменение импульса при ударе происходит по линии, соединяющей центры шаров. Момент столкновения соответствует моменту соприкосновения, при этом скорости шаров в результате столкновения меняются скачком по хорошо известному правилу: компоненты векторов скоростей шаров вдоль линии, соединяющей их центры, меняются, как при центральном ударе, касательные к этому направлению компоненты не меняются. В качестве примера выберем случай шаров одинаковой массы и диаметра d. Итак, пусть скорости первого и второго шаров до столк новения были v1 и v2 соответственно. Рассмотрим момент соприкос новения шаров (рис. 8). Введем единичный вектор n ( n 1 ), направленный по линии, соединяющей центры шаров; введем также перпен дикулярный ему единичный вектор L , как показано на рис. 8.
Рис. 8. Момент соприкосновения шаров при абсолютно упругом соударении.
Если разложить вектора скоростей шаров до столкновения на взаимно перпендикулярные компоненты, соответствующие направле n нию векторов и L , то очевидно получим v1 v1|| v1 (n v1 )n ( L v1 ) L v2 v2|| v2 (n v2 )n ( L v2 ) L где обозначает компоненту параллельную, а – перпендикулярную вектору n .
15
Согласно приведенному выше правилу, компоненты скорости, перпендикулярные направлению n (т.е. vi ) при ударе не изменяют ся, в то время как компоненты vi| | изменяются так же, как и при центральном ударе. Поскольку массы шаров одинаковы, это означает, что они обмениваются продольными компонентами скоростей; то есть после столкновения v '1|| v2|| и v '2|| v1|| , где скорости после соударения отмечены штрихом. Окончательно, для скоростей после соударения получаем v '1 v2|| v1 (n v2 )n ( L v1 ) L v '2 v1|| v2 (n v1 )n ( L v2 ) L
n Отметим, что результат не зависит от выбора знака векторов и L . Выпишем теперь все входящие сюда формулы непосредственно в декартовых координатах. Пусть декартовы координаты центров шаров в момент соприкосновения есть (x1, y1) и (x2, y2). Тогда компоненты вектора n =(nx, ny) определяются формулами nx = (x2 – x1)/d , ny= (y2 – y1)/d , где учтено, что в момент соприкосновения шаров (x1 – x2)2+(y1 – y2)2 = d2. Удобно выбрать диаметр шаров за единицу измерения, т. е. все размеры задавать в единицах d. Тогда nx=x2 – x1, ny=y2 – y1, а условие соударения запишется в виде nx2 + ny2=1, где (xi, yi) – координаты цен тров шаров. Именно такой прием использован в программе. Вектор L можно в виде L = (ny, –nx); очевидно, L n , так как выбрать ( L n ) 0 , и | L | 1. Таким образом, явные выражения для декартовых компонент скоростей после соударения имеют вид v′1x= nx·(v2)n + ny·(v1)L , v′1y= ny·(v2)n – nx·(v1)L ; v′2x= nx·(v1)n + ny·(v2)L , v′2y= ny·(v1)n – nx·(v2)L ; где (vi)n= (vi n ) = nx vix + ny viy , а (vi)L= (vi L) = ny vix – nx viy. В программном коде все вышесказанное соответствует строчкам nx=x2-x1; ny=y2-y1; if (nx*nx+ny*ny0) {ny=Math.sqrt(1-nx*nx)} else {ny=-Math.sqrt(1-nx*nx)}; nv1=nx*vx1+ny*vy1; lv1=ny*vx1-nx*vy1; nv2=nx*vx2+ny*vy2; lv2=ny*vx2-nx*vy2; vx1=nx*nv2+ny*lv1; vy1=ny*nv2-nx*lv1; vx2=nx*nv1+ny*lv2; vy2=ny*nv1-nx*lv2; 16
}
После завершения этого блока мы получаем новые значения скоростей шаров в первый момент после соударения. Смысл обозначений очевиден: (x1, y1), (vx1,vy1), (x2, y2), (vx2,vy2) – декартовы компоненты координат центров и скоростей первой и второй частиц соответственно. nx, ny – декартовы компоненты вектора, соединяющего центры шаров, диаметр которых принят за 1; nv1, lv1 и nv2, lv2 – продольные и поперечные проекции векторов скоростей 1 и 2 шариков до удара. Из-за приближенного характера вычислений приходится добавлять строки x1=x1-vx1*dt; y1=y1-vy1*dt; x2=x2-vx2*dt; y2=y2-vy2*dt;
которые возвращают шары на один шаг до столкновения (раздвигают шары). Без этого, при определенных условиях, один шаг с новыми скоростями оставлял шары «вдвинутыми» друг в друга, т.е. лишний раз срабатывало бы условие nx*nx+ny*ny0. Аналогичным образом ведут себя в окрестности
порога протекания средний размер конечного кластера L(τ):
L( ) L0 | | , и проводимость Ζ(τ) при τ>0:
Z ( ) Z 0 t , причем ν>0, t>0. 32
Здесь, по аналогии с фазовым переходом второго рода в магнетиках, введена безразмерная критическая переменная τ, характеризующая близость системы к критической точке; τ стремится к нулю при приближении к точке фазового перехода. Показатели степени β, ν, t называются критическими индексами. Для перколяционных фазовых переходов характерно свойство универсальности – значения критических индексов (и другие параметры критического поведения) зависят только от размерности пространства, но не зависят от типа решетки и от того, решеточную или континуальную модель мы рассматриваем. В частности, в двумерном случае β=5/36, ν=4/3 в трехмерном – β=0.40, ν=0.88. Рассмотрим простую задачу об определении порога протекания: найти минимальное значение вероятности n, при которой возникает связное множество шаров одного сорта, имеющее хотя бы по одному представителю на противолежащих гранях. Наличие такого множества следует определять непосредственно по изображению текущей реализации случайной решетке (см. рис. 18). Значение доли металлической фазы (закрашенных шаров) на рис.18 чуть выше порога протекания и наблюдается бесконечный кластер. Однако в системе конечного размера небольшое превышение доли фазы над пороговым значением не гарантирует обязательное существование бесконечного кластера, В этом можно было бы убедиться, многократно нажимая кнопку «Построить» (такое нажатие приводит к новой случайной реализации размещения шаров).
33
Рис. 18. Реализация случайного размещения шаров на квадратной решетке (15 на 15), демонстрирующая появление бесконечного кластера.
34
ПРИЛОЖЕНИЕ Варианты индивидуальных заданий 1. Организация вычислений по заданным формулам 1. Создать WEB-страницу для расчета расстояния до изображения для тонкой линзы. Выбор типа линзы (собирающая или рассеивающая) осуществить с помощью радиокнопок. Вводимые параметры – расстояние до предмета и фокусное расстояние. 2. Создать WEB-страницу для вычисления определителя матрицы 3 на 3. Расположить поля ввода для элементов матрицы в виде квадратной таблицы, а вывод осуществлять в отдельное поле. 3. Создать WEB-страницу для определения электрического потенциала от двух очечных зарядов в заданной точке. Вводимые параметры – значения зарядов и их координаты, а также координаты самой точки. 4. По вводимому номеру серии выводить длины волн первых десяти линий в спектре атома водорода. Разбить страницу на два фрейма. Один фрейм использовать для ввода данных, другой – для вывода результатов. 5. Проверить формулу Стирлинга для приближенного вычисления факториала. Оценить относительную погрешность расчетов по этой формуле при произвольном N, сравнивая с точным значением N!. Разместить изображение этой формулы на странице. 6. Создать WEB-страницу для расчета декартовых компонент силы Лоренца. Вводимые параметры – заряд частицы, декартовы компоненты векторов скорости и магнитного поля. 7. Создать WEB-страницу для вычисления угла преломления в стеклянной призме при произвольном преломляющем угле и угле падения. Поместить на страницу рисунок, изображающий ход лучей (скопировать или нарисовать самим). 8. Создать WEB-страницу для расчета траектории частицы в поле силы тяжести (по точным формулам равноускоренного движения). При заданном угле вылета и начальной скорости находить координату частицы для произвольного момента времени и определить дальность полета. 9. Создать WEB-страницу для расчета давления по формуле Вандер-Ваальса. Вводимые параметры – объем, температура и постоянные Ван-дер-Ваальса. 35
10. Создать WEB-страницу для расчета амплитуды тока при заданной частоте для последовательного колебательного контура. Расположить поля ввода для параметров цепи и частоты поверх изображения самого контура. 11. Создать WEB-страницу для вычисления чисел Фибоначчи по реккурентной формуле и по формуле Биие. Результат выводить в два различных поля вывода типа Textarea в виде столбцов. 12. Создать WEB-страницу для вычисления среднего значения и среднеквадратического отклонения. Вводимые параметры – последовательность данных и их количество.
2. Решение уравнений движения для одной частицы В первой серии задач требуется рассчитать двумерную траекторию частицы и воспроизвести еѐ движение. Сила сопротивления во всех задачах прямо пропорциональна скорости. На частицу действуют заданные силы при выполнении некоторых дополнительных условий. 1. Смоделировать движение частицы, на которую действуют сила тяжести и сила сопротивления. Учесть, что частица абсолютно упруго отражается от горизонтальной поверхности земли. Рассмотреть несколько траекторий с разными углами вылета. Переход к следующей траектории совершается после 4 отскоков. 2. Смоделировать полет частицы через стенку. Определить максимальный угол при котором частица перелетает через стенку высотой h и толщиной d. Сделать выбор из набора траекторий с разными углами вылета и фиксированной стартовой скоростью. Учесть силу сопротивления. 3. Смоделировать полет камня, вылетающего с заданной (по модулю) скоростью с заданной высоты. Найти угол, соответствующий максимальной дальности полета. Отметить положение самой дальней точки падения. Учесть силу сопротивления. 4. Рассмотреть полет камня при учете ветра в двух случаях: когда ветер встречный и когда ветер попутный. Пусть без ветра частица перелетает через стенку. При какой минимальной скорости встречного ветра частица не перелетает стенку. 5. Смоделировать полет частицы, попадающей на верхнюю часть квадратного препятствия и упруго отражающейся от него. На частицу действуют сила тяжести и сила сопротивления, прямо пропорциональная скорости. 36
6. Определить максимальную дальность полета камня при учете ветра в случае, когда ветер попутный. Отметить наиболее удаленную точку падения (расположить там подходящий рисунок). 7. Смоделировать движение заряженной частицы, на которую действуют сила Лоренца и сила сопротивления, прямо пропорциональная скорости. Магнитное поле перпендикулярно вектору начальной скорости частицы. 8. Смоделировать движение заряженной частицы, на которую действуют электрическое поле и сила Лоренца, причем вектор электрического поля перпендикулярен вектору магнитного поля и начальная скорость частицы равна нулю. 9. Смоделировать движение частицы, находящейся внутри квадрата, в центре которого находится круг или треугольник (или другая фигура, стороны которой не параллельны сторонам квадрата). Отражение от сторон квадрата и центральной фигуры является абсолютно упругим. Учесть силу тяжести. 10. Смоделировать движение частицы, находящейся внутри треугольника, в центре которого находится квадрат. На частицу действует сила тяжести, а все отражения являются абсолютно упругими. 11. Смоделировать полет частицы, вылетающей из начала координат, и попадающей в промежуток между двумя квадратами. При заданной скорости вылета подобрать угол, при котором это происходит. Учесть силу сопротивления. 12. Смоделировать полет частицы между пластинами двух плоских конденсаторов, расположенных последовательно друг за другом. Единственная сила – электростатическая, действующая на частицу только в пространстве между пластинами конденсаторов. Взаимодействующие частицы в одном измерении В перечисленных ниже заданиях требуется смоделировать одномерное движение системы твердых шаров. Движение шаров ограничено боковыми стенками, отражение от которых крайних шариков является абсолютно упругим. Столкновения любой пары шаров между собой также являются абсолютно упругим. Начальные скорости шаров являются произвольными. Дополнительным заданием для всех ниже перечисленных задач является проверка закона сохранения энергии. 37
1. Несколько шаров с одинаковыми массами движутся вдоль одной прямой. При этом два шара являются заряженными, например, одинаково. 2. Несколько шариков с разными массами, но одинаковыми размерами двигаются вдоль одной прямой и абсолютно упруго сталкиваются между собой. 3. Несколько шариков одинаковой массы двигаются вдоль одной прямой. Между ними действуют силы отталкивания, обратно пропорциональные расстояниям между центрами 4. Четыре шарика одинаковой массы двигаются вдоль одной прямой, причем два центральных шарика соединены пружиной. 5. Четыре шарика одинаковой массы двигаются вдоль одной прямой, причем первый со вторым, а третий с четвертым соединены пружинами. 6. Четыре шарика одинаковой массы двигаются вдоль одной прямой, причем первый помощью пружины присоединен к соответствующей стенке. Второй, третий и четвертый шарики двигаются свободно между моментами соударения. 7. Четыре шарика одинаковой массы двигаются вдоль одной прямой, причем первый и четвертый с помощью пружин присоединены к соответствующим стенкам. Второй и третий шарики двигаются свободно. 8. Пять шариков связаны пружинами (в виде цепочки). Кроме того, крайние шарики с помощью дополнительных пружин соединены с жестко закрепленными стенками. 9. Четыре шарика связаны пружинами, Кроме того, шарики с помощью дополнительных пружин соединены с жестко закрепленными стенками. На один из шариков действует сила трения, на другие – нет. 10. Четыре шарика связаны пружиной, причем первый шарик с помощью еще одной пружины соединен со стенкой. На последний шарик в цепочке действует внешняя периодическая сила. 11. Три шарика связаны пружинами. причем первый шарик в цепочке с помощью пружины соединен со стенкой. Между последним шариком и другой стенкой находится четвертый свободный шарик. 12. Два шарика с помощью пружин присоединены к двум противоположным стенкам. Между ними находится два шарика, связанные пружиной. 38
3. Построение графиков и траекторий средствами VML Первый цикл заданий заключается в использовании готового решения одной из задач с номерами 1 - 12 из предыдущего раздела и дополнение еѐ построением траектории ее движения. Второй цикл заданий состоит в сравнении графика некоторой функции и графика для конечной суммы еѐ ряда Фурье. Коэффициенты ряда следует брать из математических справочников. 1. По известным коэффициентам ряда Фурье восстановить функцию, если эта функция принимает два различных постоянных значения (сначала одно, потом другое) в пределах своего периода. Это так называемый прямоугольный сигнал. Построить несколько сигналов с разной длительностью. 2. По известным коэффициентам ряда Фурье восстановить функцию, если эта функция есть сумма двух прямоугольных сигналов с одинаковыми периодами. Например, прямоугольный импульс с прямоугольной надстройкой. 3. По известным коэффициентам ряда Фурье восстановить функцию, если эта функция есть прямоугольный сигнал, такой что его среднее значение за период равно нулю. На другом графике получить интеграл от такой функции. 4. По известным коэффициентам ряда Фурье восстановить функцию и проинтегрировать ее, если эта функция есть sin(x)+|sin(x)| («верхние половинки» синусоиды). 5. По известным коэффициентам ряда Фурье восстановить функцию и продифференцировать ее, если эта функция равна |sin(x)| («выпрямленная» синусоида). 6. По известным коэффициентам ряда Фурье восстановить функцию, если эта функция сначала линейно возрастает, потом линейно убывает до конца периода (треугольный сигнал). 7. Продифференцировать и проинтегрировать ряд Фурье для функции, которая сначала линейно возрастает, потом линейно убывает до конца периода (треугольный сигнал). 8. По известным коэффициентам ряда Фурье восстановить функцию типа прямоугольный сигнал. Оценить, как возрастает точность приближения функции с возрастанием числа суммируемых членов ряда. 9. По известным коэффициентам ряда Фурье восстановить функцию и проинтегрировать ее, если эта функция есть сумма пря39
моугольного сигнала и синусоиды с частотой в четыре раза большей частоты прямоугольного сигнала. 10. По известным коэффициентам ряда Фурье восстановить функцию и продифференцировать ее, если при 0