Статья по информатике из журнала МИФ-2 №3 за 2001 год Информатика 8-11 класс Потопахин Виталий Валерьевич Приближенное решение некоторых физических задач Программирование – это, прежде всего, удобный инструмент решения различных прикладных задач из различных областей знания. Можно сказать, что программирование – это что-то вроде удобной кочерги, которой хорошо шевелить дрова в печке. Задание, которое вам предложено в этом номере журнала, невелико по размеру, но очень важно. Весь материал состоит из одной задачи из механики, разобранной подробно до алгоритма, а также одной задачи, предложенной для самостоятельного анализа. На их примере нужно попробовать применить алгоритмические знания для решения физической задачи, которая точными методами решается исключительно сложно. На нашем с вами уровне она не решается вовсе, так как описание движения тел в поле силы гравитации друг друга приводят к системе дифференциальных уравнений, которые мы с вами решать не умеем. Программистские умения помогут вам обойтись без высшей математики. В примере рассмотрено движение двух тел, но на самом деле количество тел участвующих в движении не играет роли. Условие задачи Найти закон движения двух тел, движущихся в поле тяготения друг друга. Назовём их тело А и тело В. Предположим, для упрощения ситуации, что в начальный момент движения тела находятся в покое и рассмотрим последующий процесс движения. Решение Во-первых, заметим что чем тела ближе друг к другу, тем больше сила взаимодействия и следовательно тем больше скорость движения тел. А так как движение тел происходит непрерывно, то сила, а с ней и ускорение, а следовательно и скорость изменяются непрерывно от точки к точке. А в известные нам законы движения скорость и ускорение входят как константы: S = S0 + V0T - равномерное движение S = S0 + V0T + (AT2)/2 - равноускоренное движение С законом движения в котором и скорость и ускорение переменные величины мы не умеем работать. Выход заключается в том, чтобы свести сложное движение к известному простому. Чтобы понять как это сделать рассмотрим числовой пример с равноускоренным движением которое попробуем свести к равномерному. Возьмём следующий закон движения: S = 1 + 5t + t2 пусть начальный момент времени t0 = 0 тогда S0 = 1. Пусть конечный момент времени t1 = 1 тогда S1 = 7 и S = S1 - S0 = 6. Теперь опустим ту часть закона движения которая отвечает за ускоренное движение. Получим S = 1 + 5t - это ничто иное как формула равномерного движения. При t0 = 0 и t1 = 1 получим S0 = 1 и S1 = 6, S = S1 - S0 = 5. Относительная погрешность (6-5)/6*100 = 16,6% Теперь уменьшим временной интервал. Пусть t0 = 0 и t1 = 0,5. Тогда S0 = 1 и S1 = 3,75 S = S1 - S0 = 2,75 и относительная погрешность будет равна = 6,7%. Заметим, что с уменьшением временного интервала относительная погрешность также уменьшается следовательно при достаточно маленьком временном интервале результаты расчётов по двум формулам будут практически совпадать. Предположим, что устраивающая нас погрешность будет на временном интервале t, а процесс движения мы хотели бы наблюдать на интервале ]t0, t1[. Разобьём большой интервал ]t0, t1[ на маленькие интервалы каждый по t. Выше мы выяснили, что для таких интервалов можно считать тело движущимся равномерно, но закон равномерного движения от интервала к интервалу будет изменяться. А именно на каждом интервале нужно перерасчитывать скорость. Закон изменения скорости V=5t. Тогда для N-го интервала V=5Nt и закон движения S = 1 + (5Nt)*t. Хабаровская краевая заочная физико-математическая школа Статья по информатике из журнала МИФ-2 №3 за 2001 год Теперь вернёмся к исходной задаче. В ней переменными величинами являются не только скорость, но и ускорение, и сводить такое сложное движение к равномерному нецелесообразно. Допустим, что тела А и В движутся равноускоренно. Тогда вычислительная схема будет следующей: Разобьём интервал наблюдения ]t0, t1[ на достаточно малые интервалы. Тогда начало и конец N-го интервала будут соответственно в точках Tн=(N-1) t и Tk = Nt При достижении текущим временем начальной точки очередного интервала необходимо произвести перерасчёт параметров закона движения. А именно нужно перевычислить скорость и ускорение: V0 - для текущего интервала равна Vk достигнутой на предыдущем интервале. Ускорение необходимо рассчитать. Для первого тела a1 = (m2)/r2 Для второго тела a2 = (m1)/r2 При расчётах пройденного пути на каждом интервале будем пользоваться законом равноускоренного движения S = S0 + V0T + (AT2)/2 Алгоритм Ввести начальные значения: Векторы скорости тела 1 и тела 2 (пусть они движутся в начальный момент времени). (Векторы скорости вводятся своими проекциями на оси координат.) Массу тела 1 и тела 2. Начальные координаты тела 1 и тела 2. Исходное значение вектора ускорения = 0 Текущее время =0 Пока текущее время меньше конечного делать Начало 1. Если значение текущего времени находится в пределах очередного интервала то a. По известным значениям скорости, ускорения, времени и старых координат вычислить новые координаты. b. Увеличить текущее значение времени на t 2. Если значение текущего времени перешло в новый интервал то: a. Вычислить новые значения ускорений. Конец Контрольное задание Ниже приводится текст задания для самостоятельного решения. Вам необходимо решить эту задачу, оформить решение отдельно от решений по другим предметам и выслать в адрес Хабаровской краевой заочной физико-математической школы. И8.1. Тело массы М неподвижно висит на пружине с коэффициентом упругости К. В момент времени t0 тело сместили на расстояние +x (пружину растянули). После чего тело было предоставлено само себе и начало совершать колебательное движение. Построить график изменения величины растяжения пружины в зависимости от времени. Силой трения во всех её проявлениях можно пренебречь. Подсказки: Движение тела будет происходить с переменным ускорением. Так как ускорение определяется равнодействующей двух сил, силы тяжести и силы Гука. Сила Гука определяется величиной деформации пружины и поэтому сила Гука будет переменной величиной, а следовательно переменной будет и создаваемое ей ускорение. Однако, так как нас интересует не точный результат а приблизительный, то можно наблюдаемый интервал разбить на небольшие интервалы внутри которых силу Гука можно положить постоянной величиной. Хабаровская краевая заочная физико-математическая школа Статья по информатике из журнала МИФ-2 №3 за 2001 год Но в данной задаче может быть проще поступить немного иначе. Так как сила Гука пропорциональна деформации, то можно положить, что она изменяется не для любой величины деформации, а только тогда, когда величина деформации равная nx где n - это натуральное число. Хабаровская краевая заочная физико-математическая школа