Урок 4. ДВИЖЕНИЕ В ЗАДАННОМ НАПРАВЛЕНИИ И ГРАФОЧИСЛЕННАЯ ОПТИМИЗАЦИЯ ЗАДАЧ, СВЯЗАННЫХ СО СКОРОСТЬЮ

Содержание

Теоретические положения.

Упражнение 1. Смоделировать движение точки p от точки р1 до точки р2 в зависимости от скорости (величина постоянная) и времени (переменная).
Контрольные вопросы
Упражнение 2. Определить движение путника по скошенному и нескошенному лугам так, чтобы время прохождения было наименьшим. Скорости заданы.
Упражнение 3. Определить маршрут движения судна из точки р1 в точку р2 из условия того, что часть пути судно может двигаться по течению воды (р1-p10).  Скорость судна и скорость течения известны.
Контрольные вопросы

Самостоятельно (не обязательно).
Задача 1.
Задача 2.
Задача 3.
Задача 4.


Теоретические положения:

Движение от точки р1 по направлению единичного вектора p99 задается:
p=p1+s*p99,                                                                                    (4.1)
где т. р определяется в зависимости от s - расстояния от р1.

В свою очередь, если отрезок задан двумя точками р1, р2, единичный вектор р99 вычисляется:

р99=(р2-р1)/|p2-p1|                                                                           (4.2)

Скорость: v=s/t,
откуда: s=vt.
Подставляя вместо  s  - vt получим искомую зависимость:
p =p1+v*t*p99,
где p99 - единичный вектор из 4.2.



 
Упражнение 1. Смоделировать движение точки p от точки р1 до точки р2 в зависимости от скорости (величина постоянная) и времени (величина переменная). 
 

Решение. Векторная запись такого условия будет:
        р=р1+s*s11*р99,
где s11 скорость движения точки, s - переменный параметр время
        р99= (p2-p1)/|p2-p1|

Формируем две МК исходных данных и цикла (исполнительной МК).

vspoint.mac
: p1=40.,50. p2=160.,140.
s1=8.0      $ скорость движения точки
otrezok : p101=p1 p102=p2 $ стоим отрезок движения точка
s11 =$sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)) $ длина отрезка
р99=(р2-р1)/s11  $ единичный вектор направления
$ определим время движения точка р до р2 с  заданной скоростью s11
$ из физики v=s/t, t=s/v =s11/s1
s21=s11/s1    $ время движения от р1 до р2
vscikl: s=0.

vscikl.mac
s > s21 ? exit
р=р1+s* s11*p99
okr: p100=p s100=3.0
vscikl: s=s+1.



Контрольные вопросы.
1. Что означает команда: s > s21 ? exit
2. Что означает команда: vscikl: s=s+1.
3. Что означает формула: р=р1+s* s11*p99
4. Как определяется р99? И что это такое?


 
 
Упражнение 2. Определить движение путника по скошенному и нескошенному лугам из точки р1 в точку р2 так, чтобы время прохождения было наименьшим. Скорость движения по скошенному лугу и нескошенному лугам заданы v1, v2. 
 

Алгоритмизация:
общее время t определяется суммой t1 и t2 :

t=t1+t2=|p-p1|/v1 + |p-p2|/v2,
где
p=(1-s)*p11+s*p12 при   0. <s <1.

Формируем ЦФ:
F=t1+t2=|p-p1|/v1 + |p-p2|/v2 -> min

Решение заключается в формировании ЦФ (построении графика), нахождении ее минимального значения (времени, за которое путник пройдет весь путь) и нахождении маршрута движения.

putnik0.mac - имя МК
$ Задача о движении пешехода по скошенному и не скошенному лугу
s11=8.0    $ скорость по скошенному лугу
s12=4.0    $ скорость по не скошенному лугу
: p1=60.,140. p2=220.,0.
: p10=35.,70. p11=240.,70.   $ граница скошенного и не скошенного луга
otrezok : p101=p10 p102=p11
$putnik: s99=100. s=0.

putnik.mac
s > 1.001 ? exit
p=(1.-s)*p10+s*p11
otrezok: p101=p1 p102=p
otrezok: p101=p p102=p2
s1= $sqrt((x1-x)*(x1-x))+(y1-y)*(y1-y))
s2= $sqrt((x2-x)*(x2-x))+(y2-y)*(y2-y))
s21=s1/s11      $  время по скошенному лугу
s22=s2/s12      $  время по не скошенному лугу
s23=s21+s22    $  время затраченное по тому и другому полю
s23 < s99 ? s99=s23     $  в s99  наименьшее затраченное время
$ строим график зависимости времени от точки на границе
otrezok: p101=p5 p102=x,s23
n50=s99*10000.
$ n50 <> 374832 ? exit
$putnik: s= s+0.05   p5=p102       $ рекурсия с заданием шага
 
Графическая интерпретация задачи упр.2.



 

Упражнение 3. Определить маршрут движения судна из точки р1 в точку р2 из условия того, что часть пути судно может двигаться по течению воды (р1-p10).  Скорость судна и скорость течения известны.  
 
 

Формализация (алгоритмизация) задачи.
Время движения судна по течению воды (р1-p) и далее по прямой (р-p2) определяется как сумма: t=s12/(v1+v2)+s11/v1 и стремиться к минимуму. Время является ЦФ, минимум которой даст минимальное значение времени движения судна по маршруту. Таким образом, задача сводится к простому перебору точек на прямой р1-р10, вычислению значений вре-мени на прохождение маршрута, сравнению их и выбору из них наименьшего в s99.

tship0.mac - имя МК
s1=8.0   $ скорость судна
s2=5.0   $ скорость воды
$ Известны направления движения судна p1-p2 и направление воды p1-p10
: p1=60., 25. p2=170., 125. p10= 260.,65.
otrezok : p101=p1 p102=p3
okr: p100=p2  s100=4.0
s11=$sqrt ((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)) $ длина пути судна по прямой
$ Определим время за которое судно пройдет путь на прямую
s21=s11/s1   $ время - путь разделить на скорость
p9=x1,s21  $ вспомогательная точка для графика времени от р (т. сворота)
tship: s=0.0  s99=100.

tship.mac
s > 1.001 ? exit             $ условие выхода из цикла
p=(1.-s)*p1+s*p10         $ перебор точек на прямой р1-р10
otrezok: p101=p p102=p2  $ изображаем отрезками возможные движения судна
s3=s1+s2       $ скорость на отрезке p1-p
s10=$sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))          $ расстояние s10 от р1 до р
s7=s10/s3              $  время затраченное от р1 до р
s20= $sqrt((x2-x)*(x2-x)+(y2-y)*(y2-y)) $  определяем расстояние p-p2
s8=s20/s1   $ и время затраченное по пути р-p2
s78=s7+s8   $ суммарное время
s78 < s99 ? s99=s78    $ Мin затраченное время в регистре s99
n50=s99*100000.    $ переводим s99  в целое с учетом знаков после -запятой
$ n50 <> 958188 ? exit $ для обрыва расчетов и графика в точке сворота.
otrezok : p101=p9  p102=x,s78 $ график зависимости времени от (х) сворота
p9=p102               $ конец (р101) помещаем в начало р9 будущего отрезка
tship : s=s+0.05  p9=p102    $ шаг и рекурсия.
 
Графическая интерпретация задачи упр.3.


Контрольные вопросы.
1. В каком регистре будет минимально затраченное время?
2. Как определить точку сворота р
3. Что обозначает параметр s
4.  Что означает строчка:s78 < s99 ? s99=s78
5.  Как строится график ЦФ?
6.  Что от чего зависит при построении графика ЦФ
7.  С каким шагом выполняется вычисление?
8.  Запишите минимум затраченного времени и координаты точки сворота.



Самостоятельно.


Задача 1.(Задача Снеллиуса). Определить траекторию движения луча света из точки p1 в точку p2 по двум разным средам, если известно, что скорость распространения света в верхней среде v1, а в нижней - v2.
Решение - см. задачу по скошенному не скошенному лугу.




Задача 2. (Задача Бернулли о брахистохроне). В вертикальной плоскости определить путь p1pip2, спускаясь по которому под действием собственной тяжести тело, начав двигаться из точи p1, достигнет точки p2 в кратчайшее время. Исполь-зуем уравнение ускорения падающего под действием силы тяготения тела a=gt2 и упрощенно будем считать, что в произвольной точке p(x,y) скорость движения над точкой будет v1=sqrt(2gyi) а под точкой - v2=sqrt(2gy2) Задача сводится к задаче движения путника по скошенному и не скошенному лугам.



Задача 3. Определить, на каком наикратчайшем расстоянии пройдут два судна (pi, и pj), если известно, что первое судно идет со скоростью v1 по вектору p11p12, второе (скорость v2), пытаясь уйти от столкновения, идет, все время сворачи-вая на угол.
Формализация.
s= |pi-pj| -> min
pi=p1+t*v1*(p10-p1)/|p10-p1|
pj=p2+t*v2*(p10+dx)-p3)/|p10+dx)-p3|
где t - переменный параметр, dx - шаг приращения.
 
Графическая интерпретация задачи 3.




Задача 4. Определить момент поражения мишени pj ракетой pi, если известны скорость v1 и траектория (вектор p1p10) движения мишени. Ракета движется все время по направлению мишени со скоростью v2 (v2>v1).
Формализация.
s= |pi-pj| -> min
pi=p1+t*v1*(p10-p1)/|p10-p1|
pj=p3+t*v1*(p-pj)/|p-pj|
 
Графическая интерпретация задачи 4.