ПОИСК Статьи Рисунки Таблицы График решения дифференциального уравнения из "Компьютеры Применение в химии" В строке 1(Ю дополнительно описан одномерный массив YA( ) (DIM YA(20)). Система дифференциальных уравнений имеет размерность N = 4 (строка 200). Константы скорости реакций приняты равными 1, поэтому в следующих двух строках переменным G1 и G2 присвоено значение 1. Переменной У1(1), соответствующей начальной концентрации вещества А, присвоено значение 1,5. Начальная концентрация вещества В (переменная Yl(2)) равна 1. Начальные концентрации веществ С и D равны 0. Время отсчитывается от момента начала реакции и изменяется в пределах О—5. Концентрации веществ рассчитываются через промежуток времени 0,1. Начальному, конечному моментам времени и интервалу между двумя расчетами концентраций соответствуют переменные ХА, ХЕ и XD (строка 710). Переменной СМ присваивается значение наибольшей концентрации одного из веществ. Это значение определяет размеры окна на экране, в котором изображаются кинетические кривые. Далее вызывается подпрограмма 2000 для подготовки вывода на экран графической информации. Сначала все стирается с экрана, потом определяются границы окна для построения графиков, которые затем изображаются на экране. В строке 720 начальные концентрации веществ присваиваются элементам массивов У( ) и А( ). Чтобы понять, что происходит в цикле по параметру А (строки 1000—1260), надо вспомнить, что подпропзамма 5000 решает систему дифференциальных уравнений при начальных условиях, которым соответствуют элементы массива Yl( ), т. е. подпрограмма рассчитывает новые значения У с шагом N1, при условии, что значения переменных А и Е задают интервал значений независимой переменной X, по которой производится интегрирование. [c.344] Если результаты удовлетворяют критерию точности, то вызывается подпрограмма 15000 для формирования и вывода алфавитно-цифровой и графической информации. Рассчитанные подпрограммой 5000 значения У( ) для верхней границы интервала Е рассматриваются как начальные значения для следующего интервала. Число шагов интегрирования N1 уменьшается в 4 раза (но остается все же не меньше 1) цикл по параметру А заканчивается и управление передается строке 1000 для расчета концентраций веществ через промежуток времени XD. После того как концентрации всех веществ рассчитаны для всех временных интервалов, вьшолнение программы заканчивается. [c.345] В первой строке подпрограммы для формирования и вывода выходных данных (строка 15020) на экран выводятся значения концентраций для каждого временного интервала. Потом в цикле по параметру I на экране строятся кинетические кривые всех четырех веществ. Для этого оператор PLOT(A, Y1(I), 0) перемещает поднятое перо в точку, которая для данного временного интервала служит начальной, и следующий оператор PLOT соединяет начальную точку с конечной отрезком прямой. Если внимательно присмотреться к полученным графикам, то станет видно, что они состоят из коротких отрезков. Если хотят получить более гладкие кривые, то надо уменьшить длину частичных интервалов, т. е. уменьшить XD (строка 710). Следующие три строки подпрограммы позволяют по желанию пользователя изменить режим работы дисплея. Если в процессе вьшолнения программы набрать на клавиатуре какой-нибудь знак, то произойдет переключение режима дисплея, например, из алфавитно-цифрового в графический. [c.345] Задание 195. Рассчитайте динамику популяций хищников и их жертв (см. задание 137). Изобразите зависимость плотности обеих популяций от времени. Эти результаты можно представить в другой форме, если построить график в координатах концентрация жертв — концентрация хищников. Колебаниям плотности популяций в таком представлении соответствует спираль, а незатухающие колебания изображаются в виде замкнутой кривой. [c.345] Задание 196. Используйте для имитации колебательной химической реакции кинетическую модель OREGONATOR (см. задание 139) и результаты представьте в графической форме. [c.346] Для расчета параметров, используемых при выводе на экран изображения траекторий, выбран несколько другой, чем в программе КИНЕТИКА , путь. Сначала вызывается подпрограмма 5000 для решения системы дифференциальных уравнений, причем исходный интервал делится на 1000 частичных интервалов (N1 == 1000). Заранее установлено, что такого количества частичных интервалов достаточно, чтобы решение имело 3 верные значашие цифры. После окончания вычислений на каждом частичном интервале в строке 5760 вызывается подпрограмма для вывода графической информации. Значения переменных А, Е и N1 выбраны такими потому, что решение системы дифференциальных уравнений требует значительно больше времени, чем вывод соответствующего графика на экран. [c.349] Для вывода на экран траектории полярные координаты частицы переводятся в декартовы (строка 15030) и с помощью следующего оператора (строка 15040) траектория изображается на экране. В этом операторе параметром типа линии является переменная PI. При первом обращении к подпрограмме 15000 переменной PI присваивается значение О (строка 5110). При следующих обращениях к подпрограмме 15000 этот параметр равен 1. Это делается для того, чтобы перемещение пера к точке, с которой начинается траектория частицы, не оставляло следа на экране. Операторы в строках 15080—15120, как и в предыдущей программе, позволяют пользователю переключать дисплей с одного режима на другой. [c.349] Примеры, в которых меняется только параметр соударения Ь, приведены на рисунках. Как видно на левом рисунке, если частицы пролетают на большом расстоянии (Ь = 14), то наблюдаются лишь небольшие отклонения траектории от прямолинейной. Если соударение частиц близко к центральному (Ь = 1), то проявляется сильное отталкивание. На правом рисунке изображены траектории частиц, когда параметр столкновения Ь выбран в интервале 7—8,5. [c.349] Задание 197. Используйте программу СОУДАР для изображения на экране траекторий частиц при фиксированном значении параметра Ь и различных начальных скоростях W. Расширьте графическую часть программы так, чтобы по изображению траектории можно было оценить относительную скорость частицы. Для этого можно, например, отмечать траекторию точками, которые выводятся на экран на каждом 1-м частичном интервале интегрирования. Чем плотнее располагаются точки, тем меньше относительная скорость частицы. [c.350] Задание 198. Подставьте в выражение для потенциала V(r) параметры для гелия и сравните траектории атомов гелия с траекториями атомов аргона. [c.350] В следующем примере мы не будем стремиться во что бы то ни стало уменьшить число дифференциальных уравнений в системе. Теперь время счета несколько увеличится, но зато мы получим более полную модель процесса без всяких приближений. [c.350] Значения физических параметров и восемь начальных условий координаты и компоненты импульса частиц в начальный момент) заданы в тексте программы (строки 400—480). Остальная часть основной программы и цикл в строках 1000—1260 практически совпадают с соответствующим участком программы КИНЕТИКА . Лишь в строке 710 заданы другие числовые значения временнь1х интервалов в соответствии с физическим содержанием задачи. В строке 715 вызывается подпрограмма 2000, подготавливающая вывод графической информации. [c.354] В подпрограмме 15000, предназначенной для вывода на экран графических данных, первые операторы строк 15030 и 15040 перемещают поднятое перо в точки экрана, соответствующие рассчитанным координатам обеих частиц. Операторы DPLOT(0, О, 1) опускают перо и ставят на экране светящуюся точку в том месте, где в данный момент находится перо. Так на экране появляется изображение траекторий, плотность точек на которых служит мерой скорости частиц. [c.354] На рисунках приведены примеры траекторий при различных начальных условиях (см. табл.). [c.354] Хотя в данной задаче использованы числовые параметры потенциала Леннарда-Джонса для аргона, в учебных целях проведен также расчет траекторий частиц различной массы. Результаты в целом верно описывают изменение поведения частиц, связанное с существенным изменением скорости их движения. На следующих рисунках сопоставлено поведение частиц при столкновении в зависимости от их массы. [c.354] Каждая из сторон прямоугольника, на котором строится поверхность функции Z = F(x, у), делится не более чем на 50 отрезков. Во всех узлах сетки рассчитываются значения Z (не больше чем 2500). Координатам точек поверхности соответствуют одномерные массивы Х( ), Y( ) и двухмерный массив Z( ), которые описаны в строке 40. Расчет выполняется на участке программы от строки 1400 до строки 1500. Координаты точек присваиваются элементам массивов Х( ), Y( ), Z( ) и одновременно определяется наименьший (Z5) и наибольший (Z6) элемент массива Z( ). Значению X, равному Х(1), и значению Y, равному Y(J), соответствует значение функции Z(I, J). [c.359] Матрица преобразования D рассчитывается в начале программы до строки 1288. Для вычисления двух координат точки на плоскости проекции (им соответствуют переменные XN и YN) вызывается подпрограмма 8000. В этой подпрограмме вспомогательный вектор Т, компонентами которого являются исходные значения X, У и Z, умножается на матрицу D. Координата Z после преобразования нас не интересует и поэтому не рассчитывается. [c.360] Участок программы со строки 1600 до строки 1690 предназначен для вычисления наименьшего и наибольшего значения X на проекции (XI и Х9). В следующей строке делением отрезка XI, Х9 на 250 частей рассчитывается значение переменной DX. Одномерные массивы М1( ) и М9( ), элементам которых сначала присваиваются очень малые и очень большие числовые значения соответственно, используются для того, чтобы запомнить для каждой из 251 точек экрана, какие точки на изображаемой поверхности лежат ближе к плоскости проекции (экрану), а какие дальше. Это делается для того, чтобы на экране не изображались те части поверхности, которые в данной проекции закрыты другими ее частями. [c.360] За ходом построения изображения лучше всего наблюдать непосредственно на экране. Сначала строятся линии пересечения поверхности с плоскостями, перпендикулярными оси X (X = onst) (строки 2220—2280), потом линии пересечения с плоскостями, перпендикулярными оси У (У = onst) (строки 2310—2400). Для отображения этих линий на экране каждый раз вызывается подпрограмма 9000. Сетка линий как бы покрывает изображаемую поверхность от ближнего к наблюдателю края к дальнему благодаря тому, что расчет и отображение точек на экране происходят ступенчато. Это можно лучше себе представить, если проследить за работой цикла по параметру I (строки 2500—2700), например при I = 10, и выяснить, какие значения X, У и Z преобразуются и потом выводятся на экран. Переменные ХА и УА, которые встречаются на этом участке программы, необходимы для запоминания текущих координат пера получающиеся при преобразовании координаты XN и УЫ соответствуют новой позиции пера, и обе позиции соединяются отрезком прямой. [c.360] Подпрограмму вывода на экран графической информации оставляем читателям для самостоятельного анализа. [c.361] Вернуться к основной статье