Для построения эквипотенциальных поверхностей зададим

advertisement
1
КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ В ФИЗИКЕ
Данные методические указания составлены на основе курса лекций по
дисциплине «Компьютерное моделирование в естествознании» и являются
дополнением к нему. Поэтому в данном варианте опущены теоретические
выкладки, которые в необходимом объеме представлены в вышеназванном
курсе лекций. Здесь лишь приведены примеры решения имеющихся задач.
Механика.
При изучении движения различных тел фундаментальное,
основополагающее значение играет второй закон Ньютона, согласно которому
ускорение, с которым движется тело, прямо пропорционально
воздействующей на него результирующей силе и обратно пропорционально
массе тела в данный момент времени.
a (t ) 
F (t ) d d 2 S

 2
m(t ) dt
dt
(1)
Второй закон Ньютона позволяет изучать движение тел при произвольном
изменении во времени силе и массы.
Для начала рассмотрим одномерный случай движения. Пусть это
будет вертикальное падение пенопластового шарика массой 0.254 гр и
радиусом 2.54 см в поле тяготения Земли. В данном случае имеются
экспериментальные данные, соответствующие пройденному шариком пути за
равные промежутки времени.
t, с
0.132 0.0
(время)
y, м
0.0
0.075
(смещение)
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.26 0.525
0.87
1.27
1.73
2.23
2.77
3.35
Вообще говоря, задача имеет разные пути решения. Можно
воспользоваться уже известными физическими законами механического
движения, можно отталкиваться от нуля и пытаться решить задачу, используя
численные методы решения. Выберем первый вариант.
Решение любой задачи начинается с построения рисунка.
В нашем случае Fрез –
результирующая сила,
m – масса тела, a –
результирующее
ускорение,
F
g – ускорение свободного
Fc
ma
падения,
Fс
–
сила
сопротивления среды.
mg
Сила
сопротивления
Fc
среды
может
быть
mg
ma
пропорциональна
либо
скорости движения
Fc  k1
либо квадрату скорости движения:
(2)
2
Fc   k 2   2
(3)
Знак минус означает, что сила сопротивления направлена противоположно
движению тела. В этом случае результирующую силу можно записать:
F p  ma  mg  k1  
(4)
Fp  ma  mg  k 2   2
(5)
Смоделировать падение тела означает определить координату тела в
каждый конкретный момент времени, или определить месторасположение тела
во времени и в пространстве. Для этого необходимо проинтегрировать
уравнения (4,5), так как в данном случае координата будет определяться
перемещением. Выразим предварительно ускорение:
a
k 
k dS
d d 2 S
 2 g 1
g 1
dt
m
m dt
dt
a
k  2
k
d d 2 S
 2 g 2
g 2
dt
m
m
dt
 dS 
 
 dt 
(6)
2
(7)
Скорость движения тела можно представить следующим образом:
  0  a  t
(8)
Выражение для перемещения, или пути, имеет вид:
S  S0 
a t2
2
(9)
Мы не можем решить ни одну физическую задачу, не приняв ряд допущений и
упрощений, которые в данном конкретном случае не влияют существенно на
результат. К тому же необходимо оговорить начальные условия, обычно это
скорость, ускорение, координаты тела в начальный момент времени ( t  0 ).
Для данного одномерного случая искомой координатой является
ордината Y :
Y  S  S0 
k
a t2
 Y0  g  1  ( 0  a  t )
2
m
(10)
Y  S  S0 
k
a t2
 Y0  g  2  ( 0  a  t ) 2
2
m
(11)
Выражения (10,11) получены подстановкой уравнений (6-8) в уравнение (9).
Строго говоря, сила сопротивления имеет две составляющие: линейную,
пропорциональную скорости и размеру, например, радиусу тела, и
квадратичную, пропорциональную квадрату скорости и площади поверхности
тела. При небольших размерах тел (к примеру, до 10 см) и скорости ( 1 м/с)
эти две составляющие сопоставимы по значению. С увеличением же размера и
скорости движения тела квадратичная составляющая растет быстрее. Теперь
все зависит от того, движение какого тела будем рассматривать: если это
камень или мяч, то необходимо учитывать обе составляющие; если это снаряд,
3
выпущенный из орудия с большой линейной скоростью, то квадратичная
составляющая значительно превосходит линейную, и последней можно
пренебречь. Таким образом, общая формула для координаты тела в нашем
случае выглядит следующим образом:
Y  S0 
k
k
a t2
 Y0  g  1    2   2
2
m
m
(12)
Процесс моделирования заключается в расчете координаты в каждый
момент времени, т.е. задается малый промежуток времени dt , и
моделирование продолжается до тех пор, пока не останавливается движение
по каким-либо причинам.
Пример программы, написанной на языке программирования “Pascal”,
моделирующей движение тела « вверх – вниз ».
В этом случае моделируется движение тела, подброшенного вверх с
какой-то начальной скоростью, без учета силы сопротивления. Такая модель
предполагает одномерное вертикальное движение до того момента, пока
скорость тела не станет равной нулю в силу того, что значение скорости
определяется формулой:
  0  g  t
(13)
Принимая во внимание, что при нулевой скорости имеем максимальную
высоту подъема, можно рассчитать и время «полета» тела до его остановки.
Затем тело начинает падать, причем «начальная» скорость для этого отрезка
пути уже будет равна нулю, и выражения для скорости и перемещения примут
следующий вид:
  g t
S  S max 
(14)
g t2
2
(15)
Это наиболее простой пример моделирования движения тела, но достаточно
наглядный для понимания задач моделирования. Вывод данных можно
осуществлять как в табличном, так и в графическом виде. Но графическое
представление информации более наглядно и, что немаловажно, в большей
степени позволяет выявлять ошибки моделирования.
program m1;
uses crt, graph;
var s, sm, dt, t, v0, v, g: real;
i, n, a, b: integer;
begin
g:=9.8;
writeln (‘ввести нач. скорость, шаг по времени’);
readln (v0, dt);
a:=detect; b:=detect;
initgraph (a,b,’’);
moveto (0,getmaxy);
t:=0.0;
while t<v0/g do
begin
t:=t+dt;
v:=v0-g*t;
4
s:=v0*t-(g*t*t)/2;
setcolor (4);
lineto (round(t*10), getmaxy-round (s));
writeln (‘время’, ‘ ‘, t:8:2, ‘скорость ‘, v:10:3, ‘
’, ‘путь ‘, s:10:3 );
end;
sm:=(v0*v0)/(2*g);
writeln (‘ время ’,t:8:2,’ высота макс. ‘, sm:10:3);
while t<=((2*v0)/g) do
begin
t:=t+dt;
v:=v0-g*t;
s:=sm-(g*(t-v0/g)*(t-v0/g))/2;
setcolor (4);
lineto (round(t*10), getmaxy-round(s));
writeln (‘ время ’,t:8:2,’ скорость ’, v:10:3,
‘ путь ’, s:10:3);
end;
writeln (‘ время общее ’, t:8:2, ‘ путь общий ‘, (2*sm):10:3);
closegraph;
end.
Изменение
скорости тела
время
Рис.1
Характер изменения скорости тела, подброшенного вверх.
Как видно из программы выводить, на печать или на график можно
любую искомую величину. В этом примере параметр времени имеет сквозное
исчисление, т.е. при начале нового цикла движения – падение с максимальной
высоты подъема – время не обнуляется, но это не единственный путь решения.
К тому же в этом примере при расчетах скорости и перемещения каждый раз
производятся вычисления с новым временем, представляющим собой
суммарное от начала движения время. Возможен и другой путь расчета, при
котором используется бесконечно малое приращение времени dt , а
вычисления скорости и перемещения происходят от предыдущих значений:
s : s 
a  (dt ) 2
2
 :   a  dt
(16)
(17)
Для полноценной адекватности процесса моделирования можно
провести то же самое моделирование, используя какой-либо метод численного
анализа.
5
Следующий пример двухмерного движения - полет тела под углом к
горизонту.
Fcx

Рис.2
  x


y
x
Fcy
mg
Силы, действующие на тело, брошенное под углом к горизонту.
В данном случае движение имеет более сложный характер, поэтому
очень внимательно необходимо отнестись к выполнению рисунка, правильное
нанесение на схему всех действующих на объект сил.
Из рисунка видно, что скорость тела в каждой точке траектории – есть
векторная сумма вертикальной и горизонтальной составляющих мгновенной
скорости. До достижения максимальной высоты подъема движение будет
замедленным, так как сила тяжести направлена против вектора перемещения.
А после прохождения максимальной точки движение будет равноускоренным
вследствие сонаправленности вектора силы тяжести и вертикальной
составляющей вектора скорости. Величина вертикальной составляющей
вектора скорости определяется по выражению:
 y   y0  g  t
(18)
 y0   0  sin 
(19)
В наивысшей точке траектории, когда подъем тела завершен, вертикальная
составляющая скорости равна нулю  y  0 , поэтому уравнение (18) примет
вид:
 y   y0  g  t  0
(20)
Тогда можно определить время, затраченное телом для достижения
максимальной высоты полета, иными словами, время τ, при котором движение
тела является равнозамедленным:

 0  sin 
Зная время подъема, можно написать
максимальной высоты подъема тела:
h   y0   
(21)
g
выражение
для
определения
g   2  02  sin 2  g   02  sin 2   02  sin 2 



2
g
2g
2 g2
(22)
6
При отсутствии сопротивления среды время «подъема» равно времени
«падения», таким образом, общее время движения составит:
t  2  
2 0  sin 
g
(23)
Дальность полета или путь, пройденный телом, определяем из уравнения:
s   x0  2   0  cos   2
 0  sin 
g
(24)
Для того, чтобы найти траекторию движения тела, необходимо определить
положение тела (x,y) в каждый момент времени (t) движения:
x   x0  t
g t2
y  t 
2
(25)
0
y
или:
g x2
x
g
x2
y    0   0 2   0  sin  
 

 0  cos  2  02  cos 2 
 x 2 ( x )
0
y
x
(26)
 x  tg 
g  x2
2 02  cos 2 
Из уравнения (26) видно, что для координаты y зависимость от координаты x,
а соответственно и от времени t (по уравнению 25) – квадратичная, графиком
которой является парабола.
Усложним задачу, добавив к условию силу сопротивления среды.
Сила сопротивления имеет две составляющие: линейную, пропорциональную
скорости и размерам тела, и квадратичную, пропорциональную квадрату
скорости и площади поверхности тела. При небольших размерах тела
(например, до десяти сантиметров) и скорости его движения (например,
порядка одного метра в секунду) эти две составляющие сопоставимы по
значению. С увеличением размера тела и скорости движения квадратичная
составляющая растет быстрее, и величиной линейной составляющей можно
пренебречь. Аналогично, если размеры тела и скорость его движения очень
малы, то квадратичной составляющей можно пренебречь.
По второму закону Ньютона запишем силу сопротивления как:
F  ma
Откуда напишем выражение для ускорения:
a
F d

m dt
(27)
Для определения траектории движения тела необходимо определить закон
изменения координаты тела в каждый момент времени. Поэтому будем
рассматривать проекции скорости, ускорения, сил, действующих на тело, на
оси абсцисс и ординат.
ax 
d x Fx

dt
m
(28)
7
ay 
d y
dt
Составим систему уравнений
действующей на тело:
Fy  m  g

(29)
m
для
проекций
результирующей
силы,
Fx   F  cos    F 
x

 (k1    k 2   2 )  x


(30)
Fy   F  sin    F 
y
y
 (k1    k 2   2 ) 


(31)
   x2   y2
(32)
Теперь составим систему уравнений для проекций ускорений:
ax 
d x Fx
(k    k 2   2 )  x

 1


dt
m
m

(33)

k1  k 2   x2   y2
m
ay 
d y
dt

 x
(k1    k 2   2 )  y


g 
m

Fy  m  g
m
(34)

k1  k 2   x2   y2
m
 y  g
Для определения траектории движения учтем, что :
x 
dx
dt
и
y 
dy
dt
(35)
Необходимо добавить эти уравнения к предыдущей системе уравнений.
В
физическом
моделировании
часто
применяют
прием
обезразмеривания, заключающийся в переходе от абсолютных значений
параметров к относительным, т.е. применительно к нашему случаю:
X 
x
S
Y
y
h
T 
t

(36)
При отсутствии сопротивления воздуха безразмерные параметры X, Y, T
изменяются от нуля до единицы. Что и понятно: при x=S X=1, x=0 X=0 и т.д.
Такие же безразмерные параметры можно ввести и для скоростей:
8
Vx 
x
0
Vy 
y
0
(37)
(значения Vx, Vy изменяются от 0 до 1)
Тогда ранее выведенную систему уравнений можно переписать следующим
образом. Начнем с проекции ускорения на ось ординат:
ay 
d y
dt

d ( 0  V y )
d (T  t )

 0 dV y

 dT
(38)
Подставив уравнение (38) в уравнение (34), получим следующее выражение:
k1  k 2   02  Vx2   02  V y2
 0 dV y


0  Vy  g
 dT
m
Теперь попытаемся получить выражение для расчета
dV y
dT
(39)
:
2
2
  g  (k1  k 2   0  Vx  V y )

 
0  Vy
dT
0 0
m
dV y
(40)
вспомним, что время «подъема» определяется по выражению (21), получим
следующую формулу:
2
2
 0  g  sin   0  sin  (k1  k 2   0  Vx  V y )



Vy
dT
g
m
0  g
dV y
(41)
Занесем все постоянные сомножители в некоторые, опять же постоянные для
данной конкретной задачи, безразмерные комбинации параметров:
a
 0  k1
mg
и
b
 02  k 2
mg
(42)
Получим:
dV y
dT
  sin   a  V y  sin   b  Vx2  V y2  V y  sin 
(43)
Проведя аналогичные расчеты и подстановки для других уравнений системы,
получим новую систему уравнений, описывающих движение тела:
dV y
dT
dVx
 a  Vx  sin   b  Vx2  V y2  Vx  sin 
dT
(44)
  sin   a  V y  sin   b  Vx2  V y2  V y  sin 
45)
9
Vx
dX

dT 2  cos 
(46)
dY 2  V y

dT sin 
(47)
В любой физической задаче учитываются крайние (или граничные)
условия, которые могут быть, например, начальными:
 xo
 cos 
0
(48)
 y0
V y (0) 
 sin 
0
(49)
V x (0) 
X ( 0) 
x
0
S
(50)
Y ( 0) 
y
0
h
(51)
Данные начальные условия были выведены из подобия треугольников (см.
рисунок).
Таким образом, становится понятна роль обезразмеривания –
установление законов подобия. При постановке задачи имеем набор начальных
параметров: m, g, υ0, k1, k2, ускорение нулевое; после обезразмеривания имеем
a, b, α. Смысл обезразмеривания: при изучении двух различных движений с
отличающимися параметрами, таких, что для них a, b, α одинаковы, то и
движения будут качественно, но не количественно, одинаковы, другими
словами – одинаков характер движения. Опять же количество безразмерных
параметров меньше количества абсолютных, что значительно упрощает
вычисления.
Рассмотрим случай, когда квадратичной составляющей можно
пренебречь, т.е. b=0, тогда имеем следующую систему уравнений:
V x (T )   dV x   (a  V x  sin  )dT  cos   e  asin T
(52)
V y (T )   dV y   ( sin   a  V y  sin  )dT 
 sin   (1 
1
1
)  e asin T 
a  sin 
a
X (T )   dX  
Vx
1
dT 
 (1  e asin T )
2  cos 
2  a  sin 
(53)
(54)
10
Y (T )   dY  
2 Vy
sin 
dT 
2
1
2
 (1  e  asin T )  (1 
)  T
a
a  sin 
a
(55)
Решив два последних уравнения системы, получим уравнение траектории
движения тела:
1 
2

Y (T )  41 
 ln( 1  2  a  X  sin  )
 X  2
a  sin 2 
 a  sin  
(56)
Модель готова, остается только написать программу. В данном
методическом пособии приведены две программы, составленные для одной
модели: одна использует для расчета траектории метод приближенного
вычисления Рунге-Кутта, а вторая основывается на решении математических
выражений, описывающих физические законы.
Пример 1.
Program
Uses crt, graph;
Type g = array [1..4] of real;
Const A = 0; B = 0.1; {параметры модели}
Al = Pi/4; {}
H = 0.0001; Hpr = 0.1; {}
Var N, I, M, L, K : integer;
Y0, Y : G; X0, X, Xpr, A1, B1, Cosinus, Sinus : real; LS : string;
Function Ff (I:integer; X:real: Y:G) : real;
{описание правых частей дифференциальных уравнений}
begin
case I of
1:
Ff:=-Al*Sinus*Y[1]
–
B1*Sinus*sqrt(sqr(Y[1])
+
sqr(Y[2]))*Y[1];
2: Ff:=-Sinus – Al*SinusY[1] – B1*Sinus*sqrt(sqr(Y[1]) +
sqr(Y[2]))*Y[2];
3: Ff:= Y[1]/(2*Cosinus);
4: Ff:= 2*Y[2]/Sinus
end
end;
Procedure Runge_Kut (N : integer; var X : real; Y0 : G; var Y : G; H : real);
{метод Рунге-Кутта четвертого порядка}
var I : integer;
begin
for I;=1 to N do
F[I]:= Ff(I, X, Y);
End;
Begin
Right(X, Y0, k1); X:= X + H/2;
For I:=1 to N do
Z[I]:=Y0[I]+H*K1[I]/2;
Right(X,Z,K2);
For I:=1 to N do
Z[I]:=Y0[I]+H*K2[I]/2;
Right(X,Z,K3);
X:=X+H/2;
11
For I:=1 to N do
Z[I]:=Y0[I]+H*K3[I};
Right(X,Z,K4);
For I:=1 to N do
Y[I]:=Y0[I]+H*(X1[Z]+2*K2[I]+2*K3[I]+K4[I])/6;
End;
{следующий блок – для получения численных результатов при одном наборе
параметров}
{Begin
Sinus:=Sin(Al); Cosinus:=Cos(Al); A1:=A; B1:=B;
Clrscr;
N:=4; X0:=0; Y0[1]:=Cosinus; Y0[2]:=Sinus; Y0[3]:=0;
Y0[4]:=0;
Writeln(‘ время
скорость
координаты’);
Writeln;
X:=X0; Xpr:=0; Y[4]:=Y0[4];
While Y[4}>=0 do
Begin
If X>=Xpr then
Begin
Writeln(‘t= ‘,X:6:3,’
Vx= ‘,Y0[1]:6:3,’ Vy=
‘,Y0[2]:6:3,’ X= ‘,Y0[3]:6:3,’ Y= ‘,Y0[4]:6:3);
Xpr:=Xpr+Hpr
End;
Runge_Kut(N,X,Y0,Y,H); Y0:=Y
End;
Writeln;
Writeln(‘для продолжения нажать любую клавишу’);
Repeat Until KeyPressed
End.}
{следующий блок – для изображения траекторий при нескольких наборах
параметров}
Begin
N:=4; {количество уравнений в системе}
X0:=0; Y0[1]:=Cosinus; {начальные условия}
Y0[2]:=Sinus; Y0[3]:=0; Y0[4]:=0;
SetColor(L); Line(400, 50+20*(L-1), 440, 50+20*(L-1));
OutTextXY(450, 50+20*(L-1), ‘1= ‘);
Str(L, LS); OutText XY(480, 50+20*(L-1),LS);
X:=X0; Y[4]:=Y0[4];
While Y[4]>=0 do
Begin
Runge_Kut(N, X, Y0, Y, H); Y0:=Y;
PutPixel(Abs(trunc(T0[3]*500)),
GetMaxYAbs(trunc(Y0[4]*500)), L);
End;
OutTextXY(10, 50, ‘для продолжения нажать любую клавишу’);
Repeat Until KeyPresssed;
End.
Пример 2.
Program pod_uglom;
Uses crt, graph;
Var
tp, tv, v0x, al, alf, g, t, dt, tmax, v, s, h, ds, dh, a, x, y, m, xmax, v0, hmax,
smax, vx, vy, x0, y0, ymax : real;
I, n, gd, gm, x1, y1 : integer;
12
Begin
Clrscr;
Writeln (‘ввести угол, x нач., y нач., v нач., массу тела, шаг по времени,
коэф. Сопротивл.’);
Readln (alf, x0, y0, v0, m, dt, a);
g:=9.9;
al:=(pi/180)*alf;
t:= 0;
s:=0;
y:=y0;
n:=trunc(tv/dt);
gd:=detect;
initgraph (gd, gm, ‘’);
if graph result <> grok then write (‘ошибка’);
setcolor (3);
line (0, getmaxy, getmaxx, getmaxy);
line (0, 0, 0, getmaxy);
moveto (0, getmaxy);
{writeln (‘v0x = ‘,(v0*cos(al)):10:3,’ v0y = ‘, (v0*sin(al)):10:3,
‘ v0 = ‘, (sqrt(sqr(v0*cos(al))+sqr(v0*sin(al)))):10:3)}
while vy >= 0 do
begin
t:=t + dt;
v0x:= v0*cos(al);
vx:= ((m*v)x)/(m + (a*t)));
v0y:= v0*sin(al);
vy:= ((m*(v0y-(g*t))/(m + (a*t))));
ay:= -g – a*(v0y – g*t)/(m + a*t);
if vy < 0 then ymax:=y;
if vy >=0 then
begin
s:= v0x*t – (a*v0x*sqr(t)/(2*(m + a*t)));
x:= x0 + s;
x1:= round(x);
h:= ((v0y*t) + (ay*t*t)/2);
y:= y0 + h;
y1:= round(y);
end;
v:= sqrt(sqr(vx) + sqr(vy));
{writeln(‘t ‘,t:8:3,’ vx ‘,vx:10:3,’ vy ‘,vy:10:3,’ v
‘,v:10:3,’ x ‘,x:10:3, ‘ y ‘, y:10:3);}
lineto(x1,(getmax – y1));
end;
tp:= v0y/g;
ymax:= y; {ymax:=yo + ((v0y*v0y)/g)*(1-(ay/2*g))}
{writeln(‘ymax – ‘,ymax:10:3,’ м’,’ время подъема - ‘, tp:8:3,
‘ c ‘);}
t:=tp;
repeat
begin
t:=t + dt;
v0x:=v0*cos(al);
vx:= (m*v0x)/(m + (a*t));
vy:=((m*g*(t-tp))/(m-(a*(t-tp))));
ay:=g*(1+(a*(t-tp))/(m – a*(t-tp)));
s:=v0x*(t) – ((a*v0x*(t)*(t))/(2*(m + (a*t))));
x:=x0+s;
x1:=round(x);
h:=(ay*(t-tp)*(t-tp))/2;
y:=(ymax – h);
13
y1:=round(y);
v:=sqrt(sqr(vx) + sqr(vy));
{writeln(‘t ‘,t:8:3,’ vx ‘,vx:10:3,’ vy ‘,vy:10:3,’ v
,v:10:3,’ x ‘,x:10:3,’ y ‘,y:10:3);}
lineto(x1,(getmaxy – y1));
until y <0;
end;
tv:=sqrt((2*m*ymax)/(m*g – a*vy))
xmax:=x0 + v0x*tv – ((a*v0x*tv*tv)/(2*(m + (a*tv))));
{writeln(‘дальность полета - ’,xmax:10:3,’ м ‘,’ высота
‘,ymax:10:3,’ м ‘,’ время - ‘, tv:8:3,’ c ‘ );}
readln;
closegraph;
end.
4
3
2
1
5
Х
Рис.3 Траектории движения тела, брошенного под углом к горизонту при:
α = 60о (кривые 1-4), Х0 = 0, У0 = 0 (кривые 1-5), υ0 = 60 м/с (кривые 1-4), υ0 =
80 м/с (кривая 5), dt = 0.05 с (кривые 1-5), m = 8 кг, А = 0.0 (кривая 1), А = 0.5
(кривые 2,5), А = 1.0 (кривая 3), А = 2.0 (кривая 4).
Электричество.
В следующем примере рассмотрим движение заряженных частиц.
Потенциал электростатического поля в любой точке (x,y) для двух зарядов
определятся по формуле:
 ( x, y) 
q1
40 r1

q2
40 r2
,
(1)
14
где r1 и r2 – расстояния от зарядов q1 и q2 до точки с координатами (x,y),
иными словами, радиус-векторы:
r2  (l  x) 2  y 2
и
r1  x 2  y 2 ,
(2)
где l – расстояние между точечными зарядами.
Тогда выражение (1) примет вид:
q1
q2
1
1
.
 
4 0 x 2  y 2 4 0 l 2  2lx  x 2  y 2
 ( x, y)  
M i, j
(3)
Для построения эквипотенциальных поверхностей зададим матрицу
в n столбцов и n строк:
i = 0 … n, j = 0 … n, определяющую
значения потенциалов. Следующим шагом определим матрицу значений, в
которой строки и столбцы соответствуют значениям x и y , а величина
элемента определяет координату z=(x,y):
xi 
2l
l
 i  0.00001m 
n
2.5
yj 
l
l
 j  0.00001m 
n
1.9
(4)
M i , j   ( xi , y j )
Вычисляя потенциалы последовательно в каждой точке, можно
смоделировать эквипотенциальные поверхности в виде карт линий уровня,
хотя можно отобразить и в виде таблицы.
Решим задачу движения заряда в поле другого заряда, причем знаки
зарядов значения не имеют. Составим систему уравнений, позволяющую
описать движение зарядов на основе законов механики и закона Кулона:
dx
 x
dt
dy
y
dt
d x
q1  q 2
F
 ax   
r 
dt
m
4  m 0    r 3
q1  q 2
x


2
4  m   0   ( x  y 2 ) 3
d y
dt
 ay 
(5)
q1  q 2
F
y


m
4  m   0   ( x 2  y 2 ) 3
где x, y - координаты каждой точки траектории движения заряда в
любой момент времени;
15
 x , y
- составляющие скорости движения зарядов по оси абсцисс и
оси ординат соответственно;
F – результирующая сила, вызывающая движение заряженной
частицы во времени и в пространстве;
m – масса движущейся частицы;
ax , ay - составляющие ускорения движения заряда по оси абсцисс и
оси ординат соответственно;
εo – электрическая постоянная, фундаментальная физическая
величина, равная 8.85·10-12 Кл2/(н·м2) (Ф/м);
ε – диэлектрическая проницаемость среды, зависит от свойств среды,
табличная величина;
q1 , q2 - величины зарядов.
Способ
решения
данной системы
уравнений
выбирается
самостоятельно. Результат моделирования выводится на экран компьютера в
виде траектории движения, т.е. – графически.
Пример программы для определения траектории движения заряда
(надо напомнить, что это не единственный вариант рабочей программы, а
лишь пример).
Program electr;
Uses graph, crt;
Var
n,x1,x2,y1,y2,q1,q2,gd,gm : integer;
G,a2,r,ax,ay,x,y,v2x,v2y,t,dt,m2,v2,k,l : real;
Begin
Clrscr;
Write(‘ввести заряд q1, координаты x1, y1, шаг по времени,
цвет’);
Readln(q1,x1,y1,dt,n);
Write(‘ввести заряд q2, координаты x2, y2, массу, скорость
нач. v2, угол между v2 и y’);
Readln(q2,x2,y2,m2,v2,a);
a2:=(a*pi)/180;
k:=9000000000.0;
{Н∙м2/Кл2}
gd:=detect; gm:=detect;
initgraph(gd,gm,’’);
setcolor(n);
circle(x1,y1,6); circle(x2,y2,2); {диаметры}
g:=9.8;
t:=0;
x:=x2;
y:=y2;
moveto(round(x), round(y));
v2x:=v2*sin(a2); v2y:=v2*cos(a2);
line(x2,y2,trunc(x2+v2x*10),trunc(y2+v2y*10));
{направл.
нач. скор.}
while(x<getmaxx) or (y<getmaxy) do
begin
if v2=0 then begin
{r:=sqr(x10x)+sqr(y1-y));}
{квадрат
расстояния}
ax:=k*q1*q2/(m2*sqr(x1-x));
ay:=(k*q1*q2)/(m2*sqr(y1-y));
x:=x2+(ax*sqr(t)/2);
y:=y2-(ay*sqr(t)/2);
t:=t+dt;
end;
if v2<>0 then begin
{r:=sqr(x10x)+sqr(y1-y));}
расстояния}
{квадрат
16
ax:=k*q1*q2/(m2*sqr(x1-x));
ay:=(k*q1*q2)/(m2*sqr(y1-y));
x:=x2+(v2x*t)+(ax*sqr(t)/2);
y:=y2+(v2y*t)-(ay*sqr(t)/2);
if (x>getmaxx) or (x<0) or (y>getmaxy) or
(y<0) then exit;
t:=t+dt;
end;
lineto(trunc(x), trunc(y));
readln;
end;
readkey;
closegraph;
end.
q2
q1
Рис.4
Траектория движения заряда в присутствии другого
заряженного тела.
Следующей задачей выберем построение силовых линий двумерного
электрического поля. Для этого необходимо сначала вычислить значения
напряженности электрического поля в точке с координатами x, y по формуле:
n
E (r )  k  
i 1
qi
r  ri
3
 (r  ri )
где E(r) – напряженность электрического поля в точке r;
(6)
17
ri - координата неподвижного i-го заряда;
r - координата точки (x,y).
Таким образом, вычислим значения E x и E y . Далее выбираем малый отрезок
в точке (x,y) длиной ΔS в направлении напряженности поля E:
x  S 
Ex
E
y  S 
и
Ey
(7)
E
Затем проводим следующий малый отрезок от новой точки (x+Δx,
y+Δy). Продолжаем эту процедуру до тех пор, пока силовая линия поля не
уйдет в бесконечность или к противоположному заряду. Фактически длина
малого отрезка является шагом изменения искомой величины, а именно
траектории.
Следующим этапом моделирования является постепенное увеличение
количества неподвижных точечных зарядов.
Если необходимо представить трехмерную картину движения, то
необходимо добавить третью координату z и, соответственно, ввести
составляющую напряженности электрического поля Ez .
Следующий тип задач касается нахождения электрического поля
однородно заряженных поверхностей, например, однородно заряженной
пластины, либо моделирования движения заряженной частицы в поле одной
или нескольких заряженных поверхностей.
z
y
x
a
Рис.5
Равномерно заряженная пластина, ориентированная в пространстве.
Имеем пластину со стороной «а», ориентированную неким образом в
пространстве, несущую на себе полный электрический заряд Q. Из теории
электрического поля известно, что при значении a   , электрическое поле,
образованное такой поверхностью, нормально к плоскости пластины и равно:
E

2 0  
(8)
где величина σ представляет собой поверхностную плотность заряда и
определяется как :
 
Q
a2
(9)
18
и измеряется, соответственно, в Кл/м2. Тогда напряженность электрического
поля пластины можно записать как:
E
Q
a  2 0 
2
(10)
Нам же требуется рассчитать электрическое поле однородно
заряженной пластины конечных размеров. Для этого разобьем пластину на NN ячеек (сетку) таких малых, чтобы точечный заряд dq был бы равен:
dq 
Q
N2
(11)
На самом деле легче рассчитать скалярную величину – потенциал, а
не векторную величину напряженности поля от количества точечных зарядов,
равного N2. Потенциалом электрического поля называется физическая
величина, представляющая собой работу этого поля по перемещению
единичного точечного заряда из точки поля в бесконечность. В этом случае
надо записать выражение, позволяющее вычислять потенциал электрического
поля φ в любой его точке:
 (r ) 
q
4   0    r
(12)
В двумерном случае будем определять φ(у), а следовательно и Е у, т.к.
E (r )   (r )
(13)
В качестве начального приближения можно выбрать размер пластины,
например, один квадратный сантиметр, величину заряда – 1 Кл, число ячеек,
равное десяти. Произведя первое приблизительное вычисление, далее
необходимо увеличить значение N, т.е. увеличить разбиение, до тех пор, пока
значения потенциалов не перестанут существенно изменяться, иными словами,
пока разность между предыдущим и текущим значениями φi и φi-1 не будет
превышать заданную погрешность вычислений.
Есть смысл построить графики φ(у) и Еу(у) и сравнить эти
зависимости с аналогичными характеристиками для бесконечной пластины на
средних расстояниях и точечного заряда на больших расстояниях.
Во многих случаях месторасположение исходных зарядов неизвестно,
а известен лишь потенциал на границах рассматриваемых областей, так как
расположение
зарядов
зачастую
определяется
неоднородным
их
распределением, которое зависит от формы объекта. Таким образом, имеем
задачу определения потенциала внутри ограниченной области, в которой нет
зарядов, при этом известен потенциал на границе данной области. Такая задача
называется краевой.
Метод ее решения (в нашем случае – это нахождение φ(x,y,z)),
основан на решении уравнения Лапласа, которое в декартовой системе
координат имеет вид:
 2 ( x, y, z ) 
 2  2  2


0
x 2 y 2 z 2
(14)
19
Частным случаем уравнения (14) является уравнение потенциала на плоскости:
 2  2
  ( x, y )  2  2  0
x
y
2
(15)
Для решения уравнений (14) и (15) необходимо использовать численные
методы приближенных расчетов, например:
1
 (( ( x  x, y )   ( x  x, y ) 
4
  ( x, y  y )   ( x, y  y ))
 ( x, y ) 
(16)
Таким образом, потенциал пластины равен среднему по соседним ячейкам
справа – слева, сверху – снизу.
Алгоритм расчета потенциала на плоскости методом релаксации:
-
разбиение рассматриваемой области сеткой;
деление ячеек на граничные и внутренние с присвоением каждой
граничной ячейке значения потенциала всей области;
присвоение всем внутренним ячейкам произвольного потенциала,
лучше какое-либо разумное начальное приближение;
вычисление на первом шаге нового потенциала для всех внутренних
ячеек – первая итерация процесса релаксации;
повторение предыдущего пункта до тех пор, пока потенциал
внутренних ячеек не будет меняться в пределах заданной точности.
Колебания
Колебанием называется движение некоего объекта по одной и той же
траектории между двумя предельными положениями. В данном курсе будут
рассмотрены колебания физического и математического маятников.
Для моделирования колебаний можно воспользоваться алгоритмом
Эйлера – Кромера, заключающимся в приближении по «последней точке»:
x n 1  x n   n 1  t
(1)
 n 1   n  a n t
Самый эффективный путь улучшения метода Эйлера состоит в использовании
для вычислений нового значения координаты средней на отрезке скорости.
Тогда соответствующий метод «средней точки» можно записать следующим
образом:
 n 1   n  a n t
(2)
x n 1  x n 
1
 ( n 1   n )  t
2
Подставляя первое уравнение системы во второе, получим выражение для
определения х:
20
x n 1  x n 
1
1
 (2   n  a n  t )  t  x n   n t   a n  (t ) 2
2
2
(3)
Таким образом, метод «средней точки» - это метод второго порядка
точности по координате и первого порядка точности по скорости.
Более точным является метод полушага, в котором средняя скорость
на отрезке принимается равной значению скорости в середине отрезка:
 n 1 / 2   n 1 / 2  a n t
(4)
x n 1  x n   n 1 / 2  t
Для вычисления значения υ1/2 (при n =0) используют следующую замену:
1
2
1 / 2   0   a 0  t
(5)
Другим наглядным примером колебательного движения является
математический
маятник.
Математическим
маятником
называется
идеализированная система, состоящая из частицы или тела массой m,
прикрепленной к нижнему концу жесткого стержня длиной l с пренебрежимо
малой массой, верхний конец которого вращается без трения в точке подвеса.
Известно, что колебания математического маятника описываются
законом «косинуса»:
 g 
x(t )  A  cos( wt )  A  cos
 t 
l


(6)
где :
w  2    
2  2 
g



T
2 
l
g
l
(7)
Перепишем уравнение, описывающее движение маятника:
d 2
g
   sin 
2
l
dt
(8)
или при малых углах отклонения, когда φ → 0 и соответственно sinφ ~ φ (в
силу определения функции синус) выражение (8) примет вид:
d 2
g
g
   sin     
2
l
l
dt
(9)
Перепишем это уравнение в другом виде:
d 2 g
  sin   0
l
dt 2
(10)
Выражение (10) фактически связывает вторую производную координаты (в
нашем конкретном случае координатой является малый угол поворота) по
21
времени с самой координатой. Тогда для нахождения закона изменения
координаты по времени необходимо взять двойной интеграл данного
уравнения.
d 2
g
    sin   dt 2 
2
l
dt
g
g
    sin   dt 2   sin 
l
l
x(t )  
(11)
Подставив выражение (7) в уравнение (11), получим выражение для
определения координаты малых колебаний:
x(t ) 
 g 
g
 sin 
 t 
l
l


(12)
В случае отклонений от положения равновесия, отличных от малых,
обратимся к уравнению расчета полной энергии механических колебаний:
1
 d 
E  ml 2 
  mgl (1  cos  )
2
 dt 
2
(13)
При малых углах cos  стремится к единице и, следовательно (1- cos  )
стремится к нулю, тогда полная энергия колебаний стремится к выражению:
E
1 2  d 
ml 

2
 dt 
2
(14)
При больших углах (вплоть до φ → π/2) cos  стремится к нулю и
соответственно (1- cos  ) стремится к единице, и выражение для полной
энергии примет вид:
2
 l  d  2

1 2  d 
E  ml 
  mgl  ml  
  g 
2
 dt 
 2  dt 

(15)
Вследствие того, что колебания описываются законом косинуса,
график функции которого известен, то легче контролировать правильность
решения поставленной задачи.
Кроме координаты можно рассчитать изменение скорости во времени:

dx
, а также изменение во времени кинетической, потенциальной энергий
dt
и относительное изменение полной энергии механических колебаний:
E  E0
.
E0
В лабораторных задачах по данной теме предполагается расчет
параметров колебаний как для малых смещений, так и для углов, больших
одного радиана. При этом очевидно, что значения m, l,g и dt задаются.
Желательно решить задачу с применением численных методов
вычисления и затем сравнить полученный результат с вычислениями,
22
проведенными
по
формулам,
колебательного движения тела.
описывающим
физические
законы
Элементы гидроаэродинамики.
Рассмотрим пример расчета атмосферного давления и плотности
воздуха в зависимости от высоты над поверхностью Земли.
Атмосферное давление можно вычислять по двум формулам:
упрощенной – ph(h) – при условии постоянства температуры воздуха и по
точной - p(h) - , учитывающей зависимость температуры от высоты над
поверхностью Земли. Эти формулы позволяют рассчитать атмосферное
давление и плотность воздуха ρ(h) на высотах над поверхностью Земли от
нуля до приблизительно 11 километров.
Атмосферное давление при постоянной температуре на различных
высотах над поверхностью Земли вычисляется из выражения:
ph(h)  p(0)  e

h
7.99
(16)
где
p(0)=101.325 кПа – давление на нулевой высоте;
h – высота над поверхностью Земли, выраженная в километрах.
В случае зависимости температуры от высоты выражения для
вычисления атмосферного давления и плотности воздуха соответственно
принимают вид:
 6 .5  h 
p ( h )  p ( 0)   1 

T 

5.255
(17)
где
Т – температура воздуха, на высоте 0 < h < 11 км температура
принимается равной в среднем 288 К (15 оС). Строго говоря, в таком интервале
высот температура также не является постоянной.
 6 .5  h 
 ( h )   ( 0)   1 

T 

4.255
(18)
где ρ(0) – плотность воздуха у поверхности Земли, принимается равной 1.2255
г/см3.
Пример программы расчета давления и плотности воздуха в
зависимости от высоты над поверхностью Земли.
Program vozd;
Uses crt, graph;
Var t, dt, p, ph, h, p0, ro0, ro, x, y : real;
I, gd, gm : integer;
Procedure grafik(x, y : real; I : integer);
Begin
Putpixel(round(x*10), 440-round(y),i);
End;
Begin
Clrscr;
23
Writeln(‘ввести начальное давление p0, плотность воздуха ro0,
температуру t, приращение высоты dh’);
Readln(p0,ro0,t,dh);
Gd:=detect; gm:=detect;
Initgraph(gd,gm,’’);
{line(0,180,300,180); line(0,360,300,360);}
line(0,440,300.440);
line(0,0,0,440);
h:=0;
ph:=p0;
p:=p0;
ro:=ro0;
while h<=20 do {}
begin
ph:=p0*exp(-h/7.99);
p:=p0* exp(5.255*ln(1-6.5*h/t){exp((ln(5.255))*(16.5*h/t))}{ln((1-6.5*h/t)*exp(5.255))};
ro:=ro0*exp(4.255*ln(1-6.5*h/t){exp((ln(4.255))*(16.5*h/t))}{ln(1-6.5*h/t)*exp(4.255)};
h:=h-dh;
grafik(h,ph,14);
grafik(h,p,3);
grafik(h,ro,9);
end;
readln;
setcolor(white);
outtextXY(330,400,’желтая – ph, голубая – p, синяя – ro’);
readkey;
end.
p, ph, ρ
1
2
3
высота
1 – расчет изменения атмосферного давления с высотой по уточненной
формуле
2 – расчет изменения атмосферного давления с высотой по приближенной
формуле
3 – расчет изменения плотности воздуха с высотой
Рис.6
Изменение с высотой плотности воздуха и атмосферного давления,
рассчитанное различными способами.
24
Предыдущий пример относился к гидроаэростатике, теперь же
рассмотрим пример из гидроаэромеханики - найдем скорость истечения
жидкости из малого отверстия в открытом сосуде.
1
2
2
h1
h2
Рис.7
Запишем уравнение Бернулли для сечений 1 и 2:
p1    g  h1 
  12
2
   22
 p 2    g  h2 
2
(19)
где
p1 и p2 - давления, действующие в первом и втором сечениях
соответственно;
ρ – плотность жидкости;
g – ускорение свободного падения;
h1 и h2 – расстояние от поверхности опоры (дна сосуда) до центра
первого и второго сечений;
υ1 и υ2 – скорости истечения жидкости через первое и второе сечения
соответственно.
В случае открытого сосуда давления p1 и p2 будут равны между собой
и тогда формула (19) принимает следующий вид:
  g  h1 
  12
2
   g  h2 
   22
2
(20)
Так как по условию задачи площадь второго сечения значительно
меньше первого, то скорость истечения жидкости через второе сечение
значительно больше скорости истечения жидкости через первое сечение, и
следовательно:
  12
2

   22
2
  g  h1    g  h2 
   22
2
(21)
или, сократив плотности, получим выражение для нахождения скорости
течения жидкости при постоянной ее плотности:
g  h1  g  h2 
 22
2
Из уравнения (22) получаем формулу Торричелли:
(22)
25
 2  2  g  (h1  h2 )
(23)
Скорость потока газа можно вычислить, исходя из следующих
соотношений:
p0  pатм    g  h
(24)
и
  2
2
   g  h
(25)
Следовательно, скорость потока газа с учетом равенства:
p0  p  p  p атм    g  h1  p атм    g  h2    g  h
(26)
определяется по формуле:

2    g  h


2  p

(27)
Как видно из последнего выражения эта зависимость не является линейной.
Один из вариантов программы для определения скорости вытекания жидкости
из открытого резервуара через малое отверстие.
Program truba;
Uses crt,graph;
Var v : array[1..10000] of real;
Gd,gm,n,I : integer;
T, dt, p, p0, ro, patm, h, h1, h2, g, dh, dp, dv : real;
Begin
Clrscr;
Writeln(‘ввести плотность жидкости ro, уровень жидкости в сосуде h1,
уровень выпускного отверстия h2, атмосферное давление patm’);
Readln(ro, h1, h2, patm);
G:=9.8;
N:=100;
Dh:=(h1-h2)/n;
H:=h1;
Dt:=0.1;
P0:=patm+ro*g*h1;
Gd:=detect;
gm:=detect;
Initgraph(gd,gm,’’)’
Line(0,350,550,350);
Line(0,0,0,350);
While h>=h2 do
Begin
Dp:=ro*g*(h-h2);
V[i]:=sqrt(2*dp/ro);
H:=h-dh;
{writeln(v[i]);}
putpixel(round(h*3),round(350-v[i]*3),3);
putpixel(round(t*10),round(350-v[i]*3),14);
t:=t+dt;
end;
26
readln;
setcolor(white);
outtextXY(100,400,’голубая – скорость от высоты, желтая – скорость
от времени’);
readln;
closegraph;
end.
скорость
1
2
высота, время
Рис.8
Изменение скорости истечения жидкости из трубы от:
1 - высоты
2 – времени.
Теплоемкость.
В этом разделе моделирования физических процессов коснемся
расчетов теплоемкости физических тел и распределения температуры по длине
стержня в заданном интервале температур. Теплоемкостью называется
физическая величина, численно равная количеству теплоты, которое
необходимо сообщить телу для нагревания его на один градус.
Сначала рассмотрим расчет теплоемкости металлов по Дебаю. Как
известно, теплоемкость по Дебаю вычисляется по формулам:
1/ z
cV ( z )  9 Rz 
3

0
ex
x  x
dx
(e  1) 2
4
(1)
где z=T/θ : T – температура, θ - характеристическая температура Дебая, строго
определенная величина для каждого конкретного металла и равная

 
k
(ħ – постоянная Планка, ν – частота, k – постоянная Больцмана); x –
переменная величина, меняющаяся от нуля до 1/z или от 0 до z; R –
универсальная газовая постоянная, равная 8.314 кДж/(кмоль·К). Единицы
измерения теплоемкости [Дж/К], удельной теплоемкости – [Дж/кг·К].
27
z
cV 
9R
ex
4

x

dx
z 3 0
(e x  1) 2
(2)
в этом случае за z обозначено отношение z=θ/T, поэтому выражение (2) имеет
несколько отличный от выражения (1) вид.
Для решения интеграла (1) или (2) удобно использовать метод
Симпсона, согласно которому интервал, в котором необходимо вычислить
определенный интеграл, подразделяется на 2n (или же n) отрезков.
b

a
f ( x)dx  S 2 n 
2n
2n
ba 

f
(
x
)

f
(
x
)

4

f
(
x
)

2

f ( x 2i )


0
2
n
2
i

1

6n 
i 1
i 1

(3)
Ошибка вычисления данным методом уменьшается пропорционально длине
интервала в четвертой степени. Ниже приведено примерное исполнение
метода Симпсона для нашего случая:
F(x):=x4*exp(x)/(exp(x)-1)2;
N:=4;
S1:=0;
H:=(b-a)/n;
S:=f(b);
For i:=1 to n-1 do
Begin
X:=a+i*h;
S:=S+4*f(x);
For i:=2 to n-2 do
Begin
X:=a+i*h;
S:=S+2*f(x);
End;
S:=S+f(a);
S:=(S*9*R)/(z*z*z);
If abs(S-S1)<abs(S)*Ө/100 then writeln(CV);
If H>2500 then writeln(‘не достигнута заданная точность’);
S1:=S/(2*n);
{снова в начало программы до S=0}
В качестве нижнего предела интегрирования принимается малое
а=0.00001, т.к. нахождение значения функции при а=0 весьма проблематично.
Требуемая точность интегрирования составляет 0.01% (0.0001).
Заданием
является
построение
графической
зависимости
теплоемкости по Дебаю от параметров z и 1/z.
Значения θ/Т изменяются от нуля до 2.0 с шагом 0.05, от 2.0 до 4.0 с
шагом 0.1, от 4.0 до 8.0 с шагом 0.2, от 8.0 до 10.0 с шагом 0.4, от 10.0 до 14.0 с
шагом 1.0.
Рассмотрим задачу распределения температуры в стационарных
условиях в многослойном стержне. По условиям задачи нам должны быть
известны следующие параметры: длина l, площадь сечения стержня s,
температура на концах стержня Tнач и Tкон. Для успешного моделирования
зададим число слоев стержня n, или другими словами длину элементарного
участка стержня. Расчет распределения температуры по длине стержня
производится по рекуррентной формуле:
28
Ti  Ti 1 
li 1
 Q
Ki s
(4)
где Ti и Ti-1 – температура текущего слоя стержня и предыдущего;
li – длина элементарного отрезка стержня, равная L/n;
Ki – коэффициент термической проводимости i-го слоя;
Q – параметр, рассчитываемый как:
Q
T0  Tn
n
li

i 1 K i  s
(5)
i – текущий слой, изменяется от 1 до n.
Один из вариантов программы для расчета распределения температуры по
длине стержня.
Program temp_sterg;
Uses graph, crt;
Var T1, Tm, Lm, Tqn, Li, L,K, Q, S, sum : real;
I, m, n, gd, gm, x, y : integer;
T, Tq : array[1..10000] of real;
Begin
Clrscr;
Writeln(‘ввести начальную, конечную температуру, коэ-т термич.
Проводимости К, площадь, длину стержня, количество слоев’);
Readln(T1, Tm, K, S, Lm, m);
sum:=0.00001; {малое число}
Li:=Lm/m;
For i:=1 to m do
Begin
Sum:=sum+(Li*i/K*S);
End;
Q:=(T1-Tm)/sum;
T[1]:=T1;
For i:=2 to m do
Begin
Tq[i]:=(Q*(Li*i)/K)/S;
T[i]:=T[i-1]-Tq[i];
Writeln(‘длина м ’,’ Q ‘,’температура К’);
Writeln((Li*i):6:2, Q:8:2, T[i]:10:3);
End;
Readln;
Gm:=detect;
gd:=detect;
Initgraph(gm,gd,’’);
Line(0,300,getmaxX, 300);
Line(0,0,0,300);
Moveto(0,getmaxy-round(T[1]));
For i:=1 to m do
Begin
X:=round(100*Li*i);
Y:=round(t[i]);
Lineto(x,getmaxy-y);
End;
Outtextxy(100,350,’по оси х – длина стержня, по оси у - температура’);
Readln;
Closegraph;
Writeln(‘ввести длину от начала стержня ’);
29
Readln(L);
T[1]:=t1;
N:=trunc(L/Li);
For i:=2 to n do
{while (Li*i)< L do}
Begin
Tq[i]:=Q*(Li*i/K)/S;
T[i]:=T[i-1]-Tq[i];
End;
{i:=i+1; end;}
Writeln(‘длина метры, температура К’);
Writeln(L:=6:2, T:10:3);
Readkey;
End.
температура
длина
стержня
Рис.9
Изменение температуры стержня по длине стержня.
По этой же теме можно привести программу об остывании, например,
кофе.
Имеются экспериментальные данные о температуре горячего кофе через
одинаковые промежутки времени. Данные приведены в виде таблицы.
30
время
мин
0
1.0
2.0
3.0
4.0
5.0
6.0
7.0
Температура
о
С
83.0
77.7
75.1
73.0
71.1
69.4
67.8
66.4
Время
Мин
8.0
9.0
10.0
11.0
12.0
13.0
14.0
15.0
Температура
о
С
64.7
63.4
62.1
61.0
59.9
58.7
57.8
56.6
В этом случае имеется возможность проверки правильности составленной
модели. Будем считать, что скорость изменения температуры кофе
пропорциональна разности температур (это справедливо при небольшой
разнице между температурой кофе и окружающей среды):
dT
  r  (T  Tsr )
dt
(6)
где T – температура в текущий момент времени, T sr – температура
окружающей среды, r – коэффициент изменения температуры, зависящий от
механизма теплопередачи, площади тела, контактирующего с окружающей
средой и тепловых свойств самого тела, “-” означает уменьшение температуры
тела, “+” – ее повышение. Температуру тела в каждый момент времени можно
найти, проинтегрировав выражение (6):
T   dT    r  (T  Tsr )  dt  r  (T  Tsr )  t  T0
(7)
Тогда уравнение для расчетов температуры можно записать следующим
образом:
Tt  T0  r  t  (Tt 1  Tsr )
(8)
Значение r можно определить из экспериментальных данных:
r
T0  Tn
t  (Tn  Tsr )
(9)
Ниже приводится примерный текст программы для определения
температуры тела в каждый момент времени.
Program cool;
Uses crt, graph;
Var gd, gm, errCode, ncalc : integer;
T, temperature, room_temp, r, dt : real;
Procedure initial(var t, temperature, room_temp, r, dt : real;
Ncalc : integer);
Var tmax : real;
Begin
31
T:=0/0;
Temperature:=83.0;
Room_temp:=22.0;
R:=0.05;
Tmax:=15.0;
Dt:=0.1;
Ncalc:=trunc(tmax/dt);
End;
Procedure output(t, temperature : real;
Begin
{Writeln(‘ время ‘,‘ температура ‘);}
{Writeln(t:8:3, temperature:real);}
putpixel(trunc(t*30), trunc(300-temperature*3),3);
end;
procedure Euler(var t, temperature, room_temp, r, dt : real; ncalc : integer);
var change : real;
icalc : integer;
begin
for icalc:=1 to ncalc do
begin
change:=-r*(temperature – room_temp);
temperature:=temperature + change*dt;
t:=t+dt;
output(t, temperature);
end;
end;
procedure mol(var Tk : real);
var t, room_temp, r, temperature, Tn1, dT, t1, t2;
begin
dT:=5.0;
r:=0.05;
t:=t1;
t1:=(temperature – dT – Tk)/(r*(Tk-Tsr));
Tn1:=10.0;
T:=t2;
T2:=Tn1/(r*(Tn1 – Tsr));
If t1>t2 then t:=t2;
Writeln(‘быстрее сначала остудить, потом добавить молоко’,
‘ t = t2 ’,t2:7:3);
writeln(‘дольше, если сначала молоко добавить, потом ждать’,
’ t = t1 ’,t1:7:3);
end;
begin
clrscr;
initial(t, temperature, room_temp, r, dt, ncalc);
gd:=detect;
gm:=detect;
initgraph(gd,gm,’’);
setcolor(15);
line(0,300,getmaxx,300);
line(0,0,0,300);
{moveto(0,round(300-temperature*3));}
Euler(t, temperature, room_temp, r, dt, ncalc);
Readln;
Mol(Tk);
End.
32
температура
время
Рис.10
Иллюстрация изменении температуры тела при естественном
остывании.
Тепловое излучение.
Графическое изображение зависимости светимости абсолютно
черного тела от частоты излучения при различных температурах имеет
характерный вид. Поэтому есть смысл смоделировать эту зависимость.
Светимость абсолютно тела можно рассчитать, вычислив интеграл от
спектральной плотности его излучения по приращению частоты.
Зависимость спектральной плотности излучения абсолютно черного
тела от частоты и температуры выражается формулой Планка:
 ( , T ) 
2 3  

c2
1
e

kT
,
(4)
1
где  - спектральная плотность излучения,
 - частота излучения, 1/с (Гц),
ħ – постоянная Планка, 6.6210-34 Дж/с,
c – скорость света в вакууме, 3108 м/с,
k – константа Больцмана, 1.3810-23 Дж/К.
Тогда энергетическая светимость абсолютно черного тела R(T)
вычисляется как:


R(T )    ( , T )  d  
0
0
2 3  

c2
1
e

kT
 d
1
(5)
33
Диапазон частот излучения можно выбрать следующий: 0∙10 13 Гц,
0.1∙10 Гц …3∙1014 Гц.
Температурный ряд выберем такой: 300 К, 300 К+700 К/51 … 1000 К.
13
program svetim;
{$N+}
uses crt,graph;
var n,d,n,d1,n1,h1,r,temp,h,k,c,c1 : double;
gd,gm,i : integer;
ro : array [1..5000] of double;
begin
clrscr;
writeln('ввести частоту и температуру');
readln(n,temp);
h:=6.62E-34;
c:=3E+8;
k:=1.38E-23;
gd:=detect; gm:=detect;
initgraph(gd,gm,'');
while n<=2E+14 do
begin
i:=i+1;
d:=exp((h*n)/(k*temp))-1;
n1:=exp(3*ln(n));
c1:=sqr©;
d1:=d+c1;
n1:=2*pi*n1*h;
ro[i]:=h1/d1;
r:=ro[i]*1E+12;
{writeln(n*1E-12,r);}
putpixel(round(n*1E-12),getmaxy-round(r),5);
n:=n+1E+11;
end;
readkey;
while temp<=5000 do
begin
i:=i+1;
d:=(exp((h*n)/(k*temp)))-1;
ro[i]:=(2*pi*h*exp(3*ln(n)))/(d*sqr(c));
{writeln(temp,ro[i]); }
putpixel(round(temp/20),getmaxy-round(ro[i]*1E+9),3);
temp:=temp+5;
end;
readkey;
closegraph;
end.
2
34
Рис.11
Изменение светимости “абсолютно черного тела” от
температуры (кривая 1) и от частоты излучения (кривая 2).
35
Общие рекомендации при выполнении лабораторной работы.
1. Целесообразно до начала компьютерной реализации модели
провести обезразмеривание переменных, входящих в уравнения, выявить
безразмерные комбинации параметров модели и дальнейшие действия
производить в безразмерных величинах.
2. Необходим контроль точности результатов и устойчивости
применяемого численного метода. Для этого достаточно ограничиться
эмпирическими приемами (например, сопоставление решений, полученных с
несколькими разными шагами по времени).
3. Целесообразно применять для моделирования стандартные методы
интегрирования систем дифференциальных уравнений, описанные в
математической литературе. Простейшие методы (метод Эйлера) часто
бывают неустойчивы, и их применение ведет к лишнему расходу времени.
4. Результаты моделирования следует выводить на экран в следующих
видах: таблицы зависимостей (в основном от времени), графики этих
зависимостей, траектории. Желательно динамические иллюстрации движения
тел, уместны звуковые сигналы.
5. При выводе результатов в виде таблиц следует учитывать, что
соответствующий шаг по времени не имеет практически ничего общего с
шагом интегрирования и определяется удобством и достаточной полнотой
восприятия результатов на экране. Выводимые числа следует разумным
образом форматировать.
6. При выводе результатов в графической форме графики должны
быть построены так, как это принято в литературе: с указанием размерности
по осям, масштаба и т.п.
7. Удобно сделать меню для выбора вида представления получаемых
результатов.
Порядок выполнения лабораторной работы.
1. Выписать математическую модель, определить состав набора
входных параметров и их конкретные числовые значения.
2. Если моделирование будет происходить в безразмерных величинах
(на усмотрение преподавателя), произвести обезразмеривание и найти набор
значений безразмерных параметров.
3. Спроектировать пользовательский интерфейс программы
моделирования, обращая особое внимание на формы представления
результатов.
4. Выбрать метод интегрирования системы дифференциальных
уравнений модели, переделать или создать новую программу интегрирования
с заданной точностью.
5. Произвести отладку и тестирование полной программы.
6. Выполнить конкретное задание из своего варианта работы.
7. Качественно проанализировать результаты моделирования.
8. Создать текстовый отчет по лабораторной работе, включающий:
- титульный лист (название работы, исполнитель, номер
группы и т.д.);
- постановку задачи и описание модели;
- результаты тестирования программы;
- результаты, полученные в ходе выполнения задания (в
различных формах);
- качественный анализ результатов.
36
Варианты заданий по дисциплине «Компьютерное моделирование в
естествознании. Физика».
1.
Заданы
уравнения
x1  2  t  0.2  t
2
и
движения
двух
автомобилей
x2  80  4  t . Составить программу и
получить на экране графики зависимостей x(t). По графикам
определить время и место встречи автомобилей. Предусмотреть
определение времени и места встречи автомобилей (координаты)
в программе.
2.
Составить программу и получить на экране график зависимости
давления газа от его объема при постоянной температуре и
неизменной массе.
3.
Составить программу и получить на экране график зависимости
объема газа от его давления при постоянной температуре и
неизменной массе.
4.
Составить программу и получить на экране график зависимости
давления газа от его температуры при постоянном объеме и массе
газа.
5.
Составить программу и получить на экране график зависимости
объема газа от его температуры при постоянном давлении и
массе.
6.
Составить программу и получить на экране график зависимости
силы тока в замкнутой электрической цепи от сопротивления его
внешнего участка, если ЭДС источника равна 12 В, а внутреннее
сопротивление равно 1.5 Ом.
7.
Составить программу и получить на экране графики зависимостей
x(t), υ(t), a(t) для тела, совершающего гармонические колебания,
если частота колебаний равна 0.5 Гц, амплитуда колебаний равна
0.02 м. По построенным графикам определить смещение тела от
положения равновесия через промежутки времени, равные 0.5 с,
1.5 с, а также сдвиг фаз колебаний скорости и координаты,
ускорения и координаты. Предусмотреть подобный расчет в
программе.
8.
Автомобиль-амфибия находится на берегу канала в точке А. Он
должен попасть в точку С на противоположном берегу, которая
находится на расстоянии ВС от точки В, расположенной
противоположно точке А. Ширина канала равна АВ. Скорость
амфибии по воде  в , по земле  з . Амфибия переправляется
через канал в направлении на точку D, находящуюся на
расстоянии x от точки В, а остальную часть пути совершает по
суше. Определить зависимость времени t, необходимого амфибии,
чтобы попасть в точку С, от расстояния x. При какой траектории
это время минимально? Составить программу расчета траектории
амфибии и получить на экране графики движения.
9.
Имеется «черный ящик», который включается в цепь постоянного
тока и содержит три соединенных между собой резистора
сопротивлениями R1 , R2 и R3 . Эти резисторы имеют
собственные выводы, т.е. на каждом из них можно измерять
напряжение. Известно, что сопротивления резисторов не равны
37
друг другу, а общее сопротивление любых двух из них не равно
третьему при любом соединении. Как определить сопротивление
«черного ящика»?
10.
Движение
тел
описывается
следующими
уравнениями:
и   3.
x  4t  5, x  4t ,
x  7t
Составить программу и получить на экране динамическую модель
движения тела с различными скоростями.
11.
Две тележки массами
m1 и m2 движутся навстречу друг другу со
скоростями 1 и  2 . Составить программу и получить на экране
динамическую модель движения тележек до и после их
неупругого столкновения друг с другом.
12.
Составить программу и получить на экране динамическую модель
движения тела, брошенного под углом к горизонту, варьируя
начальную скорость бросания и угол между вектором скорости и
горизонтом.
13.
Колесо электровоза, движущегося со скоростью 10 м/с, имеет
радиус 1 м. Необходимо рассчитать и построить траекторию
точки, лежащей на расстоянии 0.5 м от оси колеса. Считать, что в
начальный момент времени точка находится в самом нижнем
положении. Указать на траектории, где находилась точка в
момент времени t = 0.4 с и 0.8 с. Для этих же моментов времени
указать
значение
и
направление
скорости
движения
рассматриваемой точки.
14.
Зависимость спектральной плотности излучения (  ) абсолютно
черного тела от длины волны и температуры выражается
формулой Планка:

 2
1
 2   h
 c
  ( , T )  
 hc
3
  2 ,
 
k  T
e
1

где
h – постоянная Планка, равная 6.62∙10-34 Дж/с,
λ - длина волны, м,
c – скорость света в вакууме, равная
3∙108 м/с, Т – температура, К,
k – постоянная Больцмана,
равная 1.38·10-23 Дж/К. Составить программу и получить на
экране графическую зависимость спектральной плотности
абсолютно черного тела от длины волны.
15.
Зависимость спектральной плотности излучения (  ) абсолютно
черного тела от длины волны и температуры выражается
формулой Планка:

 2
1
 2   h
 c
  ( , T )  
 hc
3
  2 ,
 
k  T
e
1

где
h–постоянная Планка, равная 6.62∙10-34 Дж/с,
λ длина волны, м,
c – скорость света в вакууме, равная 3∙108
м/с, Т – температура, К,
k – постоянная Больцмана, равная
1.38·10-23 Дж/К.
Составить программу и получить на экране
графическую зависимость спектральной плотности абсолютно
черного тела от температуры.
16.
Утка летит по горизонтальной прямой с постоянной скоростью. В
нее бросил камень неопытный охотник, причем бросок был
сделан без упреждения, т.е. в момент броска камень был брошен
прямо в утку под углом  к горизонту. Определить при какой
38
высоте полета утки камень на излете может все же попасть в
утку? Сопротивлением воздуха, размерами утки и ростом
охотника можно пренебречь. Составить программу и получить на
экране графическую зависимость траекторий движения утки и
камня.
17.
Конденсатор заряжается
постоянным напряжением
от
источника электроэнергии с
U m . Ток через конденсатор задается
d
U c (t ) ,
по закону
dt
U  U m  U c (t ) .
U  I  R , в нашем случае
выражением:
ic  C 
Ома:
Составить программу и получить на экране графическую
зависимость напряжения на конденсаторе от времени, если U m =
220 В, R = 50∙103 Ом, t = 0, 0.0004,…,0.08 с, С = 1·10-7 Ф. 1
вариант:
решить
уравнение
-
 1 
2
вариант:
f (t )  U m  exp 
 t  U m ;
 ( RC ) 
d
1
U c (t ) 
 (U m  U c (t ))
решить уравнение
dt
R C
численным методом Рунге-Кутта. Напряжение на конденсаторе в
начальный момент времени U c (0) равно нулю.
18.
Космический объект массой 1000 кг подлетает к Луне. Когда
расстояние а от объекта до центра Луны, отсчитанное вдоль
направления начальной скорости  0 x , становится равным 21000
км, а прицельное расстояние р = 7000 км, то скорость объекта
0x
= 1500 м/с. Рассчитать траекторию полета вблизи Луны. Масса
Луны равна 7.3·1022 кг, радиус Луны равен 1700 км,
гравитационная постоянная G равна 6.67·10-11 Н·м2/кг2.
19.
Рассчитать
траекторию
полета
баллистической ракеты,
запущенной с Северного полюса со скоростью 7.2 км/с под углом
π/8 к горизонту. Радиус Земли 6.4·106 м.
20.
Построить эквипотенциальные поверхности электростатического
поля двух зарядов q1 = 2·10-8 Кл и q 2 = 10-8 Кл, находящихся друг
от друга на расстоянии 1 м,
0
= 8.85∙10-12 Ф/м.
21.
Частица массой 9·10-31 кг и зарядом +1.6∙10-19 Кл влетает в
магнитное поле индукцией В = 0.1 Тл под углом 30 о к линиям
поля. Проанализировать траекторию движения частицы при
различных начальных скоростях.
22.
Распределение температуры в стационарных условиях в
многослойном стержне можно вычислить по следующему
рекуррентному
выражению:
L
Ti  Ti 1  Q   i
 Ki
 1
  ,
 S
где
Q
(T  Tn )
,
Li

i 1 K i  S
0
iN
и Ti –
39
температура i-го слоя, Т0 и Тn – температура начального и
конечного слоя соответственно,
S – площадь поперечного
сечения стержня, Li – толщина i-го слоя, Ki – коэффициент
термической проводимости i-го слоя, измеряется в ккал/м·час∙Ко.
Написать программу для расчета температуры в любой точке
стержня.
23.
Известна угловая скорость вращения и вектор начальной
линейной скорости брошенной палки. Изобразить ее движение до
падания. Учесть сопротивление воздуха.
24.
Изобразить на экране модель атома произвольного химического
элемента: ядро и электроны, вращающиеся по своим орбитам.
Распределение электронов по орбитам задается. Орбиты должны
быть различной конфигурации. Учесть количество электронных
оболочек и число электронов на каждом энергетическом уровне.
25.
Составить программу и получить на экране динамическую
картинку праздничного фейерверка: взлет, разрывы, падение
пиротехнических ракет и их осколков (из нескольких стволов).
Желательны цветовые и световые эффекты.
26.
Парашютист прыгает с некоторой высоты и летит, не открывая
парашют; на какой высоте (или через какое время) ему следует
открыть парашют, чтобы иметь к моменту приземления
безопасную скорость (не большую 10 м/с)?
27.
Изучить, как связана высота прыжка с площадью поперечного
сечения парашюта, чтобы скорость приземления была безопасной.
28.
Смоделировать падение тела с заданными характеристиками
(массой, формой) в различных вязких средах. Изучить влияние
вязкости среды на характер движения. Скорость движения должна
быть столь невелика, чтобы квадратичной составляющей силы
сопротивления можно было бы пренебречь.
29.
Смоделировать падение тела с заданными характеристиками
(массой, формой) в различных плотных средах. Изучить влияние
плотности среды на характер движения. Скорость движения
должна быть достаточно большой, чтобы линейной составляющей
силы сопротивления можно было бы пренебречь.
30.
Смоделировать
движение
исследовательского
зонда,
«выстреленного» вертикально вверх с уровня земли. В верхней
точке траектории над зондом раскрывается парашют, и он плавно
спускается на землю.
31.
Промоделировать
движение
исследовательского
зонда,
«выстреленного» вертикально вверх с летящего над землей
самолета. В верхней точке траектории над зондом раскрывается
парашют, и он плавно спускается на землю.
32.
Глубинная бомба, установленная на взрыв через заданное время,
сбрасывается со стоящего неподвижно противолодочного
корабля. Исследовать связь между глубиной, на которой
произойдет взрыв, и формой корпуса (сферической, каплевидной,
полусферической и т.д.).
33.
Глубинная бомба, установленная на взрыв на заданной глубине,
сбрасывается со стоящего неподвижно противолодочного
40
корабля. Исследовать связь между временем достижения заданной
глубины и формой корпуса (сферической, каплевидной,
полусферической и т.д.).
34.
Провести моделирование взлета ракеты при значениях параметров
m0  2  10 7 кг, m kon  2  10 5 кг, α = 2·105 кг/с, Fтяги = 4·108 Н.
Достигнет ли ракета при этих параметрах первой космической
скорости 7,8 км/с?
35.
Провести соотношение исходных параметров
m0 и Fтяги, при
которых ракета достигнет первой космической скорости (и в
соответствующий момент исчерпает горючее). Остальные
входные параметры фиксировать произвольно. Построить
соответствующую фазовую диаграмму в переменных Fтяги и m0 .
36.
Разработать и исследовать усовершенствованную модель взлета
ракеты, приняв во внимание, что реальные космические ракеты
обычно двух- и трехступенчатые, и двигатели разных ступеней
имеют разную силу тяги.
37.
Промоделировать
движение
исследовательского
зонда,
снабженного разгонным двигателем небольшой мощности,
«выстреленного» вертикально вверх с уровня земли. В верхней
точки траектории двигатель выключается, над зондом
раскрывается парашют, и он плавно спускается в точку старта.
38.
Промоделировать
движение
исследовательского
зонда,
снабженного разгонным двигателем небольшой мощности,
«выстреленного» вертикально вверх с летящего над землей
самолета. В верхней точки траектории над зондом раскрывается
парашют, и он плавно спускается в точку старта.
39.
Глубинная бомба-торпеда, снабженная разгонным двигателем,
установленная на взрыв через заданное время, сбрасывается со
стоящего неподвижно противолодочного корабля. Исследовать
связь между глубиной, на которой произойдет взрыв, и формой
корпуса (сферической, полусферической, каплевидной и т.д.).
40.
Глубинная бомба-торпеда, снабженная разгонным двигателем,
установленная на взрыв на заданной глубине, сбрасывается со
стоящего неподвижно противолодочного корабля. Исследовать
связь между временем достижения заданной глубины и формой
корпуса (сферической, полусферической, каплевидной и т.д.).
41.
Торпеда, снабженная разгонным двигателем, нацеливается с
подводной лодки на стоящий вертикально над ней надводный
корабль. Исследовать связь между временем поражения цели и
формой корпуса (сферической, полусферической, каплевидной и
т.д.).
42.
Построить траектории и найти временные зависимости
горизонтальной и вертикальной составляющих скорости и
перемещения для тела массой 1 кг, брошенного под углом 45 о к
горизонту с начальной скоростью 10 м/с:
1) в воздухе;
2) в
воде. Сравнить результаты с теми, которые получились бы без
учета сопротивления среды (последнее можно получить либо
численно из той же модели, либо аналитически).
41
43.
Найти вид зависимости дальности полета тела и максимальной
высоты траектории от одного из коэффициентов сопротивления
среды, фиксировав все остальные параметры. Представить эту
зависимость графически и подобрать подходящую аналитическую
формулу, определив ее параметры методом наименьших
квадратов.
44.
Разработать модель подводной охоты. На расстоянии r под углом
α подводный охотник видит неподвижную акулу. На сколько
метров выше ее надо целиться, чтобы гарпун попал в цель?
45.
Поставить и решить задачу о подводной
дополнительном условии: акула движется.
46.
Промоделировать
движение
исследовательского
зонда,
«выстреленного» под углом к горизонту. В верхней точке
траектории над зондом раскрывается тормозной парашют, затем
зонд плавно движется до земли.
47.
Глубинная бомба, установленная на взрыв через заданное время,
сбрасывается с движущегося противолодочного корабля.
Исследовать связь между глубиной, на которой произойдет взрыв,
пройденным расстоянием по горизонтали и формой корпуса
(сферической, полусферической, каплевидной и т.д.).
48.
Глубинная бомба-торпеда, снабженная разгонным двигателем,
установленная на взрыв на заданной глубине, сбрасывается с
движущегося противолодочного корабля. Исследовать связь
между временем достижения заданной глубины, пройденным
расстоянием по горизонтали и формой корпуса (сферической,
полусферической, каплевидной и т.д.).
49.
Торпеда, снабженная разгонным двигателем, нацеливается с
лежащей на дне подводной лодки на поражение движущегося
надводного корабля. Пуск торпеды производится в момент
прохождения корабля над лодкой. Исследовать связь между
глубиной залегания лодки, временем поражения цели и
расстоянием, который корабль успеет пройти по горизонтали.
50.
Найти траекторию полета кометы, залетевшей в Солнечную
систему, у которой на расстоянии от Солнца 100 астрономических
единиц (1 а.е.=1.5·1011 м – расстояние от Земли до Солнца)
скорость (υ=10 км/с) направлена под углом α=30 о к оси «кометаСолнце». Является ли эта траектория замкнутой? Если «да», то
сколько длится для нее период полета?
51.
В условиях задачи (51) подобрать то значение угла α, при
котором траектория из незамкнутой превращается в замкнутую
(скорость υ фиксирована).
52.
В условиях задачи (51) подобрать то значение скорости υ, при
котором траектория из незамкнутой превращается в замкнутую
(угол α фиксирован).
53.
Проверить в компьютерном эксперименте выполнимость второго
закона Кеплера, определяющего движение небесных тел по
замкнутой траектории.
54.
Смоделировать траекторию движения малого космического
аппарата, запускаемого с борта космической станции,
охоте
при
42
относительно Земли. Запуск осуществляется путем толчка в
направлении, противоположном движению станции, по
касательной к ее орбите.
55.
Промоделировать траекторию движения малого космического
аппарата, запускаемого с борта космической станции,
относительно Земли. Запуск осуществляется путем толчка в
направлении, перпендикулярном к плоскости орбиты движения
станции.
56.
Как будет выглядеть полет искусственного спутника Земли, если
учесть возмущающее действие Луны?
57.
Разработать и реализовать модель движения искусственного
спутника Земли при учете воздействия на него малой постоянной
силы, обусловленной «солнечным ветром». Считать, что
плоскость
орбиты
движения
спутника
изначально
перпендикулярна «солнечному ветру».
58.
Считая, что движение Луны вокруг Земли происходит
практически по круговой орбите, проанализировать воздействие
на эту орбиту со стороны Солнца для малого участка движения,
на котором плоскость орбиты перпендикулярна к оси «Солнце –
Земля».
59.
Проанализировать особенности движения искусственного
спутника Земли, движущегося практически по круговой орбите на
высоте порядка 300 км, связанные с малым сопротивлением
атмосферы.
60.
Проанализировать изменение круговой орбиты астероида,
движущегося вокруг Солнца, под влиянием вулканического
выброса с его поверхности.
61.
Найти траекторию движения тела массой 1 г, несущего заряд
величиной q=10-2 Кл, в поле заряда величиной q=5·10-2 Кл.
Начальное расстояние между зарядами 1м, начальная скорость
равна 0.1 м/с и направлена под углом 30о к оси, соединяющей
заряды. Провести моделирование для случая зарядов одного
знака.
62.
В условиях задачи (62) провести моделирование для случая
зарядов разных знаков.
63.
Разработать модель движения практически невесомой заряженной
частицы в электрическом поле, созданном системой нескольких
фиксированных в пространстве заряженных тел в случае, когда
заряженные тела находятся в одной плоскости, и в ней же
находится движущаяся частица.
64.
В условиях задачи (64) провести моделирование для случая
нахождения частицы вне плоскости расположения зарядов,
начальная скорость ее перпендикулярна этой плоскости.
65.
Имеется неподвижная заряженная частица с зарядом Q и экран. В
точке А экрана находится мишень. При каких соотношениях
величины начальной скорости движущейся частицы с зарядом q и
угла прицеливания α она попадет в мишень? Расстояния показаны
на рисунке. Заряды частиц – разных знаков.
43
A
0
d
Q
q
α
a
66а.
c
В условиях предыдущей задачи месторасположение частиц и
экрана соответствует нижеприведенному рисунку, и заряды
частиц имеют одинаковые знаки.
A
0
d
q
c
Q
α
a
67.
Промоделировать движение заряженной частицы между
пластинами плоского конденсатора. Поле конденсатора считать
однородным,
начальная
скорость
частицы
направлена
параллельно пластинам. Частицу считать практически невесомой.
68.
Промоделировать движение легкого, практически невесомого
заряженного тела сферической формы между горизонтальными
пластинами плоского конденсатора с учетом сопротивления
воздуха, находящегося между пластинами.
69.
Легкая заряженная частица падает вертикально вниз (под
влиянием силы тяжести) на одноименно заряженную пластину
(начальная скорость обеспечивает движение вниз независимо от
соотношения силы тяжести и силы электростатического
отталкивания). Смоделировать движение частицы, считая поле,
созданное пластиной, однородным.
70.
Легкая заряженная частица влетает в однородное поле, созданное
горизонтально расположенными пластинами конденсатора.
Промоделировать ее траекторию, учитывая силу тяжести и
электростатическую силу.
71.
Легкая заряженная частица влетает в однородное поле, созданное
пластинами конденсатора. Промоделировать ее траекторию,
учитывая силу тяжести и электростатическую силу. Пластины
конденсатора расположены вертикально.
72.
Легкая заряженная частица влетает в однородное поле, созданное
пластинами конденсатора. Промоделировать ее траекторию,
44
учитывая силу тяжести и электростатическую силу. Пластины
конденсатора расположены наклонно.
73.
Установить зависимость периода колебания маятника Т от
начальной амплитуды в диапазоне амплитуд [0, π] и его
отклонения от периода малых колебаний Т 0.
74.
Установить зависимость периода колебания маятника Т от длины
нити подвеса при амплитуде колебаний, равной π/2.
75.
Ограничиваясь тремя членами ряда Фурье, исследовать
зависимость амплитуд гармоник а1, а2 и а3 от начальной
амплитуды колебаний.
76.
Ограничиваясь тремя членами ряда Фурье, исследовать
зависимость амплитуд гармоник а1, а2 и а3 от длины нити подвеса
при амплитуде колебаний, равной π/2.
77.
Заменив в дифференциальном уравнении колебаний синус угла
на величину угла, изучить, как влияет трение на малые колебания
математического маятника. Фиксировать параметр l и найти
критическое значение коэффициента трения η, при котором
движение перестает быть колебательным и становится монотонно
затухающим (апериодический режим).
78.
В условиях задачи (77) построить зависимость η от l при
фиксированном значении ω.
79.
Изучить, как значение амплитуды немалых колебаний
математического маятника с трением сказывается на переходе
режима затухающих колебаний в режим затухания без
колебаний.
80.
Построить зависимость амплитуды малых колебаний без трения
от частоты вынуждающей силы при приближении ее к частоте
собственных колебаний ω0.
81.
Построить зависимость амплитуды немалых колебаний маятника
без трения от частоты вынуждающей силы при приближении ее к
частоте собственных колебаний ω0.
82.
Построить зависимость амплитуды немалых колебаний маятника
без трения от амплитуды вынуждающей силы при ее частоте,
приблизительно равной половине частоты собственных
колебаний маятника.
83.
Получить картину процесса биений в системе с близкими
значениями частот ν ω0 (в приближении малых колебаний и без
наличия трения).
84.
Получить картину процесса биений в системе с близкими
значениями частот ν ω0 (для амплитуды колебаний, равной π/2, и
без трения).
85.
Исследовать, как возрастание коэффициента трения влияет на
процесс биений в системе с близкими значениями частот ν ω 0
(для произвольной амплитуды колебаний).
86.
Исследовать колебания маятника с периодически меняющейся
длиной нити подвеса. Построить на фазовой плоскости (ν/ω 0, α)
45
границы нескольких зон параметрического резонанса (без учета
трения).
87.
В условиях задания из варианта (86) исследовать влияние трения
на границы нескольких зон параметрического резонанса.
88.
Построить модель колебаний шарика массы m, висящего на
пружинке (пружинного маятника), движущегося под влиянием
силы тяжести и упругой силы, без учета трения. Исследовать
зависимость периода колебаний маятника от длины l при
фиксированном значении параметров m и k (жесткости
пружины).
89.
Для маятника, описанного в варианте (88), исследовать
зависимость периода колебаний от массы при фиксированных
параметрах k и l.
90.
Для маятника, описанного в варианте (88), добавить учет
сопротивления окружающей среды (при конечном размере
шарика) и исследовать зависимость периода колебаний от
вязкости среды при движении маятника в воде (значения
остальных параметров фиксировать). Найти границу перехода
периодического движения в апериодическое.
91.
Для маятника, описанного в варианте (88), добавить учет
воздействия периодической вынуждающей силы и исследовать
зависимость амплитуды колебаний от частоты вынуждающей
силы при прохождении через резонанс (без учета трения).
92.
Построить модель колебаний шарика массы m, лежащего на
горизонтальной поверхности, под действием пружины,
создающей упругую силу Fупр = - ax – bx3 , где x – смещение из
положения равновесия. Трение не учитывать. Исследовать
зависимость периода колебаний такого маятника от параметра b
(при фиксированном значении других параметров).
93.
Для маятника, описанного в варианте (92), добавить учет трения
шарика о поверхность (сила трения пропорциональна весу
шарика) и исследовать зависимость периода колебаний шарика от
коэффициента трения. Найти границу перехода периодического
движения в апериодическое.
94.
Для маятника, описанного в варианте (92), добавить учет наличия
вынуждающей периодической силы и исследовать зависимость
периода колебаний от амплитуды вынуждающей силы при ее
частоте, равной приблизительно половине частоты собственных
колебаний (без учета трения).
95.
Для маятника, описанного в варианте (92), добавить учет наличия
вынуждающей периодической силы и исследовать зависимость
периода колебаний от частоты вынуждающей силы при
прохождении через резонанс (без учета трения).
96.
Исследовать процесс биений маятника, описанного в варианте 92,
в отсутствии трения.
97.
Построить изолинии поля, созданного четырьмя одноименными и
равными по величине зарядами, находящимися в вершинах
прямоугольника.
46
98.
Построить изолинии поля, созданного четырьмя разноименными
и равными по величине зарядами, находящимися в вершинах
прямоугольника. Знаки зарядов чередуются циклически по
соседним вершинам прямоугольника.
99.
Построить изолинии поля, созданного четырьмя одноименными
зарядами, расположенными в вершинах прямоугольника.
Значения зарядов (при последовательном обходе вершин) есть q,
2q, 3q, 4q.
100.
Построить изолинии поля, созданного четырьмя разноименными
и равными по величине зарядами, находящимися в вершинах
правильного треугольника и в его центре.
101.
Построить изолинии поля, созданного шестью равноименными и
равными по величине зарядами, находящегося в вершинах
правильного шестиугольника.
102.
Провести моделирование объемной картины электрического
поля, созданного тремя равными и одноименными зарядами,
находящимися в вершинах равностороннего треугольника.
103.
Провести моделирование объемной картины электрического
поля, созданного четырьмя равными и одноименными зарядами,
находящимися в вершинах квадрата.
104.
Разработать метод построения силовых линий электрического
поля, созданного системой зарядов, находящихся в одной
плоскости.
105.
Разработать метод построения изолиний поля, созданного
совокупностью однородно заряженных плоских нитей и
точечных зарядов. Получить с его помощью изображение поля,
созданного нитью, имеющей форму полуокружности (в той же
плоскости, в которой находится нить).
106.
Построить изолинии поля, созданного двумя параллельно
расположенными заряженными нитями при условии, что на
нитях равные и одноименные заряды.
107.
Построить изолинии поля, созданного двумя параллельно
расположенными заряженными нитями при условии, что на
нитях равные и разноименные заряды.
108.
Построить изолинии поля, созданного нитью, имеющей форму
полуокружности, и зарядом в ее центре. Совокупный заряд на
нити и заряд в ее центре равны по величине и имеют разные
знаки.
109.
Изучить динамику изменения температуры в стержне длиной l с
теплоизолированными концами, температура на которых
поддерживается постоянной и равной Т 0, с начальным условием:
f ( x)  
12  T0 2 12  T0
x 
 x  T0
l2
l
при некотором фиксированном значении коэффициента
температуропроводности. Шаг по сетке принять равным l/10.
47
Построить графики выхода на стационарное значение
температуры в каждом из узлов пространственной сетки.
110.
В условиях варианта (109) исследовать влияние шага
пространственной сетки на точность результатов моделирования.
111.
В условиях варианта (109) изучить влияние коэффициента
температуропроводности (путем перебора различных его
значений)
на
динамику
установления
стационарного
распределения температуры в стержне.
112.
В
условиях
варианта
(109)
изучить
сравнительную
эффективность методов, выражаемых формулами:
u ik 1  u ik 
u
k 1
i
a 2  t
 (u ik1  2  u ik  u ik1 )
(x) 2
a 2  t
u 
 (u ik11  2  u ik 1  u ik11 ) 
2
2  (x)
k
i
a 2  t

 (u ik1  2  u ik  u ik1 )
2
2  (x)
где k = 0, 1, …; i = 1, 2, …, n-1 – для внутренних узлов
пространственной сетки; в силу начального условия
u i( 0)  f ( xi ) . Шаг по времени обозначен как Δt, по
пространству – Δx.
113.
В начальный момент времени стержень длиной 5 м имеет
температуру 20оС. На левом конце стержня включается источник
тепла,
который
модулирует
температуру
по
закону
u (0, t )  20  10  sin(   t ) .
Произвести
моделирование
изменения температуры в средней точке стержня при различных
соотношениях a и ω вплоть до значения времени
2
 a 
t  5
 . Есть ли качественные различия в процессе при
 l  
2

 a  

   
быстрой
и
при


l




2

a 
медленной       модуляции?

 l  

114.
Разработать метод максимально наглядной иллюстрации на
экране компьютера динамики процесса теплопроводности в
стержне, используя сочетание различных приемов, включая
цветное
раскрашивание.
115.
Изучить динамику изменения температуры в стержне длиной l с
теплоизолированными концами, который в начальный момент
времени имеет одинаковую вдоль всего стержня температуру Т 0,
48
при условии, что на левом конце температура скачком
изменилась
и
поддерживается
равной
4·Т 0.
116.
Изучить динамику изменения температуры в стержне длиной l с
теплоизолированными концами, который в начальный момент
времени имеет одинаковую вдоль всего стержня температуру Т 0,
при условии, что на обоих концах температура скачком
изменилась
и
поддерживается
равной
4·Т 0.
117.
Изучить динамику изменения температуры в стержне длиной l с
теплоизолированными концами, который в начальный момент
времени имеет одинаковую вдоль всего стержня температуру Т 0,
если температура на его концах скачком изменилась и
поддерживается равной 2·Т0 на левом конце и нулю на правом.
118.
Изучить динамику изменения температуры в стержне длиной l с
теплоизолированными концами, который в начальный момент
времени имеет одинаковую вдоль всего стержня температуру Т 0,
а затем нагревается в центре источником с температурой 4·Т 0.
Концы стержня при этом сохраняют температуру Т 0.
119.
Изучить динамику изменения температуры в стержне длиной l с
теплоизолированными концами, который в начальный момент
времени имеет одинаковую вдоль всего стержня температуру Т 0,
а затем нагревается в центре и на концах источником с
температурой
4·Т0.
120.
Изучить динамику изменения температуры в стержне длиной l с
теплоизолированными концами, который в начальный момент
времени разбит на три равных участка с температурами на
концах участков Т0, 2Т0 и 3Т0 соответственно, а затем
температура на конце стержня с температурой 3Т 0 скачком
становится равной Т0.
49
Список рекомендуемой литературы
по курсу «Компьютерное моделирование в физике».
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Араманович И.Г., Левин В.И. Уравнения математической физики. -М.:
Наука,
1969.
Акулич И.Л. Математическое программирование в примерах и задачах. М.: Высшая школа, 1993.
Белошапка В.К. Информационное моделирование в примерах и задачах. –
Омск: Из-во ОГПИ, 1992.
Воеводин В.В. Численные методы алгебры. – М.: Наука, 1966.
Гнеденко Б.В. Курс теории вероятностей. – М.: Наука, 1965.
Гнеденко Б.В., Коваленко И.Н. Введение в теорию массового
обслуживания. – М.: Наука, 1966.
Горстко А.Б. Познакомьтесь с математическим моделированием. – М.:
Знание, 1991.
Гулд Х., Тобочник Я. Компьютерное моделирование в физике: Пер. с
англ. Т.1,2. – М.: Мир, 1990.
Демидович Б П., Марон И.А. Основы вычислительной математики. – М.:
Наука, 1970.
Заварыкин В.М., Житомирский В.Г., Лапчик М.П. Численные методы. –
М.: Просвещение, 1990.
Зайденберг А.П., Павлович Е.С. Законы распределения случайных
величин. – Омск: Из-во ОГПИ, 1971.
Зуховицкий С.И., Авдеева Л.И. Линейное и выпуклое программирование.
– М.: Наука, 1967.
Кондаков В.М. Математическое программирование. Элементы линейной
алгебры и линейного программирования. – Пермь: Из-во ПГУ, 1992.
Математическое моделирование: Пер. с англ. / Под ред. Дж. Эндрюса, Р.
Мак-Лоуна. – М.: Мир, 1979.
Матюшкин-Герке А. Учебно-прикладные задачи в курсе информатики.
Информатика и образование, №3-4, 5-6, 1992.
Мигулин В.В., Медведев В.И., Мустель Е.Р., Парыгин В.Н. Основы теории
колебаний. – М.: Наука, 1988.
Саати Т. Элементы теории массового обслуживания и ее приложения:
Пер. с англ. – М.: Сов. Радио, 1971.
Сайдашев а.А., Хеннер Е.К. Компьютер на уроке математики. – Пермь:
Из-во ПГУ, 1991.
Самарский А.А., Гулин А.В. Численные методы. – М.: Наука, 1989.
Стрелков С.П. Введение в теорию колебаний. – М.: Наука, 1964.
Шеннон Р. Имитационное моделирование систем – искусство и наука:
Пер. с англ. – М.: Мир, 1978.
Электронные вычислительные машины./ Под ред. А.Я. Соловьева. В 8
книгах. Книга 8. Решение прикладных задач. – М.: Высшая школа, 1987.
Дьяконов В.П. Справочник по алгоритмам и программам на языке Бейсик
для персональных ЭВМ. – М.% Наука, главная редакция физ.-мат. лит-ры,
1987.
Дьяконов В.П. Справочник по расчетам на микрокалькуляторах. – М.:
Наука, 1985.
Трохименко Я.К., Любич Ф.Д. Инженерные расчеты на программируемых
микрокалькуляторах. - Киев: Техника, 1985.
Могилев А.В., Пак Н.И., Хеннер Е.К. Информатика. – М.: ACADEMA,
2000.
Могилев А.В., Пак Н.И., Хеннер Е.К. Практикум по информатике. – М.:
ACADEMA, 2001.
50
Содержание
Механика………………………………………………………………………1
движение тела, брошенного под углом к горизонту………………………..5
Электричество………………………………………………………………..14
Колебания…………………………………………………………………….20
Элементы гидродинамики…………………………………………… ……..23
Теплоемкость………………………………………………………………...28
Тепловое излучение………………………………………………… ……….35
Общие рекомендации при выполнении лабораторной работы……………38
Порядок выполнения лабораторной работы………………………………38
Варианты заданий……………………………………………………………39
Список рекомендуемой литературы………………………………………..53
Содержание…………………………………………………………………..55
Download