Иллюстрированный самоучитель по Maple 9

Нахождение функции Лагранжа системы и частоты малых колебаний

Основная линия вертикальной стенки начинается в точке [0.0] и заканчивается в точке [0,Sft], т.е. имеет длину Sft – и этот объект в качестве значения присваивается локальной переменной А.

Штрихи формируются как массив S, элементами которого являются тонкие (thickness=0) линии, направленные под углом 135 градусов к вертикали, т.е. внутрь стенки и вниз. Вертикальная координата окончания каждого штриха (лежащего на основной линии) на величину Sft/N больше, чем у предыдущего.

Вертикальная стенка создается процедурой display(), первый аргумент которой – базовая линия стенки А, а второй – последовательность, формируемая из элементов массива S. Фрагмент горизонтальной плоскости (переменная hWall) получается из вертикальной стенки путем отражения относительно прямой, проходящей через точки [0.0] и [1.1]. Осуществляется отражение посредством процедуры reflect() из пакета plottools. Параметрами этой процедуры указывают графическую структуру, которую следует отражать (hWall), и точку или линию, относительно которой выполняется отражение. Прямая линия задается двумя точками.

Полученная таким образом часть горизонтальной плоскости имеет длину Sft, поэтому ее нужно "удлинить". Делается это посредством параллельного переноса созданного фрагмента вдоль горизонтали. Такая операция реализуется в рамках условного оператора while.

На заметку
Синтаксис вызова условного оператора выглядит следующим образом: while условие do оператор_1… оператор_n end do. Если выполняется условие, то последовательно выполняются операторы, размещенные между ключевыми фразами do и end do, после чего снова проверяется условие, и если оно верно, то снова выполняются операторы, и т.д
.

Перед вызовом этого условного оператора инициализируется переменная-счетчик R, с помощью которой можно корректно определить, когда следует закончить выполнение условного оператора. Переменная эта будет "помнить" длину фрагмента горизонтальной плоскости. Первоначальное значение этой переменной, как несложно догадаться, должно равняться Sft. Картинку будем создавать такой, чтобы размер по горизонтали (и, в принципе, по вертикали) был не менее 1, но не более 2. Поэтому процесс "дополнения" горизонтальной плоскости продолжается до тех пор, пока R<1. Именно это условие и указано в условном операторе while. В теле оператора размещено всего две команды. Первая "удлиняет" горизонтальную плоскость.

Делается это следующим образом: переменной hWall в качестве значения присваивается последовательность, первый элемент которой – сама переменная hWall (т.е. ее прежнее значение), а второй элемент – результат выполнения процедуры translate(). У этой процедуры три параметра-аргумента: первый задает графическую структуру, которую следует "перенести", а два других определяют направление переноса. Так, в данном случае вторым параметром указана переменная Sft, а третьим – 0. Это значит, что графическую структуру следует перенести на расстояние Sft вдоль горизонтальной оси и на расстояние 0 по вертикали. Первый аргумент процедуры translate () – результат отражения вертикальной стенки относительно биссектрисы левого нижнего угла.

Вторая команда в цикле while нужна для изменения значения переменной-счетчика R – после описанной выше манипуляции длина горизонтальной плоскости становится больше на величину Sft.

На следующем этапе формируется полная картинка. Выполняется это с помощью процедуры display(), и результат присваивается в качестве значения переменной Wall.

Наконец, вся картинка переносится вверх на расстояние (1-Sft) и по горизонтали на расстояние длины штриха, т.е. на величину Sft/N. Такой перенос выполняется с очень простой целью – чтобы координаты по вертикали и горизонтали были положительными. Если картинку не смещать, принципиально ничего не изменится – внешний вид системы будет таким же, разница будет только в выборе начала отсчета.

На заметку
В данном примере координатная система не отображается. Поэтому, строго говоря, картинку можно было и не смещать
.

Используя последнюю описанную процедуру, можно отобразить внешний вид рассматриваемой системы. Однако для этого следует инициализировать ряд параметров. Так, высоту бруска примем равной:

Иллюстрированный самоучитель по Maple 9 › Задачи физики › Нахождение функции Лагранжа системы и частоты малых колебаний

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.