МАЙЕР Р.В.
ИЗУЧЕНИЕ ФИЗИЧЕСКИХ ЯВЛЕНИЙ МЕТОДОМ КОМПЬЮТЕРНОГО МОДЕЛИРОВАНИЯ
СОДЕРЖАНИЕ 0. ПРИНЦИПЫ КОМПЬЮТЕРНОГО МОДЕЛИРОВАНИЯ 1. МЕТОДЫ ЧИСЛЕННОГО ИНТЕГРИРОВАНИЯ И ДИФФЕРЕНЦИРОВАНИЯ 2. МОДЕЛИРОВАНИЕ СИСТЕМ С ОДНОЙ СТЕПЕНЬЮ СВОБОДЫ 3. МОДЕЛЬ ДВУМЕРНОГО ДВИЖЕНИЯ МАТЕРИАЛЬНОЙ ТОЧКИ 4. МОДЕЛЬ ДВИЖЕНИЯ СИСТЕМЫ МАТЕРИАЛЬНЫХ ТОЧЕК 5. МОДЕЛИРОВАНИЕ КОЛЕБАНИЙ СВЯЗАННЫХ ОСЦИЛЛЯТОРОВ 6. МОДЕЛЬ АВТОВОЛНОВЫХ ПРОЦЕССОВ 7. МОДЕЛИРОВАНИЕ РАСПРОСТРАНЕНИЯ ВОЛНЫ 8. МОДЕЛЬ ЯВЛЕНИЙ ПЕРЕНОСА (ТЕПЛОПРОВОДНОСТЬ, ДИФФУЗИЯ, ВЯЗКОСТЬ) 0. ПРИНЦИПЫ КОМПЬЮТЕРНОГО МОДЕЛИРОВАНИЯ Компьютерное моделирование является одним из эффективных методов изучения физических систем. Часто компьютерные модели проще и удобнее исследовать, они позволяют проводить вычислительные эксперименты, реальная постановка которых затруднена или может дать непредсказуемый результат. Логичность и формализованность компьютерных моделей позволяет выявить основные факторы, определяющие свойства изучаемых объектов, исследовать отклик физической системы на изменения ее параметров и начальных условий. Компьютерное моделирование требует абстрагирования от конкретной природы явлений, построения сначала качественной, а затем и количественной модели. За этим следует проведение серии вычислительных экспериментов на компьютере, интерпретация результатов, сопоставление результатов моделирования с поведением исследуемого объекта, последующее уточнение модели и т.д. К основным этапам компьютерного моделирования относятся: постановка задачи, определение объекта моделирования; разработка концептуальной модели, выявление основных элементов системы и элементарных актов взаимодействия; формализация, то есть переход к математической модели; создание алгоритма и написание программы; планирование и проведение компьютерных экспериментов; анализ и интерпретация результатов. Различают аналитическое и имитационное моделирование. Аналитическими называются модели реального объекта, использующие алгебраические, дифференциальные и другие уравнения, а также предусматривающие осуществление однозначной вычислительной процедуры, приводящей к их точному решению. Имитационными называются математические модели, воспроизводящие алгоритм функционирования исследуемой системы путем последовательного выполнения большого количества элементарных операций. Принципы моделирования состоят в следующем [3]: 1. Принцип информационной достаточности. При полном отсутствии информации об объекте построить модель невозможно. При наличии полной информации моделирование лишено смысла. Существует уровень информационной достаточности, при достижении которого может быть построена модель системы. 2. Принцип осуществимости. Создаваемая модель должна обеспечивать достижение поставленной цели исследования за конечное время. 3. Принцип множественности моделей. Любая конкретная модель отражает лишь некоторые стороны реальной системы. Для полного исследования необходимо построить ряд моделей исследуемого процесса, причем каждая последующая модель должна уточнять предыдущую. 4. Принцип системности. Исследуемая система представима в виде совокупности взаимодействующих друг с другом подсистем, которые моделируются стандартными математическими методами. При этом свойства системы не являются суммой свойств ее элементов. 5. Принцип параметризации. Некоторые подсистемы моделируемой системы могут быть охарактеризованы единственным параметром: вектором, матрицей, графиком, формулой. Компьютерное моделирование систем часто требует решения дифференциальных уравнений [1-10]. Важным методом является метод сеток, включающий в себя метод конечных разностей Эйлера. Он состоит в том, что область непрерывного изменения одного или нескольких аргументов заменяют конечным множеством узлов, образующих одномерную или многомерную сетку, и работают с функцией дискретного аргумента, что позволяет приближенно вычислить производные и интегралы. При этом бесконечно малые приращения функции f = f(x, y, z, t) и приращения ее аргументов заменяются малыми, но конечными разностями.
ВВЕРХ 1. МЕТОДЫ ЧИСЛЕННОГО ИНТЕГРИРОВАНИЯ И ДИФФЕРЕНЦИРОВАНИЯ 1. Задача. Для известной функции y = y(x), определите первую и вторую производные в точке с координатой x, а также интеграл в интервале от a до b. 2. Теория. Пусть задана функция y = y(x). Разобъем интервал от a до b на элементарные отрезки длиной h = Δx, получив конечное множество узлов сетки xi = x1 + ih, где i = 1, 2,..., N, а N -- число узлов. В результате функция непрерывного аргумента будет заменена функцией дискретного аргумента yi = y(xi ). Тогда левая, правая и центральная разностные производные первого порядка в точке с координатой xi соответственно равны: y'(xi ) - = (y(xi ) - y(xi - 1 ))/h, y'(xi ) + = (y(xi + 1 ) - y(xi ))/h, y'(xi ) = (y(xi + 1 ) - y(xi - 1 ))/(2h). Чем меньше шаг сетки h, тем выше точность найденных производных. Вторая производная определяется из выражения: y''(xi ) = (y(xi + 1 ) - 2y(xi ) + y(xi - 1 ))/h2. Интеграл функции численно равен площади криволинейной трапеции, ограниченной графиком этой функции и пределами интегрирования a, b. Если эту трапецию разбить на N прямоугольных полосок шириной h = (b - a) / N и длиной yi = y(a + ih), то площадь будет примерно равна:
Чем меньше шаг h и, соответственно, больше N, тем точнее найденное значение интеграла. Этот метод называется методом прямоугольников. Более точный метод трапеций заключается в том, что каждая i - ая полоска рассматривается как трапеция высотой h с длинами оснований yi = y(a + ih) и yi + 1 = y(a + (i + 1)h), поэтому ее площадь равна ΔS = (yi + yi + 1 )h/2. Интеграл функции равен сумме всех элементарных площадей этих трапецевидных полосок:
Метод Монте - Карло нахождения площади криволинейной трапеции под кривой y = y(x) состоит в следующем. Представим себе прямоугольник, ограниченный пределами интегрирования a и b, осью x и горизонталью y = c, внутри которого находится эта криволинейная трапеция. Площадь прямоугольника равна (b - a)c. Задавая случайным образом координаты xi , yi , поместим внутрь прямоугольника N точек. Подсчитаем число n точек, оказавшихся внутри криволинейной трапеции, то есть удовлетворяющих условию yi <y(xi ). Площадь криволинейной трапеции будет во столько раз меньше площади выбранного прямоугольника, во сколько раз n меньше N. Поэтому при N стремящемся к бесконечности дробь n(b - a)c / N стремится к пределу, равному искомому интегралу. 3. Компьютерная программа. Самостоятельно составьте алгоритмы нахождения производных и интегралов. Ниже представлены примеры программ. Первая программа позволяет вычислить первую и вторую производные функции y = x3 - x2 + 3 в точке с координатой x = 0, а также найти ее интеграл в интервале от a = 1 до b = 3 методом трапеций. Вторая программа определяет интеграл функции y = x2 в интервале от 0 до 1 методом Монте - Карло.
program PROGRAMMA1_1; uses crt; var x,y1,y2,y3,a,b,h,S :real; Function Funct(x:real):real; begin {Задание функции} Funct:=x*x*x-x*x+3; end; BEGIN {Основная программа} clrscr; x:=3; h:=0.001; y1:=Funct(x-h); y2:=Funct(x); y3:=Funct(x+h); Writeln('Первая производная ', (y2-y1)/h:3:3); Writeln('Вторая производная ', (y1-2*y2+y3)/(h*h):3:3); a:=1; b:=3; x:=a; S:=0; Repeat {Интеграл} S:=S+0.5*(Funct(x)+Funct(x+h))*h; x:=x+h; until x>b; Writeln('Интеграл ',S:3:3); Repeat until KeyPressed; END. program PROGRAMMA1_2; uses crt; const NN=10000; var x,y,xx,yy: real; n,i: integer; function Funct(x:real):real; begin Funct:=x*x; end; BEGIN {Основная программа} clrscr; Randomize; n:=0; for i:=1 to NN do begin x:=Random(1000)/1000; yy:=Random(1000)/1000; if yy<Funct(x) then n:=n+1; end; writeln('Интеграл равен ',n/NN); Repeat until KeyPressed; END. 4. Задания для самостоятельного решения. 1. Точка движется прямолинейно со скоростью v(t) = 3 + 2t + 1t2. Численными методами и аналитически определите ускорение точки в момент времени 1 с и пройденный путь за время от 1 до 3 с. Повторите расчеты при различных значениях шага и сравните результаты. 2. Имеется пластинка толщиной h ограниченная кривой y = x2 и прямой y = 1. Ее плотность есть функция координаты y: ρ(y) = ρ0 (1 + α y), где α -- произвольный коэффициент пропорциональности. Определите ее площадь и массу методом Монте - Карло. 3. Определите координаты центра масс пластины толщины h, ограниченной прямыми x = 0, y = 0, y = 4 - x2, плотность которой равна ρ. 4. Пластина толщиной h имеет форму круга радиуса R. Ее плотность с ростом расстояния r до центра убывает по закону ρ(r) = ρ0 (1,5 - r/R). Методом численного интегрирования определите момент инерции пластины относительно оси проходящей через ее центр и лежащей в ее плоскости. 8. Постройте кривую зависимости излучательной способности абсолютно черного тела от частоты при постоянной температуре T, выражаемую формулой Планка: fω (ω,T) = Aω3/ (eBω/T - 1), где A и B -- постоянные коэффициенты. Постройте график при различных T. Методом численного интегрирования найдите интегральную светимость абсолютно черного тела, взяв интеграл от fω (ω,T).
ВВЕРХ 2. МОДЕЛИРОВАНИЕ СИСТЕМ С ОДНОЙ СТЕПЕНЬЮ СВОБОДЫ 1. Задача. Имеется физическая система с одной степенью свободы, состоящая из инерционного элемента массой m, упругого элемента жесткостью k и диссипативного элемента с коэффициентом сопротивления r. Определить отклик системы x(t), а также ее первую и вторую производные v(t), a(t), на внешнее воздействие Fx = Fx (t), если известны начальные условия x(0), v(0).
2. Теория. Из второго закона Ньютона следует линейное неоднородное дифференциальное уравнение второго порядка:
Процессы, происходящие в последовательном колебательном контуре, состоящем из последовательно соединенных резистора R, конденсатора C и катушки индуктивности L, на который подано напряжение U(t), описываются уравнением:
где q -- заряд, проходящий по цепи, i = dq/dt -- сила тока. При этом реализуется электромеханическая аналогия "сила - напряжение". Итак, неоднородное диффуравнение второго порядка описывает широкий класс задач, изучаемых в школьном и вузовском курсе физики: движение связанного с пружиной тела в вязкой среде под действием произвольной силы Fx (t), протекание тока через последовательно соединенные резистор, конденсатор и катушку индуктивности, подключенные к источнику ЭДС e(t) или источнику тока i(t). Характер движения механической системы зависит от действующей на нее внешней силы. При этом могут быть рассмотрены следующие ситуации:
Кроме того, физические явления, возникающие в системе, зависят от ее параметров m, r, k и начальных условий, к которым относятся координата x(0) и скорость vx (0) в начальный момент времени. 3. Алгоритм. Дифференциальное уравнение второго порядка может быть решено методом конечных разностей Эйлера. Он состоит в том, что бесконечно малые приращения функции x(t) и ее первых двух производных vx , ax заменяются конечными разностями, а бесконечно малые приращения dt -- малыми, но конечными приращениями Δ t. Сначала, исходя из параметров системы m, r, k, ее координаты x и скорости vx в момент времени t, расчитывается ее координата и скорость в следующий момент t + Δ t: ax (t + Δ t) = (Fx (t) - r vx (t) - kx(t))/m, vx (t + Δ t) = vx (t) + ax (t + Δ t)Δ t.
x(t + Δ t) = x(t) + vx (t + Δ t)Δ t. Затем это состояние рассматривается как исходное и процедура расчета повторяется для момента времени t + 2Δ t и так далее. Одновременно с вычислениями строятся графики x = x(t), vx = vx (t), ax = ax (t). Рассмотрим алгоритм численного решения уравнения. 1. Задают параметры физической системы m, k, r, зависимость внешнего воздействия от времени Fx (t), а также начальные условия x(0), vx (0) и шаг по времени Δ t. 2. Начало цикла по t. Дают приращение по времени: переменной t присваивают значение t + Δ t. 3. Определяют ускорение, скорость и координату тела в момент t + Δ t: ax (t + Δ t) = (Fx (t) - r vx (t) - kx(t))/m, vx (t + Δ t) = vx (t) + ax (t + Δ t)Δ t, x(t + Δ t) = x(t) + vx (t + Δ t)Δ t. 4. Результаты вычислений x(t + Δ t), vx (t + Δ t), ax (t + Δ t) выводят на экран в числовом виде либо строят соответствующие точки на координатной плоскости. 5. Возвращение к операции 2. Если цикл по t закончился, -- выход из цикла. 4. Компьютерная программа. При запуске программа рисует графики зависимостей координаты x = x(t), проекции скорости vx = vx (t) и проекции ускорения ax = ax (t). Некоторые строчки программы заключены в скобки "(*" и "*)". Убрав скобки и активизировав соответствующие операторы, можно промоделировать различные явления.
program PROGRAMMA2; uses dos, crt, graph; Const Fm=10;w=5;m=2;r=0;k=0; Mx=20; Mv=40; Ma=8; Mf=2; Mt=100; dt=0.00006; Var x,v,a,F,t : Real; j,xx,vv,aa,FF,tt,Gd,Gm : Integer; BEGIN Gd:= Detect; InitGraph(Gd, Gm, 'c:\bp\bgi'); if GraphResult<>grOk then Halt(1); t:=0; v:=0; x:=-3; line(30,300,650,300); line(31,500,31,10); OutTextXY(50,20,'X, V, A'); Repeat begin {Задание функции F=F(t)} t:=t+dt; (* F:=Fm*sin(w*t); *) (*If sin(w*t)<0 then F:=0; If sin(w*t)>0 then F:=Fm;*) F:=0; If t<1 then F:= Fm; If t>3 then F:=-Fm; a:=(F-r*v-k*x)/m; x:=x+v*dt; v:=v+a*dt; tt:=round(t*Mt); xx:=round(x*Mx); vv:=round(v*Mv); aa:=round(a*Ma); FF:=round(F*Mf); circle(30+tt,300-xx,1); circle(30+tt,300-vv,1); circle(30+tt,300-aa,2); end; until KeyPressed; CloseGraph; END. 5. Задания для самостоятельного решения. 1. На точку массы m действует скачкообразно изменяющаяся сила. Исследуйте движение точки, проанализируйте получившиеся графики зависимостей x = x(t), vx = vx (t), ax = ax (t). 2. Промоделируйте движение материальной точки, движущейся в вязкой среде под действием постоянной силы, направленной вдоль оси x: Fx = const>0 при начальных условиях x0 = 0, vx0 <0. Проанализируйте получающиеся графики x(t), vx (t), ax (t). Докажите, что время подъема камня, брошенного вертикально вверх, меньше времени спуска.
3. Создайте модель переходного процесса в цепи, содержащей резистор R и катушку индуктивности L, подключенные к источнику постоянного напряжения, при условии, что i0 не равно 0. Исследуйте аналогичный переходный процесс в цепи, содержащей последовательно соединенные резистор и конденсатор. 4. Изучите движение колебательной системы в случае слабого затухания, когда r/2m<ω0 = (k/m)1/2. Убедитесь в том, что ускорение изменяется в противофазе с координатой, а скорость опережает координату на π/2, причем амплитуды колебаний x(t), v(t), a(t) уменьшаются по экспоненте. Проведите серию вычислительных экспериментов при различных начальных условиях системы. 5. Промоделируйте движение осциллятора в случае сильного затухания при r/2m>ω0 = (k/m)1/2. Убедитесь, что в этом случае движение будет апериодическим.
6. Исследуйте затухающие колебания тела, связанного с горизонтально расположенными пружинами и скользящего по поверхности стола, считая, что максимальная сила трения покоя равна силе трения скольжения μmg. 7. Промоделируйте работу сглаживающего RL - фильтра при подаче на него пульсирующего напряжения, получающиегося в результате однополупериодного выпрямления. Убедитесь в том, что с ростом индуктивности уменьшается коэффициент пульсаций тока и напряжения на резисторе. Изучите зависимость амплитуды пульсаций от индуктивности L, сопротивления нагрузки R и частоты импульсов ω.
8. Изучите работу интегрирующей цепи, состоящей из последовательно соединенных резистора и конденсатора, с которого снимается выходное напряжение. Видно, что при подаче на цепь прямоугольных импульсов заряд конденсатора, а значит и напряжение на нем, возрастает пропорционально интегралу от входного напряжения. Так как в программе осуществляется деление на m (аналог индуктивности L ), то значение этого параметра должно быть очень малым, но не равным нулю. 9. Промоделируйте движение тела в вязкой среде (m, r не равны 0, k = 0), на которое в момент времени t0 = 0 начинает действовать внешняя гармоническая сила Fx = Fm sin(ω t). Эта ситуация соответствует переходному процессу, происходящему при подключении активно - индуктивной нагрузки к источнику переменного напряжения. При t стремящемся к бесконечности переходный ток стремится к принужденному току, изменяющемуся с той же частотой, что и приложенная ЭДС и отстающему от нее на некоторую фазу. 10. Создайте программу, моделирующую процессы, происходящие в колебательной системе в случае, если на нее действует периодически изменяющаяся сила, частота которой пропорциональна времени: Fx (t) = Fmsin(ω(1 + α t)t), где α >0. Значения ω и α подберите так, чтобы резонансная частота колебательной системы находилась в середине рабочего диапазона частот. На рисунке показан получающийся график зависимости x = x(t). Так как частота колебаний прямопропорциональна времени, то огибающая графика является амплитудо - частотной характеристикой колебательной системы, и называется резонансной кривой.
ВВЕРХ 3. МОДЕЛЬ ДВУМЕРНОГО ДВИЖЕНИЯ МАТЕРИАЛЬНОЙ ТОЧКИ 1. Задача. Материальная точка массой m движется в силовом поле Fx = Fx(x,y), Fy = Fy(x,y), при этом на нее действует сила вязкого трения с проекциями Fтx = - r vx, Fтy = - r vy, направленная противоположно скорости. Необходимо, зная начальные условия x0 , y0 , v0x , v0y , построить траекторию движения точки.
2. Теория. Примерами подобного движения являются движение точки, в однородном силовом поле, в центральном силовом поле сил притяжения или отталкивания, в центральном поле сил упругости и т.д. При этом могут быть учтены силы вязкого трения. Проанализируем основные ситуации. 1. Движение в однородном поле. Во всех точках пространства вектор силы имеет постоянные проекции на оси координат. При отсутствии силы трения точка движется по параболе, а при ее наличии -- по более сложной кривой. 2. Движение в центрально - симметричном поле, действующем по закону обратных квадратов. На точку с координатами x, y действует сила F = GmM/r2, r2 = x2 + y2 Ее проекции на оси координат: Fx = - Fcosα = - Fx/r, Fy = - Fsinα = - Fy/r. В поле притяжения в зависимости от начальных координат и скоростей точка движется по гиперболе, параболе или эллипсу. В поле отталкивания траекторией движения точки является гипербола. 3. Движение в магнитном поле. Движение заряженной частицы в магнитном поле будет двумерным, если начальная скорость частицы перпендикулярна силовым линиям магнитного поля. При этом со стороны поля действует сила Лоренца F = qvB, лежащая в плоскости экрана и направленная перпендикулярно вектору скорости. Введем угол β, который образует вектор скорости с осью x. Проекции силы Лоренца на координатные оси: Fx = - Fsinβ = Fvy /v, Fy = - Fcosβ = - Fvx /v. Заряженная частица описывает окружность. При наличии тормозящей силы радиус окружности уменьшается. 4. Движение частицы в скрещенных электрическом и магнитном полях. Пусть силовые линии электрического поля лежат в плоскости экрана и направлены вверх, а силовые линии магнитного поля направлены к нам перпендикулярно вектору напряженности электрического поля. Если заряд частицы положительный, то на него со стороны электрического поля действует постоянная сила, направленная вверх. Чтобы учесть ее влияние необходимо к вертикальной проекции силы Лоренца прибавить постоянное слагаемое qE: Fx = Fvy /v, Fy = qE - Fvx /v. Если начальная скорость частицы равна нулю, то траекторией ее движения является циклоида. 3. Алгоритм. Пусть в момент времени t материальная точка имеет координаты x, y и проекции скорости vx , vy . Запишем второй закон Ньютона в проекциях: Fx(x,y) -r vx = max, Fy(x,y) -r vy = may. Отсюда следует, что проекции ускорения точки в момент времени t + Δ t равны: ax (t + Δ t) = (Fx (t) - r vx (t))/m, ay (t + Δ t) = (Fy (t) - r vy (t))/m. Определив координаты и проекции скорости точки в момент времени t + Δ t, можно повторить процедуру вычисления требуемое количество раз и построить траекторию движения точки. Построим алгоритм модели. 1. Задают массу материальной точки m, коэффициент вязкости r, начальные координаты x0 , y0 и проекции скорости v0x , v0y , силовое поле Fx = Fx (x,y,z), Fy = Fy (x,y,z), а также шаг по времени Δ t. 2. Начало цикла по t. Дают приращение по времени: переменной t присваивают значение t + Δ t. 3. Определяют ускорение, скорость и координату тела в следующий момент времени: ax (t + Δ t) = (Fx (t) - r vx (t))/m, ay (t + Δ t) = (Fy (t) - r vy (t))/m, vx (t + Δt) = vx (t) + ax (t + Δt)Δ t, vy (t + Δ t) = vy (t) + ay (t + Δ t)Δ t, x(t + Δ t) = x(t) + vx (t + Δ t)Δ t, y(t + Δ t) = y(t) + vy (t + Δ t)Δ t. 4. Результаты вычислений x(t + Δ t), y(t + Δ t) выводят на экран в числовом виде либо строят соответствующие точки на координатной плоскости. 5. Возвращение к операции 2. Если цикл по t закончился, -- выход из цикла. 4. Компьютерная программа. Предлагаемая компьютерная программа позволяет изучить движение материальной точки в различных силовых полях с учетом действующей на точку силы трения.
program PROGRAMMA3; uses crt, graph; var v, B, q, F, Fx, Fy : real; r, x, y, vx,vy,ax,ay : real; Gd, Gm, i: integer; const M=500; mm=100; dt=0.005; rr=0.1; k=2; Begin Gd:= Detect; InitGraph(Gd, Gm, 'c:\bp\bgi'); if GraphResult <> grOk then Halt(1); line(320,240,640,240); line(320,240,320,0); circle(320,240,5); x:=100; y:=120; vx:=1; vy:=-2; Repeat begin {--Заданние силового поля--} (* Fy:=3; Fx:=0; *) (* Fx:=-k*x; Fy:=-k*y; *) (* r:=sqrt(x*x+y*y); F:=M*mm/(r*r); Fx:=-F*x/r; Fy:=-F*y/r; *) B:=2; q:=1; F:=B*v*q; v:=sqrt(vx*vx+vy*vy); Fx:=F*vy/v; Fy:=-F*vx/v; (* B:=2; q:=1; F:=B*v*q; v:=sqrt(vx*vx+vy*vy); Fx:=F*vy/v; Fy:=-0.5-F*vx/v; *) {--Расчет скоростей и ускорений--} ax:=(Fx-rr*vx)/mm; ay:=(Fy-rr*vy)/mm; vx:=vx+ax*dt; vy:=vy+ay*dt; x:=x+vx*dt; y:=y+vy*dt; circle(round(x)+320,240-round(y),2); setcolor(12); circle(round(x)+320,240-round(y),1); setcolor(15); end; until KeyPressed; CloseGraph; END. 5. Задания для самостоятельного решения. 1. Материальная точка массы m брошена под углом к горизонту в однородном поле тяжести. Изучите траекторию ее движения при отсутствии силы вязкого трения и при ее наличии. 2. Убедитесь в том, что время подъема материальной точки, движущейся под действием силы тяжести в вязкой среде, меньше времени спуска. Воспользуйтесь тем, что в наивысшей точке подъема проекция скорости на ось y меняет свой знак на противоположный.
3. Промоделируйте движение точки в поле центральных сил упругости Fx = - kx, Fy = - ky, в случае, когда на точку действует сила вязкого трения и когда она равна нулю. По какой траектории движется точка? 4. Исследуйте движение точки в поле сил притяжения, действующих по закону обратных квадратов F = GmM / r2. Промоделируйте ситуации, в которых точка движется по гиперболе, параболе, эллипсу. Изучите характер движения искусственного спутника Земли, входящего в верхние слои атмосферы, на который действует сила вязкого трения. 5. Изучите движение точки в поле сил отталкивания. Промоделируйте опыт Резерфорда по отклонению альфа - частиц ядрами атомов золота. Меняя прицельный параметр, проведите серию компьютерных экспериментов. 6. Промоделируйте движение заряженной частицы в камере Вильсона, помещенной в однородное магнитное поле. Учтите, что по мере своего движения частица теряет кинетическую энергию. Магнитное поле направлено перпендикулярно плоскости экрана. 7. Исследуйте движение заряженной частицы в скрещенных электрическом и магнитном полях, направленных параллельно и перпендикулярно плоскости экрана соответственно.
8. Изучите движение материальной точки в гравитационном поле двух массивных тел. Проведите компьютерные эксперименты при заданных начальных координатах и скорости точки. 9. Задайте произвольное силовое поле Fx = Fx (x,y), Fy = Fy (x,y) и промоделируйте движение частицы в нем.
ВВЕРХ 4. МОДЕЛЬ ДВИЖЕНИЯ СИСТЕМЫ МАТЕРИАЛЬНЫХ ТОЧЕК 1. Задача. Имеется система N материальных точек с массами mi , i = 1, 2, ..., N, взаимодействующих друг с другом с внутренними силами, на каждую из которых действует внешняя сила. Исходя из начальных координат xi, yi, и скоростей vxi, vyi, определите координаты и скорости материальных точек в последующие моменты времени. 2. Теория. Рассмотрим механическую систему из N материальных точек. Основной закон динамики:
где F'ij -- внутренняя сила, действующая на i-ую материальную точку со стороны j -ой материальной точки, Fi -- равнодействующая внешних сил, действующих на i - ую материальную точку со стороны тел не входящих в систему. Дифференциальное уравнение второго порядка может быть представлено двумя дифференциальными уравнениями первого порядка. Имеем:
Зная внешние и внутренние силы, действующие на каждую материальную точку, можно определить их ускорения. Исходя из координат и скоростей точки в момент времени t, можно расчитать координаты и скорости точки в следующий момент времени t + Δ t. Так как любая механическая система -- совокупность взаимодействующих между собой материальных точек, то эта модель чрезвычайно широка и охватывает большое число механических систем. Помимо моделирования одномерного и двумерного движения материальной точки, данный метод позволяет изучить движение двух притягивающихся или отталкивающихся частиц, абсолютно упругий и неупругий центральные удары, абсолютно упругий и неупругий нецентральные удары, движение частицы в центрально - симметричном поле другой частицы, движение молекул газа, диффузия, движение планет вокруг Солнца, движение взаимодействующих частиц в однородном поле, движение взаимодействующих частиц в центрально - симметричном поле. 3. Алгоритм. 1. Задают число материальных точек N, их массы mi , координаты xi , yi и проекции начальных скоростей vix , viy , силовое поле Fx = Fx (x,y), Fy = Fy (x,y), а также шаг по времени Δ t. 2. Начало цикла по t. Дают приращение по времени: переменной t присваивают значение t + Δ t. 3. Определяют проекции Fxi , Fyi равнодействующей всех внешних и внутренних сил, действующих на каждую i - ую материальную точку в момент t + Δt, и записывают их в массивы. 4. В цикле переобозначают координаты всех материальных точек, записывая их в массивы xx[i], yy[i]. 5. В цикле перебирают все материальные точки и определяют проекции ускорения, скорости и координаты для каждой из них в момент t + Δt: axi (t + Δt) = Fxi (t + Δt)/mi , vix (t + Δ t) = vix (t) + aix (t + Δt)Δt, xi (t + Δ t) = xi (t) + vix (t + Δt)Δt. По аналогичным формулам вычисляют проекции на ось OY. Результаты записывают в массивы x[i], y[i], vx[i], vy[i]. 6. Стирают изображения материальных точек в предыдущий момент времени t, координаты которых сохранены в массивах xx[i], yy[i]. 7. На экране строят точки в следующий момент t + Δt, либо рисуют графики или выводят результат в числовом виде. 8. Возвращение к операции 2. Если цикл по t закончился, -- выход из цикла. 4. Компьютерная программа. Ниже приведен код программы, которая моделирует движение 50 молекул газа в прямоугольном сосуде, находящемся в однородном гравитационном поле.
program PROGRAMMA4; uses dos, crt, graph; const N=50; dt=0.01; var m,Fx,Fy,x,y,vx,vy,xx,yy : array[1..N] of real; Gd, Gm, i, j : integer; ax, ay, F, l : real; label Metka, metka1; Procedure Init_Graph; {Инициализация графики} begin Gd:=Detect; InitGraph(Gd, Gm, 'c:\bp\bgi'); if GraphResult <> grOk then Halt(1); end; Procedure Sila; {Вычисление действующих сил} label Metka; begin For i:=1 to N do begin Fx[i]:=0; Fy[i]:=0; end; For i:=1 to N do for j:=1 to N do begin if j=i then goto Metka; l:=sqrt(sqr(x[i]-x[j])+sqr(y[i]-y[j])); if l<2 then l:=2; F:=-50000*m[i]*m[j]/sqr(l)+500000*m[i]*m[j]/sqr(l*l); Fx[i]:=Fx[i]+F*(x[i]-x[j])/l; Fy[i]:=Fy[i]+F*(y[i]-y[j])/l+m[i]*10; Metka: end; end; Procedure Nach_uslov; begin Randomize; {Задание случайных координат и скоростей} for i:=1 to N do begin m[i]:=2; x[i]:=random(280)+60; y[i]:=random(280)+60; vy[i]:=random(30)-15; vx[i]:=random(30)-15; end; end; BEGIN Init_Graph; Nach_uslov; Repeat Sila; for i:=1 to N do begin xx[i]:=x[i]; yy[i]:=y[i]; {Запись предыдущих координат} ax:=Fx[i]/m[i]; ay:=Fy[i]/m[i]; {Вычисление ускорений,} vx[i]:=vx[i]+ax*dt; vy[i]:=vy[i]+ay*dt; {скоростей,} x[i]:=x[i]+vx[i]*dt; y[i]:=y[i]+vy[i]*dt; {координат} if (x[i]<50)or(x[i]>350) then vx[i]:=-vx[i];{отражение} if (y[i]<50)or(y[i]>350) then vy[i]:=-vy[i];{от стенок} end; delay(500); setcolor(8); for i:=1 to N do circle(round(xx[i]),round(yy[i]),2); setcolor(15); for i:=1 to N do circle(round(x[i]),round(y[i]),2); until KeyPressed; Repeat until keypressed; CloseGraph; END. 5. Задания для самостоятельного решения. 1. На основе компьютерной модели изучите движение двух или трех частиц, между которыми действуют силы притяжения.
2. Изучите движение двух материальных точек, между которыми действуют силы отталкивания. Промоделируйте центральный и нецентральный удар.
3. Промоделируйте разрыв снаряда на несколько осколков различной массы в однородном поле тяжести. При взрыве возникает сила отталкивания, быстро уменьшающаяся по мере удаления осколков. 4. Изучите движение материальной точки в гравитационном поле двух массивных тел. Проведите вычислительные эксперименты при различных начальных координатах и скоростях точки. 5. Промоделируйте движение нескольких планет и комет Солнечной системы, учитывая, что масса Солнца во много раз больше массы любой планеты. 6. Промоделируйте движение молекул газа в прямоугольном замкнутом сосуде. Учтите, что при соударении молекулы с горизонтальной (вертикальной) стенкой сосуда вертикальная (горизонтальная) проекция ее скорости меняет свой знак на противоположный. 7. Промоделируйте диффузию двух газов. Пусть вначале молекулы с массами m заполняют левую половину сосуда, а молекулы с массами M -- правую. Задайте случайные значения скоростей молекул. Как изменяется концентрация молекул газов в сосуде с течением времени?
8. Промоделируйте движение молекул газа в однородном поле тяжести. Подтвердите, что по мере увеличения высоты концентрация молекул газа уменьшается по экспоненциальному закону. 9. Промоделируйте движение молекул газа в гравитационном поле шара большой массы.
ВВЕРХ 5. МОДЕЛИРОВАНИЕ КОЛЕБАНИЙ СВЯЗАННЫХ ОСЦИЛЛЯТОРОВ 1. Задача: Имеется система из N осцилляторов с массами mi и жесткостью пружин ki , связанные между собой упругими связями с жесткостью qi . На каждый осциллятор действует сила вязкого трения - r ηi . Заданы начальные смещения ξi (0) и скорости ηi (0) всех осцилляторов. На отдельные осцилляторы действует вынуждающая сила Fiξ = Fiξ (t) некоторые осцилляторы колеблются по закону ξi = ξi (t). Известно, что крайние осцилляторы закреплены (свободны). Необходимо построить компьютерную модель колебаний связанных осцилляторов. 2. Теория. Рассмотрим цепочку осцилляторов с массами mi и коэффициентом жесткости ki , связанных между собой пружинами жесткостью qi . На каждый i - ый осциллятор со стороны соседних (i - 1) - ого и (i + 1) - ого осцилляторов действует сила: Fiξ = - qi (ξi - ξi - 1 ) - qi + 1 (ξi - ξi + 1 ), Кроме нее на осциллятор действует сила упругости - kξi и сила вязкого трения - r ηi , где ηi -- скорость i - ого осциллятора. По второму закону Ньютона, ускорение i - ого осциллятора равно: θi = (Fiξ - r ηi - kξi )/m. Определив ускорение θi , можно найти скорость и смещение i - ой массы в следующий момент времени t + Δt: ηi = ηi + θi Δ t, ξi = ξi + ηi Δ t. 3. Алгоритм. Эта задача является частным случаем задачи о моделировании движения системы взаимодействующих между собой частиц. 1. Задают параметры системы и начальные условия: число осцилляторов N, их массы mi , жесткость упругих связей ki , жесткость пружины внутри осциллятора qi , шаг по времени Δt, начальные смещение ξi и скорости ηi , вынуждающие силы, действующие на различные материальные точки. 2. Дают приращение по времени: переменной t присваивают значение t + Δt. 3. В цикле перебирают все N осцилляторов и для каждого из них опеределяют равнодействующую силу, ускорение, скорость и смещение в следующий момент t + Δ t: Fiξ (t + Δt) = - q(ξi (t) - ξi - 1 (t)) - q(ξi (t) - ξi + 1 (t)), θi (t + Δt) = (Fi (t + Δ t) - r ηi (t) - kξi (t))/m, ηi (t + Δt) = ηi (t) + θi (t + Δt)Δt, ξi (t + Δt) = ξi (t) + ηi (t + Δt)Δt. 4. В цикле стирают предыдущее изображение каждого осциллятора и рисуют новое. 5. Возвращение к операции 2. Если цикл по t закончился, -- выход из цикла. 4. Компьютерная программа. Программа, представленная ниже, моделирует распространение импульса в случае, когда левый элемент среды совершает полколебания.
program PROGRAMMA5; uses dos, crt, graph; Const m=0.5; r=0.1; k=0.01; dt=0.001; q=100; N=50; Var teta, F, t, y : Real; i,xx,vv,aa,FF,tt,Gd,Gm : Integer; eta, ksi : array [0..N] of real; Procedure GraphInit; begin Gd:= Detect; InitGraph(Gd, Gm, 'c:\bp\bgi'); if GraphResult <> grOk then Halt(1); end; Procedure Oscillator; begin F:=q*(ksi[i-1]-ksi[i])+q*(ksi[i+1]-ksi[i]); teta:=(F-r*eta[i]-k*ksi[i])/m; eta[i]:=eta[i]+teta*dt; ksi[i]:=ksi[i]+eta[i]*dt; end; BEGIN GraphInit; Repeat begin t:=t+dt; For i:=1 to N do begin y:=ksi[i]; Oscillator; if 5*t<3.142 then ksi[1]:=20*sin(5*t) else ksi[1]:=0; ksi[N]:=0; {закреплен} {ksi[N]:=ksi[N-1]; незакреплен} setcolor(8); circle(10*i,240-round(y*10),2); setcolor(15); circle(10*i,240-round(ksi[i]*10),2); end; end; until KeyPressed; CloseGraph; END.
5. Задания для самостоятельного решения. 1. Промоделируйте колебания двух связанных осцилляторов. Рассмотрите случаи: 1) на один из них действует вынуждающая сила; 2) один из осцилляторов имеет начальное смещение; 3) один из осцилляторов имеет начальную скорость. Выполните компьютерные эксперименты при различных ki и qi . 2. Изучите колебания трех связанных осцилляторов, рассмотрев все перечисленные выше случаи, выполнив компьютерные эксперименты при различных ki и qi . 3. Промоделируйте колебания 50 осцилляторов, связанных упругими связями, в случае, когда на левый крайний осциллятор подействовала кратковременная сила. Рассмотрите случаи, когда правый крайний осциллятор закреплен и незакреплен. 6. Промоделируйте распространение импульса вдоль цепочки осцилляторов, связанных упругими связями, в случае, когда их масса или жесткость пружин, начиная с некоторого осциллятора, изменяется скачком. Изучите изменение фазы импульса при его отражении от "более плотной" и "менее плотной" среды. 7. Изучите распространение импульса и его отражение от открытого или закрытого конца струны (одномерной упругой среды), которая моделируется 50 связанными осцилляторами.
ВВЕРХ 6. МОДЕЛИРОВАНИЕ АВТОВОЛНОВЫХ ПРОЦЕССОВ 1. Задача: Имеется двумерная активная среда, состоящая из элементов, каждый из которых может находиться в трех различных состояниях: покое, возбуждении и рефрактерности. При отсутствии внешнего воздействия, элемент находится в состоянии покоя. В результате воздействия элемент переходит в возбужденное состояние, приобретая способность возбуждать соседние элементы. Через некоторое время после возбуждения элемент переключается в состояние рефрактерности, находясь в котором он не может быть возбужден. Затем элемент сам возвращается в исходное состояние покоя, то есть снова приобретает способность переходить в возбужденное состояние. Необходимо промоделировать процессы, происходящие в двумерной активной среде при различных параметрах среды и начальном распределении возбужденных элементов. 2. Теория. Рассмотрим обобщенную модель Винера - Розенблюта. Мысленно разобъем экран компьютера на элементы, определяемые индексами i, j и образующими двумерную сеть. Пусть состояние каждого элемента описывается фазой yi,j (t), и концентрацией активатора uij (t), где t -- дискретный момент времени. Если элемент находится в покое, то будем считать, что yi,j (t) = 0. Если вследствие близости возбужденных элементов концентрация активатора uij (t) достигает порогового значения h, то элемент возбуждается и переходит в состояние 1. Затем на следующем шаге он переключается в состояние 2, затем -- в состояние 3 и т.д., оставаясь при этом возбужденным. Достигнув состояния r элемент переходит в состояние рефрактерности. Через (s - r) шагов после возбуждения элемент возвращается в состояние покоя. Будем считать, что при переходе из состояния s в состояние покоя 0 концентрация активатора становится равной 0. При наличии соседнего элемента, находящегося в возбужденном состоянии, она увеличивается на 1. Если p ближайших соседей возбуждены, то на соответствующем шаге к предыдущему значению концентрации активатора прибавляется число возбужденных соседей: uij (t + Δt) = uij (t) + p. Можно ограничиться учетом ближайших восьми соседних элементов. 3. Алгоритм. Для моделирования автоволновых процессов в активной среде необходимо составить цикл по времени, в котором вычисляются фазы элементов среды в последующие моменты времени и концентрация активатора, стирается предыдущее распределение возбужденных элементов и строится новое. Алгоритм модели представлен ниже. 1. Задают число элементов активной среды, ее параметры s, r, h, начальное распределение возбужденных элементов. 2. Начало цикла по t. Дают приращение по времени: переменной t присваивают значение t + Δt. 3. Перебирают все элементы активной среды, определяя их фазы yi,j (t + Δt) и концентрацию активатора ui,j (t + Δt) в момент t + Δt. 4. Очищают экран и строят возбужденные элементы активной среды. 7. Возвращение к операции 2. Если цикл по t закончился, -- выход из цикла. 4. Компьютерная программа. Ниже представлена программа, моделирующая активную среду и происходяшие в ней процессы. В программе заданы начальные значения фазы yi,j (t + Δt) всех элементов активной среды, а также имеется цикл по времени, в котором расчитываются значения yi,j (t + Δt) в следующий момент t + Δt и осуществляется графический вывод результатов на экран. Параметры среды r = 6, s = 13, h = 5, то есть каждый элемент кроме состояния покоя может находиться в 6 возбужденных состояниях и 7 состояниях рефрактерности. Пороговое значение концентрации активатора равно 5. Программа строит однорукавную волну, осциллятор и препятствие.
Program PROGRAMMA6; uses dos, crt, graph; Const N=110; M=90; s=13; r=6; h=5; Var y, yy, u : array [1..N,1..M] of integer; ii, jj, j, k, Gd, Gm : integer; i : Longint; Label met; BEGIN Gd:= Detect; InitGraph(Gd, Gm, 'c:\bp\bgi'); If GraphResult <> grOk then Halt(1); setcolor(8); setbkcolor(15); (* y[50,50]:=1; { Одиночная волна } *) For j:=1 to 45 do { Однорукавная волна } For i:=1 to 13 do y[40+i,j]:=i; (* For j:=1 to M do { Двурукавная волна } For i:=1 to 13 do begin y[40+i,j]:=i; If j>40 then y[40+i,j]:=14-i; end; *) Repeat If k=round(k/20)*20 then y[30,30]:=1; {Осциллятор 1} (* If k=round(k/30)*30 then y[20,50]:=1; {Осциллятор 2} *) For i:=2 to N-1 do For j:=2 to M-1 do begin If (y[i,j]>0) and (y[i,j]<s) then yy[i,j]:=y[i,j]+1; If y[i,j]=s then begin yy[i,j]:=0; u[i,j]:=0; end; If y[i,j] <> 0 then goto met; For ii:=i-1 to i+1 do For jj:=j-1 to j+1 do begin If (y[ii,jj]>0) and (y[ii,jj]<=r) then u[i,j]:=u[i,j]+1; If u[i,j]>=h then yy[i,j]:=1; end; met: end; Delay(2000); {Задержка} cleardevice; For i:=21 to 70 do begin yy[i,60]:=0; yy[i,61]:=0; {Препятствие} circle(6*i-10,500-6*60,3); circle(6*i-10,500-6*61,3); end; For i:=1 to N do For j:=1 to M do begin y[i,j]:=yy[i,j]; setcolor(12); If (y[i,j]>=1) and (y[i,j]<=r) then circle(6*i-10,500-6*j,3); setcolor(8); If (y[i,j]>6) and (y[i,j]<=s) then circle(6*i-10,500-6*j,2); end; until KeyPressed; CloseGraph; END. 5. Задания для самостоятельного решения. 1. Получите модель одиночной волны возбуждения. Для этого достаточно один из элементов активной среды перевести в возбужденное состояние. 2. Промоделируйте серию автоволн. Для этого необходимо, чтобы один из элементов совершал периодические колебания, то есть автоматически через заданное число шагов переходил в возбужденное состояние 1. Такой элемент называется осциллятором. Для получения серии автоволн следует активизировать строку с пометкой "Осциллятор 1". 3. Промоделируйте дифракцию автоволн. Для этого необходимо создать волну, на пути которой расположено препятствие, например, непрозрачный экран, состоящий из невозбуждающихся элементов, расположенных вдоль прямой и всегда находящихся в состоянии 0. 4. Изучите распространение автоволн в двумерной среде, содержащей два параллельно расположенных экрана или экран с отверстием. Пронаблюдайте анигиляцию автоволн, распространяющихся навстречу друг другу. 5. Промоделируйте эффект синхронизации, состоящий в том, что при наличии двух или более источников автоволн происходит их взаимодействие, в результате которого высокочастотные источники подавляют низкочастотные. В конце концов наступает синхронизация колебаний элементов среды: колебания происходят с частотой, равной частоте высокочастотного источника. Чтобы пронаблюдать это явление на экране компьютера, следует смоделировать два осциллятора, работающих на разных частотах. Для этого необходимо активизировать операторы с пометками "Осциллятор 1" и "Осциллятор 2".
6. Промоделируйте образование однорукавных спиральных волн. Спиральные волны образуются на краях фронта волны, поэтому для моделирования этого процесса необходимо в блоке начальных условий задать плоскую волну, фронт которой обрывается в середине экрана. 7. Промоделируйте образование двухрукавных спиральных волн. 8. Изучите зависимость частоты вращения однорукавной спиральной волны от параметров среды (r, s, h). Повторите этот вычислительный эксперимент для двухрукавной волны. 9. Промоделируйте взаимодействие спиральных автоволн с автоволнами, вырабатываемыми осциллятором, колеблющимся с низкой частотой. 10. Исследуйте распространение и анигиляцию одиночного импульса в одномерной активной среде. 11. Изучите распространение автоволн в одномерной активной среде при наличии осциллятора. 12. Промоделируйте распространение одиночного импульса в одномерной активной среде, последний элемент которой контактирует с первым. 13. Создайте компьютерную модель распространения автоволн в трехмерной активной среде.
ВВЕРХ 6. МОДЕЛИРОВАНИЕ РАСПРОСТРАНЕНИЯ ВОЛНЫ 1. Задача. Имеется непрерывная одномерная упругая среда. Заданы колебания отдельных элементов среды и скорость распространения возмущения. Необходимо расчитать смещения элементов среды в последующие моменты времени. 2. Теория. Запишем волновое уравнение:
d2ξ/dt2=
v2d2ξ/dx2,
где v -- фазовая скорость волны.
Скорость любой точки среды в момент t+dt составляет:
η(t+dt) =dξ(t+dt)/dt=dξ(t)/dt+d(dξ(t)/dt)=
η(t)+v2(d2ξ/dx2)dt.
Разобъем среду на N элементов равной длины с шагом h, смещение которых из
положения равновесия обозначим через ξi где
i=1,2, ... , N -- номер элемента. Скорость i--го элемента в момент
t+Δt равна:
ηi(t+Δt)=ηi(t)+
θi(t+Δt)Δt,
где θi(t+Δt) -- ускорение
i--ого элемента:
θi(t+Δt)=v2(ξi+1-
2ξi+ξi-1)/h2.
Тогда смещение i--ого элемента в момент времени
t+Δt из положения равновесия составляет
ξi(t+Δt)=ξi(t)+
ηi(t+Δt)Δt.
3. Алгоритм. Для построения "моментальной фотографии волны" в последующие моменты времени необходимо составить цикл по i, в котором перебираются все элементы среды, вычисляются их смещения из положения равновесия. После этого стирается предыдущая моментальная фотография волны и строится новая. Этот цикл должен находиться внутри цикла по времени. Алгоритм модели представлен ниже. 1. Задают число элементов N, скорость распространения волны, а также уравнения колебаний отдельных элементов среды (например: ξ[1]:=2*sin(t). 2. Начало цикла по t. Дают приращение по времени: переменной t присваивают значение t+Δt. 3. Вычисляют смещение элементов среды, которые колеблются по заданному закону. 4. В цикле перебираются все элементы от 2 до N-1. При этом записывают значения смещений xi[i] в массив xxii[i] и вычисляют скорости элементов в момент времени t+Δt:
ηi(t+Δt)=ηi(t)+
v2[(ξi+1-2ξi
+ξi-1)/h2]Δt.
записывая их в массив eta[i].
5. В цикле перебираются все элементы и вычисляются их смещения
по формуле:
ξi(t+Δt)=ξi(t)+
ηi(t+Δt)Δt.
6. В цикле перебирают все элементы, стирают их предыдущие изображения и рисуют новые. 7. Возвращение к операции 2. Если цикл по t закончился, -- выход из цикла. 4. Компьютерная программа. Предлагаемая программа моделирует прохождение и отражение импульса от "границы раздела двух сред".
program PROGRAMMA6; uses crt, graph; const n=200; h=1; dt=0.05; var i, j, DriverVar, ModeVar, ErrorCode : integer; eta,xi,xxii : array[1..N] of real; t, vv : real; Procedure Graph_Init; begin {- Инициализация графики -} DriverVar:=Detect; InitGraph(DriverVar,ModeVar,'c:\bp\bgi'); ErrorCode:=GraphResult; if ErrorCode<>grOK then Halt(1); end; Procedure Raschet; {Расчет смещения} begin for i:=2 to N-1 do begin xxii[i]:=xi[i]; if i<N/2 then vv:=4 else vv:=0.5; eta[i]:=eta[i]+vv*(xi[i+1]-2*xi[i]+xi[i-1])/(h*h)*dt; end; for i:=2 to N-1 do xi[i]:=xi[i]+eta[i]*dt; xi[N]:=0; {Конец закреплен} { xi[N]:=xi[N-1];}{ незакрепленный} end; Procedure Draw; begin {- Вывод на экран -} setcolor(black); line(i*3-3,240-round(xxii[i-1]*50),i*3,240-round(xxii[i]*50)); setcolor(white); line(i*3-3,240-round(xi[i-1]*50),i*3,240-round(xi[i]*50)); end; BEGIN {- Основная программа -} Graph_Init; Repeat t:=t+dt; if t<6.28 then xi[1]:=2*sin(t) else xi[1]:=0; Raschet; For i:=1 to N do Draw; until KeyPressed; CloseGraph; END. Рассмотренная выше компьютерная модель позволяет выполнить серию численных экспериментов и изучить следующие явления: 1) распространение и отражение волны (одиночного импульса, цуга) от закрепленного и незакрепленного конца упругой среды; 2) интерференция волн (одиночных импульсов, цугов), возникающая в результате отражения падающей волны либо излучения двух когерентных волн; 3) отражение и прохождение волны (одиночного импульса, цуга) через границу раздела двух сред; 4) изучение зависимости длины волны от частоты и скорости распространения; 5) наблюдение изменения фазы отраженной волны на π при отражении от среды, в которой скорость волны меньше.
5. Задания для студентов. 1. Промоделируйте распространение волны и ее отражение от закрепленного (незакрепленного) правого конца среды в случае, когда ее левый элемент совершает гармонические колебания. 2. Изучите распространение и отражение импульса в случае, когда левый элемент среды совершил полколебания. 3. Пронаблюдайте суперпозицию волн, испускаемых двумя элементами, колеблющимися с равными (различными) частотами и отстоящими друг от друга на расстояние a. 4. Промоделируйте возникновение стоячей волны при отражении гармонической волны от правого закрепленного (незакрепленного) конца шнура. 5. Изучите интерференцию двух цугов, распространяющихся навстречу. 6. Промоделируйте отражение одиночного импульса от границы раздела двух сред с различными скоростями распространения волн. Для этого необходимо задать различные значения a для левой и правой половинок шнура. 7. Используя модель, изучите зависимость длины волны от частоты.
ВВЕРХ 7. МОДЕЛЬ ЯВЛЕНИЙ ПЕРЕНОСА (ТЕПЛОПРОВОДНОСТЬ, ДИФФУЗИЯ, ВЯЗКОСТЬ) 1. Задача: Имеется прямоугольная пластина, коэффициент температуропроводности которого зависит от координаты a=a(x,y). Задано начальное распределение температуры T=T(x,y), а также мощность qn и координаты (xn, yn) источников тепла. Необходимо изучить изменение температуры различных точек пластины с течением времени. 2. Теория. Уравнение теплопроводности для пластины: Приращение температуры равно: Разобъем прямоугольную пластину на элементы, образующие вертикальные столбцы с номером i и горизонтальные строки с номером j. Пусть в некоторый дискретный момент времени t температура элемента i-ого столбца j-ой строки была равна Ti,j(t). Чтобы найти ее значение в следующий момент времени t+dt необходимо численно решить представленное выше дифференциальное уравнение отдельно по столбцам и отдельно по строкам. Решая одномерную задачу теплопроводности по столбцам, получаем:
Ti,j(t+dt)=Ti,j(t)+a[(Ti,j+1
-2Ti,j+Ti,j-1)/h2]dt+qi,jdt,
где qi,j -- быстрота увеличения температуры элемента
вследствие наличия в нем источника тепла, h=1. Аналогичным образом
решается уравнение теплопроводности по строкам:
Ti,j(t+dt)=Ti,j(t)+a[(Ti+1,j
-2Ti,j+Ti-1,j)/h2]dt+qi,jdt,
Организовав два цикла по i и j, в которых перебираются все
элементы пластины, вложенные в цикл по времени, можно расчитать
распределение температуры пластины в последующие моменты времени.
Чтобы исключить влияние направления перебора элементов на результаты
моделирования, следует организовать 4 цикла, в которых элементы
пластины перебираются слева направо, справа налево, снизу вверх,
сверху вниз.
3. Алгоритм. 1. Задают коэффициенты температуропроводности a и b вдоль осей координат x и y, начальное распределение температуры Ti,j(0) различных элементов пластины, координаты и мощности источников тепла qi,j. Считают, что t=0. 2. Путем последовательного перебора элементов i--ого столбца от j=1 до M с помощью конечно-разностного уравнения (1) пересчитывают их температуры в следующий дискретный момент времени. Повторяют расчеты для всех столбцов. 3. Повторяют ту же самую процедуру в противоположном направлении, перебирая элементы от j=M до 1 и используя уравнение (1). 4. Путем последовательного перебора элементов j--ой строки от i=1 до N с помощью конечно-разностного уравнения (2) пересчитывают их температуры в следующий дискретный момент времени. Повторяют расчеты для всех строк. 5. Повторяют ту же самую процедуру в противоположном направлении, перебирая элементы от i=N до 1 и используя уравнение (2). 6. Вводят текущее распределение температуры на экран, закрашивая элементы с различной температурой различными цветами. 7. Возвращение к операции 2. Если цикл по t закончился, -- выход из цикла. 4. Компьютерная программа. Предлагаемая компьютерная программа позволяет исходя из начального распределения температуры и наличия источников тепла, расчитать температуру различных точек прямоугольной пластины в дискретные моменты времни.
program PROGRAMMA7; uses crt, graph; const n=100; m=100; h=1; dt=0.2; var ii,jj,kk,i,j,DriverVar, ModeVar, ErrorCode : integer; t: array[1..N, 1..M] of real; q,a,b,bb :real; naprav,uslovie: boolean; procedure Init; {---- Инициализация графики ----} begin DriverVar:=Detect; InitGraph(DriverVar,ModeVar,'c:\bp\bgi'); ErrorCode:=GraphResult; if ErrorCode <> grOK then Halt(1); end; procedure Param_sred; {---Коэффициент температуропроводности---} begin if j<70 then a:=2 else a:=1; end; procedure Istoch; {--- Источники тепла ---} begin if ((i>45)and(i<55))and((j>70)and(j<75)) then q:=50 else q:=0; end; procedure Nach_uslov; {-- Начальное распределение температуры --} begin For i:=1 to N do For j:=1 to M do begin uslovie:=((j<65)and(j>45)and(i>20)and(i<30)) or((j<45)and(j>35)and(i>50)and(i<60)); if uslovie=true then t[i,j]:=450 else t[i,j]:=1; end; end; procedure Raschet; {---- Расчет температуры ----} begin Istoch; Param_sred; t[i,j]:=t[i,j]+a*(t[i,j+1]-2*t[i,j]+t[i,j-1])*dt/(h*h)+q; if naprav=true then t[i,j]:= t[i,j]+a*(t[i+1,j]-2*t[i,j]+t[i-1,j])*dt/(h*h); end; procedure Draw;{---- Вывод на экран ----} begin if t[i,j]>50 then setcolor(2); if t[i,j]>300 then setcolor(12); if (t[i,j]<300)and(t[i,j]>120) then setcolor(10); if (t[i,j]<120)and(t[i,j]>70) then setcolor(3); if (t[i,j]<70)and(t[i,j]>30) then setcolor(4); if (t[i,j]<30)and(t[i,j]>20) then setcolor(5); if (t[i,j]<20)and(t[i,j]>10) then setcolor(7); if t[i,j]<10 then setcolor(15); rectangle(i*5+50,j*5,i*5+54,j*5+4); end; BEGIN {---- Основная программа ----} Init; Nach_uslov; Repeat kk:=kk+1; For i:=2 to N-1 do For j:=2 to M-1 do begin naprav:=false; Raschet; end; For j:=2 to M-1 do For i:=2 to N-1 do begin naprav:= true; Raschet; end; For i:=2 to N-1 do For jj:=2 to M-1 do begin j:=M+1-jj; naprav:=true; Raschet; end; For j:=2 to M-1 do For ii:=2 to N-1 do begin i:=N+1-ii; naprav:=false; Raschet; end; if kk/2=round(kk/2) then For i:=2 to N-1 do For j:=2 to M-1 do Draw; until KeyPressed; CloseGraph; END. 5. Задания для студентов. 1. Температура группы элементов, находящихся в центре стержня, достаточно высока. Постройте график зависимости температуры от координаты и исследуйте изменение распределения температуры вдоль стержня c течением времени, если коэффициент температуропроводности во всех точках одинаков. 2. Решите предыдущую задачу для случая, когда стержень неоднороден, например, коэффициент температуропроводности его левой половины больше, чем правой. 3. Вблизи центра стержня имеется несколько источников тепла. Изучите изменение распределения температуры c течением времени, если стержень однороден. 4. Решите предыдущую задачу для случая, когда стержень неоднороден, то есть его коэффициент температуропроводности зависит от координаты.
5. Изучите распределение температуры вдоль стержня в случае, когда один конец охлаждается, а другой поддерживается при постоянной температуре. 6. Задайте источник тепла, мощность которого периодически изменяется с течением времени с очень низкой частотой. Промоделируйте тепловые волны. 7. Температура группы элементов, находящихся в центре пластины, достаточно высока. Исследуйте изменение распределения температуры c течением времени, если пластина однородная и изотропная. 8. Решите предыдущую задачу для случая, когда пластина неоднородна. 9. Промоделируйте нагревание неизотропной пластины источниками тепла, находящимися в центре. 10. Вблизи центра пластины имеется группа поглотителей тепла (источников тепла с отрицательной мощностью). Изучите изменение распределения температуры c течением времени. 11. Пластина с отверстием содержит источник тепла и поглотитель тепла. Изучите распределение температуры в различные моменты времени. 12. Температура группы элементов вблизи центра пластины поддерживается постоянной. Изучите распределение температуры, если пластина имеет источники тепла с положительной (отрицательной) мощностью.
13. Решите предыдущую задачу для случая, когда пластина анизотропна, то есть ее коэффициент температуропроводности зависит от направления.
ВВЕРХ
|
Все права защищены.
Майер Роберт Валерьевич, доктор педагогических наук, профессор кафедры физики и дидактики физики Глазовского государственного педагогического института e-mail: robert_maier@mail.ru |
физика компьютерная модель вычислительный эксперимент численное дифференцирование и интегрирование метод конечных разностей эйлера волна теплопроводность точка в силовом поле электрическая цепь связанные осцилляторы автоволновые процессы физика компьютерная модель вычислительный эксперимент численное дифференцирование и интегрирование метод конечных разностей эйлера волна теплопроводность точка в силовом поле электрическая цепь связанные осцилляторы автоволновые процессы физика компьютерная модель вычислительный эксперимент численное дифференцирование и интегрирование метод конечных разностей эйлера волна теплопроводность точка в силовом поле электрическая цепь связанные осцилляторы автоволновые процессы физика компьютерная модель вычислительный эксперимент численное дифференцирование и интегрирование метод конечных разностей эйлера волна теплопроводность точка в силовом поле электрическая цепь связанные осцилляторы автоволновые процессы физика компьютерная модель вычислительный эксперимент численное дифференцирование и интегрирование метод конечных разностей эйлера волна теплопроводность точка в силовом поле электрическая цепь связанные осцилляторы автоволновые процессы физика компьютерная модель вычислительный эксперимент численное дифференцирование и интегрирование метод конечных разностей эйлера волна теплопроводность точка в силовом поле электрическая цепь связанные осцилляторы автоволновые процессы физика компьютерная модель вычислительный эксперимент численное дифференцирование и интегрирование метод конечных разностей эйлера волна теплопроводность точка в силовом поле электрическая цепь связанные осцилляторы автоволновые процессы физика компьютерная модель вычислительный эксперимент численное дифференцирование и интегрирование метод конечных разностей эйлера волна теплопроводность точка в силовом поле электрическая цепь связанные осцилляторы автоволновые процессы физика компьютерная модель вычислительный эксперимент численное дифференцирование и интегрирование метод конечных разностей эйлера волна теплопроводность точка в силовом поле электрическая цепь связанные осцилляторы автоволновые процессы физика компьютерная модель вычислительный эксперимент численное дифференцирование и интегрирование метод конечных разностей эйлера волна теплопроводность точка в силовом поле электрическая цепь связанные осцилляторы автоволновые процессы физика компьютерная модель вычислительный эксперимент численное дифференцирование и интегрирование метод конечных разностей эйлера волна теплопроводность точка в силовом поле электрическая цепь связанные осцилляторы автоволновые процессы физика компьютерная модель вычислительный эксперимент численное дифференцирование и интегрирование метод конечных разностей эйлера волна теплопроводность точка в силовом поле электрическая цепь связанные осцилляторы автоволновые процессы физика компьютерная модель вычислительный эксперимент численное дифференцирование и интегрирование метод конечных разностей эйлера волна теплопроводность точка в силовом поле электрическая цепь связанные осцилляторы автоволновые процессы физика компьютерная модель вычислительный эксперимент численное дифференцирование и интегрирование метод конечных разностей эйлера волна теплопроводность точка в силовом поле электрическая цепь связанные осцилляторы автоволновые процессы физика компьютерная модель вычислительный эксперимент численное дифференцирование и интегрирование метод конечных разностей эйлера волна теплопроводность точка в силовом поле электрическая цепь связанные осцилляторы автоволновые процессы физика компьютерная модель вычислительный эксперимент численное дифференцирование и интегрирование метод конечных разностей эйлера волна теплопроводность точка в силовом поле электрическая цепь связанные осцилляторы автоволновые процессы физика компьютерная модель вычислительный эксперимент численное дифференцирование и интегрирование метод конечных разностей эйлера волна теплопроводность точка в силовом поле электрическая цепь связанные осцилляторы автоволновые процессы физика компьютерная модель вычислительный эксперимент численное дифференцирование и интегрирование метод конечных разностей эйлера волна теплопроводность точка в силовом поле электрическая цепь связанные осцилляторы автоволновые процессы физика компьютерная модель вычислительный эксперимент численное дифференцирование и интегрирование метод конечных разностей эйлера волна теплопроводность точка в силовом поле электрическая цепь связанные осцилляторы автоволновые процессы физика компьютерная модель вычислительный эксперимент численное дифференцирование и интегрирование метод конечных разностей эйлера волна теплопроводность точка в силовом поле электрическая цепь связанные осцилляторы автоволновые процессы решение физических задач в MathCAD решение физических задач в MathCAD решение физических задач в MathCAD решение физических задач в MathCAD решение физических задач в MathCAD решение физических задач в MathCAD решение физических задач в MathCAD решение физических задач в MathCAD решение физических задач в MathCAD решение физических задач в MathCAD решение физических задач в MathCAD решение физических задач в MathCAD решение физических задач в MathCAD решение физических задач в MathCAD решение физических задач в MathCAD решение физических задач в MathCAD |