Вы находитесь на странице: 1из 58

И.А.

 АЛЕЙНИКОВ

ПРАКТИЧЕСКОЕ
ИСПОЛЬЗОВАНИЕ ПАКЕТА Mathcad
ПРИ РЕШЕНИИ ЗАДАЧ
Учебное пособие

Москва – 2002
УДК 531 ПРЕДИСЛОВИЕ
ББК 22.2
А 45 Система Mathcad — современный программный про-
дукт, который может оказать существенную помощь сту-
И.А. Алейников. Практическое использование пакета Mathcad дентам, инженерам и всем тем, кто выполняет какие-либо
при решении задач: Учебное пособие. — М.: Российский госу-
расчёты. Основное достоинство этой системы заключается
дарственный открытый технический университет путей сообще-
в отсутствии необходимости пользователю осваивать осно-
ния Министерства путей сообщения Российской Федерации,
вы программирования, так как Mathcad предельно прибли-
2002, 114 с.
жен к обычному математическому языку. Поэтому на ре-
Учебное пособие подготовлено в помощь студентам всех
шение поставленных задач затрачивается незначительное
специальностей, инженерам, аспирантам, использующим при
время.
решении задач весьма популярный программный продукт фир-
“Система Mathcad содержит текстовый редактор, мощ-
мы MathSoft — математический пакет Mathcad. Его возможно-
ный вычислитель и очень простой в применении графичес-
сти иллюстрируются на примерах при решении широкого клас-
кий процессор. Это позволяет готовить документы, по виду
са задач.
напоминающие статьи или разделы из книг. ... Вычислитель
системы содержит множество математических функций —
Р е ц е н з е н т — заведующий кафедрой информатики и при-
от всем известных элементарных до весьма специфичес-
кладной математики Московского государственного строи-
тельного университета, доктор технических наук, профессор
ких...”. Современные версии Mathcad дают пользователям
В.Н. СИДОРОВ
возможность производить символьные расчёты...” В этом
случае результатом вычисления выражения является дру-
Рекомендовано редакционно-издательским советом Российс- гое выражение. При этом желаемая форма этого второго
кого государственного открытого технического университета выражения может быть задана. Первоначальное выражение
путей сообщения Министерства путей сообщения Российской можно продифференцировать, проинтегрировать, разложить
Федерации, в качестве учебного пособия для студентов. на множители, в ряд и так далее...”.
Возможность производить практически любые операции
с действительными и комплексными числами, большой на-
бор векторных и матричных операций делают Mathcad не-
заменимым инструментом в руках студентов всех специ-
альностей при выполнении контрольных работ, курсовых и
дипломных проектов.
Данное пособие не является подробным руководством
для пользователей системы Mathcad. Перед ним была по-
ISBN 5-7473-0163-2  Российский государственный открытый ставлена задача показать, как начать с ней работу, научить
технический университет путей сообщения азам, знание которых позволит пользователю легко, быстро
Министерства путей сообщения и уже самостоятельно овладеть основными премудростями
Российской Федерации, 2002 программного продукта.
2 3
В книге приведено большое число полезных, на наш двойным щелчком на пиктограмме . Для просмотра ка-
взгляд, программ, разработанных автором. Для удобства
кого-либо документа достаточно щелкнуть кнопкой мыши
их использования, а также для повышения эффективности
изучения интегрированного пакета Mathcad было разрабо- на нужном документе , и т.д. и он раскроется в правой
тано электронное учебное пособие, которое может, по жела- части экрана. Большинство документов книги снабжено
нию пользователя, реализоваться вместе с книгой. ссылками Далее. Á Назад, для более удобного перемеще-
Для работы электронного пособия необходимы следующие ния между документами пособия. Все ссылки такого плана
минимальные системные требования: IBM PC совместимый также снабжены всплывающими подсказками для облегче-
персональный компьютер, Pentium 100 или выше, 16 Мб опе- ния работы пользователя с электронной книгой.
ративной памяти (рекомендуется 64 Мб), видеографический В четвертой главе рассмотрены практические примеры с
адаптер, поддерживающий режим 1024 × 768 × 65536 цветов возможностью редактирования в системе Mathcad (это
(hi-color), 75 МБ свободного пространства на жестком диске, можно сделать при условии если у вас на компьютере уста-
CD-ROM Drive 8x speed или выше, мышь, Microsoft Internet новлена система Mathcad). Документы такого рода снабже-
Explorer 4.0 или выше, Mathcad версии 7.0 или выше. Опера- ны следующей пиктограммой .
ционная система: Windows 95, 98, Me, XP, NT, 2000.
Учебное пособие состоит из четырех глав.
Для запуска электронной книги необходимо запустить на
Первая посвящена началам работы с популярным про-
выполнение файл “Учебное пособие”, который расположен
граммным пакетом Mathcad.
в корневом каталоге компакт диска. После запуска пособия
Вторая содержит информацию о некоторых численных
следует обратить внимание на то, что окно браузера рас-
методах, которые наиболее часто применяются в инженер-
крылось на полный экран, если этого не произошло, то не-
ных расчетах.
обходимо сделать это вручную, нажав на кнопку “Развер-
Третья глава даст читателю представление о простом и
нуть”, расположенную в правом верхнем углу браузера.
весьма эффективном методе решения задач многокритери-
При невыполнении этого условия, а так же при разрешении
альной оптимизации. На взгляд автора это очень важно для
экрана менее чем 1024 × 768, работа с электронной книгой
широкого круга специалистов.
будет невозможна.
В четвертой главе дано решение в Mathcad большого
Далее появляется заглавная страница электронной книги,
числа практических задач.
которая содержит ссылки для перехода непосредственно к мате-
риалам учебного пособия. Для перехода необходимо навести
курсор на текст ссылки, который всегда подчеркнут линией, а
так же отмечается присутствием всплывающей подсказки и
щелкнуть клавишей мыши один раз.
Электронная книга состоит из 4-х глав, каждая из кото-
рых включена в отдельный узел, для более быстрого поиска
необходимого материала. Каждый узел раскрывается или
однократным щелчком мыши непосредственно на узле или

4 5
1. ОСНОВЫ РАБОТЫ С MATHCAD

1.1. Меню системы


В этом учебном пособии авторы не уделяют внимание
основам Windows. Предполагается, что читатель уже полу-
чил основные навыки работы в этой операционной системе.
Так же будем считать, что пакет Mathcad уже установлен
на жёстком диске.
Для начала работы с системой, находясь в менеджере
программ, следует войти в соответствующую библиотеку,
щёлкнув по пиктограмме MathSoft, далее щёлкнуть дважды
Рис. 1.1
левой клавишей мыши по пиктограмме с названием
Mathcad, после чего система начнёт загружаться. После
завершения загрузки мы оказываемся перед основным меню
(рис. 1.1), которое состоит из типичных для среды Windows
элементов. Рассмотрим основные, необходимые начинаю-
щему пользователю.
В верхней части экрана располагается строка заголовка,
содержащая название системы “Mathcad”. Под этой стро-
кой находится строка меню. В результате щелчка мышью
на каком-либо из её элементов открывается ниспадающее
меню, содержащее набор команд. Рассмотрим это более
подробно.
Меню File — файл (рис. 1.2.):
New [F7] — раскрывается окно для нового документа;
Open ... [F5] — позволят выбрать и раскрыть уже суще-
ствующий документ;
Save [F6] — сохранение на диске документа под ранее
определённым именем;
Save as ... — сохранение документа под новым именем;
Export Worksheet**... — сохранение рабочего документа
в формате RTF;
Insert ... — вставка в документ;
Mail**... — посылка документа по электронной почте;
Close [Ctrl-F4] — закрытие документа; Рис. 1.2
6 7
Open URL**... — использование Интернет;
Get from Notes/Save In Notes** — использование базы
данных в Lotus Notes;
Save Configuration file**... — сохранение файла конфигу-
рации;
Associate Filename**... — связывание выделенной пере-
менной с файлом данных;
Page Setup ... — установка отступов на странице;
Print Prewiew ... — просмотр документа перед печатью;
Print ... [Ctrl-O] — печать документа;
Exit [Alt-F4] — выход из Mathcad.
Примечание. В квадратных скобках записаны названия кла-
виш, нажатие которых позволяет выполнить соответствующие
команды без входа в меню File. Значок «**» отмечает команды,
доступные достаточно подготовленным пользователям. Эти
обозначения будут использоваться и в дальнейшем.
Рис. 1.3
Меню Edit — редактирование (рис. 1.3):
Undo Last Edit [Alt-BkSp] — отмена последнего изменения;
Cut [Ctrl-X] — перемещение выделенного фрагмента до-
кумента в буфер обмена — ClipBoard;
Сopy [Ctrl-C] — копирование выделенного фрагмента
документа в ClipBoard;
Clear — удаление выделенного фрагмента документа;
Paste [Ctrl-V] — вставка содержимого ClipBoard в соот-
ветствующее место документа;
Paste Special**... — тоже, что и Paste, но при использова-
нии различных форматов;
View Regions — установка режима подсветки областей;
Select All Regions — выделение всех областей в документе;
Separate Regions [Ctrl-S] — разделение наложившихся
областей документа;
Horizontal/Vertical** — выравнивание выделенных обла-
стей вдоль горизонтальной/вертикальной линии;
Include ... — включение определений переменных и функ-
ций из какого-либо документа в текущий; Рис. 1.4
8 9
New** — создание гипертекстовых ссылок на какой- Change Default Font — изменение щрифта всего текс-
либо документ; та, кроме тех мест, где использовалась команда Change Font ...;
Erase** — удаление гипертекстовых ссылок, связанных Paragraph format ... — изменение способов выравнивания
с текущим выделением; текстовых параграфов;
Set Lock Area** — определение защищаемой области Check Spelling ... — проверка орфографии;
рабочего документа; Меню Math — математика (рис. 1.5):
Lock Area**... — включение защиты области;
Matrices ... [Ctrl-M] — создание матриц или изменение
Unlock Area**... — редактирование защищаемой области;
размеров ранее созданных;
Ins/Del Blank Lines ... — вставка/удаление чистой строки;
Built-in Variables ... — установка значений системных
Insert Pagebreak — вставка независимого от форматиро-
переменных;
вания разрыва страницы;
Insert Unit ... [Ctrl-U] — вставка единицы измерений;
Set Right Margin — нанесение на лист документа правой
Change System of Units — изменение системы единиц;
границы;
Dimensional Format ... — изменение названий единиц измерения;
Clear Right Margin — удаление правой границы;
Insert Function ... — просмотр и вставка имеющихся функций;
Headers / Footers ... — определение верхних /нижних ко-
Randomize ... — установка генератора случайных чисел;
лонтитулов документа;
Calculate [F9] — расчёты по формулам, расположенным
Align Region** — выравнивание областей;
за курсором;
Find ...[Ctrl-F5] — поиск заданной строки;
Calculate Worksheet — расчёты по всем формулам документа;
Replace ... [Shift-F5] — нахождение и замена строки;
Toggle Equation — выключение / включение формулы из
Go to page ... — переход к указанной странице.
вычислений;
Примечание. В меню File и в дальнейшем имеются стро- Highlight Equation — изменение цвета выделенного вы-
ки, снабжённые значком «Î». Такие строки содержат под- ражения;
меню, команды которого мы и приводим. Например: Automatic Mode — включение / выключение автомати-
Right Margin Î ческого режима вычислений;
Set Right Margin Live Symbolics — переключение режима автоматических
Clear Right Margin символьных вычислений;
Меню Text — текст (рис. 1.4): Optimize — переключение режима оптимизации числен-
ных расчётов;
Create Text Region — создание текстовой области, кото-
Numerical Format ... — изменение формата числа;
рая начинается в месте расположения курсора;
Font Tag ... — изменение формата отображения числа;
Create Text Paragraph [Ctrl-T] — создание текстового
Change to Greek Variable [Ctrl-G] — замена латинской
параграфа;
буквы на греческую;
Embed Math — внедрение формул в текст;
Change Font ... — изменение шрифта текста; Меню Graphics — графика (рис. 1.6):
Change Paragraph Format ... — изменение выравнивания Create X-Y Plot [@] — создание двухмерного графика;
параграфа; Create Polar Plot [Ctrl-7] — создание полярного графика;

10 11
Create Surface Plot [Ctrl-2] — создание поверхности;
Create Contour Plot [Ctrl-5] — создание карты линий
уровня;
Create 3D Scatter Plot — создание трёхмерной гистограммы;
Create Vector Field Plot — создание векторного поля на
плоскости;
Create 3D Bar Chart — создание изображения совокупно-
сти столбиков в трёхмерном пространстве;
Create Picture** — создание области для импорта рисунка;
X-Y Plot Format … — задание формата двухмерного гра-
фика;
Polar Plot Format … — задание формата полярного гра-
фика;
3D Plot Format … — задание формата трехмерного гра-
фика;
Рис. 1.5
Picture Format**… — задание характеристик области для
импорта рисунка.
Меню Symbolic — символьные вычисления (рис. 1.7):
Evaluate Symbolically [Shift-F9] — вычисление выражения
в символьном виде;
Сomplex Evaluation — преобразование выражения в ком-
плексном виде;
Floating Point Evaluation — численное вычисление выра-
жения;
Simplify — упрощение выделенного выражения;
Expand Expression — разложение по степеням;
Factor Expression — разложение на множители;
Сollect on Subexpression — разложение по подвыраже-
нию;
Polynomical Coefficients — нахождение коэффициентов
выражения, записанного как полином, относительно выде-
ленной переменной;
Differintiate on Variable — дифференцирование выраже-
ния по выделенной переменной;
Integrate on Variable — интегрирование выражения по
Рис. 1.6 выделенной переменной;
12 13
Solve for Variable — определение выделенной перемен-
ной, входящей в выражение;
Substitute for Variable — замена переменной, содержащей-
ся в ClipBoard, вместо какой-либо переменной в выражении
всюду, где она встречается;
Expand to Series — разложение в ряд Тэйлора по выделен-
ной переменной;
Convert to Partial Fraction — разложение на элементар-
ные дроби;
Transpose Matrix — транспонирование матрицы;
Invert Matrix — инвертирование матрицы;
Determinant of Matrix — вычисление определителя мат-
рицы;
Fourier Transform — преобразование Фурье относитель-
но выделенной переменной;
Inverse Fourier Transform — обратное преобразование Рис. 1.7
Фурье относительно выделенной переменной;
Z Transform** — вычисление Z — преобразований;
Inverce Z Transform** — вычисление обратного Z — пре-
образования;
Derivation Format ... — задание расположения результата
относительно искомого выражения;
Derive in place — замещение исходного выражения ре-
зультатом его символьного преобразования.
Меню Window — окно (рис. 1.8):
Cascade — расположение документов друг под другом,
при этом видны их заголовки;
Tile Horizontal/Vertical — горизонтальное/вертикальное
расположение окон без перекрытия;
Arrange Icons — выравнивание пиктограмм документов;
Zoom … — изменение масштаба изображения документа;
Refresh [Ctrl-R] — обновление экрана;
Create … — создание анимационного клипа;
Playback — запуск существующего анимационного клипа;
Hide Palette — снятие панели символов;
Hide Tool Bar — снятие верхней панели инструментов; Рис. 1.8
14 15
Hide Font Bar — снятие панели шрифтов;
Background Color … — изменение цвета фона;
Text Color … — изменение цвета шрифта в текстовых
областях;
Equation Color … — изменение цвета формул;
Highlight Color … — изменение цвета подсвеченных вы-
ражений;
Annotation Color … — изменение цвета аннотаций к
Электронным Книгам.
Меню Books — книги (рис. 1.9):
Open Book … — открытие Электронной Книги;
History … — перечисление всех просмотренных разделов;
Search Book … — поиск по всем разделам Электронной
книги;
Annotate Book — сохранение аннотированной копии Рис. 1.9
Электронной Книги;
Annotate Options 4 — опции аннотирования...
Меню Help — Помощь (рис. 1.10):
Index ... [F1] — демонстрация всех тем Help;
Keyboard ... — демонстрация тем по функциональным
клавишам;
Using Help ... — информация о том, как пользоваться
Help.
Quick Sheets ... — быстрые подсказки;
Technical Support ... — техническая поддержка;
About Mathcad ... — информация о версии Mathcad.
Вернёмся к главному меню (см. рис. 1.1).
Под строкой меню находится полоса кнопок, раскрыва-
ющая палитру символов : общие арифметические операто-
ры; знаки отношения; различные двух — и трёхмерные гра-
фики; матричные и векторные операции; производные, ин-
тегралы, пределы, ряды и произведения; программные
структуры; греческие буквы.
Далее располагается панель инструментов, содержащая
кнопки, которые позволяют с помощью мыши создавать
документы эффективнее, чем с помощью клавиатуры. Рис. 1.10
16 17
Догадаться о назначении этих кнопок сравнительно лег- рументов или в Save As … меню File. Далее требуется набрать
ко. Например, щелчок мышью по кнопке, на которой изоб- имя документа, которое после щелчка по кнопке “Ok”, появля-
ражён принтер, инициализирует функцию печати, а щелчок ется в строке заголовка вместо [Untitled:1]. В нашем случае
по кнопке с изображением дискеты, инициализирует сохра- это “Mydoc1.mcd”. В будущем для открытия этого документа
нение документа... требуется щелкнуть на Open … меню File. Далее выбрать из
Под панелью инструментов располагается панель шрифтов. списка документов “Mydoc1.mcd”, пометить его щелчком, по-
Она содержит шаблоны выбора и кнопки, используемые для за- сле чего “Ok”. Теперь можно вновь работать с этим докумен-
дания характеристик шрифтов в уравнениях и тексте. том: продолжать его, вносить изменения и т.д.
1.2. Создание простейших документов Если Вы хотите начать работу с новым документом, то
нажмите New из меню File. Перед Вами откроется новый
В строке заголовка основного меню (см. рис. 1.1) имеется
документ [Untitled:2].
запись [Untitled:1] — “без имени: 1”. Это открыт новый
Mathcad отображает формулы в точности в том виде,
документ, которому пока не присвоено имя.
как их печатают в книгах. Система сама подбирает разме-
После щелчка в любом месте этого документа, имеется в виду
ры для дробных черт, скобок, математических символов,
большое белое поле ввода, там появляется небольшой крестик.
чтобы они выглядели так, как их обычно пишут в физико-
Вся программа, введенная пользователем, будет размещена в
математической, технической литературе.
рабочем документе, начиная с места расположения крестика.
После ввода оператора, например “+”, “–” и т.п.,
Напечатаем:
Mathcad показывает небольшой прямоугольник — поле вво-
a:10 — здесь переменной “a” присваивается значение 10.
да, которое содержит место для ввода выражений, чисел.
Вы видите, что в документе набралось:
Выражения на экране можно редактировать, устанавливая
a:=10. в нужном месте указатель и печатая новые символы, циф-
Знак равенства после набора “:” появляется автомати- ры или операторы, многие из которых могут быть набраны
чески. Далее набираем: с помощью палитры символов, упомянутой ранее.
b:5 — переменной “b” присваивается значение 5.
c:a+b — переменной “c” присваивается значение “a+b”. 1.3. Ввод текста в документ
c= — узнаем чему равно “c”. Для того, чтобы ввести текст, надо щелкнуть по Create
На экране появляется: Тext Region или Create Text Paragraph из меню Text.
c=15. Mathcad заменит курсор-крестик на вертикальную линию,
Можно было бы ранее набрать: называемую маркером ввода. Символы вводятся за ним.
Маркер ввода окружен рамкой, обозначающей поле ввода,
a+b=
которое автоматически расширяется по мере необходимос-
На экране появляется:
ти. Для ввода новой строки следует нажать клавишу [Enter].
a+b=15.
Представим себе, что пользователь решил сохранить 1.4. Итерационные вычисления
этот расчет на диске в файле “Mydoc1”. В Mathcad есть специальный тип переменных — дискрет-
Для этого необходимо щелкнуть на “дискете” в панели инст- ные аргументы. Такие переменные принимают целые значе-

18 19
ния. Mathcad вычисляет заданное выражение столько раз, необходимо вычислить y при различных x, то можно просто
сколько значений содержит дискретный аргумент. набрать y(0)= или y(10)= и т.п.
Рассмотрим пример. Пусть пользователю необходимо Например,
вычислить функцию y=10+x2 при аргументе, принимающем y(0)=0.
значения 0, 1, … ,10. Это задание выполняется так: В Mathcad имеется весьма большое число встроенных
j:0;10 — задание дискретного аргумента. функций. Эти функции можно просто набирать с клавиату-
y[j:10+j^2 — вычисление функции при фиксированном ры, но можно воспользоваться меню. При этом необходимо
аргументе. щелкнуть по Math, далее по Choose Function … .
В результате набора “;” на экране появляется “..”. Для Перед пользователем появляется диалоговое окно с прокру-
ввода нижнего индекса используется квадратная скобка — чивающимся списком названий функций. Теперь следует дваж-
“[”. Если набрать: ды щелкнуть по имени функции, которую требуется вставить.
y= ,
то перед пользователем появится вектор значений y — вер-
1.6. Построение формул и редактирование
тикальная таблица значений y с одним столбцом. документа
Редактор формул Mathсad строит математические выра-
1.5. Задание функций жения, собирая отдельные его части, используя правила
Использование функций при разработке документов по- старшинства операций и некоторые другие правила, кото-
зволяет существенно упростить труд пользователя, сделать рые упрощают ввод знаменателей, показателей степени и
программу более наглядной. Рассмотрим такой пример. выражений в радикалах. Для этого в Mathcad имеется осо-
Пусть в формулу, по которой придется производить повто- бый маркер ввода. Рассмотрим, для примера, как набирает-
ряющиеся вычисления входит одно и тоже выражение: ся выражение:
5
x 2 + 2 ⋅ sin x + + ( x 2 + 2 ⋅ sin x ) 3 . 2 ⋅ z − 3 ⋅ b3
[x 2
+ 2 ⋅ sin x ]
2 (1.5.1)
.
a + z3 − 8
Этим выражением в данном случае является:
Набираем:
x 2 + 2 ⋅ sin x . 2 ⋅ z − 3 ⋅ b^ 3 .
В подобных ситуациях пользователь может задать функ- Пока мы печатали символы подряд, согласно правилам
цию: старшинства операций. Теперь нам надо имеющееся выраже-
y( x ) := x 2 + 2 ⋅ sin x . ние сделать числителем. Для этого надо использовать выделя-
ющую рамку. Чтобы она появилась, следует нажать клавишу
Теперь в Mathcad (1.5.1) примет вид:
[-](пробел). Последующие нажатия на [-] увеличивают рамку,
5 и она охватит целиком все необходимое пространство.
y( x ) + + ( y( x ))3 .
( y( x )) 2
Далее нажимаем клавишу [/] для появления на экране
Следует помнить, что определение функции должно пред- дробной черты. Теперь печатаем:
шествовать ее использованию. Теперь, если пользователю
a + z^ 3 .
20 21
Нажимаем несколько раз [-] пока рамка не охватит z3, 1.7. Введение в графику Mathcad
после чего набираем: Построения графиков функции y(x) или поверхностей
-8. f(x,y) проводятся с помощью соответствующих меню и ба-
Теперь все выражение набрано. зируются на умении задавать функции и дискретные аргу-
Основные потребности в редактировании формул можно менты. Эти вопросы уже рассматривались в разделах 1.4 и
удовлетворить, если уметь изменять буквы и числа, а так- 1.5. Примеры построения графиков приведены в докумен-
же изменять или вставлять операторы. тах №№ 1.1* и 1.2.
Для замены буквы или числа надо щелкнуть мышью в
1.8. Некоторые возможности символьной
месте, где один из этих элементов формулы располагается.
Теперь маркер ввода оказывается в нужном месте. При математики Mathcad
необходимости маркер ввода можно перемещать с помощью При использовании символьной математики, результатом
клавиш [®], [¬]. При наборе букв и чисел они будут распо- вычисления выражения является другое выражение. В до-
лагаться в том месте, где и маркер ввода. Нажатие клави- кументе № 1.3 приведены примеры символьных вычис-
ши [BkSp] удаляет один символ слева от маркера. лений. ∞
1
Чтобы научиться заменять операторы, определим наивысший Для символьного вычисления выражения ∑ n 2 следует
n =1
оператор в выражении. Для примера рассмотрим формулу: обвести выражение и в меню Symbolic щелкнуть по
( a + b )⋅( c + d ) . Evaluate, а после этого по Evaluate Symbolically. В резуль-
π2
Здесь наивысшим является оператор умножения, так как ис- тате получается . Для записи этого результата в виде
6
пользует все компоненты в выражении и в нем нельзя изменить числа с плавающей запятой следует щелкнуть по Floating
π2
что-нибудь, не изменив результат операции умножения. Point Evaluation, предварительно поместив в рамку.
6
При замене оператора главным является расположение 3
(a + b)
Для символьного упрощения выражения
выделяющей рамки таким образом, чтобы нужный опера- a 2 + 2 ab + b 2
тор оказался наивысшим в выделенном выражении. следует обвести выражение и щелкнуть по Simplify. В ре-
В качестве примера изменим на «плюс» знак «минус» в зультате получается a + b .
числителе ранее рассмотренного выражения: Для разложения выражения ( a + b)( a + b) по степеням сле-
2 ⋅ z − 3 ⋅ b3 дует, обведя его, щелкнуть по Expand Expression. В резуль-
. тате получим a 2 + 2ab + b 2 .
a + z3 − 8 Для разложения на множители используетcя пункт меню
Установим выделяющую рамку на числителе: Symbolic — Factor Expression.
Для дифференцирования выражения по переменной сле-
2 ⋅ z − 3 ⋅ b3 дует, пометив ее, щелкнуть по пункту Differentiate on
.
a + z3 − 8
Теперь нажимаем клавишу [Del], удаляя, при этом, наи- * Mathcad — документы (Mathcad-программы), приведенные в тексте
высший оператор. Остается нажать на клавишу [+]. Знак книги, выделяются рамкой и снабжаются следующими обозначениями:
«минус» в числителе при этом изменяется на «плюс». ♦ — начало документа; — продолжение документа; „ — конец документа.


22 23
Variable. Аналогично поступают при интегрировании выра-
? Документ-N1.1 Построение графика функции Y=Y(X)
жений — пункт меню Integrate on Variable. Пример a)
Для решения уравнения относительно переменной следу-
Для построения графика следует:
ет записать его, используя символьный знак равенства 2
[Ctrl]+[=]. Далее, пометив переменную, необходимо щелк- y( x) x
3
-задать соответствующую функцию;
нуть на Solve on Variable.
i 1 .. 100 -определить дискретную переменную X , принимающую
В примере: sin( x ) = cos(2 x ) xi 0.01 .i значения аргумента в желаемом диапазоне;

-определить дискретные значения функции Y;


π π yi y xi
результат: x1 = ; x2 = − .
6 2
Y=Y(X) -напечатать выражение , гра-
Для символьного решения системы уравнений использу- 22 фик которого нужно получить;
ются ключевые слова Given и Find(x,y). Здесь x, y — пере- y
16.5
i -напечатать переменную-ар-
менные, подлежащие определению. Уравнения следует запи- 11 гумент в среднем поле на оси
сать, используя символьный знак равенства, между ключе- 5.5 абсцисс;

выми словами. После того, как набрано Find(x,y), следует 0 -дважды щёлкнув на графи-
0 0.25 0.5 0.75 1 ке, задать требуемый формат.
нажать [Ctrl]+[⋅]. x
i

В документе 1.4 приводится несколько примеров символь-


ных действий над матрицами. Для ввода матрицы в доку-
мент необходимо из меню Math выбрать Matrices. После Пример b)
щелчка по Matrices следует задать размерность матрицы с Изображение синусоиды:

помощью раскрывшегося диалогового окна. Теперь требу- i 0 .. 359


ется создать матрицу и осуществить ввод ее элементов. xi i.
π
Для символьных действий следует заключить матрицу в 180
выделяющую рамку, после чего щелкнуть по пункту меню Y=sin(x)
1.1
Matrix Operations. Теперь если мы хотим осуществить:
0.55
— транспонирование, то щелкаем по Transpose Matrix; sin x
i
— обращение, то щелкаем по Invert Matrix; 0

— вычисление определителя, то щелкаем по Determinant 0.55

of Matrix. 1.1
0 1.57 3.14 4.71 6.28
x
i

¦
„

24 25
 Документ-N1.3 Введение в символьную математику

1) Символьные преобразования

1
1. 2
Выражение- 2 результат- π числовой вид- 1.6449341
n=1 n 6
100000
1
Числовая проверка- = 1.645
2
n=1 n

2) Упрощение выражения
3
(a b)
Выражение- результат- a b
2 2
a 2 .a .b b

3) Разложение по степеням

2 2
Выражение- (a b ) .( a b) результат- a 2 .a .b b

4) Разложение на множители

2 2 2
Выражение- a 2 .a . b b результат- (a b)

5) Дифференцирование по переменной

sin ( 2 .x) ( cos ( 2 .x) .x sin ( 2 .x) )


Выражение- результат- 2.
2 3
x x

6) Интегрирование по переменной

( cos ( 2 .x) .x sin ( 2 .x) ) sin ( 2 .x)


Выражение- 2. результат-
3 2
x x

7) Решение уравнения относительно переменной

Выражение- sin ( x) cos ( 2 .x)

1.
π
6
результат-
1.
π
2

„ „

26 27
1.9. Программирование

Документ-N1.4 Символьные действия над матрицами Возможность программирования в Mathcad стала предо-
Задание матрицы ставляться пользователю, начиная лишь с шестой версии.
Как и любое выражение в Mathcad, программа возвра-
a b 0
b c 5
щает некоторый результат. Главное различие между про-
3 0 d граммой и выражением в том, что программа может ис-
Для транспонирования: выделяем матрицу; входим в меню
пользовать практически любое число операторов, а выра-
Symbolics; щёлкаем по Matrix; щёлкаем по Transpose; в резу- жение содержит лишь один. Таким образом, программа
льтате получаем
может рассматриваться, как составное выражение.
a b 3 Рассмотрим простую программу, которая находит наи-
b c 0 меньшее и наибольшее расстояния из расстояний от начала
0 5 d отсчета до каждой из трех точек A, B и C. Координаты этих
Осуществим обращение полученной матрицы. Для этого вы-
точек равны, соответственно:
деляем матрицу, входим в меню Symbolics; щёлкаем по Matrix;
щёлкаем по Invert; в результате получаем X A = A0 ; YA = A1 ; Z A = A2 ;
YB = B0 ; YB = B1 ; Z B = B2 ;
d ( b .d 15 ) c
c. 3.
a .c . d
2
b .d 15 .b a .c .d
2
b .d 15 .b a . c .d
2
b .d 15 .b X C = C0 ; YC = C1 ; Z C = C2 .
d d b
b.
2
a.
2
3.
2
Текст программы имеет вид:
a .c .d b .d 15 .b a .c . d b .d 15 .b a .c . d b .d 15 .b
2
b a a .c b
5. 5.
a .c . d b d
2.
15 .b a . c .d
2.
b d 15 .b a .c . d b d
2.
15 .b r0 ← A02 + A12 + A22
r1 ← B02 + B12 + B22
R(A, B, C ) := r2 ← C02 + C12 + C22
Для нахождения определителя: выделяем матрицу , входим
в меню Symbolics; щёлкаем по Matrix; щёлкаем по Determi-

 min (r )
nant; в результате получаем

a . c .d
2
b .d 15 .b max(r ).
 
Того же эффекта можно добиться, выделив выражение
определителя матрицы, и щелкнув по Evaluate в меню Sy- Здесь на вход программы подается три вектора A, B, C,
mbolics
элементами которых являются координаты трех точек.
a b 3
b c 0
Если теперь написать
0 5 d
R (A, B, C) = ,
в результате получаем 2
то мы получим вектор, первым элементом которого являет-
a .c .d b .d 15 .b
ся наименьшее, вторым — наибольшее из искомых рассто-
„ яний. Эта программа и примеры ее использования приведе-
ны в документе (док. 1.5).
28 29
Посмотрев на программу, легко догадаться, что r0, r1, r2 —
 расстояния от начала отсчета до точек A, B и C, соответствен-
Документ N 1.5 Написание простейшей программы
но. Аналогом уже знакомого пользователю знака присваивания
Текст программы: “:=”, в программе является — “ ← ”. В четвертой строке запи-
2 2 2
сан вектор, содержащий два элемента: min(r) и max(r).
R( A , B , C ) r0 A0 A1 A2
Функции min( ) и max( ) — стандартные функции
r1 B0
2
B1
2
B2
2
Mathcad. Легко догадаться, что функция min( ) использует
2 2 2
в качестве аргумента вектор, а возвращает значение его
r2 C0 C1 C2
наименьшего элемента. Функция max( ) возвращает значе-
min ( r )
max ( r )
ние наибольшего элемента вектора, использованного в ка-
честве аргумента (см. док. 1.5). В Mathcad-программе мож-
Исходные данные:
но, аналогично min( ), max( ) использовать любые встроен-
2 1 3 ные функции, а также написанные пользователем.
A 1 B 2 C 2
3 7 3
Рассмотрим, как нужно отделять друг от друга операто-
ры и как применять локальный оператор присваивания
Использование пограммы:
“ ← ” при наборе программы.
3.742
R( A , B , C ) = В начале откроем панель программирования. Для этого
7.348
щелкнем по кнопке “программирование” в панели управле-
Другой вариант текста программы:
ния. Теперь начинаем создавать программу (пользовательс-
кую Mathcad-функцию): R (A, B, C).
2
2
Набираем
R1 ( A , B , C ) r0 A
i= 0
i
R (A, B, C):= .
2 Теперь нажимаем на панели программирования кнопку
r1 B
i
2
“Add Line”. Появляется вертикальный столбец с двумя полями
i= 0 ввода для занесения операторов, из которых будет состоять про-
2
2
грамма. Таких полей можно добавить, с помощью щелчка по
r2 Ci
“Add Line”, столько, сколько требуется пользователю... Теперь
i= 0
min ( r ) переходим в поле ввода с помощью мышки или нажатием на кла-
max ( r ) вишу [Tab]. Набираем r0. Нажимаем кнопку “ ← ” на панели про-
граммирования. Вводим справа от “ ← ” A02 + A12 + A22 . После
Использование пограммы:
этого с помощью мышки переходим ко второй строке. Набира-
R1 ( A , B , C ) =
3.742 ем ее аналогично первой. Добавляем поле ввода, щелкнув по
7.348
“Add Line”. Так же пишем третью строку. Щелкнув по
“Add Line”, создаем поле для четвертой строки. Далее выбира-
„ ем матрицы из меню “математика” или нажимаем [Ctrl] M. По-
является диалоговое окно (рис. 1.11)
30 31
Insert Matrix В диалоговом окне вво- 
OK
дим 2 строки (Rows) и Документ N 1.6
Rows 2
один столбец (Columns).
Текст программы:
Columns 1 Insert Щелкаем по “Insert”. Те-
перь в программе, в чет-
Delete y( x, a , b ) 0 if x b
вертой строке, появляется 0 if x a b
форма для вектора. В поле
Cansel sin π .x b otherwise
ввода верхнего элемента a
вводим min(r), а в нижнее
max(r). Теперь программа Вместо "otherwise" можно использовать
Рис. 1.11
готова к использованию. соответствующее логическое выражение
Как мы убедились (см. док. 1.5), в качестве результата
y1( x, a , b ) 0 if x b
действия программы, на экран может выдаваться вектор.
0 if x a b
Программа также может возвращать число или матрицу. x b
sin π . if b < x< a b
Все зависит от того, что задал пользователь в качестве a
вывода.
При написании программы, при необходимости, можно Построение графиков
Построение графиков с использованием
с использованием
применять условные операторы. Познакомимся на примере функций у(x, y(x,a,b)
функций a, b) y1(x, a, b)
y1(x,a,b)
с тем, как это можно сделать. Пусть требуется задать ку- 1
1

сочную функцию:

0 при x < b; 0.8

 πx 
y ( x) = sin  + b  при b≤ x≤a+b
a 
0 при x > a + b. 0.6

y( x , 1 , 2 )

Данная Mathcad-функция приведена в документе (док. y1( x , 1 , 2 )

1.6). Там же построен ее график. 0.4

При создании рассматриваемой программы пользовате-


лю необходимо проделать следующие действия. Вводится
левая часть определения функции и знак присваивания: 0.2

y (x, a, b ):= .
После этого нажимаем “Add Line”. Переходим в первое 0 0
4 2 0 2 4
поле ввода. Щелкаем по кнопке “if” на панели программи- 5 x 5

рования или нажимаем клавишу “}”. Правое поле ввода


„
предназначено для логического выражения. Левое поле вво-
32 33
да предназначено для значения, которое будет иметь функ- 
ция, если логическое выражение в правом поле — истинно. Документ N 1.7
Второе поле ввода заполняется аналогично. После заполне- Текст первой программы: Текст второй программы:
ния второй строки добавляем с помощью “Add Line” третье поле
ввода. Щелкаем по кнопке “otherwise” (otherwise — в ином s( a , h , d ) i 0 s1 ( a , h , d ) i 0

случае). В оставшееся поле вводим значения, которые програм- bi a bi a

ма должна возвращать в случае, если предшествующие логиче- while b i 10


5
while b i 10
5

ские выражения ложны. i i 1 i i 1

Большие возможности для эффективного создания программ bi a d h .( i 1) bi a d h .( i 1)

представляют пользователю встроенные циклы. Рассмотрим n i b

довольно простые программы с их использованием. В результате действия первой В результате действия второй
программы находим число сла- программы находим вектор,
Пример. Задано целое число a. Будем последовательно гаемых, при котором сумма бо- элементами которого являют-
прибавлять к a слагаемые, причем каждое последующее льше 10^5 ся искомые суммы. Программы
слагаемое на целое положительное число h больше преды- отличаются только выводом
(смотри последнюю строку)
дущего. Первое слагаемое равняется d ( a << 10 5 ; h << 10 5 ).
1) Определить число слагаемых n, при котором сумма Sn
s ( 30, 200, 5 ) = 502 S s1 ( 30, 200, 5 )
первый раз станет больше 105.
2) Построить график зависимости S=S(n).
Построение графика:
Решение данного примера выполнено с помощью цикла
“While” и приведено в документе (док. 1.7). n 0 .. 501
Рассмотрим программы этого документа. Слева, как и
ранее, стоят функции S (a, h, d) и S1 (a, h, d). Здесь a, h, 1 10
5

d — аргументы функции.
В первом поле ввода локальной целочисленной перемен- 8 10
4

ной i присваивается значение — ноль. Во втором поле зада-


ется первый (с номером ноль) элемент вектора суммы bi 6 10
4

(i=0). Ему присваивается значение a. Действия пользовате- S


n
ля, при заполнении первых двух полей ввода, стандартны. 4
4 10
Они были описаны в предыдущих примерах. Теперь необхо-
димо задать цикл “While”. Для этого щелкнем по кнопке 4
2 10
“While” на панели программирования. В третьем поле ввода
появляется “while”. С права от while записывается условие
завершения цикла. Как только оно будет выполняться, цикл 0
0 100 200 300 400 500
n
прервется. Под третьим полем ввода располагается тело
цикла. Тело цикла отделяется от основной программы вер- „
тикальной чертой, которая появляется автоматически при
34 35
его формировании. В нашем случае тело цикла состоит из 
двух строк. В первой (i ← i + 1 ) работает счетчик цикла. Во Документ N 1.8
второй определяются элементы искомого вектора.
После того, как тело цикла сформировано, оно обводит- Текст первой программы: Текст второй программы:

ся рамкой курсора и добавляется новое поле ввода (щелчок s( a, h , d ) b0 a s1 ( a , h , d ) b0 a

по “Add Line”). В этом поле записывается i — номер эле- for i ∈ 1 .. 10


6
for i ∈ 1 .. 10
6

мента, который оказался большим, чем 105. Во второй про- bi a d h .( i 1) bi a d h .( i 1)

грамме (см. док. 1.7) в поле вывода записывается вектор, break if b i 10


5
break if b i 10
5

элементами которого будут соответствующие суммы. n i b


В дальнейшем, после задания конкретных a, h, d, вычис-
ляется число элементов вектора сумм, а также определяет- В результате действия первой В результате действия второй
ся сам вектор. По его элементам строится график S=S(n). программы находим число сла- программы находим вектор,
гаемых, при котором сумма бо- элементами которого являют-
В документе (док. 1.8) та же задача решается с помощью льше 10^5 ся искомые суммы. Программы
цикла for. Программы в этих документах похожи. Только отличаются только выводом
(смотри последнюю строку)
при использовании “for” счетчик формируется полуавтома-
тически. Щелкнув по “for” на панели программирования,
s ( 30, 200, 5 ) = 502 S s1 ( 30, 200, 5 )
необходимо в соответствующие поля ввода записать
i ∈1...10 6 .Число 106 задано пользователем. Заранее мы не Построение графика:
знаем значения n, поэтому присваиваем imax сравнительно
n 0 .. 501
большое значение 106, предполагая, что n<<106. При исполь-
зовании “while” проблемы прогнозирования значения imax 1 10
5

перед пользователем не стояло.


В программах (см. док. 1.8) использован оператор преры- 8 10
4

вания “break”. Этот оператор осуществляет выход из цик-


ла в основную программу при выполнении условия, сто- 6 10
4

ящего справа. Для того, чтобы набрать строку с “break” S


n
следует щелкнуть по “if” на панели программирования. В 4 10
4

левое, по отношению к if поле ввода, записывают break, а


справа логическое условие. Все остальные действия пользо- 2 10
4

вателя описывались в предыдущих примерах.


Разработанную программу можно использовать и в других 0
документах. Один из способов состоит в ее стандартном для 0 100 200
n
300 400 500

Windows копировании в новый документ. А второй, на наш


взгляд более эффективный подход, основан на организации ссыл- „
ки (Reference). Отметим, что возможность ссылки представля-
ется пользователям Mathcad, начиная с седьмой версии.
36 37
Рассмотрим пример организации такой ссылки. В доку- 
менте (док. 1.9) записана программа (Mathcad-функция Документ N 1.9 Пример организации ссылки

S(n)), возвращающая квадратную матрицу n ⋅ n случайных


На программу S(n) этого документа делается
чисел, равномерно распределенных на отрезке [0...10]. Бу- ссылка в следующем документе
дем использовать программу S(n) в документе (док. 1.10). Текст программы, возвращающей матрицу,
элементами которой являются случайные
Для этого в документе (см. док. 1.10) следует проделать числа, равномерно распределенные на отре-
следующие действия. В главном меню следует войти в зке [0; 10]. Размерность матрицы равна nxn
“Insert”. Далее следует щелкнуть по “Reference”. Откроет-
i ∈ 0 .. n
ся панель “Insert Reference”. После этого щелкаем по кноп- s( n ) for 1
for j ∈ 0 .. n 1
ке “Browse”. Перед нами открывается каталог файлов. ai rnd ( 10 )
,j
Щелкаем в этом каталоге по названию файла, содержаще- a
му программу S(n). После этого щелкаем по кнопке “от-
Результат действия программы
крыть”. Перед нами вновь открывается панель “Insert
Reference”. Здесь уже указан путь к файлу, содержащему 0.013 1.933 5.85 3.503 8.228
программу S(n). Щелкаем по кнопке “OK”. Дело сделано. 1.741 7.105 3.04 0.914 1.473
Ссылка имеется. И мы можем использовать S(n) уже в но- s( 5) = 9.885 1.191 0.089 5.317 6.018

вом документе. 1.662 4.508 0.571 7.833 5.199


8.76 9.559 5.393 4.621 8.622 „
1.10. Запись результатов расчетов в файл
Если пользователь mathcad-программы решил сохранить 
результаты вычислений содержащиеся, например, в массиве Документ N 1.10 Пример организации ссылки
q, записав их в файл под названием MyFile, то следует
набрать
WRITEPRN(“MyFile”):=q. Reference:C:\File Mathcad\simple 4.mcd

В дальнейшем, если в каком-либо документе нам понадо- Результат действия программы s(n)
бится массив q, то набрав
7.797 9.968
q:= READPRN (“MyFile”), s( 2) =
6.115 2.662

Мы сможем воспользоваться в новом документе стары- 8.401 3.759 6.772


ми расчетными данными. s( 3) = 0.088 2.759 5.879
8.376 4.849 7.437

4.58 7.444 5.99 7.35


5.724 1.516 4.252 5.171
s( 4) =
7.515 1.69 4.919 6.998
1.475 1.416 6.929 4.265 „

38 39
Разделим отрезок [a; b] точками a = x0 , x1 , x2 , …, xn = b
2. ФУНКЦИИ MATHCAD, ЧАСТО на n равных частей длины
ИСПОЛЬЗУЮЩИХСЯ В РАСЧЕТАХ
b−a
h= .
2.1. Понятие о численных методах n
Не всегда в качестве результата решения задачи удается Обозначим теперь y 0 , y1 , y 2 , …, y n −1 , y n значения фун-
получить удобную приближенную или точную формулу. В кции f (x ) в точках x0 , x1 , x2 , …, xn , т.е. y 0 = f (x0 ),
этом случае пытаются найти численный ответ. С этой це- y1 = f (x1 ), …, y n = f (xn ) .
лью разработаны эффективные численные методы, многие [ ]
Заменим кривую f (x ) на a; b вписанной ломаной (рис. 2.2).
из которых широко используются в математическом пакете
Mathcad.
Общее, наглядное представление о численном решении
задачи можно получить на примере нахождения определен-
ного интеграла.
Пусть на отрезке [a; b]задана непрерывная функция
y = f (x ). Требуется вычислить определенный интеграл:
b

Ф = ∫ f (x )dx .
a

Если первообразная f (x ) не выражается через элементар-


ные функции, то для нахождения Ф приходиться применять
какой-либо приближенный метод. Рассмотрим здесь метод
трапеций. Его применение основывается на известном фак-
те — определенный интеграл равняется площади криволи- Рис.2.2
нейной трапеции аАВb (рис. 2.1).
Теперь площадь криволинейной трапеции аАВb заменит-
y
ся суммой площадей прямолинейных трапеций, ограничен-
A В ных сверху хордами AA1 , A1 A2 , …, An −1 B . Площадь первой
y 0 + y1 y1 + y 2
трапеции: ⋅ h ; второй: ⋅ h и т.д. В этом слу-
2 2
чае приближенное значение интеграла:
b
 f (x0 ) + f (xn ) n −1 
0 a b x Ф = ∫ f (x )dx = h ⋅  + ∑ f (x j ) .
Рис.2.1 a  2 j =1 
40 41
Очевидно, что чем меньше будет число h, тем с большей Документ-N2.1 Вычисление определенного интеграла
точностью мы получим значение интеграла Ф. методом трапеций
Программа, реализующая метод трапеций, приведена в Функция TRAPINT(f,a,b,n) возвращает приближенное значение
документе 2.1. В этом же документе определяется относи- определенного интеграла по интервалу от a до b. Интервал раз-
бивается на n равных частей.
тельная погрешность численного интегрирования в функции
b a
числа n частей, на которое разбивается интервал от a до b. TRAPINT ( f, a , b , n ) h
n
В качестве теста вычисляется интеграл: x0 a

1 for j ∈ 1 .. n

Ф = ∫ x dx .
2 xj h xj 1

0 n
f x0 f xn
h. f xj
В Mathcad имеется встроенная функция, позволяющая 2
j= 1
вычислять определенный интеграл. Для того, чтобы выз- В качестве примера найдем интеграл функции x^2 на интервале от
вать эту функцию следует щелкнуть по кнопке, открываю- a=0.1 до b=0.9
1. 3 1. 3
щей палитру производных, интегралов, пределов… . После F( a , b )
3
b
3
a - точное решение примера;

этого следует выбрать определенный интеграл, щелкнуть y ( x) x


2
a 0.1 b 0.9
по нему и приступить к решению поставленной задачи. F ( a , b ) = 0.243
Следует отметить, что точность численных расчетов TRAPINT ( y , a , b , 780 ) = 0.243 - решение примера с помощью TRAPINT();
принципиально ограничена. В связи с этим и для Mathcad b
2
- решение примера с помощью встроенной в
x d x = 0.243
можно найти примеры, точность решения которых окажется a Mathcad функции
неудовлетворительной. Всегда при использовании числен- Расчет относительной погрешности:
ных методов, и не только тех, что реализованы в Mathcad, n 1 .. 500
F( a , b ) TRAPINT (y ,a,b ,n ) .
следует быть осторожным. При возможности следует оце- dn
F( a , b )
100

нивать погрешность расчетов. Относительная ошибка в функции числа отрезков n


Для получения желательной точности и быстродействия 400
численных расчетов следует устанавливать значение встро-
енной переменной TOL в какое-либо из оптимальных допу-
d 200
стимых значений между 0 и 1. Близкие к 0 значения соответ- n

ствуют более высокой точности вычислений, а близкие к 1


ускоряют вычисления, но приводят к проигрышу в 0
0 50 100 150

точности. n
„
2.2. Интегрирование обыкновенных
дифференциальных уравнений в MATHCAD
В Mathcad встроен мощный аппарат для интегрирования
С дифференциальными уравнениями мы сталкиваемся на обыкновенных дифференциальных уравнений и их систем.
каждом шагу, обучаясь в учебных заведениях, в инженер- Рассмотрим, по традиции на простых примерах, некото-
ной и научной работе. рые, наиболее употребляемые функции из этого аппарата.
42 43
Пример. Проинтегрировать обыкновенное дифференци- 
dy
альное уравнение − 0,3 y + 5t ⋅ e −8t + 5 sin 3t = 0 , на интерва- Документ-N 2.2 Интегрирование обыкновенных
dt дифференциальных уравнений
ле t ∈ [0;10] при условии y (0 ) = 2,5 .
Проинтегрировать обыкновенное дифференциальное
Решение данного примера приведено в документе уравнение y'-0.3y+5te^(-8t)+5sin(3t)=0 на интервале
изменения t от 0 до 10 при yo =2.5
(док. 2.2). Для интегрирования дифференциального уравне-
ния используется функция rkfixed( ), реализующая наиболее Задаём начальные условия y0 2.5
распространенный метод Рунге-Кутты четвертого порядка. Задаём правую часть дифференциального уравнения
Приемы работы с этой функцией подробно рассматривают-
ся в том же документе. Здесь же приводятся примеры реше- D( t , y ) 0.3 .y 5 . t .e
8 .t
5 .sin ( 3 .t )

ния системы из двух дифференциальных уравнений. Интегрируем дифференциальное уравнение, используя


Если мы заранее знаем, что решением дифференциально- Mathcad-функцию rkfixed(y,to ,tk,n,D). Аргументы: y - начальные
условия; to ,tk - граничные точки интервала, на котором
го уравнения является гладкая функция, то для интегриро- ищется решение; n - число точек, в которых ищется решение;
вания можно использовать более точный метод Булириш - D - функция, выражающая правую часть
дифференциального уравнения
Штера, реализованный в виде mathcad-функции Bulstoer( ),
имеющей тот же список аргументов, что и rkfixed( ).
Z rkfixed( y , 0 , 10 , 100, D )
В документе (док. 2.3), содержащемся в файле “Myrk”
электронной книги приведена авторская mathcad-функция В результате Z присваевается
и двумерный массив, содержащий два

( )
xr h, n, z , p, D , как и rkfixed( ), реализующая метод Рун-
столбца и сто строк. В первом столбце содержатся точки
переменной t, а во втором искомой функции y.
ге-Кутты четвертого порядка. Список ее аргументов: h —
шаг интегрирования; n — число шагов; z — вектор началь- Строим график функции y=y(t).
ных условий; p — вектор параметров; D — вектор правых j 0 .. 99
частей дифференциальных уравнений. Принципиальным
различием между rkfixed( ) и xr( ) является вектор парамет- 15

ров p в списке аргументов xr( ). Это позволяет использо-


10
вать функцию в других пользовательских Mathcad-функци-
ях при многовариантных автоматизированных расчетах Z
j,1 5

(док. 4.6). Использование rkfixed( ) в подобных задачах ока- 0


зывается весьма затруднительным.
5
0 2 4 6 8 10
2.3. Интерполяция Z
j,0

Mathcad-функции интерполяции определяют кривую, Проведём эксперимент. Будем брать различное число
точно проходящую через заданные точки. При этом точки точек, в которых ищется решение. Сравним соответствующие графики.

могут соединяться отрезками прямых (линейная интерполя-


ция) или отрезками кубического полинома (кубическая
сплайн-интерполяция).

44 45
Z1 rkfixed ( y , 0 , 10 , 10 , D ) j 0 .. 9 Z2 rkfixed ( y , 0 , 10 , 30 , D ) k 0 .. 29 Используем для решения этой же задачи функцию
Bulstoer(y,t o ,tk,n,D), имеющую тот же список пара-
15 20
метров. Она может быть использована в тех слу-
10 чаях, когда решение является гладкой функцией.
10
Bulstoer( ) несколько точнее, чем rkfixed( ). Срав-
Z1 Z2
j,1 5 k,1 ним результаты, полученные с помощью этих фун-
0
0 кций.

5 10 y1
0 5 10 0 5 10 0
Z1 Z2 y D( t , y )
j,0 k,0 0.5 0.9.y 1 4 .y 0 3 .sin ( 2 .t ) ZB Bulstoer ( y , 0 , 10, 30, D ) i 0 .. 29
Z3 rkfixed ( y , 0 , 10 , 70 , D ) l 0 .. 69 Z4 rkfixed ( y , 0 , 10 , 300 , D ) m 0 .. 299

4
20 20

10 10
Z3 Z4 2
l,1 m ,1
0 0
Z
i,2
10 10 0
0 5 10 0 5 10 ZB
Z3 Z4 i,2
l,0 m ,0

Аналогично интегрируются системы дифференциальных


уравнений. В качестве примера проинтегрируем на инте- 2
рвале от 0 до 10 дифференциальное уравнение y''+0.9y'+
4y=3sin(2t). Начальные условия: y o =0; y' o =0.5. Это уравне-
ние равносильно двум уравнениям первого порядка
4
v=y' 0 2 4 6 8 10
v'=-0.9v-4y+3sin(2t). Z
i,0

0 y1
y D( t , y )
0.5 0.9 .y 1 4 .y 0 3 .sin ( 2 .t ) Z rkfixed ( y , 0 , 10 , 30 , D ) i 0 .. 29
2

4 4

1
2 2

Z
i,1
Z 0 Z 0
i,2 i,2 0
ZB
i,1

2 2

1
4 4
0 5 10 0 5 10
Z Z
i,0 i,0
„
2
0 2 4 6 8 10
Z


i,0
„

46 47
Линейная интерполяция выполняется при помощи функ-
 ции linterp(X, Y, x). Аргументы X, Y — векторы исходных
Документ N2.3 Программа, реализующая метод Рунге-Кутты
данных. В X содержатся вещественные значения, отсорти-
xr(h,n,z,p,D)
h - шаг интегрирования; n - число шагов; рованные по возрастанию... Пример линейной интерполяции
Z - zвектор
вектор
- начальных условий; приведен в документе (док. 2.4). В этом же документе при-
уравнений; веден пример кубической сплайн-интерполяции. Чтобы
p - вектор параметров; провести кубический сплайн через набор точек необходимо
D - вектор правых частей дифференциальны
D создать векторы X, Y, содержащие координаты этих точек,
уравнений. затем вычислить вектор VS, элементами которого являются
вторые производные интерполяционной кривой в рассмат-
риваемых точках. Вектор VS определяют с помощью одной
xr ( h , n , z , p , D ) x z
из трех встроенных Mathcad-функций: cspline(X, Y);
y z pspline(X, Y); lspline(X, Y)... После определения вектора VS
t 0 находят интерполирующую кривую с помощью функции
for j ∈ 1 .. n interp(X, Y, x) (см. док. 2.4). Отметим, что слово сплайн при-
шло из английского языка. Оно переводится как гибкая
k1 h. D( x , t , p )
линейка. Процесс интерполяции с помощью сплайна можно
k1 h представить следующим образом. В узлах интерполяции,
k2 h. D x ,t ,p
2 2 заданных, векторами X, Y, зажимают гибкую линейку. Ли-
k2 h ния, образованная между крайними точками и изобразит
k3 h. D x ,t ,p
2 2 интерполирующую кривую.
k4 h. D( x k3 , t h, p) 2.4. Регрессия
k1 2 . k2 2 . k3 k4
x x Функции регрессии создают кривую или поверхность,
6
которые наилучшим образом аппроксимируют исходные
t t h данные. В отличии от функций интерполяции, функции рег-
y augment( y , x ) рессии не требуют, чтобы аппроксимирующая кривая или
for i ∈ 0 .. n поверхность проходили через точки исходных данных.
Линейная регрессия. Как и раньше полагаем, что коорди-
ti h. i
наты исходных точек — являются элементами векторов X
rez
T
stack t , y
и Y. Аппроксимирующая прямая строится с помощью фун-
кций slope(X, Y) и intercept(X, Y)
„ y (x ) = slope (X , Y ) ⋅ x + int ercept (X , Y ).
Пример, иллюстрирующий линейную регрессию, приве-
ден в документе (док. 2.5).

48 49
 
Документ-N 2.5 Примеры решения задач регрессии
Документ-N 2.4 Примеры решения задач интерполяции
Линейная регрессия
Линейная интерполяция
Координаты исходных точек:
Координаты исходных точек: X (0 2 3 4 5 6 ) Y ( 8 1.9 0.85 4 6.72 9.5 ) i 0 .. 50
T T
X X Y Y Xi i Yi 5 .i rnd ( 30 ) 10

Осуществляем интерполяцию: y ( x) linterp ( X , Y, x) Вычисление коэффициентов


линейной регрессии:
На графике показаны заданные точки YYi =Y(X i )
и результирующая линия y=y(x) a slope ( X , Y)
i 0 .. 5
b intercept ( X , Y)
20
Результат линейной регрессии:
10
y ( x) a .x b
Y
i
0
y( x ) На графике показаны заданные точки Y i =Y(Xi )
10
и результирующая линия y=y(x)

20 300
0 2 4 6
X ,x
i

Кубическая интерполяция
250
Координаты исходных точек: X (0 1 2 3 4 5 6 7 )
T T Y ( 2 3.3 6.05 11 19 29 38 55 )
X X Y Y
Осуществляем VS cspline ( X , Y) 200
интерполяцию:
y ( x) interp ( VS , X , Y, x)
На графике показаны заданные точки YYi =Y(X i ) Y
i
и результирующая линия y=y(x) y X 150
i

i 0 .. 7

60 100

40
Y
i
50
y( x )
20

0 0
0 2 4 6 0 10 20 30 40 50
X ,x X
i i


50 51
Полиноминальная регрессия:
Полиноминальная регрессия. При полиноминальной рег-
рессии можно использовать Mathcad-функции: loess(X, Y, S);
Координаты исходных точек:
interp(VS, X, Y, x). С помощью функции loess(X, Y, S) вы-
i 0 .. 50 числяют вектор VS=loess(X, Y, S), требуемый функцией
Xi i
interp(VS, X, Y, x), с которой читатель уже встречался в
разделе, посвященном вопросам интерполяции. Функция
3
Yi
( i)
rnd ( 100) 10 loess(X, Y, S), кроме векторов X, Y, содержащих координа-
300
ты аппроксимируемых точек, требует в качестве третьего
Локальное приближение: параметра константу S. Ее рекомендуемое значение —
VS loess ( X , Y, 0.75) S=0,75... Аппроксимирующая кривая определяется следую-
Результат полиноминальной регрессии: щим образом:
y ( x) interp ( VS, X , Y, x) y (x ) = interp(VS , X , Y , x ) .
На графике показаны заданные точки iY=Y(Xi ) Пример, иллюстрирующий использование функций полино-
и результирующая линия y=y(x) минальной регрессии, содержится в документе (см. док. 2.5).
500 2.5. Алгоритм решения систем из n линейных
однородных алгебраических уравнений, содержащих
n неизвестных
400 Рассмотрим систему n линейных однородных, алгебраи-
ческих уравнений:

300
a11 x1 + a12 x2 + ... + a1n xn = 0;
Y
i a 21 x1 + a 22 x2 + ... + a2 n xn = 0;
y X
i
... ... ... ... ( 2.1)
an1 x1 + an 2 x2 + ... + ann xn = 0.
200

Матрицу коэффициентов
100

 a11 a12 ... a1n 


a a22 ... a2 n 
A =  21 
0
0 10 20 30 40 50  ... ... ... ... 
X
i
 
 a n1 an 2 ann 
„

52 53
будем называть матрицей системы (2.1). eigenvec(A, λ) — возвращает собственный вектор, соот-
Система (2.1) всегда имеет тривиальное решение: ветствующий собственному значению λ матрицы A.
x1 = x2 = ... = xn = 0. Нам, используя эти функции, необходимо определить собст-
венные числа матрицы A. Если среди них нет нулевого, то сле-
Для того, чтобы она имела нетривиальное решение, как
довательно система имеет лишь тривиальное решение.
известно, необходимо и достаточно, чтобы определитель
Если же собственное значение, равное нулю, имеется, то мы
матрицы системы равнялся нулю, т.е.
определяем соответствующий ему собственный вектор, являю-
A = 0. (2.2) щийся одним из решений однородной системы (2.1). Отметим,
Это условие равносильно следующему что если все элементы этого вектора умножить на любое число,
то новый вектор также будет решением системы (2.1).
a11 − λ a12 ... a1n  Данный алгоритм реализован в виде Mathcad-функции
  ODNOR(A) (док. 2.6), хранящейся в файле ODNOR.mcd. Аргу-
 a21 a22 − λ ... a2 n 
=0 ментом данной функции является матрица системы. ODNOR
 ... ... ... ... 
  (A) возвращает вектор одного из решений системы уравне-
 an1 an 2 ... a nn −λ  ний (2.1), а если условие (2.2) не выполняется, то функция воз-
вращает тривиальное решение. Примеры использования функ-
при λ = 0 .
ции ODNOR ( ) приведены в документе (док.2.7).
Число λ называется собственным числом матрицы А.
Матрице А соответствует n различных λ. Каждому из этих Решение систем линейных неоднородных
собственных чисел λi (i = 1,2,..., n ) соответствует свой вектор алгебраических уравнений
решений уравнения (2.1) Для численного решения систем линейных неоднородных
алгебраических уравнений в Mathcad имеются больше воз-
 x1 (λi )  можности, которые иллюстрируются документом (док. 2.8).
 (λ i )  В этом же документе приведена авторская Mathcad-функ-
x
x = 2 
(λ i )
ция KRAMER(A, C) (здесь: A — матрица системы; C —
 ...  , вектор правых частей), а также встроенные Mathcad-фун-
 (λ i ) 
 x n  кии и на простых примерах показан принцип их действия.

называемый собственным вектором. Для нахождения соб- 2.6. Решение одного уравнения с одним неизвестным
ственных чисел и собственных векторов в Mathcad имеют- и нахождение корней полинома
ся эффективные функции: В Mathcad имеется встроенная функция root( ). Рассмот-
eigenvals(A) — возвращает вектор, содержащий соб- рим ее применение на простейшем примере. Пусть требует-
ственные значения матрицы A; ся найти решение простейшего уравнения
eigenvecs(A) — возвращает матрицу, j-й столбец кото-
2x − 5 = 0 .
рой, является собственным вектором, соответствующим
Очевидно, что
j-му собственному значению, полученному в результате
действия eigenvals(A); x = 2,5 .
54 55
 
Документ-N 2.6 Решение системы однородных линейных
алгебраических уравнений Документ-N 2.7 Примеры решения систем однородных
линейных алгебраических уравнений
Функция ODNOR в качестве аргумента требует
матрицу NxN системы N линейных однородных Решить систему однородных линейных алгебраических
алгебраических уравнений, а возвращает вектор уравнений
одного из решений. Если определитель матрицы 22.5x-5z=0;
системы не равен нулю, то функция возвращает 4x+6y-1z=0;
вектор, элементы которого равны нулю (тривиа- 9x-2z=0.
льное решение)
Матрица системы

ODNOR ( A ) N rows ( A ) 22.5 0 5


END if ( ORIGIN 0,N 1,N ) A 4 6 1
for i ∈ ORIGIN .. END 9 0 2
Ti 0
Ссылка на функцию ODNOR(A), хранящуюся в
REZ T if A > TOL файле ODNOR
REZ eigenvec ( A ,0) otherwise
Reference:C:\File Mathcad\ODNOR.mcd
„
Решение системы

0.217
Этот же результат мы бы получили, используя root( ). Функ- ODNOR ( A ) = 0.018
ция ищет пересечение линии, заданной уравнением y = 2 x − 5 , с 0.976

осью абсцисс. Аргументами root( ) являются функция y (x) и пе- Решить систему однородных линейных алгебраических
ременная, значение, которой ищется. Перед использованием root( уравнений
22.5x-5z=0;
) требуется задать начальное приближение x. Данная задача и 4x+6y-5z=0;
3x+ 9y-2z=0.
ряд других решены в документе (док. 2.9).
Для нахождения корней полинома вида Матрица системы
22.5 0 5
n

∑a x
i =0
i
i A 4
3
6
9
5
2
Решение системы
можно эффективно использовать функцию polyroots(V). В каче- 0
ODNOR ( A ) = 0
стве аргумента она использует вектор коэффициентов полинома 0

a0  Решение системы является тривиальным


a  т.к. |A| не равен нулю

V =  1 A = 652.5
 ...  ,
 
an 
„
а возвращает все вещественные и комплексные корни.
56 57
 
Документ-N2.8 Решение систем алгебраических Документ-N 2.9 Примеры решения одного уравнения
неоднородных уравнений и нахождения корней полинома

Функция KRAMER(A,C) возвращает вектор решений системы Найти решение уравнения 2x-5=0
линейных алгебраических уравнений; A - матрица системы;
C - вектор правых частей. Зададим начальное приближение
KRAMER ( A , C ) n rows ( C )
D A x 0
END if ( ORIGIN 0,n 1,n ) и используем функцию root( )
for i ∈ ORIGIN .. END
B A root ( 2 . x 5 , x ) = 2.5

B< >
i
C Иная форма записи
B
ki y( x ) 2.x 5
D
k
root ( y ( x ) , x ) = 2.5
В качестве примера решим систему уравнений:
8x-3y+2z=9; 3y+5x=-7; -x+9y+7z=0. Найти решение уравнения 2x-sin(0.5x)+3=0
Запишем матрицу системы: Запишем вектор правых частей: y( x ) 2.x sin ( 0.5 . x ) 3
x 0
8 3 2 9
A 0 3 5 C 7 root ( y ( x ) , x ) = 1.908
1 9 7 0 Для нахождения корней полинома требуется сформировать
Решение с помощью функции KRAMER(A,C): X KRAMER ( A , C ) вектор коэффициентов полинома V. После этого можно ис-
2.86
пользовать функцию polyroots(V). Функция возвращает иско-
X = 2.637 - вектор решений. мые вещественные и комплексные корни.
2.982 Найти корни полинома 3x^3-5x^2+9=0
2.86
Решение с помощью функции lsolve(A,C): lsolve ( A , C ) = 2.637 Сформируем вектор коэффициентов полинома
2.982
9
2.86
0
1.
Решение матричным методом: A C = 2.637 V
5
2.982
3
Решение с помощью функции Find():
x 0 y 0 z 0 -начальные значения Найдём корни полинома
Given
8 .x 3 .y 2 .z 9 3 .y 5 .z 7 x 9 .y 7 .z 0 2.86 1.051
Find ( x , y , z ) = 2.637 polyroots ( V ) = 1.359 1.005i
2.982
1.359 + 1.005i

„ „

58 59
Учитывая, что α 2 = 2π − α 1 , объемы конусов определим
3. ВВЕДЕНИЕ В МЕТОДИКУ ВЫБОРА по формулам:
ОПТИМАЛЬНЫХ РЕШЕНИЙ
1 R3 2 α2
Крупный ученый-механик академик И.И. Артоболевский V1 = ⋅ ⋅ α1 ⋅ 1 − 1 2 ;
3 4π 4π
считал, что будущего инженера необходимо учить методам
выбора лучшего из множества возможных решений техни- 1 R3 (2π − α 1 )
2

⋅ (2π − α 1 ) ⋅ 1 −
2
V2 = ⋅ .
ческих, экономических, управленческих и т.п. задач. 3 4π 4π 2
В этом разделе даются основные понятия проблемы мно- Теперь надо выбрать значение угла α 1 , при котором
гокритериальной оптимизации и введение в достаточно про- объем
стой, но эффективный метод, позволяющий инженеру-иссле- 1 R3  α2 (2π − α )2 
V = V (α 1 ) = V1 + V2 = ⋅ α 2 1 − 2 + (2π − α ) ⋅ 1 − 
2
дователю в автоматизированном режиме осуществлять по- ⋅ (3.1)
3 4π  4π 4π 2 
иск рациональных решений сравнительно сложных вопросов.  
будет максимальным. В этом выражении вместо α 1 записа-
3.1. Простейшая иллюстрация использования методиT но α .
ки выбора оптимального решения Таким образом, задача сводится к нахождению максиму-
Рассмотрим круглый лист жести радиуса R (рис.3.1), ма функции V = V (α ) . На угол можно наложить ограниче-
который надо разрезать на два сектора, полученные секто- ния: 0 < α ≤ π . В этих границах мы найдем α , которому
ры свернуть в конусы, а швы сварить. Необходимо, чтобы будет соответствовать максимальный объем V. Второй
углы раскройки α 1 и α 2 обеспечили максимальный суммар- угол, в связи с симметрией круга:
ный объем конусов. α 2 = 2π − α 1
Многие, посмотрев на условие задачи, предполагают что:
α1 = α 2 = π ,
но на самом деле, это не верное предположение.
Данная задача решена двумя способами в документе
№ 3.1. В этом документе сначала строится график функции
О α1 V = V (α ) . Анализ графика убеждает нас, что в интерва-
ле α ∈ [1,9;2,2] имеется максимум.
Рассмотрим первый способ.
Дифференцируем символьно V (α ) по α и находим корни
R полученной функции на интервале α ∈ [1,9;2,2] . Для нахож-
дение корней используется функция root ( ).
Теперь второй способ.
Этот метод основан на методе сеток или методе перебо-
ра. Подробнее о том, почему метод носит название метода
Рис. 3.1 сеток, будет сказано позднее.
60 61
 Второй способ определения угла, соответствующего максимальному
объёму
Документ 3.1 Определение максимального объёма
конусов Программа, вычисляющая значения объёмов для углов от x0 до xf
Радиус заготовки R 1 в N узлах с равномерным шагом.Возвращает вектор, элементами
которого являются - интересующий нас угол и соответствующий ему
Суммарный объём в функции угла объём
3 2 2
1 . R . 2. α 2 ( 2 .π α) MaxA ( x0, xf, N ) v0 V( x0)
V( α ) α 1 ( 2 .π α) . 1
3 4 .π 4 .π
2
4 .π
2
for j ∈ 1 .. N
Зависимость объёма в функции угла xf x0 .
xj x0 j
N
0.458
vj V xj

xj
0.456
vj
V ( α ) 0.454 break if v j < v j 1

xj
0.452

2.0466193
MaxA ( 0.1, π , 300) =
0.45 0.45663933
1.5 2 2.5 3
α
Сравним результаты, полученные двумя способами:
Первый способ определения угла, соответствующего максимальному
V1 V( αmax) V2 V( 2.0466193)
объёму
V1 = 0.45663862 V2 = 0.45663933
Символьно дифференцируем объём по углу и получаем

2 3 2
Исследуем влияние числа N на точность определения максимального
3
1 .R . . α 1. α ( 2 .π α) объёма
D( α ) α 4 ( 2 .π α ). 4 ...
12 π 2 2 2
π 2 π
α . 2 j 0 .. 40
4 π
2
π
3 Nj 2 j .3 <j >
1. ( 2 .π α) vv MaxA 0.1, π , Nj
+
2 2
4
( 2 .π α) . 2
π Зависимость максимального объёма в функции числа N j
2
π
0.458
С помощью функции root( ) находим корень v( v(α )=0

α 0.1 0.456

vv
αmax root ( D ( α ) , α ) 1,j
0.454
αmax = 2.02249902 - угол, соответствующий максимальному объёму
0.452
0 5 10 15 20 25 30 35 40
j


62 63
Разобьем исследуемый интервал α н ≤ α ≤ α к (здесь α н = 0,1; из критериев хуже третьего и пятого: 11,2>9; 8,1>8. Четвер-
α k = π ) одинаковыми отрезками, длиной h, на N равных частей. тый вариант также хуже третьего и пятого по обоим крите-
В узлах вычисляем значения объемов. Самое большое из полу- риям. Остальные варианты по одному из критериев лучше
ченных значений приближенно принимается за максимальное. друг друга, но по другому хуже. Варианты: 1; 3; 5 называ-
Точность полученного решения, конечно же, зависит от числа N. ются недоминируемыми или паретовскими (по имени учено-
Угол α в теории оптимизации называется параметром го-экономиста Парето).
оптимизации. Объем — критерий качества исследуемой ма- Для выделения недоминируемых решений из общего мас-
тематической модели (3.1). Параметры выбираются из ус- сива была разработана авторская Mathcad-функция
ловия максимального улучшения критериев качества. MyPar(Q,N,n,par). Параметрами данной функции являются:
В данной задаче имеется только один параметр и только Q — массив критериев качества, размерностью N × n (j-й
один критерий качества. Большинство же практических за- столбец массива Q представляет собой вектор критериев
дач требует улучшения нескольких параметров, по несколь- качества, имеющий n элементов, соответствующий j-му
ким критериям качества. Часто параметров и критериев набору параметров из массива параметров); N — число
бывает очень много. вариантов параметров; n — размерность пространства кри-
териев качества; par=–10, если мы стремимся уменьшить
3.2. Многокритериальные задачи значения критериев (минимизация) и par=10, если стремим-
3.2.1. Недоминируемые решения ся их увеличить (максимизация). Данная функция, вместе
со вспомогательным Comp1( ) и Comp Par( ), представлена
Рассмотрим элементарный пример. в документе (док. 3.2), хранящемся в файле (MyPareto0).
Пусть качество системы характеризуется двумя крите- Документ (док. 3.3) содержит примеры, иллюстрирующие
риями качества q1 и q2. По математической модели было использование функции MyPar( ).
рассчитано 5 различных вариантов параметров и соответ- После того, как найден массив недоминируемых реше-
ствующие этим вариантам критерии были занесены в таб- ний, перед исследователем стоит задача выбора из этого
лицу 3.1. массива одного наиболее интересного. Для удобства этой
Если мы хотим уменьшить каждый из критериев, то 2 и процедуры осуществляют визуализацию приближенной обо-
4 варианты можно отбросить. Второй вариант по каждому лочки Парето. Если критериев качества, характеризующих
систему — два, то строят компромиссную кривую, пред-
Т а б л и ц а 3.1 ставляющую собой зависимость значений одного критерия
Номер в функции значений второго. Такие компромиссные кривые,
1 2 3 4 5 в качестве примера, построены в документе (см. док. 3.2).
варианта
Если критериев качества больше, чем два, то для визуали-
зации приближенной оболочки Парето целесообразно стро-
q1 12,6 11,2 9 14 9,5
ить точечные графики зависимостей каждого из критериев,
в функциях номеров паретовских точек. Графики строятся
Критерии

q2 7,5 8,1 8 8,3 7,6 строго один под другим. В этом случае на одной вертикали
располагается один из недоминируемых векторов качества.

64 65
Имея такие графики, пользователю существенно проще 
находить “интересные” решения. С примером такого подхо- Документ N3.2 Выделение оболочки Эджворта-Парето
при минимизации или максимизации по n
да мы познакомимся позднее. критериям
Отметим здесь, что процесс выбора пользователем наи-
более “интересного” или наиболее “рационального” реше- Функция сравнения точки Р с j-й точкой множества
ния является, чаще всего, субъективным. возможных решений, содержащегося в массиве Q
размерности n. Функция возвращает: -1, если точки
После определения наиболее интересного решения, тре- совпадают; 0, если точка Р хуже; 1, если Р не хуже
буется найти соответствующий ему вектор параметров. par<0 - задается при минимизации
par>0 - задается при максимизации
Для этих целей служит функция NumPar( ), имеющая тот
же список параметров, что и MyPar( ). Comp1 ( P , Q , j , n , par ) for k ∈ 1 .. n
NumPar( ) возвращает вектор номеров паретовских то- lk if Pk Qk , j , 100 , 100
чек в массиве параметров системы (см. док. 3.2).
Rez1 l
3.2.2. Элементарные сведения о методе сеток. return 1 if Rez1 n. 100
for k ∈ 1 .. n
Алгоритм многокритериальной оптимизации можно уп-
lk if P k Qk , j , 0 , 1 if par < 0
рощенно представить следующими пунктами:
а) Разработка математической модели исследуемой сис- lk if P k Qk , j , 0 , 1 otherwise
темы. Под математической моделью здесь подразумевается Rez1 l
компьютерная программа, с помощью которой по варианту return 0 if Rez1 0
параметров определяется соответствующий ему вариант return 1 otherwise
критериев качества.
б) Задание матрицы параметров. В этой матрице каждый Функция, определяющая принадлежность точки
столбец представляет один из вариантов параметров. Бу- Р из массива Q размерности nxN оболочке недо-
менируемых решений. Возвращает: 10, если Р
дем считать, что таких вариантов — N, а параметров, ха- принадлежит оболочке Парето; -10, если нет
рактеризующих систему — n.
в) Расчет по математической модели матрицы критериев CompPar ( P , Q , n , N , par ) j 1

качества. Эта матрица будет содержать также N столбцов. while j N


г) Нахождение недоминируемых столбцов в матрице кри- return 10 if Comp1 ( P , Q , j , n , par ) 0
териев качества и определение соответствующих им номе- j j 1

ров в матрице параметров. rez 10

д) Выбор варианта по матрице, содержащей недоминиру-


емые решения.
Отметим, что пункт (д) может быть выполнен двумя
способами. Рассмотрим их.
Первый состоит в сведении нескольких критериев к одно-


му интегральному, с помощью весовых коэффициентов.

66 67
Основная функция пользователя выделения использовании первого способа находят самое большое из
эффективных точек из N точек массива кри- значений q ~ (максимизация) или самое наименьшее (мини-
териев Q размерности Nxn мизация)… .Отметим, что задание весовых коэффициентов
MyPar ( Q , N , n , par ) i 1
является, как правило, субъективным.
for j ∈ 1 .. N
Второй способ состоит в графическом изображении обо-
< j>
лочки Парето, аналогично тому, как это сделано в докумен-
P Q те 3.3 и выборе подходящего варианта по графикам. Следует
< i>
D P if CompPar ( P , Q , n , N , par ) 10 отметить, что последнее время исследователи отдают пред-
i i 1 if CompPar ( P , Q , n , N , par ) 10 почтение второму способу выполнения пункта (д).
D Пункт (б) является центральным пунктом рассматривае-
мого алгоритма, так как исследователь может проанализи-
Функция, возвращающая номера эффективных точек ровать (перебрать) только конечное число вариантов, но в
из N точек массива критериев Q размерности Nxn
то же время он должен получить достаточно полное пред-
NumPar ( Q , N , n , par ) i 1 ставление о поведении анализируемой системы при измене-
for j ∈ 1 .. N 1
нии ее параметров.
< j>
Для осуществления качественного перебора используют
P Q сетки — точки, равномерно разбросанные в области поис-
Numi j if CompPar ( P , Q , n , N , par ) 10 ка. Теорией таких сеток занимается специальный раздел
i i 1 if CompPar ( P , Q , n , N , par ) 10 математики — “теория равномерно распределенных пос-
Num ледовательностей точек”.
Рассмотрим более подробно вопрос нахождения матрицы па-
„ раметров. Пусть качество системы зависит от двух парамет-
ров. Зададим матрицу, содержащую 100 вариантов. Простей-
ший способ задания состоит в использовании формул:

Например, если система характеризуется критериями каче- q1〈 i 〉 = q1∗ + ( q1∗∗ − q1∗ ) ⋅ rnd (1);
ства: q1 ; q2 ;....; q p , то комплексный критерий можно записать (3.2)
q 2〈 i 〉 = q 2∗ + ( q 2∗∗ − q 2∗ ) ⋅ rnd (2),
в виде где i — номер варианта, i = 1,2,…,100;
p
q~ = с1 ⋅ q1 + с2 ⋅ q 2 + .... + с p ⋅ q p = ∑ cν ⋅ qν , q1∗ , q 2∗ — минимально возможные значения первого и вто-
ν =1 рого параметров, соответственно;
где cν — весовые коэффициенты (сν ≥ 0) ; q1∗∗ , q 2∗∗ — максимально возможные значения первого и
p
второго параметров, соответственно.
∑c p
=1. С функцией rnd ( ) мы встречались ранее (см. док. 1.9). Здесь с
ν =1 ее помощью получена случайная сетка из 100 вариантов пара-
Весовые коэффициенты назначаются исследователем в метров (матрица q, размерностью 2 × 100). Аналогично (3.2)
зависимости от значимости того или иного критерия. При можно получить массив любой размерности (n × N),
68 69

Документ N3.3 Примеры использования функций,
q1〈 i 〉 = q1∗ + (q1∗∗ − q1* ) ⋅ rnd (1);
предназначенных для построения приб-
лижённой оболочки Парето q2〈 i 〉 = q 2∗ + (q2∗∗ − q 2∗ ) ⋅ rnd (1);
Ссылка на функции: MyPar( ),NumPar( ) ..............................................
(3.3)
Reference:C:\File Mathcad\MyPareto0.mcd qn〈 i 〉 = q n∗ + (qn∗∗ − q n∗ ) ⋅ rnd (1);
Построение массива, из которого будут выделены
недоминируемые элементы i = 1,2,..., N .
i 1 .. 300
Кроме случайных существует и множество других типов се-
i
q1 , i
3
rnd ( 20) ток. Чтобы не усложнять изложение покажем здесь только ПТ-сет-
1 ки, считающиеся в настоящее время, наиболее качественными.
q2 , i
q
1,i
rnd ( 50) Массив, содержащий координаты точек ПТ-сеток, можно за-
0.2
дать, используя авторскую Mathcad-функцию Ptg(n, N), требую-
щую в качестве параметров n — число элементов в каждом на-
q
2, i 0.1
боре параметров; N — число анализируемых параметров. Функ-
ция Ptg( ) находится в документе (док. 3.4), хранящемся в файле
0
0 20 40 60
q
1, i
80 100 120
(Alpt 1023). Максимальные значения параметров: n=8; N=1023.
Минимизация Максимизация Если эти ограничения не удовлетворяют пользователя, то сле-
Q1 MyPar ( q , 300, 2 , 10) Q MyPar ( q , 300, 2 , 10) дует пользоваться функцией с тем же именем Ptg(n, N), содержа-
i 1 .. 30 j 1 .. 28 щейся в документе (док. 3.5)(Alpt10Λ6). Здесь ограничения на па-
Компромиссные кривые при:
раметры: n=51 и N=106.
минимизации максимизации
Имея ПТ-сетку, пользователь по (3.3) рассчитывает мас-
0.03 0.15
сив параметров, заменяя rnd(1) на Qi, j, где
0.02 0.1 Q:=Ptg(n, N).
Q1 Q
2, j 2, i
0.01 0.05 Рассмотрим пример решения оптимизационной задачи
(док. 3.6). Анализируется три параметра x, y, z оптимизиру-
0 0
0 50
Q1
100 150 0 50
Q
100 150
емой системы. Причем на них наложены ограничения:
1,j 1,i

x ∈ [0;5]; y ∈ [0;5]; z ∈ [− 10;0]. Система характеризуется тре-


мя критериями качества. Эти критерии можно вычислять,
используя математическую модель:
„
Ф1 = [4 x + 5 y − 2 z − 35] ;
2

Ф2 = [11x + 6 y + 7 z − 8] ;
2

Ф3 = [9 x + 3 y + 4 z − 11] .
2

70 71
 
Документ N3.4 Генератор П -сетки. Генератор позволяет
получать сетки из N точек в n-мерном ку- Документ N3.5 Генератор П -сетки. Генератор позволяет
бе. Пользователю необходимо ввести N и получать сетки из N точек в n-мерном ку-
n. Данный генератор имеет ограничения бе. Пользователю необходимо ввести N и
n=8 и N=1023. q - массив координат точек n. Данный генератор имеет ограничения
сетки. n=51 и N=1000000. q - массив координат
точек сетки.
Матрица направляющих
Считывание матрицы
числителей:
направляющихчислителей:

1 1 1 1 1 1 1 1 1 1 NR READPRN( "Anapr" )
1 3 5 15 17 51 85 255 257 771
1 1 7 11 13 61 67 79 465 721 Вспомогательные функции:
1 3 7 5 7 43 49 147 439 1013
NR d( f ) f floor( f )
1 1 5 3 15 51 125 141 177 759
1 3 1 1 9 59 25 89 321 835
ln ( i )
1 1 3 7 31 47 109 173 181 949 m( i ) 1 floor
ln ( 2 )
1 3 3 9 9 57 43 43 225 113
m( i ) m( i )
Вспомогательные функции: k 1.
d 0.5. floor( 2 . d ( i . 2 ) ) . floor 2 . d NRj , l . 2
l k 1 l
q( i , j ) 2
k= 1 l= k
d( f ) f floor( f )

ПТ-геннератор, генерирует массив точек ПТ-сетки,


ln ( i ) размерностью nxN
m( i ) 1 floor
ln ( 2 )

Ptg ( n , N ) EN if ( ORIGIN 0 , N 1, N)
m( i ) m( i )
k 1. l . 2k 1 l En if ( ORIGIN 0 , n 1, n)
q( i , j ) 2 d 0.5. floor( 2 . d ( i . 2 ) ) . floor 2 . d NRj , l
for i ∈ ORIGIN.. EN
k = ORIGIN l= k
for j ∈ ORIGIN.. En
mass i , j q( i , j )
ПТ-геннератор, генерирует массив точек ПТ-сетки,
размерностью nxN mass

Ptg ( n , N ) EN if ( ORIGIN 0 , N 1, N)
En if ( ORIGIN 0 , n 1, n)
for i ∈ ORIGIN .. EN
for j ∈ ORIGIN .. En
mass i , j q( i , j )

mass

„ „

72 73
 Визуализация приближённой оболочки Парето
Документ N3.6 Пример решения оптимизационной j 1 .. 8
задачи
Первый критерий
Ссылка на функции: MyPar( ),NumPar( )
400

Reference:C:\File Mathcad\MyPareto0.mcd
Par
Ссылка на генератор ПТ-сетки 1 , j 200

Reference:C:\File Mathcad\ALPT1023.mcd
0
1 2 3 4 5 6 7 8
Функции, определяющие три критерия качества системы j
(математическая модель системы)
Второй критерий
2
Φ 1( x , y , z ) ( 4 .x 5 .y 2 .z 35 )
2 1
Φ 2( x , y , z ) ( 11 .x 6 .y 7 .z 8)
2
Φ 3( x , y , z ) ( 9 .x 3 .y 4 .z 11 )
Par
2 , j 0.5
Получение ПТ-сетки, размерностью 3x1000

Q Ptg ( 3 , 1000 )
0
1 2 3 4 5 6 7 8
Задание матрицы параметров по ПТ-сетке, c учётом ограничений j
на пространство параметров
Третий критерий
i 1 .. 1000

qi ,1 Q i , 1 .( 5 0) 0 qi ,2 Q i , 2 .( 5 0) 0 qi ,3 Q i , 3 .( 0 10 ) 10

Вычисление элементов массива критериев качества, 5


Par
соответствующих элементам массива параметров 3,j

Kr 1 , i Φ 1 qi ,1 , qi ,2 , qi ,3 Kr 2 , i Φ 2 qi ,1 , qi ,2 , qi ,3 Kr 3 , i Φ 3 qi ,1 , qi ,2 , qi ,3

0
Минимизация 1 2 3 4 5 6 7 8
j
Par MyPar ( Kr , 1000 , 3 , 10 )
Находим координаты точки в массиве параметров.
Определение номеров паретовских точек в матрице параметров
Здесь "наиболее интересной" принята Паретовская
NPar NumPar ( Kr , 1000 , 3 , 10 ) точка с номером 5.
q 529 , 1 = 2.661
T -номера
NPar = 1 81 169 454 529 553 653 814 8 паретовских точек q 529 , 2 = 3.921
„


q 529
,3
= 6.396

74 75
Требуется найти значения x, y, z, соответствующие одно-
временной минимизации критериев Ф1, Ф2 и Ф3. Решение
4. ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ СИСТЕМЫ
данного примера приведено в документе (см.док. 3.6). MATHCAD ПРИ РЕШЕНИИ ИНЖЕНЕРНЫХ
Конечно же, при решении данной задачи, можно было ЗАДАЧ
взять не 1000, а например, 106 точек сетки. Решение стало
бы, скорей всего, существенно более точным. Имеются и 4.1. Определение углов наклона балки
другие подходы к уточнению решения. Не будем на них при равновесии
останавливаться, т.к. это предмет для специализированных
курсов. Да, мы и не ставили перед собой задачи оценивать Однородная балка AB длиной L, опирается на негладкую
точность исследования приближенной оболочки Парето для горизонтальную плоскость, а точкой D — на гладкую вер-
рассмотренной задачи. Основной целью этого примера бу- тикальную опору высотой а (рис. 4.1).
дем считать — изучение алгоритма нахождения массива Коэффициент трения между балкой и плоскостью равен f.
недоминируемых решений и приемов использования соот- Определить углы наклона балки, при которых она будет
ветствующих Mathcad-функций. находиться в равновесии.

а
α
А
Рис. 4.1

Решение.
На основании аксиомы освобождаемости от связей, рас-
смотрим балку AB как свободное твердое тело, заменив
действие горизонтальной плоскости и вертикальной опоры
соответствующими реакциями N , Fтр и N 1 . Здесь N , N1 —
нормальные реакции плоскости и вертикальной опоры, со-
ответственно. Fтр — сила трения скольжения. Приложим к
балке вес G в ее средине — точке C. Расстояние АD обо-
значим d (АD=d) (рис. 4.2).
76 77
y или
L ⋅ sin α ⋅ cosα + f ⋅ cos 2 α ⋅ (L − 2d ) − 2 ⋅ f ⋅ d ⋅ sin 2 α ≤ 0. (4.3)
Учтем, что d ∈ ]a; L] , а угол α определяется из выражения:

a
α = arcsin 
d 
d N1 Теперь задача сведена к нахождению корней уравнения
С
G Z (d ) = L ⋅ sin α ⋅ cosα + f ⋅ cos 2 α (L − 2d ) − 2 ⋅ f ⋅ d ⋅ sin 2 α = 0
N Д и его графическому анализу на интересующем нас интерва-
ле изменения d.
α Решение с использованием Mathcad приведено в доку-
E
А менте (док. 4.1). Оно состоит в построении графиков функ-
Fтр X ций Z=Z(d) и α = α (d ). Там где Z (d ) ≤ 0 — равновесие.
Значения корней уравнения Z(d)=0 определяется с помо-
Рис. 4.2 щью mathcad-функции root ( ).

Для решения поставленной задачи достаточно написать 4.2. Определение усилий в опорных стержнях
два уравнения равновесия: пространственной конструкции
 ∑ Fix = 0; Fтр − N1 ⋅ sin α = 0; Однородная невесомая прямоугольная плита удержива-
ется в горизонтальном положении шестью невесомыми стер-
 L L 
 ∑ m = − N ⋅ 2 ⋅ cosα + N ⋅ d ⋅ sin α − N
iE ⋅  − d  ⋅ cos 2 α = 0 . (4.1)
1
2
1
жнями (рис. 4.3). В точке A на плиту действует сила P и
 2  пара сил с моментом M.
Умножив левую и правую части второго уравнения по- Определить усилие в стержнях. Толщиной плиты пренеб-
лученной системы на коэффициент трения скольжения f, речь.
приведем (4.1) к виду: Дано: P=50 кН; a=1 м; b=5 м; с=5,5 м; d=1 м; P // Ox ;
 Fтр = N1 ⋅ sin α ; M=1 кНм.
 d sin 2 α d
Решение.

 f ⋅ N = 2⋅ f ⋅ ⋅
L cosα
⋅ N1 − f ⋅ 1 − 2 ⋅  ⋅ N1 ⋅ cosα .
 L
(4.2) Мысленно отбросим связи-стержни и заменим их дей-

Согласно закону Кулона (при равновесии Fтр ≤ f ⋅ N ), ствие шестью реакциями: S1 , S 2 , S 3 , S 4 , S 5 , S 6 . Под дей-
из (4.2) получим: ствием силы P , пары сил с моментом M и S1 , S 2 , …, S 6
d sin α
2
 d плита находится в равновесии (рис. 4.4). Для упрощения запи-
sin α ≤ 2 ⋅ f ⋅ ⋅ − f ⋅ 1 − 2 ⋅  ⋅ cosα
L cosα  L сей введем углы: a, β, γ, θ (см. рис. 4.4) и вычислим их функции:
78 79
Z

Документ -N 4.1 Определение углов наклона балки

Исходные данные:
6 d
f 0.1 - коэффициент трения скольжения;

L 1 -длина балки; B E
a 0.1 -высота опоры;
2 M
a
α(d) asin -функция угла наклона балки;
d A 3 D 5 4 c
Функция, позволяющая определить углы наклона балки : P 1 O
2 2
Y
Z( d ) L .sin ( 2 .α ( d ) ) 2 .f .d .cos ( α ( d ) ) .( L 2 .d ) 2 .f .d .sin ( α ( d ) )
b
График функции Z=Z(d) График функции α =α (d)
a
2 X

0.2
1.5 Рис. 4.3
Z( d ) α( d ) 1
0
0.5 Z
0.2
0.6 0.8 1 0
0.5 1
d
d

Использование функции root( ) для нахождения корней уравнения


Z(d)=0

d 5 - начальное приближение;

D root ( Z ( d ) , d ) - корень;
β M γ S6

D = 0.999 -значения корня;

asin
a
= 0.1 -минимально возможный угол; π
-максимально возможный угол; P S3
L 2 S2 θ S4 Y
α O
Углы, соответствующие корням: S1 S5
Угол, соответствующий корню
D
asin = 1.521
L
„
X

Рис. 4.4
80 81
c b 
sin α = ; cos α = Документ-N 4.2 Определение усилий в опорных стержнях
2 2 2 2
c +b c +b пространственной конструкции

c a -геометрические размеры;
sinθ = ; cos θ = a 1 b 5 c 5.5 d 1
2 2 2 2
a +c a +c P 50000 - заданная сила; Mom 1000 - момент пары.

a b Вычисление коэффициентов уравнений равновесия:


sin β = ; cos β = c b c a
2 2 2 2
a +b a +b u1
2 2
u2
2 2
u3
2 2
u4
2 2
c b c b c a c a
2 2
d a +b 2 2
sin γ =
2 2
; cos γ =
2 . u5
a
u6
b
u7
d
u8
a b

a +b +d a + b2 + d 2
2
a
2
b
2
a
2
b
2
a
2
b
2
d
2
a
2
b
2
d
2

Запишем уравнение равновесия для произвольной про-


u2 0 0 0 u2 u 6 .u 8
странственной системы сил:
0 0 u4 0 0 u 5 .u 8

∑ x = − S1 ⋅ cos α − S 5 ⋅ cos α − S6 ⋅ cos γ ⋅ cos β − P = 0 ; A


u1 1 u3 1 u1 u7

0 0 a a .u 1 a . u 7 c .u 5 .u 8
∑ y = S ⋅ cos θ − S ⋅ cos γ ⋅ sin β = 0 ;
0 - матрица коэффициентов уравнений
3 6 равновесия;
b . u 1 0 0 0 b .u 1 b . u 7 c . u 6 .u 8

∑ z = S1 ⋅ sin α + S 2 + S3 ⋅ sinθ + S 4 + S 5 ⋅ sinα + S6 ⋅ sin γ = 0 ; 0 0 0 0 a .u 8 0

∑ M x =S 4 ⋅ a + S 5 ⋅ sinα ⋅ a + S6 ⋅ (sin γ ⋅ a + cos γ ⋅ sin β ⋅ c ) = 0 ;


P
0

∑M
0
y =S 1 ⋅ sin α ⋅ b + S 5 ⋅ sin α ⋅ b + S 6 ⋅ (sin γ ⋅ b + cos γ ⋅ cos β ⋅ c ) + P ⋅ c = 0; C
0
- вектор свободных членов уравнений равновесия;

∑M
P .c
z = S 5 ⋅ cos α ⋅ a + M = 0 . (4.3) Mom

Решение системы (4.3) с помощью Mathcad показано в S


1
A .C - решениие системы уравнений равновесия;
документе № 4.2.
Отметим, что эту задачу можно решить и без использо- 7.331 10
4

вания компьютера. Достаточно было бы упростить систему 5.425 10


4

уравнений, выбирая оси координат эффективнее. Но 1.703 10


11
S= - вектор усилий в стержнях.
Mathcad позволяет получать результаты и в существенно 754.035
более сложных задачах такого типа, решение которых без 1.019 10
3

использования компьютерной техники может оказаться зат- 4.478 10


11

руднительным.

82 83
4.3. Исследование кулачкового механизма ρ r
= , (4.5)
Определить перемещение ролика толкателя кулачкового sin γ sinψ
механизма, изображенного на схеме (рис. 4.5), в функции
π
угла поворота кулачка. Контуром кулачка является эллипс, γ = −ψ − µ . (4.5)
уравнение которого задается зависимостью: 2

x2 y2
+ =1,
a 2 b2
где Z N P
a=0,04 м; b=0,035 м . µ
Эллипс вращается вокруг одного из полюсов. O1
Изобразить контур кулачка в полярных координатах ρ=ρ(ϕ)
и определить крутящий момент, приложенный к кулачку, по уси- γ
лию в толкателе. Это усилие задано зависимостью: r A
R = 10 ⋅ ( z + r ) ,
5 2
ψ ρ
где z — перемещение ролика толкателя;
r=0,02 м — радиус ролика толкателя. O2 х

Решение. ϕ O
В полярных координатах уравнение эллипса имеет вид:
b2
ρ= .
a + a 2 − b 2 ⋅ cos ϕ
Рис. 4.5
Угол между вектором ρ ( ϕ ) и касательной к контуру в
Учитывая (4.4) и (4.5), получим:
точке контакта кулачка и ролика толкателя (рис. 4.5) мож-
но определить по формуле:  ρ 
ψ = arctg  + tgµ  .
   r ⋅ cos µ 
 dρ  Теперь вычисляем перемещение ролика толкателя:
 dϕ 
µ = arccos   z = OO1 − r − ρ ( 0 ) . (4.6)
  dρ 
2
. (4.4)
   + ρ 2 
  dϕ  Расстояние OO1 найдем по теореме косинусов:
 
Рассмотрим ∆ OAO1 и запишем два соотношения, выра- π 
жающие теорему синусов и тот факт, что сумма углов в OO1 = r 2 + ρ 2 − 2 ⋅ r ⋅ ρ ⋅ cos + µ  .
2 
треугольнике равна π :
84 85
Тогда (4.6) перепишем в виде:

π 
z = r 2 + ρ 2 − 2 ⋅ r ⋅ ρ ⋅ cos  + µ  − r − ρ ( 0 ) . Документ- N4.3
2  Определение перемещения толкателя и крутящего момента,
приложенного к кулачку
Крутящий момент, приложенный к кулачку:
Геометрические параметры:
R
M кр = ⋅ ρ ⋅ cos µ . b
2
a
2
b
2

sin(ψ + µ ) r 0.02 a 0.04 b 0.035 p


a
ex
a
Решение с использованием пакета Mathcad приведено в Функции угла поворота:
документе № 4.3. p p
ρ( φ ) Prρ( φ ) .ex.sin( φ )
1 ex.cos ( φ ) ( 1 ex.cos ( φ ) )
2

4.4. Торможение поезда


Prρ( φ )
Внешняя тормозящая сила, действующая на поезд при µ(φ ) acos
торможении на спуске, приближенно может быть задана Prρ( φ )
2
ρ(φ )
2

выражением: cos ( µ ( φ ) )
ψ( φ ) asin r .
A A +V
⋅ (1 − e λt ) , t ≤ T ; 2 .r .ρ ( φ ) .sin( µ ( φ ) )
2 2
ρ(φ )
C⋅ ⋅ r
B B +V Построение графиков: j 0 .. 359

F = π
xj j .
180
B A +V
⋅ (1 − e λT ), t ≥ T ,
π
2 .r .ρ xj .cos
2 2
zj r ρ xj µ xj r ρ ( 0)
C⋅ ⋅ θj ψ xj 2
A B +V
yj ρ xj
где V — скорость поезда;
A, B, C, λ — постоянные; Контур кулачка в полярных Угол отклонения
точки контакта от
T — время, за которое давление воздуха в тормозных координатах
вертикали
цилиндрах достигает максимального значения. 0.2
90
112.5 67.5
Кроме того: 135
0.06
0.05 45 0.13
0.04
m — масса поезда; 157.5 0.03 22.5 0.067
0.02
α — крутизна спуска в радианах; y
j
0.01 θj 0
180 0 0
g — 9,81 м/с2. 0.067
202.5 337.5

Вычислить тормозной путь, если известны значения пере- 225 315


0.13

численных постоянных и начальная скорость V0. Построить 247.5


270
292.5 0.2
x 0 1.57 3.14 4.71 6.28
зависимость пути и скорости поезда в функции времени. j x
j
Принять: m=5000 т; A=360 с/м; B=72 с/Н; C=6000 кН;


λ=0,1 с-1; T=20 с; α=0,001; V0=20 м/с; g=9,81 м/с2.

86 87
Решение.
Перемещение ролика толкателя
Запишем дифференциальное уравнение движения поезда,
0.04 рассматривая его, как материальную точку, в соответ-
0.0333
0.0267
ствии со схемой (рис. 4.6).
z
m&y& = − F + mg ⋅ sin α .
j 0.02
0.0133
0.0067
0 Учитывая, что угол a весьма мал и при этом sin α ≈ α ,
0 1.57 3.14 4.71 6.28
x
j получим
Задание усилия в толкателе: m&y& = − F + mg ⋅ α . (4.7)
Rj 105 . zj r 2 Уравнение (4.7) перепишем в виде системы двух диффе-
ренциальных уравнений первого порядка:
Усилие в толкателе в функции угла поворота
 y& = V ;
400
& F (4.8)
300
V = − + g ⋅ a.
R
j 200  m
100
Решение задачи, основанное наиспользовании, уже извес-
0
0 1.57 3.14 4.71 6.28 тной из второго раздела, функции rkfixed( ), приведено в
x
j документе 4.4.
Вычисление крутящего момента:
Rj
Mkrj .ρ x .cos µ x Х
j j
sin ψ xj µ xj

Крутящий момент в функции угла поворота N


8.5 F О

4.25 α G
Mkr 0
j
Y

4.25
Рис. 4.6

8.5
0 1.05 2.09 3.14 4.19 5.24 6.28
x
j

88 89
4.5. Определение усилий в сочленениях

Документ N-4.4 шатунноTкривошипного механизма однорядной
Торможение поезда поршневой машины
Исходные данные:
6 Отсек однорядной поршневой машины изображен на схеме
m 5 .10 a 360 λ 0.1 v0 20 b 72
6
(рис. 4.7). Система состоит из кривошипа OA, шатуна AB и пор-
T 20 α 0.001 c 6 .10 g 9.81
шня B. Для определения усилий, действующих в сочленениях
0
-вектор начальных условий.
шатунно-кривошипного механизма, рассмотрим схему (рис. 4.8).
y
v0 Данная механическая система имеет одну степень свободы. В
Задание силы сопротивления: качестве обобщенной координаты выбирается угол ϕ .
p ( v)
b a
c. .
v Дифференциальное уравнение движения поршня:
a b v
f( v , t ) if T t > 0 , p ( v) . 1 e
λ .t
, p ( v) . 1 e
λ .T mп ⋅ &y& = Fг − Yв , (4.9)
y1 где mп — масса поршня;
D( t , y) f y1 , t -вектор первых производных. Fг — сила давления рабочего тела, действующего на поршень;
g.sin( α ) Yв — вертикальная составляющая силы взаимодействия
m
поршня с шатуном;
Численное интегрирование с помощью функции rkfixed: &y& — ускорение поршня в направляющих.
Z rkfixed( y , 0 , 29 , 300 , D)

n 0 .. 299 X O1

Зависимость пути от Зависимость скорости Fг
времени от времени
B
Xв Fст
400 25

300 18.75
X в′
C

Z Z
Yв′ Y
n , 1 200 n, 2 12.5

β
100 6.25 A C
L1


0 0
0 7.22 14.45 21.67 28.9 0 7.5 15 22.5 30 YА ϕ
Z
n,0
Z
n,0 O
X ′А
„ Mн O
Y′

Рис. 4.7 Рис. 4.8


90 91
Для определения силы давления поршня на стенку цилин-
dυcx
дра можно использовать равенство: mш ⋅ = X B − X A;
dt
x в = Fст , dυcy
mш ⋅ = YB − YA ;
dt
где xв — горизонтальная составляющая силы взаимодействия
J шс ⋅ β&& = − X A ⋅ L1 cosβ + YA ⋅ L1 sinβ − X B ⋅ ( L − L1 )cosβ + YB ⋅ ( L − L1 ) sinβ , (4.13)
поршня с шатуном.
Выразим перемещение поршня через обобщенную коор- где υcx, υcy — составляющие скорости центра масс шатуна по осям
x и y;
динату — угол поворота кривошипа ϕ :
XA, YA — горизонтальная и вертикальная составляющие силы
y = OA + AB − OA ⋅ cos ϕ − AB ⋅ cos β , (4.10) взаимодействия между шатуном и кривошипом;
Mш — масса шатуна;
где OA=R; AB=L;
Jшс — момент инерции шатуна относительно его центра масс;
β — угол между осями шатуна и цилиндра.
L1 — расстояние между точками A и C (см рис. 4.8).
Запишем уравнение связи:
Запишем выражение для определения координат центра
R ⋅ sin ϕ = L ⋅ sin β . (4.11) тяжести шатуна:
Дифференцируя (4.11) по времени дважды, и, учитывая x c = ( L − L1 ) ⋅ sin β ;
(4.10), запишем (4.9) в виде: (4.14)
y c = ( L − L1 ) ⋅ cos β .
mп ⋅ P1 ( ϕ ) ⋅ ϕ&& + mп ⋅ P2 ( ϕ ) ⋅ ϕ& 2 = Fг − Yв , (4.12) Дифференцируя (4.14), и, используя (4.11), перепишем
(4.13) в виде:
где
 m ⋅ P ( ϕ ) ⋅ϕ&& + m ⋅ P ( ϕ ) ⋅ϕ& = X − X ;
2
P1 ( ϕ ) = R ⋅ sin ϕ ⋅ ( 1 + P3 ( ϕ )) ; ш 5 ш 6 B A
(4.15)
 m ⋅ P ( ϕ ) ⋅ϕ&& + m ⋅ P ( ϕ ) ⋅ϕ& = Y − Y ;
2
ш 7 ш 8 B A
 cos 2 ϕ 
P2 ( ϕ ) = L ⋅ λ ⋅  P4 ( ϕ ) ⋅ sin ϕ + cos ϕ + λ
 cos β  ;  J ⋅P(ϕ)⋅ϕ&&+J ⋅P(ϕ)⋅ϕ& =−X ⋅L cosβ +Y ⋅L sinβ −X ⋅( L−L )cosβ +Y ⋅( L−L )sinβ,
шс 3 шс 4
2
A 1 A 1 B 1 B 1

где
cos ϕ
P3 ( ϕ ) = λ ; P5 ( ϕ ) = P3 ( ϕ )( L − L1 ) ⋅ cos β ;
cos β
cos 2 ϕ
P6 ( ϕ ) = ( L − L1 ) ⋅ ( P4 ( ϕ ) ⋅ cos β − λ3 ⋅ ⋅ sin ϕ );
sin ϕ  2 cos ϕ 2
 cos 2 β
P4 ( ϕ ) = λ λ ⋅ cos 2 β − 1 ;
cos β   P7 ( ϕ ) = λ ( L − L1 ) ⋅ P3 ( ϕ ) ⋅ sin ϕ ;
cos 2 ϕ
R P8 ( ϕ ) = λ( L − L1 ) ⋅ ( P4 ( ϕ ) ⋅ sin ϕ + λ ⋅ ).
λ= . cos β
L
Запишем систему уравнений движения шатуна: Запишем уравнение вращательного движения кривошипа:
J оϕ&& = X A ⋅ R ⋅ cos ϕ + Y A ⋅ R ⋅ sin ϕ − M н , (4.16)
92 93
где Jо — момент инерции коленчатого вала относительно оси
вращения; 
Mн — часть нагрузочного момента, приходящегося на один Документ- N4.5 Расчет крутящего момента, приложенного
к кривошипу коленчатого вала рядного дизеля
кривошип.
Задание индикаторной диаграммы:
Запишем систему обыкновенных дифференциальных
уравнений второго порядка, состоящих из (4.12), (4.15),
7.1
0
9.1
(4.16) в виде системы алгебраических уравнений, неизвест- 20
7.2
..
ными в которой являются ϕ (t), XB, YB, XA, YA:
40
3.5
60
1.9
(4.17) 80
1.4
100
(i)
a11 ϕ&& + YB( i ) = C1( i ) ; 120
0.7
0.55
a ϕ&& − X
(i) (i)
+X (i)
=C ; (i) 140
21 B A 2 0.3
160
-вектор углов поворота p1 0.2 -вектор давлений
f1
a ϕ&& − Y
(i)
31
(i)
B +Y (i)
A =C (i)
3 ; 180
200
вала 0.2 рабочего тела
0.2
(i)
a 41 ϕ&& + a 42
(i)
⋅ X B( i ) + a 43
(i)
⋅ YB( i ) + a 44
(i)
⋅ X A( i ) + a 45
(i)
⋅ Y A( i ) = C4( i ) ; 220
0.2
240

∑a ϕ&& + ∑ ( a
(i) (i) (i) (i) (i) 0.22
51 54 ⋅X A +a 55 ⋅Y A ) = C5 , 260
0.3
280
i i 0.6
300
1
320
где индекс “i” показывает соответствие переменной i-му моменту 340
2
времени; 360
7.1

Ck — правая часть (свободный член) k-го уравнения ( k = 1,5 ).


Сплайн-интерполяция силы давления:
Принимая ϕ = ω t ( ω = const ), определяем усилия в со- i 0.. 18

членениях механизма при различных его положениях из че- π


fi f1i . -перевод углов в радианную меру;
180
тырех линейных алгебраических уравнений. При их реше-
qu 0.3-площадь поршня; pi p1i . 106. qu
нии использовалось правило Крамера.
Решение задачи приведено в документе № 4.5. IS cspline ( f , p )
Pressure ( un) interp( IS , f , p , un) -результат интерполяции силы давления;
4.6. Колебания двигателя, установленного
r 0.1 -радиус кривошипа;
на упругом основании
m 35 -масса поршня;
Рассмотрим движение системы, изображенной на схеме ms 40 -масса шатуна;
(рис. 4.9). Двигатель 1, движущийся в направляющих 2, Js 0.9 -момент инерции кривошипа;
соединен с фундаментом 3 безынерционной пружиной 4. С l 0.6 -длина шатуна;
валом двигателя под прямым углом к его оси прикреплен l1 0.3 -расстояние от оси сочленения шатуна и кривошипа до центр
невесомый стержень 5, на конце которого располагается тяжести шатуна;
груз 6. λ
r
-коэффициент; w 89 -угловая скорость.
l


94 95
Функции угла поворота:
z10 γ k Js . z4 γ k . w z11 γ k l1 ) . λ . sin γ k
2
(l
β(α ) asin( λ . sin( α ) )
ms . z8 γ k . w
2
cos ( α ) 0 0 1
z3( α ) λ.
cos ( β ( α ) ) .
y1k
sin( α ) . λ cos ( α ) ms . z6 γ k . w
2 2 2
z4( α ) λ. 1 1 0
r . sin ( α ) . ( 1 z3( α ) )
1
z1( α ) cos ( β ( α ) ) cos ( β ( α ) )
2

m . z2 γ k . w Pressure γ k
2
0 0 1
λ . cos ( α )
2
z2( α ) l. λ . z4( α ) . sin ( α ) cos ( α )
cos ( β ( α ) ) z10 γ k l1 . λ . sin γ k Js . z4 γ k . w l1 ) . λ . sin γ k
2
(l
z5( α ) z3( α ) . ( l l1 ) . cos ( β ( α ) )
ms . z8 γ k . w
2
0 1 1
λ . cos ( α ) .
3 2
z6( α ) (l l1 ) . z4( α ) . cos ( β ( α ) ) sin( α ) y2k
ms . z6 γ k . w
2
cos ( β ( α ) )
2
1 0 0
z7( α ) λ . ( l1 l ) . z3( α ) . sin( α )
m . z2 γ k . w Pressure γ k
2
0 0 1
λ . cos ( α )
2
z8( α ) λ . ( l1 l ) . z4( α ) . sin( α )
cos ( β ( α ) ) z10 γ k l1 . λ . sin γ k z11 γ k Js . z4 γ k . w
2

l1 l l1
z9( α ) ( λ . sin ( α ) ) z10( α )
z11( α ) ms . z8 γ k . w
2 2
1 0 1 0
z9( α ) z9( α )
Вычисление усилий и крутящего момента в функции угла y3k
ms . z6 γ k . w
2
поворота: 1 0 1

k 0.. 255 m . z2 γ k . w Pressure γ k


2
0 0 0
π 360
γk k. .
180256 yk
pk -горизонтальная составляющая силы взаимодействия
Решение системы алгебраических уравнений по правилу xk кривошипа и шатуна;
Крамера: y1k
p1k -вертикальная составляющая силы взаимодействия
z10 γ k l1 . λ . sin γ k z11 γ k (l l1 ) . λ . sin γ k xk кривошипа и шатуна;
xk 0 1 0 1 y2k
1 0 1 0 p2k -горизонтальная реакция стенки цилиндра;
0 0 0 1
xk
y3k
p3k -сила взаимодействия поршня и шатуна;
Js . z4 γ k . w l1 . λ . sin γ k z11 γ k l1 ) . λ . sin γ k xk
2
(l

ms . z8 γ k . w
2 yk y1k
1 0 1
Mk . l1. cos γ . l1 . sin γ -крутящий момент.
yk k k
xk xk
ms . z6 γ k . w
2
0 1 0
5 6
2.510 2.910
m . z2 γ k . w Pressure γ k
2
0 0 1
5
1.6310 2.18106

p 7.5104
p1 6
1.4710
k k
5
4 7.5110
1.2510

5 3.5104
1 10
0 1.563.134.696.26


0 1.573.144.71
6.28
γ


γ k
k

96 97
5
3 106
6
1.63105 2.26106 G1
p2 4
9.510 p3 1.51
10
6
k k
4 5
1
2
2.7510 7.6510

4 4
4 10 2 10

G
0 1.563.134.696.26 0 1.563.134.696.26
γ γ
k k

5
5 10
X Fy 4
3.25105
3
M 1.5105
k
4
2.510

2 105
Рис. 4.9
0 1.57 3.14 4.71 6.28
γ
k Обычно считают, что эксцентриковый вибратор генери-
Разложение крутящего момента в ряд Фурье рует вынуждающую силу:
Интерполяция крутящего момента кубическими сплайнами: P = P0 cos ω t ,
IS1 cspline ( γ , M )
где
Momkr( θ ) interp( IS1 , γ , M , θ )
ν 1.. 8 -задание числа гармоник Фурье
P0 = mi ⋅ ω 2 ⋅ l ;
Вычисление коэффициентов :
mi — неуравновешенная масса;
l — длина стержня;
2. π 2. π
1. ω — угловая скорость вала двигателя.
Momkr( θ ) . sin ( ν . θ ) d θ Bcν
1.
Asν Momkr( θ ) . cos ( ν . θ ) d θ
π π
При этом предполагается, что значение ω наперед задано
0 0
Asν
Амплитуды: Garmν Asν
2
Bcν
2
Фазы: Fazν atan и не зависит от процесса колебаний упругой системы, на
Bcν
которой установлен вибратор.
2 105
1.1 В действительности это не так, и если используется двига-
1.5105 0.45
тель, обладающий небольшой мощностью, то процесс колеба-
Garm 1 105 Faz
ний упругой системы заметно влияет на величину ω и последняя
ν ν 0.2
также колеблется около некоторого среднего значения. Вслед-
5 104 0.85
ствие взаимного влияния колебаний конструкции и угловой ско-
0
1 2 3 4 5 6 7 8
1.5
1 2 3 4 5 6 7 8
рости вращения вала двигателя его работа в некотором диапа-
ν ν
зоне угловых скоростей становится неустойчивой. Этот эффект
носит имя Зоммерфельда — известного физика, впервые наблю-
„
давшего в 1904 г. неустойчивость на экспериментальной уста-
новке (рис. 4.10).
98 99
невесомого стержня; M — крутящий момент, приложенный
к валу; µ — коэффициент вязкого сопротивления вертикаль-
A ному движению корпуса; µ2 — коэффициент вязкого сопро-
тивления вращению вала.
Решение.
Запишем дифференциальные уравнения движения систе-
мы (см. рис. 4.9). Она имеет две степени свободы. За обоб-
щенные координаты выбираем угол поворота вала двига-
ω теля — ϕ и вертикальное перемещение корпуса — x.
ωp По теореме о движении центра масс:
1
Рис. 4.10 dVc
( m + m1 ) ⋅ = − µx& − cx + ( m + m1 ) g , (4.18)
dt
На графике (см. рис. 4.10) изображена зависимость где Vc — скорость центра масс системы.

ω  Ускорение центра масс определим по формуле:


A = A ,
dVc m ⋅l
ω 
 p  = &x& − 1 ⋅ ( ω& ⋅ sin ϕ + ω 2 ⋅ cos ϕ ) . (4.19)
dt m + m1
где A — амплитуда колебаний двигателя;
ω — угловая скорость вала; Подставляя (4.19) в (4.18), получим первое дифференци-
ωp — круговая частота свободных колебаний конструкции. альное уравнение движения:
Пунктирной линией показана зона неустойчивости. При ( m + m1 ) ⋅ &x& − m1 ⋅ l ⋅ ( ϕ&& ⋅ sinϕ + ϕ& 2 ⋅ cosϕ ) = −µx& − cx + ( m + m1 )g . (4.20)
увеличении притока энергии в этой зоне угловая скорость Запишем дифференциальное уравнение вращательного
не возрастает, а может снижаться, амплитуда колебаний движения стержня:
при этом растет. Инженеру-железнодорожнику следует J ⋅ ϕ&& = M − µ 2 ⋅ ϕ& + m1 ⋅ l ⋅ &x& ⋅ sin ϕ − m1 ⋅ g ⋅ l ⋅ sin ϕ . (4.21)
знать об этом явлении, так как его можно встретить часто:
Отправной пункт дальнейших рассуждений состоит в
мотор-компрессор локомотива, энергетическая установка
том, что колебания массы m1 влияют на угловую скорость
тепловоза находятся в корпусе, который располагается на
ω и что момент M, передаваемый статором на ротор, зави-
упругом основании. Вместо того, чтобы увеличивать угло-
сит от угловой скорости. Зависимость:
вую скорость, мы, не обладая знаниями об эффекте Зоммер-
фельда, можем увеличивать уровень вредных колебаний M = M(ω )
локомотива. называется характеристикой двигателя и определяется его кон-
Задача: для схемы (см. рис. 4.9) исследовать возможность струкцией и параметрами. Во многих случаях характеристику
проявления эффекта Зомерфельда. электродвигателя можно принять в виде линейной функции
Заданы:
M = M 0 − bω , (4.22)
Жесткость пружины — C; массы двигателя и груза — m,
m1, соответственно; J — момент инерции ротора; l — длина где b = const.

100 101
Величина M0 зависит от рабочего напряжения. С помо- Примем для примера, следующие данные:
щью реостата можно изменить характеристику двигате-
M=9 кг; m1=1 кг; J=0,1 кН/м; l=0,05 м; µ=0,05; b=0,05; µ2=0,05.
ля — на графике это отразится смещением ее параллельно
самой себе (рис. 4.11). Компьютерное решение задачи, использующее уже изве-
стную авторскую Mathcad-функцию xr( ) (см. док. 2.3), ил-
M
люстрируется документом №4.6, в котором строится зави-
симость угловой скорости вала в функции составляющей
момента — Мо. При Мо ∈ [14 Нм, 16 Нм] проявляется эф-
фект Зоммерфельда. Увеличение крутящего момента (до-
полнительный приток энергии) не увеличивает угловой ско-
рости. При этом растет амплитуда колебаний двигателя.
4.7. Попадание ракетой в неподвижную цель
ω Самолет пролетает параллельно земле со скоростью V0 и
находится в данный момент времени в начале неподвижной
Рис. 4.11
системы отсчета XOY (рис. 4.12). В точке O1(x1,y1) нахо-
дится неподвижная цель. Требуется определить начальную
С учетом (4.22), обозначая
горизонтальную скорость Vr ракеты относительно самоле-
µ1 = b + µ 2 , та, необходимую для попадания в цель. Масса ракеты — m.
преобразуем (4.21) к виду: На ракету действуют постоянная ветровая нагрузка F ,
направленная в сторону, противоположную движению раке-
J ⋅ ϕ&& = M 0 − µ 1 ⋅ ϕ& + m1 ⋅ l ⋅ &x& ⋅ sin ϕ − m1 ⋅ g ⋅ l ⋅ sin ϕ . (4.23)
ты, а также сила вязкого сопротивления воздуха R = − µV .
Уравнения (4.20) и (4.23) представляют собой систему
дифференциальных уравнений движения конструкции, изоб- O υ0 υr y1 Y
раженной на схеме (см. рис. 4.9). Интегрировать эти урав-
нения будем численно, методом Рунге-Кутты. С этой целью
записывается система четырех дифференциальных уравне-
ний первого порядка:
Rx
dV
= f 1 ( x ,ϕ , x& ,ϕ& ,ϕ& 2 ) F A
dt Ry

= f 2 ( x ,ϕ , x& ,ϕ& ,ϕ& 2 )
dt G O(x1,y1)
dx
=V (4.24)
dt
td

ω

dt Рис. 4.12
102 103
 Функция, возвращающая среднюю угловую скорость,
соответствующую моменту Mo
Документ-N4.6 Моделирование эффекта Зоммерфельда
ω ( Mo , N ) v xr( 0.02, N , y , Mo , D )
Исходные данные: N
for i ∈ .. N 1
m 9 m1 1 J 0.1 2

µ
vv i v4 , i
c 9000 b 0.4 0.05
L 0.05 g 9.81 2 . vv
N
Функции, необходимые при вычислении производных:
Нахождение зависимости угловой скорости
m1.L . 1 . µ .v 2 в функции момента Ω=Ω(Mo )
f( φ ) sin ( φ ) ψ ( x, φ , v , ω ) g c .x m1.L.ω .cos ( φ )
m m1 m m1

J 1 j 0 .. 22
q( φ ) p ( φ , ω , Mo ) g .( Mo (b µ ) .ω )
m1.L.sin ( φ ) m1.L.sin ( φ )
Mo j 10 0.5.j
Вектор начальных условий
Ωj ω Mo j , 400
0.07
Построение графика зависимости угловой
0.01 скорости в функции момента Ω=Ω(Mo )
y
0
29 50

Вектор первых производных


45

y2

y3 40

f y 1 .p y 1 , y 3 , Mo q y 1 .ψ y 0 , y 1 , y 2 , y 3
D( y , t , Mo )
f y1 q y1
Ω 35
j
ψ y0 , y1 , y2 , y3 p y 1 , y 3 , Mo
f y1 q y1
30

Ссылка на файл MyRk.mcd, содержащий авторскую


25
Mathcad-функцию xr( ), реализующую метод числен-
ного интегрирования дифференциальных уравнений
(метод Рунге-Кутты)
20
10 12 14 16 18 20 22
Mo
Reference:C:\File Mathcad\MyRk.mcd j


104 105
Решение. Учитывая, что mg > µV x , отбросим знак модуля. После
Изобразим ракету в промежуточном положении — точке достижения скорости V x = mg / µ , она будет оставаться
A и приложим силы, действующие на нее: постоянной. Используя начальные условия — {t = 0 ;V x = 0},
найдем постоянную интегрирования
F — сила ветра;
R x = µ ⋅ V x , R y = µ ⋅ V y — вертикальная и горизонтальная m
С1 = − ln( mg )
составляющие силы сопротивления воздуха, соответственно; µ
G — сила тяжести. и подставим в (4.26).
Запишем дифференциальное уравнение движения ракеты После преобразований получаем:
dV m mg − µV x
m = F + Rx + R y + G − ⋅ ln =t.
dt µ mg
и, спроектировав его на оси координат, получим систему Выражаем скорость:
дифференциальных уравнений движения:
µ
mg  − t 
dV Vx = 1 − e m  .
 m x = G − Rx µ  
dt 
 dV y , Учитывая, что
 m
dt
= −F − Ry
dx
Vx = ,
или dt
dV x
получим
 m = mg − µV x µ
dt dx mg  − t 
 = 1 − e m  .
dV y . (4.25) dt µ  
 m
dt
= − F − µV y 
Разделяя переменные и интегрируя
Проинтегрируем первое уравнение в системе (4.25). Для µ
этого перепишем его, разделяя переменные, в виде mg  − t 
∫ dx = ∫  1 − e m  dt ,
µ  
m d ( mg − µV x ) 
− ⋅ = dt .
µ mg − µV x получаем:
Интегрируя µ
mg m2 g − t
m d ( mg − µV x ) x= ⋅ t + 2 e m + C2 . (4.27)
µ µ
µ ∫ mg − µV x
− ⋅ = ∫ dt ,
По начальным условиям — {t=0; x=0}, находим:
получаем
m2g
m
− ln mg − µV x = t + C1 .
C2 = − .
µ
(4.26) µ2
106 107
Подставим полученный результат в (4.27). Зависимость Решение этой задачи показано в документе №4.7. Так же
абсциссы от времени: в нем продемонстрированы некоторые возможности анима-
ции mathcad. После вычислений и запуска анимационного
mg  m  − m t 
µ
клипа ракета перемещается по плоской траектории на экра-
x= ⋅ t +  e − 1  . (4.28)
µ  µ   не и попадает в цель. В этом документе так же даны пояс-
нения к вопросу о том, как создаются анимационные
Аналогично поступим со вторым уравнением в (4.25). клипы.
Последовательно интегрируя и находя постоянные интег-
рирования, получим скорость:
µ
F  − t F
V y =  + V0 + Vr e m −
µ  µ
и зависимость ординаты от времени:
µ
m F   − t F
y =  + V0 + Vr  ⋅ 1 − e  − ⋅ t .
m
(4.29)
µ µ    µ
Далее предлагается следующий алгоритм решения урав-
нений (4.28) и (4.29).
Запишем функцию

mg  m  − m t 
µ
φ( t ) = ⋅ t +  e − 1  − x .
µ  µ  
Нас интересует момент времени t1, в который x достига-
ет значения x1. В этом случае:
φ( t ) = 0 . (4.30)
Уравнение (4.30) решается при помощи функции root( ),
которая читателю уже известна из второго раздела.
Выразим из (4.29) начальную относительную скорость Vr
и, подставляя в полученное выражение — t1 и y1, определяем
µy 1 + Ft 1 F
Vr = − − V0
 µ
− t  µ
m 1 − e m  . (4.31)
 

108 109
 ЛИТЕРАТУРА
Документ-N4.7 Некоторые возможности анимации mathcad
Стрельба по цели 1. Mathcad 6.0 Plus. Финансовые, инженерные и научные расчеты
Исходные данные:
в среде Windows 95. /Перевод с англ. — М.: Информационно-
v0 100 m 1000 x0 44 y0 5000 µ 0.01 F 100 g 9.81
-издательский дом “Филинъ”, 1996. — 712 с.
µ.
t 2. О ч к о в В.Ф. Mathcad 6.0 для студентов и инженеров. — М.:
m.g . m. m
p ( t) t e 1 x0 ТОО фирма “КомпьютерПресс”, 1996. — 230 с.
µ µ
3. Руководство по применению системы Mathcad. Дьяконов В.П. —
t 0
Смоленск: Государственный научный центр по компьютерным и
T root( p ( t ) , t ) -время полёта ракеты.
информационным технологиям “Кит”. Смоленский филиал МЭИ,
µ .y0 F .T F 1992. — 114 с.
v1 v0 -вычисление начальной скорости.
µ.
T µ 4. П е р ш и ц Ю.И., Ш и ш к о Д.Ф. Теоретическая механика.
m. 1 e
m Методические указания к решению второй основной задачи
динамики материальной точки. — М.: ВЗИИТ, 1988.
Функции, определяющие перемещение ракеты:
5. Теоретическая механика. Часть II. Использование ЭВМ в зада-
µ.
t
µ.
t
чах динамики: Учебное пособие /И.А. Алейников, С.Г. Мелик-
g m. m m. F m F. джанов, Российский государственный открытый технический
Gor( t ) m. . t e 1 Ver( t ) v0 v1 . 1 e t
µ µ µ µ µ университет путей сообщения. — М.: 1995. — 28 с.
Положение цели: Движение ракеты: Начальное поло- 6. Введение в теорию механических колебаний. Пановко Я.Г. —
FRAME
жение ракеты: М.: Наука, 1971. — 240 с.
gg x0 xx Gor nx Gor( 0 )
10
7. П а н о в к о Я.Г., Г у б а н о в а И.И. Устойчивость и колеба-
FRAME
ния упругих систем. — М.: Наука, 1979. — 384 с.
vv y0 yy Ver ny Ver( 0 )
10
8. О ч к о в В.Ф. Mathcad 7 Pro для студентов и инженеров. — М.:
Компьютер Пресс, 1998. — 384 с.
9. О ч к о в В.Ф. Советы пользователям Mathcad — М.: Изд-во
МЭИ, 2001. — 196 с.
Стрельба по
Для создания анимационного клипа в
10. А л е й н и к о в И.А., Ларченков А.М., Умаров А.С. Использо-
цели mathcad следует: вание пакета Mathcad+ при решении задач теоретической ме-
-обвести область, которая должна попасть ханики. — М.: РГОТУПС, 1998. — 70 с.
в клип, пунктирной линией;
-выбрать Animation из меню Window;
11. Х е р х а г е р М., П а р т о л л ь Х. Mathcad 2000. Полное ру-
gg
-задать нижние и верхние границы для ководство. — М.: BHV, 2000. — 415 с.
xx переменной FRAME, предназначенной 12. С о б о л ь И.М., С т а т н и к о в Р.Б. Выбор оптимальных па-
специально для создания анимаций;
nx
-щёлкните по Сreate...;
раметров в задачах со многими критериями. — М.: Наука,
-для воспроизведения анимации, нажмите 1981. — 107 с.
на кнопку со стрелкой в нижнем левом уг- 13. С о б о л ь И.М. Точки, равномерно заполняющие многомер-
0 1275 2550 3825 5100
лу окна, обведённого ранее пунктиром.
vv , yy , ny ный куб.— М.: Знание, 1985. — 32 с.
„ 14. С о б о л ь И.М., Статников Р.Б. Наилучшие решения — где их
искать.— М.: Знание, 1982. — 75 с.

110 111
4. ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ СИСТЕМЫ
MATHCAD ПРИ РЕШЕНИИ ИНЖЕНЕРНЫХ
ЗАДАЧ ................................................................................77
ОГЛАВЛЕНИЕ 4.1. Определение углов наклона балки при равновесии ....... 77
4.2. Определение усилий в опорных стержнях
пространственной конструкции ..................................... 79
ПРЕДИСЛОВИЕ ........................................................................... 3 4.3. Исследование кулачкового механизма ......................... 84
1. ОСНОВЫ РАБОТЫ С MATHCAD ....................................... 6 4.4. Торможение поезда ......................................................... 86
1.1. Меню системы ................................................................... 6 4.5. Определение усилий в сочленениях шатунно-
1.2. Создание простейших документов ................................ 18 кривошипного механизма однорядной поршневой
1.3. Ввод текста в документ ................................................. 19 машины ............................................................................. 91
1.4. Итерационные вычисления ............................................. 19 4.6. Колебания двигателя, установленного
1.5. Задание функций ............................................................. 20 на упругом основании .................................................... 94
1.6. Построение формул и редактирование документа ...... 21 4.7. Попадание ракетой в неподвижную цель .................. 103
1.7. Введение в графику Mathcad ........................................ 23
ЛИТЕРАТУРА ........................................................................... 111
1.8. Некоторые возможности символьной
математики Mathcad ....................................................... 23
1.9. Программирование ......................................................... 29
1.10. Запись результатов расчетов в файл .......................... 38
2. ФУНКЦИИ MATHCAD, ЧАСТО
ИСПОЛЬЗУЮЩИХСЯ В РАСЧЕТАХ ..................................... 40
2.1. Понятие о численных методах ...................................... 40
2.2. Интегрирование обыкновенных дифференциальных
уравнений в Mathcad ...................................................... 42
2.3. Интерполяция .................................................................. 44
2.4. Регрессия .......................................................................... 49
2.5. Алгоритм решения систем из n линейных
однородных алгебраических уравнений,
содержащих n неизвестных ............................................ 53
2.6. Решение одного уравнения с одним неизвестным
и нахождение корней полинома ..................................... 55
3. ВВЕДЕНИЕ В МЕТОДИКУ ВЫБОРА
ОПТИМАЛЬНЫХ РЕШЕНИЙ ................................................ 60
3.1. Простейшая иллюстрация использования методики
выбора оптимального решения ...................................... 60
3.2. Многокритериальные задачи ......................................... 64
3.2.1. Недоминируемые решения ................................... 64
3.2.2. Элементарные сведения о методе сеток ............. 66

112 113
Учебное издание

Игорь Аркадьевич Алейников

ПРАКТИЧЕСКОЕ ИСПОЛЬЗОВАНИЕ ПАКЕТА


Mathcad ПРИ РЕШЕНИИ ЗАДАЧ
Учебное пособие

Редактор В.И. Тихонычева


Компьютерная верстка Н.Ф. Цыганова

ЛР № 020307 от 28.11.91

Тип. зак. Изд. зак. 378 Тираж 4000 экз.


Подписано в печать 22.10.02 Гарнитура Times. Офсет
Усл. печ. л. 7,25 Уч.-изд. л. 7,25 Формат 60×901/16

Издательский центр РГОТУПСа,


125993, Москва, Часовая ул., 22/2

Типография РГОТУПСа, 107078, Москва, Басманный пер., 6


114

Вам также может понравиться