/
Автор: Макаров Е.Г.
Теги: компьютерные технологии специализированные и управляющие электронные вычислительные машины дискретного действия математика алгебра инженерия mathcad инженерные расчеты
ISBN: 5-94723-530-7
Год: 2005
Текст
Е. Макаров
Инженерные расчеты
в Mathcad
Е. Макаров
Инженерные расчеты
в Mathcad
\ учебный
курс
ПИТЕР
Москва Санкт-Петербург Нижний Новгород • Воронеж
Ростов-на-Дону • Екатеринбург Самара
Киев - Харьков - Минск
2005
Макаров Евгений Георгиевич
Инженерные расчеты в Mathcad. Учебный курс
Главный редактор
Заведующий редакцией
Руководитель проекта
Научные редакторы
Литературный редактор
Художник
Корректоры
Верстка
Е Строганова
А. Кривцов
В. Шачин
Д. Солнышков, А. Жданов
Е. Ваулина
Н. Биржаков
И. Тимофеева, А. Моносов
А. Келле-Пелле
ББК 32.973.23-018я7
УДК 681.3.06(075)
Макаров Е. Г.
15 Инженерные расчеты в Mathcad. Учебный курс. — СПб.: Питер, 2005. — 448 с.: ил.
ISBN 5-94723-530-7
Эта книга посвящена практическим аспектам применения популярного математического пакета
в инженерных и научных расчетах. Автор — опытный преподаватель, давно и активно исполь-
зующий Mathcad в своей работе, — делится с читателями накопленными хитростями и тонкостями.
Краткая вводная часть поможет познакомиться с основными возможностями Mathcad и быстро
перейти непосредственно к расчетам. Особое внимание уделено программированию в Mathcad.
Приведены примеры решения инженерных задач, включая расчеты по сопротивлению материалов,
электротехнике, математической статистике, динамики и прочности конструкций.
Книга рассчитана как на начинающих осваивать Mathcad, так и на опытных пользователей,
применяющих этот пакет в своей каждодневной работе. Она будет полезна студентам, обучающимся
по различным инженерным специальностям, а также практикующим инженерам. »
> ЗАО Издательский дом «Питер», 2005
се права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было
юрме без письменного разрешения владельцев авторских прав.
нформация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как
адежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не
ожет гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за
эзможные ошибки, связанные с использованием книги.
SBN 5-94723-530-7
ООО «Питер Принт», 194004, Санкт-Петербург, Б.Сампсониевский пр., д. 29а.
Лицензия ИД № 05784 от 07.09.01.
Налоговая льгота — общероссийский классификатор продукции ОК 005-93, том 2; 95 3005 — литература учебная.
Подписано к печати 27.08.04. Формат 70x100/16. Уел. п. л. 36,12. Доп. тираж 4000. Заказ 882
Отпечатано с готовых диапозитивов в ОАО «Техническая книга»
190005, Санкт-Петербург, Измайловский пр., 29
Краткое содержание
Предисловие..............................................11
ЧАСТЬ I. ОСНОВНЫЕ СВЕДЕНИЯ
Глава 1. Построение выражений и графиков в Mathcad.......16
Глава 2. Основные возможности Mathcad....................38
ЧАСТЬ II. ВЫЧИСЛЕНИЯ В MATHCAD
Глава 3. Решение уравнений...............................70
Глава 4. Обработка массивов..............................87
Глава 5. Символьные вычисления..........................107
Глава б. Решение дифференциальных уравнений.............132
Глава 7. Обработка экспериментальных данных.............156
Глава 8. Математическая статистика......................179
ЧАСТЬ III. ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ MATHCAD
Глава 9. Программирование...............................190
Глава 10. Анимация......................................207
Глава 11. Учет размерностей.............................213
Глава 12. Вспомогательные функции Mathcad...............222
Глава 13. Работа с документами..........................240
Глава 14. Текст.........................................255
Глава 15. Построение графиков...........................262
Глава 16. Справочная информация в Mathcad...............283
ЧАСТЬ IV. ПРИМЕРЫ ИНЖЕНЕРНЫХ РАСЧЕТОВ
Приложение А. Клавиши быстрого доступа..................409
Приложение Б. Системные переменные Mathcad..............411
Приложение В. Встроенные функции и ключевые слова Mathcad.413 ,
Приложение Г. Сообщения об ошибках..........................434 ш
Алфавитный указатель....................................446 »
Содержание
Предисловие.......................................................................11
ЧАСТЬ I. ОСНОВНЫЕ СВЕДЕНИЯ
Глава 1. Построение выражений и графиков в Mathcad................................16
Интерфейс Mathcad..............................................................16
Рабочее окно Mathcad........................................................16
Главное меню ................................................................16
Панели инструментов .........................................................18
Построение и вычисление выражений..............................................21
Цепкие операторы...............................................................22
Редактирование объектов Mathcad................................................22
Встроенные функции.............................................................24
Числовые константы и ввод греческих букв .......................................25
Ввод текста....................................................................25
Функции пользователя...........................................................26
Дискретные переменные и построение таблиц......................................27
Форматирование чисел...........................................................29
Построение двухмерного графика функции.........................................30
Построение трехмерных графиков.................................................34
Глава 2. Основные возможности Mathcad.............................................38
Ступенчатые и разрывные функции выражения условия..............................38
Глобальное присваивание значений ...............................................40
Символьные вычисления..........................................................41
Решение уравнений..............................................................43
Символьное решение..........................................................43
Численное решение...................................•.......................44
Решение систем уравнений .......................................................45
Работа с матрицами.............................................................47
Создание матриц.............................................................48
Основные действия с матрицами...............................................48
Решение матричных уравнений.................................................50
Оператор векторизации ..........................................................51
Решение дифференциальных уравнений.............................................52
Анализ экспериментальных данных................................................57
Интерполяция................................................................57
Регрессия...................................................................58
Элементы математической статистики..........................................63
Обмен данными с другими программами ............................................64
Отладка документов Mathcad.....................................................64
Оптимизация программ...........................................................68
Содержание
7
ЧАСТЬ II. ВЫЧИСЛЕНИЯ В MATHCAD
Глава 3. Решение уравнений........................................................70
Функция root...................................................................70
Решения уравнений с помощью функций пользователя...............................74
Нахождение корней полинома.....................................................75
Решение систем уравнений ......................................................76
Общие рекомендации по решению уравнений........................................80
Приближенное решение уравнений и систем уравнений..............................80
Исследование функции на экстремум .............................................82
Рекурсивные вычисления.........................................................85
Глава 4. Обработка массивов.......................................................87
Создание матрицы...............................................................87
Нумерация элементов матрицы....................................................89
Встроенная переменная ORIGIN...................................................89
Определение параметров матрицы.................................................90
Образование новых матриц из существующих.......................................91
Ввод больших массивов..........................................................92
Сортировка векторов и матриц...................................................93
Матричные операторы............................................................93
Транспонирование.......................................................... 93
Сложение, вычитание и умножение матриц......................................94
Оператор векторизации ......................................................96
Собственные числа и векторы матриц.............................................97
Норма квадратной матрицы.......................................................99
Число обусловленности квадратной матрицы.......................................99
Матричные разложения......................................................... 100
Разложение Холесского ...................................................... 100
QR-разложение............................................................. 100
LU-разложение ..............................................................101
Сингулярное разложение.................................................... 103
Вывод векторов и матриц...................................................... 103
Комплексные числа............................................................ 104
Глава 5. Символьные вычисления...................................................107
Оптимизация численных вычислений............................................. 107
Использование меню Symbolics .................................................. 108
Символьная оценка......................................................... 110
Упрощение выражений ........................................................110
Разложение выражений.......................................................110
Разложение на множители................................................... 112
Приведение подобных слагаемых............................................. 113
Коэффициенты полинома......................................................113
Вычисление пределов....................................................... 114
Символьные вычисления по выбранной переменной............................. 114
Вычисление производной или интеграла...................................... 116
Символьное решение уравнений и неравенств................................. 116
Разложение в ряд Тейлора ................................................. 117
Разложение на простейшие дроби............................................ 117
Символьные операции с матрицами........................................... 119
Вычисление интегральных преобразований....1............................... 119
о ’-одержание
Использование панели Symbolic.............................................. 122
Встроенные функции и переменные...................................?..... 129
Особенности символьных вычислений....................................... 129
Глава 6. Решение дифференциальных уравнений....................................132
Вычислительный блок Given...Odesolve....................................... 132
Функции rkfixed, Rkadapt и Bulstoer........................................ 138
Дифференциальные уравнения первого порядка.............................. 139
Дифференциальные уравнения порядка выше первого......................... 141
Системы дифференциальных уравнений.......................................142
Жесткие системы дифференциальных уравнений................................. 145
Нахождение решения только в конечной точке................................. 148
Двухточечные краевые задачи................................................ 148
Дифференциальные уравнения в частных производных......................... 153
Глава 7. Обработка экспериментальных данных....................................156
Интерполяция............................................................... 156
Линейная интерполяция................................................... 156
Кубическая сплайн-интерполяция.......................................... 158
В-сплайн-интерполяция....................................................158
Линейное предсказание................................................... 160
Интерполяция функции двух переменных.................................... 162
Функции регрессии ......................................................... 165
Двухмерная регрессия.................................................... 166
Обобщенная регрессия ....................................................168
Функции сглаживания........................................................ 171
Дискретные преобразования.................................................. 173
Преобразование Фурье.................................................... 173
Двухмерное преобразование Фурье......................................... 176
Волновое преобразование ................................................ 177
Глава 8. Математическая статистика.............................................179
Характеристики выборки данных и связи двух массивов........................ 179
Функции распределения вероятностей......................................... 182
Генераторы случайных чисел ................................................ 184
Построение гистограмм...................................................... 185
Примеры статистических расчетов ........................................... 187
Расчет доверительного интервала......................................... 187
Построение усталостной кривой............................................187
ЧАСТЬ III. ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ MATHCAD
Глава 9. Программирование......................................................190
Создание программ ......................................................... 190
Ввод строк в программу...................................................191
Локальное присваивание значений......................................... 192
Условный оператор if....................................................... 193
Операторы цикла............................................................ 194
Оператор while.......................................................... 196
Оператор for.......................................................... 197
Операторы break, continue и return...................................... 199
Вывод значений из программы .................................................. 200
Составные массивы ............................................................ 201
Подпрограммы-функции.......................................................... 202
Отладка программ ............................................................. 202
Приемы ускорения работы Mathcad............................................... 205
Глава 10. Анимация................................................................207
Создание анимации............................................................. 207
Галерея анимационных клипов................................................... 211
Глава 11. Учет размерностей.......................................................213
Выбор единиц измерения........................................................ 213
Ввод пользовательских единиц измерения........................................ 215
Изменение масштаба результатов расчета........................................ 216
Размерность элементов массива ................................................ 218
/лава 12. Вспомогательные функции Mathcad.........................................222
Функции для работы с комплексными числами..................................... 222
Функции определения типа выражения............................................ 224
Функции доступа к файлам...................................................... 224
Функции поиска значений матрицы .............................................. 225
Преобразования функции в матрицу и матрицы в функцию.......................... 227
Функции преобразования координат.............................................. 230
Функции условия............................................................... 232
Функции округления чисел...................................................... 234
Функции комбинаторики и теории чисел.......................................... 234
Функции тригонометрические, гиперболические, логарифмические и экспоненциальные. 235
Специальные функции........................................................... 236
Функции Бесселя........................................................... 236
Функции Эйри ..............................................................237
Функции Бесселя-Кельвина ................................................. 238
Другие специальные функции................................................ 238
Дополнительные неактивные функции .........................................238
Строковые функции............................................................. 239
Глава 13. Работа с документами....................................................240
Построение математических выражений........................................... 240
Защита информации в Mathcad .................................................. 245
Закрытые зоны в Mathcad....................................................... 247
Создание вычислительных комплексов ........................................... 249
Использование ссылок на другие файлы.......................................249
Использование гиперссылок................................................. 249
Вставка объектов в документ Mathcad........................................... 252
Глава 14. Текст...................................................................255
Изменение стиля текстовой области............................................. 256
Форматирование текста ........................................................ 257
Использование гиперссылок .................................................... 259
10
Содержание
Глава 15. Построение графиков............................................%......262
Построение двухмерных плоских графиков...................................... 262
Построение полярных графиков................................................ 267
Построение трехмерных графиков.............................................. 268
Построение графика по массиву значений функции........................... 268
Быстрое построение графика .............................................. 268
Создание массива значений функции........................................ 272
Построение поверхностей тел вращения......................................274
Построение пространственной кривой ...................................... 277
Построение многогранников ................................................279
Быстрое изменение типа графика .......................................... 280
Построение графика векторного поля ...................................... 282
Глава 16. Справочная информация в Mathcad.......................................283
Меню Help................................................................... 283
Перевод справочной системы Mathcad...........................................285
Центр ресурсов.............................................................. 286
Обзор и учебник...........................................................287
Шпаргалки и справочные таблицы .......................................... 289
Расширение возможностей Mathcad...........................................289
Mathcad и Интернет...........................................................290
Совместная работа над проектами.......................................... 291
Доступ в веб-библиотеку...................................................291
Веб-сайт фирмы Mathsoft.................................................. 291
Интернет-магазин фирмы Mathsoft.......................................... 292
Техническая поддержка Mathcad.............................................292
ЧАСТЬ IV. ПРИМЕРЫ ИНЖЕНЕРНЫХ РАСЧЕТОВ
Пример 1. Расчет балки на изгиб............................................. 294
Пример 2. Расчет стержня на кручение........................................ 303
Пример 3. Расчет балки на косой изгиб....................................... 308
Пример 4. Построение обобщенной диаграммы деформирования ................... 313
Пример 5. Расчет упругопластического изгиба балки............................318
Пример 6. Расчет статически неопределимой рамы методом сил.................. 322
Пример 7. Кинематический анализ кулачкового механизма....................... 328
Пример 8. Расчет электрической цепи переменного тока............................333
Пример 9. Переходные процессы при коммутации электрической цепи.................337
Пример 10. Оценка параметров статистической выборки..........................341
Пример 11. Расчет вынужденных колебаний балки............................... 345
Пример 12. Динамический расчет балки матричным методом перемещений.......... 351
Пример 13. Расчет пространственной стержневой системы ...................... 364
Пример 14. Расчет кольца методом конечных элементов......................... 369
Пример 15. Решение уравнения Пуассона при кручении стержня.................. 379
Пример 16. Решение плоской упругопластической задачи методом конечных элементов.387
Пример 17. Расчет толстостенной трубы под давлением..........................401
Приложение А. Клавиши быстрого доступа..........................................409
Приложение Б. Системные переменные Mathcad......................................411
Приложение В. Встроенные функции и ключевые слова Mathcad.......................413
Приложение Г. Сообщения об ошибках..............................................434
Алфавитный указатель............................................................446
Светлой памяти Андрея Владимировича Васильева
посвящается
Предисловие
Пакет Mathcad создан разработчиками как инструмент для работы расчетчиков-
инженеров. Он не предназначен для профессиональных математиков. Для них есть
другие системы, ориентированные на области символьной математики и матема-
тической статистики. Пакет Mathcad в том виде, в котором он создан, не предна-
значен и для программирования сложных задач. Для этого есть система Mathlab,
традиционные языки программирования.
Пакет Mathcad создавался как мощный микрокалькулятор, позволяющий лег-
ко справляться с рутинными задачами инженерной практики, ежедневно встре-
чающимися в работе. Сюда можно отнести решение алгебраических и диффе-
ренциальных уравнений с постоянными и переменными параметрами, анализ
функций, поиск их экстремумов, численное и аналитическое дифференциро-
вание и интегрирование, вывод таблиц и графиков при анализе найденных ре-
шений.
Главным достоинством пакета Mathcad и его колоссальным преимуществом перед
подобными системами являются:
О легкость и наглядность программирования задач;
О запись сложных математических выражений в том виде, в котором они обычно
записываются инженерами на листе бумаги (то есть отсутствие специального
языка программирования);
О простота в использовании;
О возможность создания встроенными средствами высококачественных техни-
ческих отчетов с таблицами, графиками, текстом.
Пакет Mathcad завоевал популярность во всем мире. Им пользуются свыше
5 млн человек. Ежегодно выпускаются новые версии. Однако складывается
впечатление, что в последнее время усовершенствования программы носят
больше косметический характер. Улучшается интерфейс, расширяются возмож-
ности отдельных функций, совершенствуются средства Для работы в Интер-
нете.
12
Предисловие
Настоящим украшением Mathcad, доступным уже в первых версиях, была под-
держка дискретных переменных, позволяющих одновременно вычислять функции
для целого ряда значений аргумента, что обеспечивало возможность построения
таблиц и графиков без применения операторов программирования. Почти до со-
вершенства доведены средства построения графиков поверхностей, позволяющие
создавать из графиков произведения искусства. В версии 200 li доработана до ло-
гического завершения великолепная функция решения дифференциальных урав-
нений Odesolve.
На этом фоне в полном забвении находится раздел программирования Mathcad.
По-видимому, этот раздел изначально задумывался как инструмент создания не-
сложных программных модулей, необходимых для многократного вычисления
небольших расчетных блоков из нескольких операторов.
На основании своей личной практики в этой книге я попытаюсь показать, что даже
при таком, в общем-то зачаточном, состоянии программирования в Mathcad мож-
но программировать и решать задачи абсолютно любой сложности. Если бы разра-
ботчики этого пакета хотя бы часть тех усилий, что затрачены на построение трех-
мерных графиков, направили на усовершенствование раздела программирования,
пакет Mathcad мог бы стать наилучшим инструментом программирования слож-
ных задач.
Мне приходилось создавать сложные расчетные программы на языке FORTRAN.
Программирование подобных задач в Mathcad выполняется значительно проще,
понятнее и в несколько раз быстрее.
Так, приведенная в примере 16 данной книги программа решения упругопласти-
ческой плоской задачи методом конечных элементов на языке FORTRAN пред-
ставляет собой свыше 1000 операторов на 15 листах. В Mathcad это всего 2 страницы
понятных подпрограмм, написанных в виде формул, и объединяющая их головная
программа. Фактически это формульный алгоритм решения задачи и вытекаю-
щие из него результаты расчета.
Кроме мелких недоработок есть два существенных недостатка, ограничивающих
применение Mathcad в качестве средства программирования.
О Отсутствие встроенных средств отладки программ, которые есть в других сре-
дах программирования.
О Недостаточная скорость расчетов.
Некоторые рекомендации по ускорению расчетов в Mathcad приведены в главе 9.
На протяжении ряда лет я использую Mathcad для проведения сложных инженер-
ных расчетов, отказавшись от программирования на языке FORTRAN. Я препо-
даю студентам ряд дисциплин механики с решением всех задач в Mathcad. В мате-
матически сложных курсах, таких как теория пластичности, численное решение
любой, даже самой простой задачи можно получить только на компьютере, и удоб-
нее всего это делать в Mathcad. Поэтому в течение нескольких лет я обучаю сту-
дентов работе в Mathcad.
В основу этой книги легли созданные мною и многократно опробованные в работе
обучающие программы, примеры к учебным курсам, сложные технические расче-
ты, а также студенческие задания сына по различным учебным дисциплинам, вы-
полненные им за время обучения в техническом университете.
Предисловие
13
Содержание книги
Книга состоит из четырех частей и четырех приложений.
О В части I содержатся основные сведения, необходимые и достаточные для ре-
шения большинства задач.
О Часть II посвящена вычислениям, то есть именно тому, для чего разрабатывал-
ся пакет Mathcad. Приводятся подробные сведения обо всех возможностях
Mathcad, связанных с вычислениями, на конкретных примерах рассматрива-
ются особенности использования встроенных функций, основные приемы вы-
числений.
О В части III рассматриваются некоторые дополнительные возможности Mathcad,
относящиеся не только и не столько к вычислениям, сколько к подготовке пол-
ноценных электронных документов средствами Mathcad. Сюда можно отнести
вопросы программирования, анимации, создания простых и гипертекстовых
* ссылок, форматирования текста и графиков и т. д.
О Часть IV книги содержит примеры решения инженерных задач, расположен-
ных по принципу «от простого к сложному». Из большого количества решен-
ных мною задач я включил в книгу только те, которые, дополняя друг друга,
иллюстрируют различные приемы работы в Mathcad.
О Раздел приложений небольшой. Сюда входят перечень наиболее часто исполь-
зуемых сочетаний клавиш, список встроенных функций и встроенных перемен-
ных Mathcad, сообщения об ошибках.
При написании книги я отошел от традиционно подробного описания меню и пане-
лей инструментов. Интерфейс Mathcad обычный для Windows-приложений. Знаком-
ство с ним происходит во время работы с приложением. Пояснения к отдельным ко-
мандам меню и кнопкам панелей инструментов даются по мере необходимости.
Рекомендации по работе с книгой
Изучать Mathcad, только читая эту книгу, — бесполезно. Осваивать Mathcad надо,
сидя за компьютером. Рекомендую следующий стиль работы.
1. Просмотрите часть I книги. Садитесь за компьютер и шаг за шагом осваивайте
основные приемы работы. Сведений, содержащихся в части I книги, достаточ-
но для решения подавляющего большинства задач.
2. Остальные главы пока полистайте, чтобы знать, что там есть. При решении кон-
кретных задач, если сведений, приведенных в двух главах первой части, ока-
жется недостаточно, обращайтесь к последующим главам, а также поищите по-
хожую задачу или фрагмент задачи в части IV, в которой собраны примеры
инженерных расчетов в Mathcad.
3. Найденный в книге нужный вам фрагмент программы скопируйте из файлов,
полученных из Интернета, вставьте в свой документ и доработайте, чтобы он
соответствовал вашим данным. Все необходимые сведения по использованию
примеров есть в книге.
14
Предисловие
4. Все, что вы видите на рисунках в книге, содержится в файле с именем соответ-
ствующей главы. Практически к каждому рисунку в книге приводятся реко-
мендации по самостоятельной работе. Выполните их — пусть не полностью, но
хотя бы попробуйте.
ВНИМАНИЕ
Все обучающие программы и инженерные расчеты, приведенные в этой книге, нахо-
дятся на сайте издательства «Питер» по адресу www.piter.com. Для успешной работы с
книгой настоятельно рекомендуется загрузить с указанного сайта примеры, представ-
ленные на рисунках этой книги. Архивный файл со всеми примерами занимает объем
около 700 Кбайт.
Навыки работы в Mathcad приходят «через пальцы». Невозможно выучить спи-
сок всех функций и все способы обращения к ним. Нельзя запомнить все приемы
работы, да это и не нужно. Нужно иметь навыки работы с панелями инструментов,
навыки построения выражений и графиков, понять и запомнить основные прави-
ла работы в Mathcad, основные возможности этого пакета. А главное, надо иметь
под рукой большой набор типовых решенных примеров, где в любой момент мож-
но посмотреть «как это делается» и вставить в свою программу готовые фрагмен-
ты из примеров.
Если вы работаете с Mathcad на компьютере, рекомендуется открыть на экране
одновременно два файла — файл нужной главы, загруженный из Интернета, и пус-
той документ. Глядя на файл главы, выполняйте самостоятельную работу на чистой
стороне экрана. Писать свои выражения в файле главы можно, но не рекоменду-
ется, так как если вашим буквенным выражениям где-то ранее присвоены числен-
ные значения, это приведет к неверным результатам или вообще к их отсутствию.
В Mathcad любую операцию можно выполнить, щелкнув на соответствующей кноп-
ке математической панели или нажав клавишу на клавиатуре. Рекомендуется за-
помнить наиболее часто употребляемые клавиши (клавиши быстрого доступа),
чтобы не обращаться постоянно к математической панели. Это сэкономит вам много
времени. Описание клавиш быстрого доступа можно найти в приложении А.
т издательства
Ваши вопросы, замечания и предложения можно направлять в компьютерную ре-
дакцию издательства «Питер» по адресу электронной почты: comp@piter.com.
Мы будем рады узнать ваше мнение!
Все исходные тексты, приведенные в книге, вы можете найти по адресу http://
www.piter.com/download.
Подробную информацию о наших книгах вы найдете на веб-сайте издательства
http://www.piter.com.-
ЧАСТЬ Основные сведения
□
Построение выражений и графиков
в Mathcad
□ Основные возможности Mathcad
ГЛАВА
Построение выражений
и графиков в Mathcad
Перед началом работы ознакомимся с рабочим окном, меню и панелями инстру-
ментов Mathcad.
Интерфейс Mathcad
Интерфейс Mathcad аналогичен интерфейсу других Windows-приложений.
Рабочее окно Mathcad
После запуска на экране появляется рабочее окно Mathcad с главным меню и тре-
мя панелями инструментов: Standard (Стандартная), Formatting (Форматирование)
и Math (Математическая).
Автоматически загружается файл Untitled 1 (Безымянный 1), представляющий со-
бой рабочий документ Mathcad, называемый Worksheet (Рабочий лист) и созданный
на основе шаблона Normal (Обычный). Также автоматически загружаются окна Tip
of the day (Совет дня) и Resource Center (Центр документации). Перед началом работы
их надо закрыть. Для этого в окне Tips of the day следует снять флажок Show tips at
startup (Показывать совет дня при загрузке) и щелкнуть на кнопке Close (Закрыть).
Окно Resource Center можно закрыть обычным для Windows способом, щелкнув на
кнопке закрытия в его верхнем правом углу. Чтобы это окно не появлялось впредь
без приглашения, надо в главном меню Mathcad выбрать команду View ► Preferences
(Вид ► Параметры) и в открывшемся окне снять флажок Open Resource Center at startup
(Открывать Центр документации при загрузке).
Вид рабочего окна Mathcad после первой загрузки программы показан на рис. 1.1.
Главное меню
Главное меню Mathcad занимает верхнюю строку рабочего окна (рис. 1.2). Оно не
зря называется главным. Любые действия можно выполнить, используя команды
этого меню и элементы управления открывающихся диалоговых окон.
Интерфейс Mathcad
17
>... .4 л—. ......... ......... ...... ^... ..;........ ..у....
aww
t
s.
:й
-‘-frr*.
Й.
£fose
: -ЙУ
Tip of the Day
T о change the units in an answer from the def<
click once on the answer, click on the placehc
appears to the right of the answer, and then tyj
name of the unit you want to use. When you cl
Mathcad will convert the answer to your chose
,11 11 I I I 11 1*4 Ml I Ml HI I Ml I III .lilMIty
2j1
I >«< ?x*x<AvXzX*x»z;v;v»X"X»>.v-Xv->«i<vX<-.' ,3
’ ..P Show tips on startup - : • : 14> :
FprHefepteOT:
ln^
Рис. 1.1. Вид рабочего окна Mathcad после первой загрузки
Главное меню Mathcad
Щ £fe W У’ew Insert Math .
123456 7 8 9 10
Стандартная панель инструментов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Математическая панель инструментов
1 2 3 4 5 6 7 8 9
Панель инструментов форматирования
3 456 789 10 11
Рис. 1.2. Главное меню и панели инструментов Mathcad
18
Глава 1. Построение выражений и графиков в Mathcad
Ниже перечислены пункты главного меню Mathcad. Номера соответствуют рис. 1.2.
1. Кнопка раскрытия системного меню рабочего окна Mathcad.
2. File (Файл) — команды, связанные с созданием, открытием, сохранением,
пересылкой по электронной почте и печатью на принтере файлов с документами.
3. Edit (Правка) — команды, относящиеся к правке текста (копирование, вставка,
удаление фрагментов и т. д.).
4. View (Вид) — команды, управляющие внешним видом документа в рабочем окне
Mathcad, а также команды создания файлов анимации.
5. Insert (Вставка) — команды вставки различных объектов в документ.
6. Format (Формат) — команды форматирования текста, формул и графиков.
7. Math (Математика) — команды управления вычислительным процессом.
8. Symbolics (Символьные вычисления) — команды символьных вычислений.
9. Window (Окно) — команды расположения окон с различными документами на
экране.
10. Help (Помощь) — команды вызова справочной информации и доступа к Центру
документации.
При наведении указателя мыши на пункт меню в строке состояния (она находится
в нижней части окна Mathcad) появляется его описание.
Панели инструментов
Панели инструментов служат для быстрого выполнения наиболее часто применя-
емых команд (см. рис. 1.2).
О Standard (Стандартная) — действия с файлами, редактирование документов, встав-
ка объектов и т. д.
О Formatting (Форматирование) — форматирование текста и формул.
О Math (Математическая) — вставка математических символов и операторов в до-
кументы.
При наведении указателя мыши на любую из кнопок рядом появляется всплыва-
ющая подсказка — короткий текст, поясняющий назначение кнопки.
Стандартная панель инструментов Mathcad содержит перечисленные ниже ин-
струменты. Номера соответствуют рис. 1.2.
1. New (Создать) — создание документа на основе шаблона Normal (Обычный).
2. Открытие списка предлагаемых шаблонов документов.
3. Open (Открыть) — открытие файла.
4. Save (Сохранить) — сохранение файла.
5. Print (Печать) — печать файла.
6. Print Preview (Предварительный просмотр печати) — просмотр подготовленного
к печати документа.
7. Check Spelling (Проверка орфографии) — включение системы проверки правопи-
сания (только для англоязычного текста).
И чтерфейс Mathcad
19
8. Cut (Вырезать) — вырезание объекта.
9. Сору (Копировать) — копирование объекта.
10. Paste (Вставить) — вставка объекта.
11. Undo (Отменить) — отмена предыдущего действия (только при вводе текста или
формул).
12. Redo (Вернуть) — повторение отмененного действия.
13. Align Across (Выровнять поперек) — выравнивание выделенной группы объектов
по горизонтали.
14. Align Down (Выровнять вниз) — выравнивание выделенной группы объектов по
вертикали.
15. Insert Function (Вставить функцию) — открытие диалогового окна со списком
встроенных функций, служащего для их выбора и вставки.
16. Insert Unit (Вставить единицу измерения) — открытие диалогового окна со спис-
ком доступных единиц измерения, служащего для их выбора и вставки.
17. Calculate (Вычислить) — пересчет документа.
18. Insert Hyperlink (Вставить гиперссылку) — открытие диалогового окна для встав-
ки гиперссылки.
19. Insert Component (Вставить компонент) — запуск мастера вставки в рабочий доку-
мент окна другого приложения.
20. Zoom (Масштаб) — список масштабных коэффициентов.
21. Resource Center (Центр ресурсов) — открытие центра ресурсов.
22. Help (Справка) — открытие окна справочной системы Mathcad.
Панель инструментов форматирования Mathcad содержит следующие инструмен-
ты. Номера соответствуют рис. 1.2.
1. Style (Стиль) — стиль для текста и формул.
2. Font (Шрифт) — шрифт для текста и формул.
3. Font Size (Размер шрифта).
4. Bold (Полужирный) — полужирное начертание.
5. Italic (Курсив) — наклонное начертание.
6. Underline (Подчеркнутый) — подчеркнутое начертание.
7. Align Left (Выровнять влево) — выравнивание текста по левому краю
8. Align Center (Выровнять по центру) — выравнивание текста по центру.
9. Align Right (Выровнять по правому краю) — выравнивание текста по правому краю.
10. Bullets (Маркированный список) — вставка маркированного списка.
И. Numbering (Нумерованный список) — вставка нумерованного списка.
При щелчке на кнопке математической панели инструментов открывается допол-
нительная панель, щелчок мышью на любом из инструментов которой ведет к встав-
ке соответствующего этому инструменту символа или шаблона математической
операции на место курсора в рабочем документе. Математическая панель инстру-
ментов со всеми дополнительными панелями показана на рис. 1.3.
о
Глава 1. Построение выражений и графиков в Ма ' са
О Mathcad Proferwnal (lintdied I]
Рис. 1.3. Математическая панель инструментов
Ниже перечислены дополнительные панели математической панели инструмен-
тов. Номера соответствуют рис. 1.2 и 1.3.
1. Calculator (Калькулятор) — шаблоны основных математических операций, цифр,
знаков арифметических операций.
2. Graph (График) — шаблоны графиков.
3. Matrix (Матрица) — шаблоны матриц и матричных операций.
4. Evaluation (Оценка) — операторы присваивания значений и вывода результатов
расчета.
5. Calculus (Вычисления) — шаблоны дифференцирования, интегрирования, сум-
мирования.
6. Boolean (Булевы операторы) — логические (булевы) операторы.
7. Programming (Программирование) — операторы, необходимые для создания про-
граммных модулей.
8. Greek (Греческие буквы).
Построение и вычисление выражений
21
9. Symbolic (Символьные вычисления) — операторы символьных вычислений.
При наведении указателя мыши на кнопку панели инструментов появляется всплы-
вающая подсказка с названием операции и сочетанием клавиш, нажатие которых
эквивалентно щелчку на данной кнопке.
Построение и вычисление выражений
Перед началом работы на экране курсор имеет вид крестика. В момент ввода выра-
жения курсор приобретает вид синего уголка, охватывающего вводимое выраже-
ние. В рабочем документе введите какие-либо буквенные выражения и присвойте
им численные значения, как показано слева вверху на рис. 1.4. Имя выражения
(все, что находится слева от оператора присваивания) может состоять из латин-
ских, русских, греческих и других букв, а также цифр, знаков подчеркивания (_),
штриха ('), процента (%) и бесконечности (оо), вводимых с клавиатуры.
Вычисление выражений
= 75
О
Числовые константы
е = 2.718
л = 3.142
= 2
2х+У
<х - а) = -14.695
d 3
—x
Цепкие операторы
Чтобы освободиться от них
используйте клавишу - пробел
2 0.3
•а + 2 = 116.612
In е2
х2 dx = 2 667
2
ле
-----= 5.803
[Стандартные функции
sin(x) = -0.959
sinh(x) = 74203
ln(x) = 1.609
atan(a) = 1.471
r2
у := 3 а := 10
Press Fl for help.
Е ВУТб । Э
Рис. 1.4. Построение математических выражений
Имена переменных и функций не могут начинаться с цифры, знака подчеркива-
ния, штриха, символа процента, не могут включать в себя пробелы. Символ беско-
нечности может быть только первым символом в имени.
ВНИМАНИЕ Mathcad воспринимает прописные и строчные буквы как разные идентификаторы.
Mathcad не делает различий между именами переменных и функций. Если опре-
делить вначале функцию f(x), а затем переменную f, то окажется невозможным
использовать функцию f(x) в последующих расчетах где-либо ниже определения f.
Некоторые имена уже используются Mathcad для встроенных констант, единиц
измерения, функций. Имена можно переопределить, но имейте в виду, что пере-
22
Глава 1. Построение выражений и графиков в Mathcad
определение уничтожит их встроенные значения, и этими константами, единица-
ми измерения и функциями пользоваться будет нельзя.
Оператор присваивания := для первого раза выберите на математической пане-
ли Calculator (Калькулятор). Познакомьтесь с содержанием панели. При наведе-
нии указателя мыши на какую-либо кнопку появляется всплывающая подсказка
с названием оператора, вызываемого щелчком на этой кнопке, и указанием кла-
виши или сочетания клавиш, нажатие которых вызывает то же действие, что и
щелчок на кнопке. В дальнейшем оператор присваивания лучше набирать с кла-
виатуры, используя клавишу : (двоеточие). Запоминайте клавиши быстрого вы-
зова.
Любой оператор в Mathcad можно ввести тремя способами:
О выбрав команду меню;
О нажав клавишу (сочетание клавиш) на клавиатуре;
О используя математическую панель.
Набрав вычисляемое выражение, нажмите клавишу = (равно) — появится числен-
ный результат.
Попробуйте набрать — получается х + - . Для правильной записи надо нажать
4 4
клавишу пробела, чтобы уголок курсора охватил нужную часть выражения (в на-
шем случае—х + у). Другой способ— взять выражение х + у в скобки: (х + у). В не-
которых случаях это просто необходимо.
Цепкие операторы
С цепким оператором вы уже познакомились на примере дроби (см. рис. 1.4). Цепкие
операторы — это возведение в степень, извлечение корня, деление (ввод знаменателя
дроби). Чтобы «вырваться из объятий» цепкого оператора, надо выделить клавишей
пробела или клавишей —» (стрелка вправо) нужную часть выражения, тогда следую-
щий вводимый оператор будет относиться ко всему выделенному выражению.
На первых порах цепкие операторы раздражают. При быстром наборе пользова-
тель обычно забывает о необходимости выделения нужной части выражения. В ре-
зультате вместо, например, х2 + у на экране появляется х2+у. Поупражняйтесь во
введении выражений и получении их результатов.
Для возведения числа в степень используйте символ л (он находится на одной кла-
више с цифрой 6).
Редактирование объектов Mathcad
Редактирование введенных выражений производится обычным для всех Windows-
приложений способом.
О Уголок курсора перемещается по экрану с помощью клавиш со стрелками или
щелчком левой кнопки мыши в нужном месте экрана.
Редактирование объектов Mathcad
23
О Для выделения уголком курсора одного символа надо установить синий уго-
лок курсора так, чтобы он охватывал нужный символ слева или справа.
О Для расширения выделения на часть выражения или все выражение целиком
следует использовать клавиши со стрелками или клавишу пробела. Для выхо-
да из цепкого оператора предпочтительно пользоваться клавишей пробела. Уго-
лок курсора должен охватывать все выражение или ту его часть, с которой надо
выполнить какие-либо действия.
О Для выделения части выражения или всего выражения надо нажать кнопку мыши
в начале или в конце выделяемой части выражения и, не отпуская кнопку мыши,
переместить указатель до другого края выделяемого выражения. Можно исполь-
зовать также сочетание клавиш Shift+<— или Shift+—». Выделенная часть выраже-
ния имеет черный фон. Выделение черным фоном в Mathcad используется для
вырезания или копирования части выражения, изменения шрифта, а также для
выполнения символьных вычислений с частями выражений.
О Для выделения объекта или группы любых объектов (математических, тексто-
вых или графических) надо нажать кнопку мыши в свободном месте рабочего
документа, растянуть пунктирный прямоугольник (рамку выделения) так, что-
бы он охватил нужные вам объекты, и отпустить кнопку мыши. Один объект
при этом будет выделен синим уголком курсора, а группа объектов обведена
пунктирной рамкой.
Если надо удалить, вырезать или скопировать в буфер обмена выделенную часть
выражения, выделенный объект целиком или группу выделенных объектов, вы-
полните следующие действия:
О для удаления (безвозвратного) объекта нажмите клавишу Delete или Backspace;
О для вырезания объекта в буфер обмена щелкните на кнопке Cut (Вырезать) стан-
дартной панели инструментов Mathcad;
О для копирования объекта в буфер обмена щелкните на кнопке Сору (Копиро-
вать) стандартной панели инструментов Mathcad;
О для вставки объекта из буфера обмена установите крестообразный курсор в то
место, куда вы хотите вставить содержимое буфера обмена, и щелкните на кноп-
ке Paste (Вставить) стандартной панели инструментов Mathcad.
Поскольку вырезать, копировать, вставлять объекты приходится часто, полезно
запомнить сочетания клавиш, нажатие которых вызывает эти действия:
О вырезать — Ctrl+x;
О копировать — Ctrl+c;
О вставить — Ctrl+v;
О отмена предыдущего действия — Ctrl+z.
Эти четыре действия выполняются сочетаниями клавиш, расположенных по со-
седству, и поэтому легко запоминаются.
Как и во всех Windows-приложениях, выделенный объект (группу объектов) можно
переместить или скопировать с помощью мыши.
1. Подведите указатель мыши к выделенному объекту или группе объектов, что-
бы указатель превратился в изображение Черной ладошки.
1лава i. построение выражении и графиков в Mathcad
2. Нажав левую кнопку мыши, перетащите объекты в нужное место, после чего
кнопку мыши отпустите. Если выделенные объекты нужно не переместить,
а скопировать, при перетаскивании удерживайте клавишу Ctrl.
СОВЕТ Для вырезания, копирования и вставки объектов удобно использовать команды кон-
------- текстного меню, которое появляется при щелчке на объекте правой кнопкой мыши.
Встроенные функции
Mathcad содержит свыше 200 встроенных функций. На стандартной панели ин-
струментов щелкните на кнопке Insert Function (Вставить функцию) — в открыв-
шемся диалоговом окне вы увидите список всех встроенных функций. Просмот-
рите группы функций (левый список). Щелкнув мышью на любой из групп слева,
справа вы увидите перечень функций, входящих в эту группу. В этой части кни-
ги мы рассмотрим не все функции, а только те, что используются в приведенных
примерах. Познакомиться с остальными функциями можно во второй части
книги. Кроме того, описание функций имеется в справочной системе Mathcad
и в Центре документации (об использовании Центра документации рассказано
в третьей части книги), а в приложении В приведен полный список встроенных
функций Mathcad.
Ввод встроенных функций покажем на примере групп Log and Exponential (Лога-
рифмические и экспоненциальные) и Trigonometric (Тригонометрические). Присмот-
ритесь к написанию этих функций (см. рис. 1.4), которое не всегда совпадает с
привычной математической записью. Названия функций можно вводить с помо-
щью диалогового окна, появляющегося после щелчка на кнопке Insert Function (Вста-
вить функцию) стандартной панели инструментов. Для этого нужно выделить на-
звание функции и щелкнуть на кнопке Insert (Вставить). Можно также набрать имя
функции на клавиатуре в точности так же, как оно записано в диалоговом окне со
списком функций.
Наберите и вычислите несколько функций, показанных на рис. 1.5.
Ввод текста
25
Числовые константы
и ввод греческих букв
Введенная с клавиатуры латинская буква е внутри математического выражения
означает основание натурального логарифма е = 2.718. Это значение можно пере-
определить, присвоив е другое значение с помощью знака локального присваива-
ния (:=), например: е := 2.
Часто используемое в выражениях число л можно ввести с математической пане-
ли Calculator (Калькулятор), где есть кнопка Pi, или с панели греческих букв, где
тоже есть аналогичная кнопка.
Есть и более простой способ ввода греческих букв. Надо на клавиатуре набрать
латинский аналог греческой буквы (как правило, это первая буква в латинском
названии греческой буквы). Введя аналог греческой буквы, нажмите сочетание
клавиш Ctrl+G — на экране появится греческая буква (прописная или строчная в
зависимости от того, в верхнем или нижнем регистре был набран ее латинский
аналог).
Ниже перечислены некоторые греческие буквы и их латинские аналоги:
аРхбецуХц v со <р л у р сгтб^д
abcdehglmnwfpyr stqxz
Наберите несколько выражений с греческими буквами, например: 5 := 2, Д.-2,
sin(cc) и т. д.
ВНИМАНИЕ Mathcad вычисляет выражения слева направо и сверху вниз.
Если какой-либо константе или переменной не присвоено никакого значения ле-
вее и выше ее положения на экране, то она окрашивается красным цветом, что сви-
детельствует об ошибке.
Ввод текста
Для ввода текста в документ можно в главном меню выбрать команду Insert ► Text
Region (Вставить ► Текстовую область), но лучше ввести с клавиатуры символ " (двой-
ная кавычка). При этом на экране появляется текстовая область, в которой можно
печатать текст.
Еще лучше, сменив латинский шрифт на русский, печатать текст прямо в матема-
тической области. Когда напечатано первое слово, при нажатии клавиши пробела
область с напечатанным словом автоматически из математической превращается
в текстовую.
В текстовую область можно вставлять математическую область, для этого в глав-
ном меню Mathcad достаточно выбрать команду Insert ► Math Region (Вставить ► Ма-
тематическую область). Вставленная математическая область участвует в вычисле-
ниях наравне с другими математическими выражениями.
26
Глава 1. Построение выражений и графиков в Mathcad
При желании вычисления во вставленной математической области можно запре-
тить. Для этого щелкните правой кнопкой мыши на вставленном выражении и в
открывшемся контекстном меню (рис. 1.6) выберите команду Disable Evaluation (От-
ключить вычисление). После этого вставленное математическое выражение будет
играть роль иллюстрации.
: ;4-:. •••••••• '
t У «W Muftipllcatwn А$
# Cut
Wgw
•.......... . .......
Й? Properties.,,:?;.;’.
Qisable Evaluation
Optimize
Рис. 1.6. Контекстное меню математической области
Текстовой области в Mathcad по умолчанию назначается стиль Normal (Обычный).
Чтобы настроить его, проделайте описанную ниже процедуру.
1. В главном меню выберите команду Style ► Normal ► Modify ► Font (Стиль ► Обыч-
ный ► Изменить ► Шрифт).
2. В появившемся диалоговом окне выберите нужные вам шрифт (Font), начерта-
ние (Style Font) и размер (Size).
Mathcad плохо воспринимает кириллицу. В частности, с помощью привычного по
работе в Word шрифта Times New Roman набрать кириллицу не удастся. Для вво-
да кириллицы в Mathcad можно использовать шрифты System и Ms Sans Serif.
СОВЕТ Среди прилагаемых к книге файлов, которые можно загрузить с сайта редакции (http://
-------- www.piter.com), имеется файл NormaLmct с установленными кириллическими шрифта-
ми. Этот файл надо скопировать в каталог Template папки, где установлен пакет Mathcad
(если программа установки Mathcad самостоятельно выбирала путь, то это каталог C:\Pro-
gram FiLes\Mathsoft\Mathcad 20011 Professional\Template). Новый шаблон заменит ста-
рый, и впредь при каждом открытии Mathcad на экране будет появляться установленный
вами и приспособленный для работы с кириллицей шаблон документа.
В Mathcad можно вводить и редактировать текст почти как в Word (о вводе текста
речь пойдет в третьей части книги).
Функции пользователя
Удобство и эффективность расчетов в Mathcad прежде всего определяются воз-
можностью создания функций пользователя. При многократном вычислении од-
ного и того же выражения без функций пользователя просто не обойтись.
Примеры функций пользователя показаны на рис. 1.7. Слева указывается назва-
ние функции, а справа после оператора присваивания (:=) — вычисляемое выра-
Дискретные переменные и построение таблиц
27
жение. Переменные величины, входящие в правую часть, должны быть записаны
в качестве параметров в скобках после имени функции. Все величины из правой
части, не входящие в параметры левой части, должны быть заданы численно левее
и выше функции пользователя. В противном случае Mathcad указывает на ошиб-
ку, окрашивая незаданную величину в красный цвет. При выделении функции
щелчком мыши появляется текст сообщения об ошибке This variable is not definited
above (Эта переменная не определена ранее).
Рис. 1.7. Функции пользователя
Функция пользователя не вычисляется Mathcad, а принимается к сведению. Для
вычисления функции надо задать численные значения всех параметров в имени
функции, набрать имя функции и нажать клавишу = (равно) или щелкнуть мы-
шью на кнопке = стандартной панели инструментов Mathcad или математической
панели Calculator Toolbar (Калькулятор).
Дискретные переменные
и построение таблиц
Одно из лучших творений создателей Mathcad — это дискретная переменная, играю-
щая роль оператора цикла. (В ряде последних книг по Mathcad ее называют ранжиро-
ванной переменной, что представляет собой не слишком удачный перевод словосоче-
тания «range variable». Понятие дискретной переменной, характерное для более ранних
книг, точнее отражает суть: вместо непрерывной переменной используется ряд чисел,
выстроенных в порядке возрастания или убывания.) Простота применения этого опе-
ратора восхищает. Без дискретных переменных было бы очень сложно строить графи-
ки или таблицы с результатами расчетов. Если в функцию пользователя подставить
численное значение переменной, результатом расчета будет число. Дискретная пере-
менная определяет ряд значений, для которых вычисляется функция пользователя, и
этот ряд значений функции можно вывести в виде графика или таблицы.
Определение дискретной переменной имеет вид х := 0. .5, что означает задание ряда
значений х = 0, 1, 2, 3, 4, 5.
июоа x. iiuLipucnuc выражении и графиков в иагпсао
Рис. 1.8. Числовые результаты выведены для функций, приведенных на рис. 1.7
Рис. 1.9. Графики функций, приведенных на рис. 1.7
Пример: f (х) := sin(x) -cos(x) х := 0..5 f(x) = ответ. В данном случае ответ выводится
в виде вектора (рис. 1.8) или графика (рис. 1.9).
С помощью дискретной переменной можно задавать как целые, так и дробные зна-
чения переменной, но обязательно равноотстоящие друг от друга. Ниже показаны
примеры дискретных переменных.
О х := 0..5 — ряд целых чисел от 0 до 5.
О х:=1,1.1..5 — ряд дробных чисел, где 1 — первое число, 1.1 — второе число, 5 —
последнее число. Интервал между числами 1.1 - 1 =0.1.
Форматирование чисел
О х := А, А +---... В — ряд чисел, где А — первое, А +-второе, В — последнее
п п
число (А и В должны быть заданы заранее), п — число интервалов, на которые
разбит отрезок от А до В. Такая форма записи удобна, когда рассматриваются
разные варианты одного расчета и изменение констант А и В позволяет мгно-
венно пересчитать результаты и перестроить графики.
%) ВНИМАНИЕ
Знак диапазона (две точки) нельзя набирать с клавиатуры, нажимая два раза клавишу
. (точка). Вместо этого надо использовать клавишу; (точка с запятой) или в математичес-
кой панели Matrix (Матрица) щелкнуть на кнопке Range Variable (Дискретная переменная).
Если константы, входящие в правую часть функции пользователя, не задаются
непосредственно перед вводом функции, Mathcad задействует те значения, кото-
рые использовались последними. Проверьте, устраивают ли вас эти значения. На-
берите имя параметра и нажмите клавишу = (равно).
Форматирование чисел
На результат расчета повлиять нельзя, но можно изменить формат вывода чисел.
Обычно Mathcad вычисляет выражения с точностью 20 знаков, но выводит на эк-
ран не все значащие цифры.
Установив указатель мыши на нужном численном результате расчета, дважды
щелкните левой кнопкой мыши. Появится окно форматирования чисел Result Format
(Формат результата), открытое на вкладке Number Format (Формат чисел). Ниже пере-
числены доступные форматы.
О General (Основной) — принят по умолчанию. Числа отображаются с порядком. Чис-
ло знаков мантиссы определяется параметром Exponential threshold (Порог экспо-
ненциального представления).
О Decimal (Десятичный) — десятичное представление чисел с плавающей точкой (на-
пример, 12.2564).
О Sci е n tifi с ( Н ау ч н ы й ) — числа отображаются только с порядком ( например, 1.2 2 * 105).
О Engeneering (Инженерный) — числа отображаются только с порядком, кратным 3
(например, 1.22*10б).
О Fraction (Дробный) — числа отображаются в виде правильной или неправильной
, - или 1-).
3 з'
В дробном формате можно выбрать уровень точности (Level of accuracy) и разре-
шить использование неправильных дробей (Use mixed numbers).
Кроме вида формата изменяются число знаков после десятичной точки (Number of
decimal places), порог экспоненциального представления (Exponential threshold). При
превышении порога число отображается с порядком. Примеры вывода чисел в раз-
личных форматах приведены на рис. 1.10. Mathcad автоматически округляет чис-
ла до нуля, если они меньше установленного порога (Tolerance ► Zero threshold).
nidtJd l. I IUll|JUCnklC DDI|ja/T\cni'H'l ri I pai^rnwu u 1-iulhluu
Рис. 1.10. Примеры форматирования результатов численного расчета
Выбранные параметры могут быть применены только к выделенному числу (кнопка
ОК) или по умолчанию ко всем числам данного документа (кнопка Set as default).
Построение двухмерного
графика функции
Для построения двухмерного графика функции надо выполнить следующую про-
цедуру.
1. Установите крестообразный курсор в то место, где должен быть построен гра-
фик.
2. На математической панели Graph (График) щелкните на кнопке X-Y Plot (Двух-
мерный график).
3. В появившемся на месте курсора шаблоне двухмерного графика введите на оси
абсцисс имя аргумента, на оси ординат — имя функции.
4. Щелкните мышью вне шаблона графика — для заданного диапазона измене-
ния аргумента график будет построен.
। lucipucnnc ,цоултсрпи1и i рафией функции□ 1
Если диапазон значений аргумента не задан, по умолчанию график строится в ди-
апазоне значений аргумента от -10 до 10.
Чтобы в одном шаблоне разместить несколько графиков, следует, набрав на оси
ординат имя первой функции, нажать клавишу , (запятая) — уголок курсора при
этом обязательно должен находиться в конце имени функции, и в появившемся
месте ввода (черном квадратике) вписать имя второй функции и т. д.
Если две функции имеют разные аргументы, например f 1 (х) и f2(у), то на оси орди-
нат надо ввести (через запятую) имена обеих функций, а на оси абсцисс (также
через запятую) — имена обоих аргументов х и у. Тогда первый график будет по-
строен для первой функции по первому аргументу, второй график — для второй
функции по второму аргументу.
Если функций введено несколько, а аргументов два, то график первой функции стро-
ится по первому аргументу, графики остальных функций — по второму аргументу.
Если ввести на осях ординат и абсцисс имена двух функций одного аргумента,
то будет построен параметрический график функции (рис. 1.11).
Рис. 1.11. Параметрический график функции
Чтобы отформатировать график, дважды щелкните мышью в области графика —
откроется диалоговое окно форматирования графика (рис. 1.12). «Прогуляйтесь»
по окну, задавая различные параметры и щелкая мышью на кнопке Apply (Приме-
нить) или ОК. Смотрите, как изменяется вид графика.
Ниже перечислены вкладки окна форматирования графика.
1лаваТ. Построение выражении и грасрикив в гтсп-псаи
О x-Y Axes — форматирование осей координат. Можно нанести сетку, проставить
численные значения, ось абсцисс провести через нуль ординаты (Crossed) или
по нижнему краю графика (Boxed), нанести метки на графике. Установите нуж-
ные вам флажки:
• Log Scale — представить численные значения на осях в логарифмическом мас-
штабе (по умолчанию численные значения наносятся в линейном масштабе);
• Grid Lines — нанести сетку линий;
• Numbered — расставить числа по координатным осям;
• Auto Scale — автоматический выбор предельных численных значений на осях
(если этот флажок снят, предельными будут максимальные вычисленные
значения);
• Show Markers — нанесение меток на график (на каждой оси появляются 2 ме-
ста ввода, в которые можно ввести численные значения, не вводить ничего,
ввести одно число или буквенные обозначения констант) в виде горизон-
тальных или вертикальных пунктирных линий, соответствующих указан-
ному значению на оси, причем сами значения выводятся в конце линий (см. -
рис. 1.11);
• Autogrid — автоматический выбор числа линий сетки (если этот флажок снят,
надо задать число линий в поле Number of Grids).
О Trace — форматирование графиков функций. Для каждого графика в отдельно-
сти можно изменить:
• вид линии (Solid — сплошная, Dot — пунктир, Dash — штрихи, Dadot — штрих-
пунктир);
• цвет линии (Color);
• тип (Туре) графика (Lines — линия, Points — точки, Ваг или Solidbar — столби-
ки, Step — ступенчатый график и т. д.);
• толщину линии (Weight);
• символ (Symbol) на графике для расчетных точек (кружок, крестик, прямоу-
гольник, ромб).
О Label — заголовок в области графика. В поле Title (Заголовок) можно записать
текст заголовка. Затем выберите его положение — вверху или внизу графика.
Впишите, если надо, названия аргумента и функции (Axis Labels), чтобы полу-
чить график, наподобие показанного на рис. 1.9.
О Defaults — с помощью этой вкладки можно вернуться к виду графика, принято-
му по умолчанию (Change to default), либо сделанные вами изменения на графи-
ке использовать по умолчанию для всех графиков данного документа (Use for
Defaults).
Самостоятельно постройте графики для функций, показанных на рис. 1.13.
Чтобы изменить размеры графика, надо щелкнуть мышью в области графика, под-
вести указатель мыши к одному из черных квадратных маркеров на краю графика,
когда указатель мыши превратиться в двунаправленную стрелку, нажать левую
кнопку мыши и, удерживая ее, растянуть график до нужных размеров.
Построение двухмерного графика функции
33
Чтобы переместить график, надо щелкнуть мышью в поле графика, подвести ука-
затель мыши к краю графика, когда указатель мыши превратиться в изображение
черной ладошки, нажать левую кнопку мыши и, удерживая ее, перетащить график
в нужное место.
{^ПРИМЕЧАНИЕ
Точно так же можно переместить любой объект документа, включая выражения и текст.
Рис. 1.12. Окно форматирования плоского графика
Рис. 1.13. Самостоятельная работа с графиками
Перемещение объектов способом перетаскивания традиционно для Windows-при-
ложений. Однако для больших документов, если, например, надо перетащить вы-
деленную группу объектов на другую страницу, такой способ не всегда удобен.
В этом случае требуется выполнить описанную ниже процедуру.
2 Зак. 8’82
34
Глава 1. Построение выражений и графиков в Mathcad
1. Нажмите левую кнопку мыши и, удерживая ее, заключите в появляющуюся
при перемещении мыши пунктирную рамку выделения все перемещаемые объ-
екты.
2. Щелкните мышью на кнопке Cut (Вырезать) стандартной панели инструментов
Mathcad. При этом выделенная группа объектов будет удалена из документа
и помещена в буфер обмена. Если щелкнуть на кнопке Сору (Копировать), выде-
ленные объекты будут скопированы в буфер, оставаясь на своем месте.
3. Подведите указатель мыши к месту, куда надо вставить вырезанные объекты,
и щелкните левой кнопкой мыши. В этом месте появится крестообразный кур-
сор.
4. Щелкните на кнопке Paste (Вставить) стандартной панели инструментов Mathcad.
Выделенные объекты переместятся в заданное место.
СОВЕТ На первых порах не торопитесь вырезать объекты. В указанной выше процедуре пере-
мещения объектов вместо вырезания в буфер лучше копировать в буфер. Убедившись,
что все вышло как задумано, можно вернуться в исходную позицию и удалить теперь
уже лишние объекты, то есть снова выделить их рамкой и нажать клавишу Delete (уда-
лить безвозвратно), либо вырезать в буфер обмена.
Если объекты (выражения, графики) перекрывают друг друга, в контекстном меню
появляются команды Bring to Front (Выдвинуть на передний план) и Send to Back (Уб-
рать на задний план). Благодаря этим командам можно экономить место в докумен-
те, специально накладывая объекты друг на друга.
Если вам надо раздвинуть несколько перекрывающих друг друга объектов, выде-
лите их все с помощью мыши пунктирной рамкой выделения и в главном меню
Mathcad выберите команду Format ► Separate Regions (Формат ► Разделить области).
Если надо раздвинуть только два перекрывающих друг друга объекта, подведите
к ним указатель мыши и, когда он превратится в изображение черной ладошки,
нажмите левую кнопку мыши и перетащите верхний объект в нужное место.
ВНИМАНИЕ
Старайтесь не использовать команду Separate Regions, не выделив предварительно
объекты, так как Mathcad при выборе этой команды раздвигает объекты сразу во всем
документе, что может привести к нарушению требуемой последовательности вычисле-
ний.
Построение трехмерных графиков
Если в прежних версиях Mathcad для построения трехмерного графика обязательно
требовалось создание массива значений функции, то теперь процедура построе-
ния графика упростилась.
1. Наберите имя функции двух переменных, оператор присваивания (:=) и выра-
жение функции.
2. Установите курсор в то место, где вы хотите построить график.
Построение трехмерных графиков
35
3. На математической панели Graph (График) щелкните на кнопке Surface Plot (Трех-
мерный график). На месте курсора появится шаблон трехмерного графика.
4. В единственное место ввода шаблона графика введите имя функции.
5. Щелкните мышью вне области шаблона. График будет построен (рис. 1.14, слева).
Кроме ускоренного построения графика поверхности по функции двух перемен-
ных существует и часто применяется другой способ создания графика поверхнос-
ти с использованием массива численных значений функции (пример такого пост-
роения показан на рис. 1.14, справа).
Рис. 1.14. Построение трехмерных графиков
1. С помощью дискретных переменных введите значения обоих аргументов
заданной функции.
2. Введите массив, элементами которого являются значения функции, вычислен-
ные при заданных значениях аргументов.
3. Установите курсор в то место, где вы хотите построить график.
4. На математической панели Graph щелкните на кнопке Surface Plot. На месте кур-
сора появится шаблон трехмерного графика.
5. В единственном месте ввода шаблона графика введите имя функции.
6. Щелкните мышью вне области шаблона. График будет построен.
Построенный таким образом график оказывается черно-белым, а потому не слиш-
ком красивым. Mathcad позволяет сделать из него почти произведение искусства.
Подробно о возможностях форматирования поговорим в главе 15, а пока выпол-
ните описанную ниже процедуру.
36
Глава 1. Построение выражений и графиков в Mathcad
1. Дважды щелкните мышью в области графика — появится окно форматирова-
ния графика (рис. 1.15).
2. Перейдите на вкладку Appearance (Оформление) и установите переключатели Fill
Surface (Залить поверхность) и Colormap (Цветовая карта). Щелкните мышью на
кнопке Apply (Применить), чтобы сделать график цветным.
3. В окне форматирования перейдите на вкладку Lighting (Освещение) и установите
флажок Enable Lighting (Включить освещение) и переключатель On (Включить). Выбе-
рите одну из 6 возможных схем в списке Lighting scheme (Схема освещения) и щелк-
ните на кнопке Apply (Применить) или ОК. Полюбуйтесь на эффект освещения.
4. Щелкните правой кнопкой мыши на графике — откроется контекстное меню,
дающее дополнительные возможности по улучшению вида графика. Выбирая
разные команды, смотрите, как они влияют на вид графика.
Рис. 1.15. Окно форматирования трехмерных графиков
5. В окне форматирования на вкладке General (Общие) в группе Display as (Показать
как) имеется 6 переключателей, позволяющих выбрать тип графика (см. рис. 1.15):
• Surface plot — график поверхности;
• Contour plot — график линий уровня;
• Data points — на графике представлены только расчетные точки;
• Vector Field plot — график векторного поля;
• Bar plot — график трехмерной гистограммы;
• Patch plot — площадки расчетных значений.
Чтобы выбрать тот или иной тип графика, нужно установить соответствующий
переключатель и щелкнуть на кнопке Apply. Оцените все типы графиков, кроме
векторного поля, о построении которого рассказывается в главе 15.
Существуют дополнительные способы управления графиком.
Построение трехмерных графиков
37
О Вращение графика выполняется после наведения на него указателя мыши при
нажатой левой кнопке мыши.
О Масштабирование графика выполняется аналогично, но при нажатой допол-
нительно клавише Ctrl.
О Анимация графика выполняется аналогично, но при нажатой дополнительно
клавише Shift. Для остановки вращения следует щелкнуть левой кнопкой мыши
внутри области графика.
Окно, приведенное на рис. 1.15, содержит 9 вкладок, открывающих широкие воз-
можности по форматированию графиков. Более подробно о построении и форма-
тировании трехмерных графиков рассказано в главе 15. Там же приводится много
примеров построения графиков.
ГЛАВА
Основные
возможности Mathcad
Научившись строить математические выражения, функции пользователя и гра-
фики, познакомимся с основными возможностями Mathcad, а также с наиболее
часто используемыми функциями и приемами работы.
Ступенчатые и разрывные функции
выражения условия
Используемые в расчетах функции не всегда бывают непрерывными. Часто при
разных значениях аргумента функция описывается разными выражениями. Бы-
вают функции ступенчатые и разрывные. В этих случаях при вычислении произ-
водных или интегралов приходится брать их по частям. Условный оператор по-
зволяет записать такие функции в виде одного выражения, что упрощает расчеты
и украшает вид документа Mathcad.
В Mathad существуют три различных способа ввода условий:
О с помощью функции условия if;
О с помощью оператора if, представленного на панели Programming (Программиро-
вание);
О с использованием булевых операторов.
Рассмотрим пример вычисления перемещения балки при изгибе с помощью ин-
теграла Мора (рис. 2.1). На балке есть два участка, на которых изгибающий мо-
мент описывается различными функциями М1(х) и М2(х).
Ниже описана процедура использования функции условия if.
1. Запишите имя функции и оператор присваивания (:=).
2. На стандартной панели инструментов щелкните на кнопке Insert Function (Вста-
вить функцию) и в списке встроенных функций открывшегося диалогового окна
выберите функцию if, после чего щелкните на кнопке Insert (Вставить). Появит-
ся шаблон функции if с тремя местами ввода.
3. Заполните места ввода.
Ступенчатые и разрывные функции выражения условия
39
Рис. 2.1. Определение перемещения балки
Обращение к функции if выглядит следующим образом:
if (cond.x.y)
Здесь cond — условие (например, х < L1), х и у — значения, возвращаемые функци-
ей. Если условие выполняется, то выражению присваивается значение х, если не
выполняется, то значение у.
Чтобы ввести условный оператор с помощью панели Programming (Программирова-
ние), требуется выполнить следующую процедуру.
1. Запишите имя функции и оператор присваивания (:=).
2. Откройте панель Programming (Программирование), щелкнув на кнопке Program-
ming Toolbar (Панель программирования) математической панели инструментов,
и щелкните на кнопке Add Program Line (Добавить строку программы).
3. В верхнем месте ввода (черный квадратик) введите выражение для изгибаю-
щего момента на первом участке.
4. Щелкните на кнопке If (Оператор if) панели программирования (выражение для
изгибающего момента при этом должно быть полностью выделено синим угол-
40
Глава 2. Основные возможности Mathcad
ком или взято в скобки). Появится место ввода, куда надо вписать условие, на-
пример х < L1 или 0 < х < L1.
5. В нижнем месте ввода (у вертикальной черты) введите изгибающий момент
для второго участка и выделите его целиком синим уголком (с помощью кла-
виши пробела).
6. Щелкните на кнопке Otherwise (Оператор otherwise) панели программирования
и впишите условие (например, х > L1).
При использовании логических (булевых) операторов слагаемые заданного выра-
жения умножаются на соответствующий логический оператор. Логические опера-
торы вводятся с панели булевых операторов (кнопка Boolean Toolbar). Булевы опера-
торы могут возвращать только 0 или 1. Если условие справедливо, то значением
оператора является 1, если не справедливо, то 0. В математическом выражении ум-
ножение на логический оператор обращает соответствующее слагаемое в нуль или
не меняет его значения. Примеры всех трех форм записи условия имеются на рис. 2.1.
Схемы грузового и единичного состояния балки, изображенные на рис. 2.1, сдела-
ны автором в программе Word. Для вставки любого объекта, подготовленного в
другом приложении, в Mathcad надо выбрать команду Insert ► Object (Вставка ► Объ-
ект). Появится стандартное для Windows диалоговое окно Вставка объекта. В этом
окне надо перейти на вкладку Создание из файла, щелкнуть на кнопке Обзор и вы-
брать имя файла, в котором сохранен рисунок. Чтобы в дальнейшем можно было
редактировать рисунок, не выходя из оболочки Mathcad, рекомендуется устано-
вить флажок Связь с файлом в диалоговом окне Вставка объекта. После щелчка на
кнопке ОК рисунок появится в документе.
Часть исходных данных (модуль Юнга и момент инерции) введена выше интегра-
ла Мора, где они впервые будут использованы в расчетах.
Глобальное присваивание значений
Посмотрите на функцию М(х), представленную на рис. 2.1. Она содержит констан-
ты — нагрузки и длины Р, q, МО, L1. До сих пор эти константы не были заданы. Тем
не менее Mathcad не указывает на ошибку. Дело в том, что константы заданы гло-
бально около графика (рис. 2.2).
Чтобы присвоить некоторой константе глобальное значение, надо выполнить опи-
санную ниже процедуру.
1. Наберите имя константы. •
2. В математической панели щелкните на кнопке Evaluation Toolbar (Панель оценки).
3. В открывшейся панели Evaluation (Оценка) щелкните на кнопке Global Definition
(Глобальное определение) или нажмите сочетание клавиш Shift+~.
Если локальный оператор присваивания (:=) действует вправо и вниз от места вво-
да, то глобальный оператор присваивания действует во всем документе. При от-
крытии документа интерпретатор Mathcad вначале просматривает весь документ
сверху вниз, отыскивая глобальные операторы присваивания, а затем при втором
проходе выполняет локальные присваивания.
Символьные вычисления
41
Рис. 2.2. Эпюры внутренних усилий для балки, показанной на рис. 2.1
СОВЕТ Следует избегать присваивания одному и тому же имени константы глобального и ло-
------- кального значений, так как при этом глобальное значение отменяется локальным.
Глобальные операторы присваивания значений константам удобно размещать вбли-
зи таблиц или графиков, чтобы, изменяя присваиваемое значение, сразу наблю-
дать за изменением результатов расчета.
В нашем примере поменяйте величины нагрузок Р, q, МО, длин Ll, L и число интер-
валов разбиения длины балки п. Самостоятельно постройте и отформатируйте гра-
фики для функции, заданной на рис. 2.2.
Символьные вычисления
Кроме числовых расчетов Mathcad может производить вычисления в символьном
виде.
Есть два инструмента выполнения символьных вычислений:
О меню Symbolics (Символьные вычисления);
О панель Symbolic математической панели.
Подробное рассмотрение обоих инструментов будет дано в главе 5. Пример ис-
пользования меню Symbolics приведен в следующем разделе, а пока ограничимся
42
Глава 2. Основные возможности Mathcad
наиболее простым и часто используемым методом — применением символьного
знака равенства (—»). В качестве примера возьмем вычисление неопределенного
интеграла (рис. 2.3).
Рис. 2.3. Символьные вычисления производной, интеграла, сумм, произведений, пределов
Ниже описан порядок проведения символьных вычислений.
1. В математической панели щелкните на кнопке Calculus Toolbar (Панель вычисле-
ний).
2. В открывшейся панели Calculus (Вычисления) выберите, щелкнув мышью, шаб-
лон неопределенного интеграла.
3. Заполните места ввода, вписав интегрируемое выражение или имя интегриру-
емой функции, а также имя переменной в шаблоне дифференциала.
4. Введите символьный знак равенства (—»). Это можно сделать с помощью лю-
бой из двух панелей, вызываемых из математической: Symbolic и Evaluation.
Можно ввести этот оператор и с клавиатуры, нажав сочетание клавиш Ctrl+.
(точка). На экране появится результат символьного вычисления.
Аналогичным образом можно выполнить все операции, представленные на пане-
ли Calculus, а именно вычисление производной любого заданного порядка, инте-
грала определенного и неопределенного, суммы или произведения ряда, предела
выражения. Решите самостоятельно приведенные на рис. 2.3 примеры.
Решение уравнений
43
Недостаток символьного знака равенства состоит в том, что величины, которым
были ранее присвоены численные значения, сохраняют их и при символьном вы-
числении, то есть вместо символьного вычисления получается численное.
Достоинство символьного знака равенства состоит в том, что найденное решение
пересчитывается автоматически при изменении выражения или входящих в него
величин и участвует в последующих расчетах.
Решение уравнений
Mathcad дает возможность решить любое алгебраическое, а также многие диффе-
ренциальные и интегральные уравнения. Однако часто произвольно («с потолка»)
взятые дифференциальные и интегральные уравнения и системы уравнений вооб-
ще не имеют решения, и Mathcad не в силах сотворить чудо.
Для примера возьмем квадратное уравнение и найдем его решение вначале сим-
вольно, затем численно.
Символьное решение
Для символьного решения уравнения надо выполнить следующую процедуру.
1. Наберите решаемое уравнение и синим уголком курсора выделите переменную,
относительно которой нужно решить уравнение.
2. В главном меню выберите команду Symbolics ► Variable ► Solve (Символьные вы-
числения ► Переменная ► Решить). Появится ответ (рис. 2.4).
Рис. 2.4. Символьное решение уравнения
Недостаток использования меню Symbolics состоит в том, что найденное решение
не пересчитывается автоматически при изменении выражения или входящих в него
величин и не участвует в последующих расчетах.
Достоинством использования меню Symbolics является то, что ранее принятые чис-
ленные значения величин не учитываются в символьных расчетах.
44
Глава 2. Основные возможности Mathcad
Если выделенное выражение не имеет символьного решения (а это характерно для
большинства уравнений), Mathcad сообщает об ошибке No solution was found (Ре-
шение не найдено).
В Mathcad есть и другие возможности символьного решения уравнений (напри-
мер, с использованием функции root, как показано в нижней части рис. 2.4), о ко-
торых рассказано в главе 5.
Численное решение
Из ряда функций, позволяющих решать алгебраические уравнения, рассмотрим
функцию root.
Обращение к функции выглядит следующим образом:
root(f(x),х)
Функция root возвращает значение х, при котором выполняется условие f(x) = 0.
Функция root решает уравнения итерационным методом секущих и поэтому тре-
бует предварительного задания начальных значений. Кроме того, функция root,
производя расчеты методом спуска, вычисляет и выводит только один корень, бли-
жайший к начальному приближению. \
Перед решением уравнения желательно построить график функции f(x), как пока-
зано на рис. 2.5. На графике видно, пересекает ли кривая f(x) нулевую линию, то
есть имеет ли функция действительные корни. Если есть точки пересечения кри-
вой с осью, то надо выбирать начальное приближение поближе к значению корня.
Если корней несколько, для нахождения каждого корня надо задавать свое началь-
ное приближение.
Рис. 2.5. Численное решение уравнения
Если точек Пересечения нет, то корни уравнения могут быть только мнимыми чис-
лами. Для их нахождения надо задавать начальное приближение в комплексной
Решение систем уравнений
форме. При этом для ввода мнимой единицы надо на клавиатуре набрать li или lj.
Затем при выходе из области мнимого числа единица исчезает, и мы видим комп-
лексное число в обычном виде. В результате расчета корни уравнения появляются
в комплексном виде.
С помощью функции root можно найти и экстремум функции, приравнивая про-
wdf(x) .
изводную нулю (см. рис. 2.5). Функции root(——,х) должно предшествовать на-
, ( df(x) *
чальное приближение (по умолчанию — - и ).
Для нахождения экстремума функции следует выполнить описанную ниже про-
цедуру.
1. Задайте начальное приближение поближе к экстремуму.
2. Запишите выражение с функцией root, включив в качестве функции, которая
df(x)
должна быть равна нулю, производную по заданной переменной ( —— ).
ил
df(x) _ п
3. Вычислите значение заданной функции от найденного корня уравнения - и .
Экстремум найден (см. рис. 2.5).
Функция root позволяет решить уравнение и в символьном виде. При этом началь-
ное приближение не требуется. Надо лишь ввести выражение, содержащее функ-
цию root, и символьный знак равенства, нажав клавиши Ctrl+. (точка). Если символь-
ное решение существует, появится ответ, содержащий сразу все корни уравнения,
а не один, как при численном решении уравнения (см. рис. 2.4).
Решение систем уравнений
В Mathcad системы уравнений решаются с помощью вычислительного блока Given...Find.
Так как решение систем уравнений осуществляется итерационным методом, пе-
ред решением необходимо задать начальные приближения для всех неизвестных.
1. Задайте начальные приближения для всех неизвестных, входящих в систему.
2. Введите ключевое слово Given. Убедитесь, что вы не вводите текстовую область.
Если нажать клавишу пробела, то математическое выражение становится тек-
стовой областью и слово Given перестает восприниматься программой как клю-
чевое.
3. Введите уравнения и неравенства, входящие в систему, правее и ниже ключе-
вого слова Given. Между левой и правой частями уравнения должен стоять жир-
ный знак равенства. Это не знак присваивания значения, а знак логического
равенства. Для его ввода используйте сочетание клавиш Ctrl+= или выберите
его в панели Boolean (Булевы операторы).
4. Введите любое выражение, содержащее функцию Find. При печати слов Given
и Find можно использовать любой шрифт, прописные или строчные буквы.
Обращение к функции выполняется следующим образом:
Flnd(x. у. zj)
1 j I a D a C. VLM и ВНЫС bU3 M UMHUCI И 1*1 din caa
Здесь x, у, z — неизвестные. Число неизвестных должно быть равно числу уравне-
ний. Функция возвращает значения неизвестных х, у, z, обращающих уравнения
в тождества.
Функция Find может также решить одно уравнение с одним неизвестным как час-
тный случай системы уравнений.
Для системы из нескольких уравнений функция Find выводит решение в виде вектора.
Пример решения системы уравнений приведен на рис. 2.6. Заданная система урав-
нений состоит из уравнения окружности и уравнения прямой линии. Если прямая
и окружность пересекаются, то для нахождения двух точек пересечения надо зада-
вать два разных начальных приближения. Если окружность и прямая не пересека-
ются, действительных корней нет. Для нахождения мнимых корней надо задавать
начальное приближение в виде комплексного числа.
Рис. 2.6. Решение системы уравнений
Функция Find, так же как и функция root, позволяет решать системы уравнений
и в численном, и в символьном виде (рис. 2.7).
Если система уравнений не имеет точного решения, для приближенного решения
в Mathcad существует функция Minerr. Обращение к ней не отличается от обраще-
ния к функции Find.
На рисунке 2.8 представлена геометрическая интерпретация системы уравнений
в виде окружности и прямой линии. Если прямая пересекает окружность, корни
системы уравнений действительные, если не пересекает, то мнимые.
Если решение системы уравнений существует х + у = 2, функция Minerr дает тот же
ответ, что и функция Find. Если решение системы уравнений не существует, функция
Minerrвозвращает минимум невязки решения. В случаех + у = 10 функция Minerr возвра-
щает значение координаты х, при котором расстояние от кривой до оси х минимально.
Работа с матрицами
47
Рис. 2.7. Символьное решение системы уравнений
Рис. 2.8. Геометрическая интерпретация системы уравнений в виде окружности и прямой линии
Работа с матрицами
Достоинства Mathcad особенно наглядно проявляются при операциях с матрица-
ми. Эти операции чрезвычайно трудоемки и, как правило, требуют компьютерного
программирования. В системе Mathcad для получения численного или символьного
48 Глава 2. Основные возможности Mathcad
ответа достаточно традиционной записи матричных выражений, как на обычном
листе бумаги.
Создание матриц
Определить вектор или матрицу можно с помощью следующей процедуры.
1. Введите имя матрицы и оператор присваивания (:=).
2. В математической панели щелкните на кнопке Vector and Matrix Toolbar (Панель
векторов и матриц) — откроется панель Matrix (Матрица), на которой щелкните на
кнопке Matrix or Vector (Матрица или вектор) пли нажмите сочетание клавиш Ctrl+m.
Откроется диалоговое окно, в котором введите число строк и число столбцов
матрицы и щелкните на кнопке ОК. На экране появится шаблон матрицы.
3. Каждое место ввода в шаблоне заполните числами или буквенными выраже-
ниями.
С помощью шаблона можно ввести матрицу, содержащую не более 100 элементов.
О том, как ввести матрицы больших размеров, рассказано в главе 4.
Вектор — это матрица, состоящая из одного столбца.
Доступ к любому элементу матрицы можно получить через имя матрицы с двумя
индексами. Первый индекс обозначает номер строки, второй — номер столбца. Про-
извольный элемент вектора задается одним индексом.
Для набора нижнего индекса можно открыть панель Matrix щелчком на кнопке Vector
and Matrix Toolbar математической панели, после чего щелкнуть на кнопке Subscript
(Нижний индекс), но удобнее использовать клавишу [ (открывающая квадратная скоб-
ка), так как при работе с матрицами ставить нижний индекс приходится очень часто.
Нумерация элементов массива (вектора или матрицы) может начинаться с 0, 1
или с любого другого числа (положительного или отрицательного). Порядком ну-
мерации элементов массива управляет встроенная переменная ORIGIN. По умолча-
нию ORIGIN = 0. Это означает, что первый член массива имеет номер 0.
Чтобы нумерация членов векторов и матриц начиналась, как обычно принимается
в математике, с 1, надо перед вводом матрицы, а лучше в начале документа, на-
брать следующую строку (все буквы прописные):
ORIGIN := 1
Верхняя часть рис. 2.9 иллюстрирует создание элементов матрицы D с использова-
нием нижних индексов. По умолчанию ORIGIN = 0, поэтому Doo = 10. После ввода
строки ORIGIN := 1 элемент Doo не имеет смысла, a Dn = 10.
»
Основные действия с матрицами
Mathcad позволяет выполнять с матрицами основные арифметические действия,
включая сложение, вычитание и умножение, а также операции транспонирования,
обращения, вычисления определителя матрицы, нахождения собственных чисел
и собственных векторов и т. д. Примеры численного и символьного выполнения
этих операций приведены на рис. 2.9-2.11.
Работа с матрицами
49
Рис. 2.9. Арифметические действия с матрицами
СОВЕТ
При работе с матрицами внимательно следите за размерами матриц. При появлении сооб-
щения о несоответствии размеров матриц (см. рис. 2.9) введите в сторонке имя матрицы
и нажмите клавишу = (равно). Если размер матрицы отличается от того, что вы вводили,
обнулите матрицу перед очередным оператором присваивания, написав, например, А := 0.
50
Глава 2. Основные возможности Mathcad
Рис. 2.11. Операции с матрицами
Решение матричных уравнений
Матричные уравнения представляют собой, как правило, систему линейных ал-
гебраических уравнений А • X = В и решаются путем обращения матрицы коэффи-
циентов X = А*1 • В (рис. 2.12).
Рис. 2.12. Решение системы алгебраических линейных уравнений путем обращения
матрицы коэффициентов
Символьные операции с матрицами можно производить с помощью команд меню
Symbolics (Символьные вычисления) и вводом символьного знака равенства (—>).
В примерах на рис. 2.13 используется только символьный знак равенства. Подроб-
но о символьных операциях с матрицами рассказано в главе 5.
При выполнении символьных операций с матрицами необходимо помнить, что если
какому-либо символу ранее присвоено численное значение, то при наличии сим-
Оператор векторизации
51
вольного знака равенства этот символ участвует в символьных расчетах как число.
Если символу ранее присвоено значение вектора или матрицы, то символьные
вычисления с его участием становятся невозможными. В этих случаях для сим-
вольных вычислений надо использовать команды меню Symbolics.
Рис. 2.13. Символьные операции с матрицами
Оператор векторизации
Mathcad допускает указывать в качестве аргумента функции не только числа, но
и вектора. При этом вычисляется значение функции для всех элементов вектора.
Если аргумент функции — матрица, то, чтобы вычислить значения функции для
всех элементов матрицы, надо использовать оператор векторизации.
1. Введите выражение или функцию.
2. Выделите курсором в виде синего уголка необходимую часть выражения (чаще
всего выражение целиком).
3. На математической панели щелкните на кнопке Vector and Matrix Toolbar (Панель
векторов и матриц), а в открывшейся панели — на кнопке Vectorize (Векториза-
ция). Над выделенной частью выражения появится стрелка — символ опера-
ции векторизации.
4. Нажмите клавишу = (равно).
52
Глава 2. Основные возможности Mathcad
Оператор векторизации изменяет смысл векторной или матричной операции. Век-
торизация означает выполнение однотипной операции, предписанной выражени-
ем, со всеми элементами массива. Например, Va — операция невозможная, если
А — вектор или матрица, но, как уже упоминалось, начиная с Mathcad 2000, аргу-
мент функции может быть вектором, и функция, как и в случае дискретной пере-
менной, вычисляется для всех элементов вектора. Если аргумент функции — мат-
рица, необходимо применение оператора векторизации, чтобы выполнить то же
самое, то есть вычислить функцию для всех элементов матрицы (в нашем случае —
это корень квадратный из каждого элемента матрицы А). В случае перемножения
матриц А • В — это матричное произведение, а А • В — это попарное произведение
элементов матриц А и В с одинаковыми индексами. Все массивы под знаком векто-
ризации должны быть одного размера, так как операция над всеми массивами про-
изводится поэлементно. Примеры использования векторов или матриц в качестве
аргументов функций приведены на рис. 2.14.
Рис. 2.14. Операция векторизации в Mathcad
ВНИМАНИЕ Если аргумент — вектор, векторизация не нужна. Если аргумент — матрица, вектори-
------------- зация нужна.
Решение дифференциальных уравнений
Математически решение дифференциальных уравнений — очень сложная пробле-
ма. Mathcad не в состоянии решить без дополнительных упрощений многие диф-
ференциальные уравнения и их системы. Все, что Mathcad может сделать с ними,
подробно описано в главе 6. Здесь мы рассмотрим лишь функцию Odesolve. Алго-
ритм, реализованный в функции Odesolve, характерен для большинства функций
решения дифференциальных уравнений Mathcad. Эта замечательная функция
появилась только в Mathcad 2000, где она решала единственное дифференциаль-
ное уравнение. В Mathcad 200 li возможности этой функции расширены. Теперь
53
Решение дифференциальных уравнений
Odesolve может решать и системы дифференциальных уравнений. Имя функции
Odesolve можно писать и с прописной, и со строчной буквы.
В Mathcad имеется много встроенных функций для решения дифференциальных
уравнений. Все они, кроме функции Odesolve, требуют определенной непростой
форму записи исходного уравнения. Функция Odesolve позволяет записывать урав-
нение в блоке решения в привычном виде, как обычно записывают уравнение на
листе бумаги (рис. 2.15).
Рис. 2.15. Решение дифференциального уравнения с начальными условиями
Обращение к функции Odesolve требует записи вычислительного блока, в который
входят три части.
О Ключевое слово Given.
О Дифференциальное уравнение и начальные или граничные условия к нему или
система дифференциальных уравнений и условия к ней.
О Функция Odesolve(x, xk, п), где х — имя переменной, относительно которой ре-
шается уравнение; xk — конец интервала интегрирования (начало интервала
интегрирования указано в начальных условиях); п — необязательный внутрен-
ний параметр, определяющий число шагов интегрирования, за которые долж-
но быть найдено решение дифференциального уравнения.
54
Глава 2. Основные возможности Mathcad
Чем больше п, тем с большей точностью будет решено уравнение, тем больше бу-
дет время решения. Параметр п не является обязательным. Его можно удалить,
предоставив Mathcad возможность самостоятельно выбрать число шагов интегри-
рования.
ВНИМАНИЕ Появление других математических выражений в вычислительном блоке между ключе-
выми словами Given и Odesolve недопустимо. Текстовую область внутри вычислитель-
ного блока размещать можно. Граничные условия можно задавать лишь в двух точках,
одна из которых — начало интервала интегрирования.
Примеры использования функции Odesolve приведены на рис. 2.15-2.18.
Дано уравнение 4-^x(t) + <t) = t
dt
Граничные условия x(C) = A x(D) = В
A := 4 В > 10 C := -3 D := 6
Поменяйте граничные условия A.B.C.D
Решение уравнения
ч J
*
£•• г
I •
.% - • V
Given
<С) = А
—~x(t) + x(t) = t
dt
x(D) = В x := Odesolve(t,D + 2)
% • • ‘ ‘ .........................-
.. .........................................
Press й «
•
кЖ;
:г •'
Г v
Рис. 2.16. Решение дифференциального уравнения с граничными условиями
Исходное уравнение можно записывать как с использованием оператора диф-
ференцирования, так и со штрихом (рис. 2.17). Граничные условия следует за-
писывать только со штрихом. Для ввода штриха используйте сочетание кла-
виш Ctrl+F7.
Функция Odesolve возвращает решение дифференциального уравнения в виде
функции, а не в виде массива, как все остальные функции, описанные в главе 5,
поэтому найденное решение можно интегрировать и дифференцировать (см., на-
пример, рис. 2.15-2.17), а также использовать в последующих расчетах как функ-
цию пользователя.
Решение дифференциальных уравнений
55
Функция Odesolve решает дифференциальные уравнения как с начальными усло-
виями, когда все условия заданы в начале интервала интегрирования, так и с гра-
ничными условиями, заданными в двух точках. Из этих двух точек одна обяза-
тельно является началом интервала интегрирования, другая произвольная, но ее
аргумент больше, чем в начальной точке. Решение уравнения с начальными усло-
виями показано на рис. 2.15, с граничными условиями — на рис. 2.16. Решение диф-
ференциального уравнения высокого порядка (четвертого) продемонстрировано
на рис. 2.17.
Рис. 2.17. Решение дифференциального уравнения 4-го порядка
Решение системы дифференциальных уравнений иллюстрирует рис. 2.18. В этом
случае обращение к функции Odesolve меняется. Для решения одного уравнения
оно выглядит следующим образом:
Odesolve(x. xk. n)
Для решения системы дифференциальных уравнений обращение к функции Ode-
solve выглядит так:
Odesolve( (вектор имен неизвестных), х. xk. п)
В примере на рис. 2.18 при решении системы трех уравнений вектор имен неизве-
стных содержит 3 имени.
В справочной системе Mathcad написано, что функция Odesolve может решать
системы дифференциальных уравнений и с начальными, и с граничными ус-
56
Глава 2. Основные возможности Mathcad
ловиями. Однако реально удается решить только системы с начальными усло-
виями.
Потренируйтесь в использовании функции Odesolve (рис. 2.19).
Рис. 2.18. Решение системы дифференциальных уравнений с начальными условиями
Рис. 2.19. Примеры использования функции Odesolve
Анализ экспериментальных данных
57
Анализ экспериментальных данных
При проведении различных экспериментов обычно требуется массив эксперимен-
тальных данных представить в виде функции, которую можно использовать в даль-
нейших расчетах.
Если кривая, описываемая этой функцией, должна проходить через все экспери-
ментальные точки, операция получения промежуточных точек и расчетной функ-
ции называется интерполяцией. Если кривая, описываемая этой функцией, не
должна проходить через все экспериментальные точки и является аппроксимаци-
ей (усреднением) исходных данных, операция получения промежуточных точек
и расчетной функции называется регрессией.
Если необходимо уменьшить разброс данных или исключить некоторую система-
тическую погрешность, например, в виде наложенных колебаний, используют сгла-
живание данных или фильтрацию спектра колебаний данных.
Подробно о работе с массивами опытных данных рассказано в главе 7, здесь же
поговорим только о наиболее удобных способах интерполяции и регрессии.
Интерполяция
В Mathcad имеется несколько функций интерполяции, различающихся способом
«соединения» точек данных (прямой линией или различными кривыми). В этой
главе поговорим только о кубической сплайн-интерполяции, при которой экспе-
риментальные точки соединяются отрезками кубических полиномов. В процес-
се интерполяции одновременно используются две функции: interp и cspline.
Обращение к этим функциям выглядит следующим образом:
interp(s. х. у, t)
cspline(x. у)
Здесь:
О х — вектор значений аргумента, элементы которого расположены в порядке воз-
растания;
О у — вектор значений функции того же размера;
Os — вектор вторых производных, создаваемый функцией cspline, которая обес-
печивает равенство вторых производных на границах стыковки полиномов, то
есть в экспериментальных точках;
О t — значение аргумента, при котором вычисляется интерполирующая функ-
ция.
Координаты экспериментальных точек не могут быть комплексными.
Примеры интерполяции приведены на рис. 2.20.
При записи функции интерполяции удобно две функции объединять в одну за-
пись:
YY(t):=interp(cspline(X. Y). X. Y. t)
В результате интерполяции можно получить функцию или массив данных с лю-
бым количеством точек интерполяции (см. рис. 2.20). Если результатом является
58
Глава 2. Основные возможности Mathcad
функция, ее можно интегрировать, дифференцировать, использовать в функциях
пользователя.
Рис. 2.20. Интерполяция исходных данных
Рис. 2.21. Интерполяция исходных данных (продолжение)
На рисунке 2.21 число точек пл массива после интерполяции задано глобально.
Для удобства наблюдения за изменением результатов расчета выражение пл = 5
помещено около графика. Поменяйте значение пл.
Регрессия
Смысл регрессии состоит в подборе функции, аппроксимирующей эксперимен-
тальные данные. Регрессия сводится к подбору коэффициентов в той или иной
аналитической зависимости.
Анализ экспериментальных данных
59
В Mathcad имеется несколько встроенных функций регрессии двух типов:
О позволяющих увидеть аналитическую зависимость, то есть возвращающих на-
бор аппроксимирующих коэффициентов;
О не позволяющих увидеть аналитическую зависимость.
Рассмотрим две функции, которые не выводят коэффициентов и аппроксимиру-
ют массив данных одним степенным полиномом или отрезками нескольких поли-
номов.
В Mathcad регрессия с использованием одного полинома реализуется комбинаци-
ей встроенных функций регрессии и интерполяции:
interpCs. х. у. t)
regress(x. у. п)
Здесь:
Ох — вектор значений аргумента, элементы которого расположены в порядке воз-
растания;
О у — вектор значений функции того же размера;
Os — вектор коэффициентов для построения аппроксимирующего полинома, со-
здаваемый функцией regress;
О t — значение аргумента, при котором вычисляется интерполирующая функция;
On — степень аппроксимирующего полинома.
Степень аппроксимирующего полинома может быть любой. Практика показыва-
ет, что полинома 5-й степени достаточно для аппроксимации почти любой кривой.
Обращение к указанным функциям выглядит следующим образом:
s := regress(X, Y. п)
YY(t) := interp(s. X, Y. t)
Возможна и такая запись:
YY(t) := interp(regress(X. Y, n). X. Y. t)
Регрессия с использованием нескольких отрезков полинома реализуется комби-
нацией встроенных функций регрессии и интерполяции:
interpCs. х. у. t)
loess(x, у. span)
Здесь:
о s := loess(X, Y, span)—вектор коэффициентов для построения аппроксимирую-
щего полинома второй степени, требуемый функцией interp;
О span > 0 — параметр, определяющий размер отрезков полиномов.
Параметр span задает степень сглаженности данных. На практике 0.2 < span < 2.
При span = 2 результат аппроксимации тот же, что при аппроксимации одной па-
раболой. При span = 0.2 аппроксимирующая кривая почти точно описывает любой
набор данных.
Примеры использования полиномиальной регрессии приведены на рис. 2.22.
В Mathcad имеется большое количество встроенных функций, предназначенных
для получения аналитического выражения аппроксимирующей функции. Однако
60
Глава 2. Основные возможности Mathcad
в этом случае необходимо знать форму аналитического выражения. Функции, ис-
пользующие любой произвольный вид аппроксимирующей функции, будут рас-
смотрены в главе 7. Здесь ограничимся изучением только наиболее простых функ-
ций, каждая из которых строит аппроксимирующую функцию лишь определенного
вида.
Рис. 2.22. Регрессия исходных данных (см. рис. 2.20) без получения аналитической зависимости
Используйте соответствующий вид регрессии, если хорошо представляете себе,
какой зависимостью описывается ваш массив данных. Когда вид регрессии плохо
соответствует набору данных, ее результат часто оказывается неудовлетворитель-
ным и зависит от выбора начальных приближений.
Из 8 встроенных функций 5 требуют предварительного задания вектора началь-
ных приближений:
О expfit(X, Y, g) — регрессия экспонентой /(£) = а • eh t + с;
О sinfit(X, Y, g) — регрессия синусоидой f(t) = a-sin(t 4- b) + с;
О pwrfit(X, Y, g) — регрессия степенной зависимостью f(t) = a-tb + с;
О Lgsfit(X, Y, g) — регрессия логистической функцией а(е) = а/(1 + 6 • e~c t);
О logfi t(X, Y, g) — регрессия логарифмической функцией f(t) = а- ln(7 + b) + с.
Анализ экспериментальных данных
61
В этих функциях:
О х — вектор значений аргумента, элементы которого расположены в порядке воз-
растания;
О у — вектор значений функции того же размера;
Од — вектор начальных приближений коэффициентов а, Ь, с;
О t — значение аргумента, при котором вычисляется интерполирующая функция.
Примеры использования этих функций приведены на рис. 2.23 и 2.24.
Рис. 2.23. Регрессия исходных данных (см. рис. 2.20) с выводом аналитической зависимости
Функции, не требующие начальных приближений:
О line(X, Y) — регрессия прямой линией, использующая минимизацию суммы квад-
ратов ошибок f(t) = а + b • t;
О medfit(X, Y) — регрессия прямой линией, использующая медиан-медианную ли-
нейную регрессию /(£) = a+ b-t (функции line и medfit дают близкие резуль-
таты, слегка различающиеся наклоном прямых линий);
О Lnfi t(X, Y) — регрессия логарифмической функцией f(t) = a- In (/) + b.
Примеры использования этих функций приведены на рис. 2.25 и 2.26.
62
Глава 2. Основные возможности Mathcad
Рис. 2.24. Результаты регрессии исходных данных (см. рис. 2.20) функциями, приведенными на рис. 2.23
Рис. 2.25. Регрессия исходных данных (см. рис. 2.20) с выводом аналитической зависимости
Во всех примерах, представленных на рис. 2.23-2.26, использованы одни и те же
массивы данных, характер распределения которых, естественно, не соответствует
выбранным видам регрессии. Для оценки связи между массивом данных и значе-
ниями аппроксимирующей функции подсчитан коэффициент корреляции согг.
Опытные данные неплохо аппроксимируются синусоидой (коэффициент корре-
ляции 0.98). В остальных случаях связь между величинами плохая (коэффициент
корреляции составляет примерно 0.6).
Анализ экспериментальных данных
63
Рис. 2.26. Результаты регрессии исходных данных (см. рис. 2.20) функциями, приведенными на рис. 2.25
Элементы математической статистики
В Mathcad встроено много функций для решения задач математической статисти-
ки. Подробно они рассматриваются в главе 8. Здесь остановимся лишь на функци-
ях оценки параметров выборки данных. Все перечисленные далее функции можно
применять и для векторов, и для прямоугольных матриц. Примеры вычисления
средних арифметических и средних геометрических значений, медианы, средне-
квадратичных отклонений и дисперсий показаны на рис. 2.27.
Рис. 2.27. Оценка параметров выборки данных AY
Глава 2. Основные возможности Mathcad
Обратите внимание, что функции, набранные с прописной и со строчной букв, —
это разные функции.
Обмен данными с другими программами
В нижней части рис. 2.26 показаны две строки, иллюстрирующие запись числовых
данных в файл и считывание их из файла. Таким образом реализуется передача
данных из одной программы в другую и даже создание вычислительных комплек-
сов из нескольких программ, исполняемых в различных компьютерных системах.
Например, данные из Excel могут передаваться в FORTRAN, из FORTRAN в Math-
cad и, если нужно, обратно в FORTRAN.
Для записи прямоугольной матрицы или вектора в отдельный файл необходимо
выполнить указанные ниже действия.
1. Щелкните на кнопке Insert Function (Вставить функцию) стандартной панели ин-
струментов, чтобы открыть одноименное диалоговое окно.
2. Выберите группу функций File Access (Доступ к файлам).
3. Выберите функцию WRITEPRN.
4. В появившийся шаблон впишите имя файла, затем оператор присваивания
(:=) и имя числового массива. Массив будет записан в файл с указанным вами
именем с расширением .ргп и помещен в тот же каталог, где находится рабо-
чий файл.
t J ВНИМАНИЕ Перед тем как вписать имя файла, не забудьте ввести символ " (двойная кавычка).
Для передачи в Mathcad данных из какого-либо файла, содержащего прямоуголь-
ную матрицу числовых данных, выполните следующие действия.
1. Введите имя, которое нужно присвоить массиву, считываемому из файла, и знак
присваивания значения (:=).
2. Щелкните на кнопке Insert Function стандартной панели инструментов, чтобы
открыть одноименное диалоговое окно.
3. Выберите группу функций File Access.
4. Выберите функцию READPRN.
5. В появившийся шаблон впишите имя файла с расширением, если оно есть,
не забыв перед этим ввести символ "(двойная кавычка).
Отладка документов Mathcad
Документ Mathcad — это набор исходных данных и формул для расчета, а также
выведенных на экран результатов расчета в виде чисел, таблиц и графиков. Каж-
дый из перечисленных объектов занимает одну математическую область (Math
Отладка документов Mathcad
65
Region). Между ними в произвольном порядке располагаются текстовые области
(Text Region). Все математические объекты взаимодействуют друг с другом. На-
помним, что Mathcad вычисляет выражения сверху вниз и слева направо и не
переходит к вычислению следующего объекта, не закончив работу с предыду-
щим. Текстовые области не оказывают на математические области никакого влия-
ния.
Если какое-либо выражение содержит ошибку, величина, содержащая ошибку, ото-
бражается красным цветом. Щелкните мышью на объекте с ошибкой — под объек-
том появится сообщение об ошибке. При нажатии клавиши F1 на экране откроется
раздел справочной системы, посвященный расшифровке этой ошибки и возмож-
ным действиям по ее устранению. Чтобы увидеть все сообщения об ошибках, вы-
берите в главном меню Mathcad команду Help ► Mathcad Help (Помощь ► Справка по
Mathcad), в открывшемся окне перейдите на вкладку Contents (Содержание), рас-
кройте раздел Computational features (Вычисления) и в нем тему Errors in numerical
calculations (Ошибки в цифровых вычислениях). На экране появится перечень воз-
можных сообщений (рис. 2.28).
Наш
Error messages in numerical calculation
ЙЙ
Домой • ; Печать Параметры
Equations
W Text
Qj Computational features
?j Controlling calculations
..(?) Iteration
Doing calculations in parallel
When Mathcad encounters an error in an expression, it
marks the offending expression with an error message
and highlights the offending name or operator in a
different color (usually red).
Mathcad cannot process an expression containing an
error. In order for an expression to process, you must
fix the error.
Simplifying expressions before nur
Worksheet management
Vectors and matrices
Strings
Functions
Operators
For information on a particular error message, click on
it in the list below:
A "Find" or "Minerr" must be preceded by a matching
"Given".
All evaluations resulted in either an error or a complex
res 'It.
Solving and optimization
Si
Arguments in function definitions must be names.
i
X
В
*
J
S
Рис. 2.28. Описание возможных ошибок в справочной системе
Щелчок мышью на любом из сообщений открывает раздел справочной системы,
посвященный расшифровке этой ошибки, аналогично нажатию клавиши F1.
Список сообщений об ошибках и советы по их устранению приведены в прило-
жении Г.
В Mathcad 2000 появилась команда Trace Errors (Трассировка ошибок), позволяю-
щая проследить всю цепочку ошибочных вычислений, то есть найти место, отку-
3 Зак. 882
66
Глава 2. Основные возможности Mathcad
да пошла ошибка. Щелкните правой кнопкой мыши на выражении с ошибкой.
Если источником ошибки это выражение не является, то в контекстном меню
будет присутствовать команда Trace Errors. Выберите эту команду и, следуя по-
являющимся на экране указаниям, найдите выражение, являющееся источни-
ком ошибки. На практике эта команда не слишком полезна, так как в простых
случаях и без нее понятно, откуда взялась ошибка, а в сложных случаях про-
грамма Mathcad сама этого не понимает. В этом случае в диалоговом окне, по-
являющемся при выборе команды Trace Errors, все кнопки кроме Close (Закрыть)
недоступны.
Многие ошибки устраняются легко. Прочитайте сообщение об ошибке и станет
ясно, что делать. Однако иногда встречаются ошибки, на устранение которых ухо-
дит несколько дней глубоких раздумий. В таких случаях надо просмотреть чис-
ленные значения всех входящих в ошибочное выражение величин. Возможно, за-
данные вами значения где-то были заменены другими.
На рисунке 2.29 показано, как ранее принятое значение матрицы А не дает воз-
можности присвоить ей значение вектора.
Рис. 2.29. Наложение вектора на матрицу
Иногда встречается наложение векторов друг на друга. В некоторых случаях эти
вектора накладываются друг на друга, а в некоторых — нет.
СОВЕТ
В случае обнаружения неправильного присваивания значений элементам вектора или
матрицы надо обнулить значения. Достаточно величине с этим именем присвоить зна-
чение 0, а не массив.
На рисунке 2.30 исправлена ошибка, присутствовавшая на рис. 2.29: массив А об-
нулен. Однако появилась новая ошибка: два вектора А наложились друг на друга.
Для решения проблемы необходимо обнулить вектор А.
Mathcad 2001 строже относится к индексам, чем Mathcad 7. Mathcad 2001 требует,
чтобы все индексы, имеющиеся в правой части выражения, были указаны и в ле-
вой части выражения в виде индексов или параметров функции.
Отладка документов Mathcad
67
Рис. 2.30. Наложение вектора на вектор
Рис. 2.31. Несогласованность индексов в левой и правой частях выражения
68
Глава 2. Основные возможности Mathcad
На рисунке 2.31 показан пример ввода граничных условий в методе конечных эле-
ментов. В программе, безукоризненно работающей в Mathcad 7, в Mathcad 2001
выражение для матрицы жесткости К обрабатывается корректно (все индексы пра-
вой части есть в левой части). Выражение для вектора сил Р вызывает сообщение
об ошибке, так как индексы g и i присутствуют справа и отсутствуют слева (реше-
ние состоит в составлении программы расчета К и Р, работа которой показана в про-
грамме решения упругопластической задачи методом конечных элементов в при-
мере 16 части IV).
Другие возможности отладки программ подскажет вам часть II. Встретившись с не-
понятной ошибкой, откройте ту главу в части II, в которой рассказывается о функ-
ции, вызвавшей ошибку. Откройте файл для соответствующей главы. Подумайте,
почему там функция работает, а у вас нет. Скопируйте в свой документ фрагмент
из файла, прилагаемого к книге, и попробуйте приспособить его к условиям своей
задачи.
Оптимизация программ
Можно не только увеличить скорость расчетов, но и уменьшить размер программ.
При многократной перезаписи программы, при ее редактировании или копирова-
нии к ней «прицепляется» шлейф из служебных (невидимых) программ, и размер
исходной программы увеличивается иногда во много раз.
Чтобы избавиться от шлейфа, надо открыть программу, выделить нужный фраг-
мент мышью, скопировать его в буфер обмена, а затем вставить в новый документ.
При этом ни в коем случае нельзя использовать команду Edit ► Select All (Правка ► Вы-
делить все), так как в этом случае выделяется все, включая шлейф, и размер про-
граммы поэтому не уменьшается. Так, пример 12 из части IV при отладке содер-
жал avi-файл анимации, который был затем удален. В окончательном варианте
размер программы составил 701 Кбайт, а после описанной процедуры переноса в
новый документ уменьшился до 24 Кбайт. Подобный шлейф (пусть и меньших
размеров) имеет большинство программ, включая программы, распространяемые
на компакт-дисках. Обрезать шлейф или нет, решать пользователю программы.
После продолжительной работы с документом Mathcad в версии Mathcad 200 li
при попытке архивации файла оказывается, что размер файла при архивации умень-
шается весьма незначительно. Однако после сохранения файла в формате одной
из более ранних версий с помощью команды File ► Save as (Файл ► Сохранить как)
и последующей архивации размер файла уменьшается почти в 5 раз. Кстати, пред-
ставленные на сайте редакции (http://www.piter.com) файлы, прилагаемые к книге,
заархивированы в формате Mathcad 2000 и поэтому имеют размер 0,6 Кбайт, а в хо-
де предыдущей архивации в формате Mathcad 200li архив имел размер 3 Мбайт.
При открытии этих файлов в Mathcad 2000 некоторые функции не будут рабо-
тать, в то время как в Mathcad 200li все документы обрабатываются успешно.
ЧАСТЬ Вычисления в Mathcad
□ Решение уравнений
□ Обработка массивов
Л Символьные вычисления
Л Решение дифференциальных
уравнений
Л Обработка экспериментальных
данных
Л Математическая статистика
ГЛАВА Решение уравнений
Встроенные функции Mathcad в состоянии решить любое алгебраическое уравнение.
Для решения одного уравнения с одним неизвестным можно использовать функции
root, polyroot или Fi nd. Mathcad решает уравнения или системы итерационным методом,
поэтому перед решением необходимо задать начальное приближение всех корней.
Функция root
Функция root используется для решения одного уравнения с одним неизвестным.
Обращение к функции root выглядит следующим образом::
root(f(x). х)
Здесь f(х) — выражение, равное нулю, х — аргумент, меняя который, система ищет
значение, обращающее функцию в нуль (рис. 3.1).
Функция f(x) и аргумент х должны быть скалярными, то есть результат вычисле-
ния функции — число, а не вектор или матрица. Функция root использует итера-
ционный метод секущих. Корень уравнения — ближайшее к начальному прибли-
жению значение х, обращающее функцию f(x) в нуль. Если корней несколько, для
отыскания каждого корня необходимо задавать свое начальное приближение.
СОВЕТ Перед решением желательно построить график функции, чтобы проверить, есть ли кор-
------- ни, то есть пересекает ли график нулевую линию. Начальное приближение лучше все-
го выбрать по графику поближе к значению корня. Итерационные методы весьма чув-
ствительны к выбору начального приближения.
Mathcad позволяет вместо начального приближения задавать диапазон значений
аргумента, в котором лежит значение искомого корня (см. рис. 3.1, снизу). В этом
случае обращение к функции root должно иметь 4 параметра:
root(f(x). х. а, Ь)
Здесь а и b — границы интервала, в котором лежит корень уравнения. Внутри ин-
тервала не должно быть больше одного корня, так как Mathcad выводит на экран
лишь один корень, лежащий внутри интервала.
Функция root
71
Рис. 3.1. Использование функции root
%) ВНИМАНИЕ
Значения функции на границах интервала должны иметь разные знаки, иначе, воз-
можно, корень не будет найден (см. рис. 3.1, последняя строчка).
Если уравнение не имеет действительных корней, то есть на графике функция f(x)
нигде не равна нулю, то для вывода комплексных корней надо ввести начальное
приближение в комплексной форме. Для ввода мнимой единицы надо ввести с
клавиатуры символы li или lj. Если уравнение имеет несколько корней, то для их
нахождения можно использовать разложение функции f(x) на простые множители
f(x) = (x-x1)*(x-x2)*...-(x-xn) , где xl, х2,..., хп — корни уравнения. Начальное при-
ближение можно задать только для первого корня, а в качестве функции f(x) взять
h{x\ = _х у где Л(х)0 = f(x), /г(х), = _ д.
и т. д. (рис. 3.2).
Если функция f(x) имеет малый наклон вблизи искомого корня, то функция
root(f(x), х) может сходиться к значению, достаточно далеко отстоящему от кор-
ня. В таком случае для уточнения корня необходимо уменьшить значение по-
грешности вычислений, задаваемое встроенной переменной TOL. Это делается сле-
дующим образом.
72
Глава 3. Решение уравнений
1. В главном меню Mathcad выберите команду Math ► Options ► Built-In Variables
(Математика ► Параметры ► Встроенные переменные).
2. В открывшемся окне Math Options (Математические параметры) перейдите на вклад-
ку Built-In Variables (Встроенные переменные) и поменяйте значение в поле Con-
vergence Tolerance (TOL) (Погрешность сходимости).
Чем меньше константа TOL, тем ближе к нулю будет значение функции при най-
денном корне уравнения, но тем больше времени займет вычисления корня.
ед := х - 20х +5 у этой функции 3 корня
х := -5,-4.9.. 5 диапазон значений х для вывода графика
х := 1 х1 = root(fl;x) ,х) х1 = 0.2507887
hl(x) := — х2 := root(hl(x) ,х) х2 = 4.341
х - х1
Ь2(х) := хЗ ;= root(h2(x) ,х) хЗ = -4.592
PijbssH rrnelc. ’’' IALTTO i
Рис. 3.2. Определение трех корней уравнения
Для повышения точности расчета корня можно заменить функцию f(x) функцией
Корень можно найти и по графику, увеличив масштаб.
1. Выделите график, щелкнув левой кнопкой мыши внутри графика.
2. В главном меню Mathcad выберите команду Format ► Graph ► Zoom (Формат ► Гра-
фик ► Масштаб) — откроется окно X-Y Zoom (Масштаб по осям X и Y).
3. При нажатой левой кнопке мыши обведите рамкой выделения (пунктирной
линией) ту область графика вблизи искомого корня, которую надо увеличить.
4. В открытом окне X-Y Zoom щелкните на кнопке Zoom.
Функция root
73
Прямо с графика можно передать в буфер обмена численное значение корня. Для
этого выполните указанные ниже действия.
1. Выделите график, щелкнув левой кнопкой мыши внутри графика.
2. В главном меню Mathcad выберите команду Format ► Graph ► Trace (Формат ► Гра-
фик ► Трассировка).
3. Щелкните левой кнопкой мыши внутри графика — появится перекрестие осей.
4. Двигая мышь при нажатой левой кнопке, установите перекрестие на пересече-
ние графика с осью абсцисс. При этом численные значения координат перекре-
стия появляются в открытом окне X-Y Trace (Трассировка по осям X и Y).
5. Правильно выбрав положение перекрестия, щелкните на кнопках Copy X и Сору
Y — численные значения будут помещены в буфер (рис. 3.3).
6. Вне поля графика введите имя, которое хотите дать корню, и оператор присва-
ивания (:=). Щелкните на кнопке Paste (Вставить) стандартной панели инстру-
ментов Mathcad или выберите одноименную команду в контекстном меню, от-
крывающемся при щелчке правой кнопкой мыши.
СОВЕТ При работе в Mathcad постоянно пользуйтесь правой кнопкой мыши (в контекстном
меню каждый раз появляются наиболее нужные в данный момент команды). Щелкни-
те правой кнопкой мыши на графике: в открывшемся контекстном меню вы увидите
команды Zoom и Trace.
Рис. 3.3. Определение корня уравнения по графику
В окне X-Y Trace есть флажок Track Data Points (Отмечать расчетные точки). Если его
установить, при перемещении мыши пунктирное перекрестие на графике будет
перемещаться скачками, отмечая расчетные значения функции. Если флажок снять,
Движение перекрестия станет плавным.
74
Глава 3. Решение уравнений
Решения уравнении с помощью
функций пользователя
Если нужно многократно решать уравнение при изменении одного или несколь-
ких параметров этого уравнения, то необходимо создать собственную функцию,
включающую функцию root, Find или какую-либо другую. Такая функция прини-
мается Mathcad «к сведению». Для ее вычисления надо задать значения парамет-
ров, указанных в названии функции, или диапазоны значений этих параметров.
Например, в функции f(x,y) = X2 - у2 -х + 2, варьируя одну из переменных у, нахо-
дим соответствующий каждому значению у корень уравнения х (обращающий f(x)
в нуль). Результаты расчета можно вывести в виде вектора решений хО или графи-
ка хО(у). Начальное приближение при этом задается лишь один раз. Далее резуль-
тат предыдущего вычисления становится начальным приближением для последу-
ющего.
Решение уравнения f(b,c,x) = х2 - b • х - с = 0, приведенное на рис. 3.4, зависит от чис-
ленных значений параметров b и с. Задавая значение одного из параметров в виде
константы, а другого — в виде дискретной переменной, с помощью функции root
можно найти ряд решений уравнения, соответствующих заданным значениям па-
раметров b и с. На рисунке в виде вектора выведены значения корня уравнения хО
при с = 4 и ряд значений дискретной переменной Ь. На графике b = 1, с — ряд зна-
чений. Так как функция root выводит значение одного корня, а квадратное уравне-
ние имеет два корня, поменяйте величину начального приближения для вывода
вектора и графика, соответствующих второму корню.
Рис. 3.4. Функция пользователя, использующая функцию root
Нахождение корней полинома
75
Нахождение корней полинома
Для нахождения корней полинома можно использовать функцию polyroots(K),
которая определяет все корни полинома одновременно. Здесь К — вектор ко-
эффициентов полинома, начиная со свободного члена. Нулевые коэффициен-
ты опускать нельзя. Если полином имеет N корней (с учетом кратности), то век-
тор К включает в себя N + 1 коэффициент. Начальное приближение вводить
не надо.
СОВЕТ Если исходный полином записан не в развернутом виде, а, например, как произведе-
ние полиномов, то в этом случае коэффициенты можно определить, используя меню
Symbolics (Символьные вычисления), как показано в главе 5.
Для функции poLyroots можно выбрать один из двух численных методов — метод
полиномов Лагерра (он установлен по умолчанию) или метод сопровождающей
матрицы.
Для смены метода проделайте описанные ниже операции.
1. Щелкните правой кнопкой мыши на слове polyroots, вызвав контекстное меню
(рис. 3.5).
2. Выберите команду LaGerre (Метод Лагерра) или Companion Matrix (Сопровождаю-
щая матрица).
3. Щелкните мышью вне функции — произойдет пересчет корней в соответствии
с выбранным методом.
График функции у(х), который вы видите на рисунке, построен для проверки пра-
вильности определения корней.
Рис. 3.5. Использование функции polyroots
76
Глава 3. Р зшение уравнений
Решение систем уравнений
Для решения систем уравнений надо использовать вычислительный блок (рис. 3.6).
1. Задайте начальные приближения для всех переменных.
2. Введите ключевое слово Given.
3. Запишите систему уравнений. При записи уравнений знак равенства надо вво-
дить не клавишей = (равно), а комбинацией клавиш Ctrl+=. Получаемый в ре-
зультате жирный знак равенства символизирует не присваивание значения,
а оператор отношения.
4. Задайте ограничения на поиск решения, если они есть, в виде неравенств.
5. Введите выражение, содержащее функцию Find с неизвестными в качестве па-
раметров.
Результат расчета — вектор решения системы. Вычислительный блок позволяет
решать системы от 1 до 200 уравнений.
Mathcad допускает использование двухсторонних неравенств типа а < х < b. Опе-
раторы < и > выбираются с панели Boolean (Булевы операторы).
Решение, выданное функцией Find, желательно проверить, подставив в уравнения
найденные корни, так как в зависимости от начального приближения Mathcad
может вывести корни, не имеющие физического смысла. Так, на рис. 3.6 показана
проверка решения системы трех уравнений путем подстановки корней в уравне-
ния, построения графиков уравнений и определения корней как точек пересечения
поверхностей. На графике видна точка пересечения трех поверхностей, координа-
ты которой являются решением системы, обращающим все уравнения в тожде-
ства. Для построения графиков поверхностей в нужных пределах использована
функция CreateMech, которая выводит массив значений функции для заданных зна-
чений аргументов. При обычном ускоренном построении графика поверхности зна-
чения аргументов выбираются Mathcad автоматически, что в нашем примере при-
водит к делению на нуль и невозможности создания графика. Пределы значений
координат можно изменить (см. главу 15).
Функция Find реализует несколько градиентных численных методов, для выбора
которых нужно щелкнуть правой кнопкой мыши на названии функции Find и рас-
крыть контекстное меню, как показано на рис. 3.7.
Помимо команды Linear (Линейный метод), реализующей метод касательной, в кон-
текстном меню имеется подменю Nonlinear (Нелинейный метод), позволяющее вы-
брать один из трех нелинейных методов:
О Conjugate Gradient (Метод сопряженных градиентов);
О Levenberg-Marquart (Метод Левенберга);
О Quasi-Newton (Квази-Ньютоновский метод).
Щелкнув на кнопке Advanced Options (Дополнительные параметры), помимо выбора
методов можно задать дополнительные параметры.
О Параметры оценки производной конечными разностями (Derivative Estimation):
• Forward — правая двухточечная схема;
• Central — трехточечная симметричная схема.
Решение систем уравнений
77
о Параметры оценки переменной (Variable Estimation):
• Tangent — касательная — прямая линия;
• Quadratic — касательная — парабола.
О Необходимость проверки линейности (Linear Variable Check):
• Yes — проверять;
• No — не проверять.
Рис. 3.6. Решение системы уравнений с помощью функции Find
Если вы уверены, что нелинейности всех функций, входящих в уравнения, ма-
ло влияют на значения их частных производных, можно установить переклю-
чатель No. В этом случае производные будут считаться постоянными, что
сокращает время расчета, поскольку исключает необходимость вычисления про-
изводных на каждом шаге.
78
Глава 3. Решение уравнений
Рис. 3.7. Выбор метода решения системы уравнений
К выбору метода расчета стоит обращаться, если вы хорошо разбираетесь в числен-
ных методах, а также тогда, когда Mathcad не может найти решение. В большинстве
же случаев лучше доверить выбор метода Mathcad, активизировав (путем установ-
ки флажка) в контекстном меню команду AutoSelect (Автоматический выбор).
Градиентные методы, реализованные в функции Find, требуют многократного вы-
числения производных. Для достаточно гладких функций они обеспечивают быс-
трый и надежный поиск корня.
СОВЕТ Для поиска корня негладких функций одной переменной лучше использовать функ-
цию root, реализующую метод секущих.
Как и функция root, функция Find может включаться в функции пользователя для
нахождения корней системы уравнений при переменных значениях параметров,
перечисленных в названии функции пользователя (рис. 3.8). Для системы уравне-
ний решение выводится в виде массива, каждый столбец которого соответствует
вектору решения для одной переменной.
Решение систем уравнений
79
Рис. 3.8. Решение системы уравнений с переменными параметрами
Mathcad позволяет решать системы уравнений не только в скалярной, но и в мат-
ричной форме, при этом начальные условия и ограничения задаются в виде векто-
ров (рис. 3.9). С помощью функции Find возможно также решение систем уравне-
ний в символьном виде (см. главу 5).
А*Х=В
-9.167
Given
X := Find(X)
-9.167
Функция root с матрицами работать не может
Блок решения Given...Find
Начальное приближение Х:=
4 т I
Press Fl for help;
Решение системы алгебраических линейных уравнений
путем обращения матрицы А
Рис. 3.9. Решение системы уравнений в матричном виде
80
Глава 3. Решение уравнений
X ) ВНИМАНИЕ Блоки решения уравнений не могут быть вложенными друг в друга. Каждый блок мо-
жет иметь только одно ключевое слово Given и одно имя функции Find. Внутри блока
решения надо использовать не оператор присваивания (:=), а оператор логического
равенства (жирный знак равно).
Общие рекомендации
по решению уравнений
Не допускается присутствие между словами Given и Find:
О других вычисляемых выражений;
О дискретных переменных (х := 0. .20);
О знака «не равно».
Ниже перечислены некоторые рекомендации, которым имеет смысл следовать, если
Mathcad не может самостоятельно найти решение.
О Возможно, точного решения не существует, и можно попытаться найти при-
ближенное решение (см. следующий раздел).
О Если корни — мнимые числа, надо ввести начальные значения в мнимой
форме.
О Можно поискать другое начальное приближение.
О Можно увеличить или уменьшить точность расчетов. Для этого в главном меню
Mathcad выберите команду Math ► Options ► Built-In Variables (Математика ► Па-
раметры! ► Встроенные переменные) и уменьшите допустимую погрешность вы-
числений (Convergence Tolerance(TOL)). По умолчанию TOL = 0.001.
О Можно изменить ограничения в блоке Given...Find или вместо функции Find ис-
пользовать функцию Minerr (см. следующий раздел).
О Внимательно изучите график функции (возможно попадание в локальный мак-
симум или минимум функции) и попробуйте поискать другое приближение или
добавить ограничения на поиск решения.
О Посмотрите, не достигнута ли точка, из которой не может быть получено более
точное решение, например, когда график функции только касается оси аргу-
ментов, не пересекая ее.
Приближенное решение уравнений
и систем уравнений
Если уравнение не имеет точного решения, например график функции не пересе-
кается с осью аргументов (нет вещественных корней), можно найти значение ар-
гумента, при котором невязка будет минимальной (для случая двух уравнений —
минимальным будет расхождение между двумя кривыми). Для этого использует-
ся функция Minerr.
Приближенное решение уравнений и систем уравнений
81
Обращение к функции Minerr аналогично обращению к функции Find, только фун-
кция Find дает точное решение, a Minerr — приближенное.
Функция Minerr задействует тот же вычислительный алгоритм, что и функция Find.
Так же как и в случае функции Find, метод вычислений можно выбрать в контекст-
ном меню. Используется функция Minerr аналогично функции Find. Если точное
решение существует, то функция Minerr в вычислительном блоке Given позволяет
найти его так же, как функция Find. Если точного решения нет, то функция Find
указывает на ошибку, a Minerr находит минимум невязки, то есть возвращает зна-
чение аргумента, соответствующее минимальному расхождению между заданным
значением у и функцией у(х).
На рисунке 3.10 показано определение координат точек пересечения прямой ли-
нии с эллипсом. Точек пересечения две. Одна точка найдена на рисунке. Найдите
вторую точку пересечения, взяв другое начальное приближение.
Рис. 3.10. Точное решение системы уравнений
Для уравнения прямой х + у = 17, которая пересекается с эллипсом, обе функции
Find и Minerr дают одинаковые результаты. Для уравнения прямой х + у = 20, кото-
рая не пересекается с эллипсом, функция Find выдает ошибку, а функция Minerr
выдает координаты точки эллипса, наиболее близкой к прямой линии (рис. 3.11).
Функцию Minerr удобно использовать для нахождения экстремумов функции.
При использовании функции Minerr для решения системы уравнений необходимо
проверять полученные результаты. Нередко решение оказывается ошибочным, так
как, когда система имеет несколько корней, Mathcad может предложить корень, не
имеющий физического смысла или просто бесполезный. Желательно также как
можно точнее указывать начальные приближения к решению.
82
Глава 3. Решение уравнений
Рис. 3.11. Приближенное решение системы уравнений
Исследование функции на экстремум
Поиск экстремума функции включает задачи нахождения локального и глобаль-
ного экстремумов. Mathcad же с помощью встроенных функций решает только
задачу нахождения локального экстремума. Для поиска глобального экстремума
Рис. 3.12. Нахождение экстремумов функции путем приравнивания производной нулю
83
Исследование функции на экстремум
необходимо вычислить все локальные экстремумы и выбрать из них наибольший
(наименьший)1.
Отметим три пути поиска экстремума.
О Для непрерывной функции можно использовать равенство нулю производной
от функции (рис. 3.12).
О Для ступенчатой функции или функции с переломами можно использовать фун-
кцию Minerr (рис. 3.13). Для этого по графику выбирается число, заведомо боль-
шее (или меньшее) экстремального значения функции, и записывается в каче-
стве ограничения в блоке Given. Функция Minerr возвращает значение аргумента,
при котором расхождение между заданным числом и значением функции ми-
нимально.
О Для непрерывных функций удобно использовать функции Maximize и Minimize
(они вводятся аналогично функции Find). Ключевое слово Given обычно можно
опустить (рис. 3.14), оно необходимо лишь при наличии ограничений.
Рис. 3.13. Поиск экстремума ступенчатой функции
Ключевое слово Given
необходимо только в случае наличия ограничений
у(х) := 2-х - 1б х + 5
начальное значение
Хщах := М aximize(y, х)
хтах ~ -1-633
х := -2
у(хпш) = 22.419
х := -5 Given х > 0 хпШ1 Minimize(y,x)
xmin ~ 1-633 y(xmin) _ “12.419
Press Fl For help.
...
JAUTO i jPage 5
Рис. 3.14. Использование функций Maximize и Minimize
1 Предлагаем читателю потренироваться на функции у(х) = (х2 - 1) sin2( 1/х). — Примеч. науч. ред.
84
Глава 3. Решение уравнений
Нахождение экстремумов функции нескольких переменных аналогично исследова-
нию функции одной переменной. На примере функции двух переменных рассмотрим
влияние ограничений на поиск экстремумов (рис. 3.15 и 3.16). Функции Minimize и
Maximize способны вычислить минимум и максимум соответственно как с ограни-
чениями, так и без них. Результаты решения в значительной степени зависят от
выбранных начальных приближений и далеко не всегда соответствуют истине.
То же самое с функциями Maximize и Minimize
Maxinuze(f,x,y)
0.0001
:<ч:
Поиск минимума (максимума) функции двух переменных
Результат зависит от начального приближения,
Поменяйте условия на х := -2 у .= 0.5
поменяйте
функции
местами
Рис. 3.15. Нахождение экстремума функции двух переменных
Рис. 3.16. Нахождение экстремума функции двух переменных с ограничениями
СОВЕТ При анализе конкретного уравнения желательно внимательно изучить поверхностный
------- график функции и график линий уровня, на котором хорошо видны области экстремумов.
Рекурсивные вычисления
85
Все три способа определения экстремумов функции имеют свои плюсы и минусы.
Творческий подход к их выбору почти всегда позволяет правильно найти экстре-
мумы функции.
Рекурсивные вычисления
Mathcad допускает внутри обращение функции к самой себе. Таким образом со-
здаются рекурсивные функции, использующие значения, известные на момент
вычислений. Примером такой функции является функция вычисления корня
квадратного числа, показанная на рис. 3.17. Последовательность приближений
записана в виде вектора. Номер попытки — индекс элемента вектора. При рекур-
сивном вычислении сначала определяется первый элемент массива, затем пооче-
редно остальные элементы на основе значений предыдущих элементов.
Рис. 3.17. Рекурсивное вычисление корня квадратного числа А
Метка л/А идентифицирует на графике точку точного вычисления корня. Для на-
несения такой метки на график двойным щелчком мыши на графике откройте окно
форматирования графика, перейдите на вкладку X-Y Axes (Оси X и Y), установите
флажок Show Markers (Показывать маркеры) и в одном из появившихся мест ввода
впишите Va , оставив второе место ввода пустым.
Можно выполнить многократные рекурсивные вычисления нескольких вектор-
ных переменных одновременно. Такая разновидность рекурсивных вычислений
используется для решения систем уравнений в методе конечных разностей.
На рисунке 3.18 описана модель развития инфекции среди животных. Четыре урав-
нения связывают друг с другом четыре переменных: число восприимчивых, инфи-
цированных, умерших и выздоровевших животных.
86
Глава 3. Решение уравнений
Рис. 3.18. Рекурсивные вычисления в модели распространения инфекции
ПРИМЕЧАНИЕ
Mathcad вычисляет все выражения справа перед присваиванием значений величинам
слева. Ничто справа не может зависеть ни от чего слева.
ГЛАВА Обработка массивов
Достоинства Mathcad особенно ощутимо проявляются при работе с массивами
(векторами и матрицами). Как правило, эта работа заключается в многократном
повторении однотипных вычислений со всеми элементами матрицы.
Одиночное число будем называть скаляром, столбец чисел — вектором, а прямоу-
гольную таблицу чисел — матрицей. Фактически вектор — это матрица, состоя-
щая из одного столбца чисел.
Создание матрицы
Есть три способа создания массива чисел.
О Заполнение шаблона матрицы, содержащего пустые места ввода чисел, что под-
ходит для небольших массивов (не более 100 элементов).
О Использование дискретной переменной. Этот метод подходит, когда есть яв-
ная формула для вычисления элементов массива.
О Считывание данных из файла. Этот метод рассматривается в главе 2 и исполь-
зуется в примере 16 (см. часть IV).
Рассмотрим подробно первый, наиболее простой метод создания матрицы.
1. Установите курсор в то место, где надо создать матрицу.
2. Щелкните на кнопке Vector and Matrix Toolbar (Панель векторов и матриц) матема-
тической панели и в появившейся панели Matrix (Матрица) щелкните на кнопке
Matrix or Vector (Матрица или Вектор). Можно также в главном меню Mathcad выб-
рать команду Insert ► Matrix (Вставка ► Матрица) или нажать сочетание клавиш
Ctrl+m.
3. В появившемся диалоговом окне впишите число строк (Rows) и число столбцов
(Columns) будущей матрицы, а затем щелкните на кнопке ОК (рис. 4.1). На месте
курсора появится шаблон матрицы.
88
Глава 4. Обработка массивов
4. В каждое место ввода впишите число, буквенную константу или функцию. Пере-
ход от одного места ввода к другому осуществляется с помощью клавиш со стрел-
ками. Можно также щелкнуть мышью в нужном месте ввода, но это менее удобно.
Рис. 4.1. Окно вставки матрицы
Примеры матриц показаны на рис. 4.2. Самостоятельно наберите из любых чисел
вектор размерностью 3x1 и матрицу размерностью 3x2 и выполните с ними все
описанные далее операции.
Рис. 4.2. Примеры набора массивов и вывода их элементов
Можно изменять размер матрицы, вставляя и удаляя строки и столбцы.
1. Щелкните мышью на нужном элементе матрицы (Mathcad вставляет строки
и столбцы в направлении вправо и вниз от выделенного элемента матрицы,
а удаляет в том же направлении, включая строку и столбец с выделенным эле-
ментом). При необходимости используйте клавиши со стрелками, чтобы синий
уголок курсора оказался справа от выделенного элемента.
2. В панели Matrix (Матрица) щелкните на кнопке Matrix or Vector (Матрица или Век-
тор) или нажмите сочетание клавиш Ctrl+m и в открывшемся окне (см. рис. 4.1)
впишите число строк и столбцов, которые надо добавить или удалить.
3. Щелкните сначала на кнопке Insert (Вставить) или Delete (Удалить), затем на кноп-
ке ОК.
Например, чтобы добавить или удалить одну строку, надо вписать единицу в каче-
стве количества строк, нуль в качестве количества столбцов и щелкнуть на кнопке
Insert или Delete. Другие примеры добавления и удаления строк показаны на рис. 4.3.
Встроенная переменная ORIGIN
89
Чтобы удалить всю матрицу, выделите ее черным цветом и нажмите клавишу Del
(для безвозвратного удаления) или щелкните на кнопке Cut (Вырезать) стандарт-
ной панели инструментов (чтобы вырезать в буфер обмена). Можно также выбрать
команду Cut в контекстном меню, появляющемся при щелчке на выделенной мат-
рице правой кнопкой мыши.
Рис. 4.3. Изменение размеров матрицы
СОВЕТ При работе в Mathcad почаще пользуйтесь контекстным меню. Это позволяет в любой
момент иметь информацию о доступных для данного случая командах.
Нумерация элементов матрицы
Элементы матрицы определяются двумя нижними индексами, элементы векто-
ра — одним.
Для ввода нижнего индекса можно щелкнуть на кнопке Subscript (Нижний индекс)
панели Matrix (Матрица), но удобнее использовать клавишу [ (открывающая квад-
ратная скобка), так как при работе с матрицами вводить нижний индекс прихо-
дится очень часто.
Чтобы из матрицы выделить вектор (один из столбцов матрицы), используется
верхний индекс. Эта операция встречается не так уж часто, поэтому для ее выпол-
нения лучше использовать математическую панель инструментов.
1. Введите имя матрицы и выделите его синим уголком курсора.
2. Щелкните на кнопке Matrix and Vectors Toolbar (Панель векторов и матриц) матема-
тической панели и в появившейся панели Matrix (Матрица) щелкните на кнопке
Matrix Column (Столбец матрицы).
3. В появившемся месте ввода впишите номер столбца.
Встроенная переменная ORIGIN
Начало нумерации элементов в векторах и матрицах определяется встроенной пе-
ременной origin.
90
Глава 4. Обработка массивов
По умолчанию ORIGIN = 0, то есть первый элемент вектора, первая строка и первый
столбец матрицы имеют нулевой индекс.
Чтобы изменить нумерацию индексов, в первой строке документа наберите (про-
писными буквами) строку ORIGIN := 1. Можно также переопределить встроенную
переменную ORIGIN другим способом. Выберите в главном меню команду Math ►
Options (Математика ► Параметры), в открывшемся окне перейдите на вкладку Built-
In Variables (Встроенные переменные) и в поле Array Origin (ORIGIN) (Начало массивов)
введите индекс первого элемента массива (рис. 4.4). Переменной ORIGIN можно
присваивать разные значения, включая отрицательные.
Рис. 4.4. Встроенные переменные Mathcad
В Mathcad есть встроенные функции, в алгоритм которых по умолчанию включе-
ны величины с нулевым индексом, например mean — вычисление среднего значе-
ния — или fft — разложение в ряд Фурье. Если выражение ORIGIN := 1 введено с
клавиатуры, неизбежна ошибка в расчетах. Измените значение встроенной пере-
менной ORIGIN в окне Math Options (Математические параметры), и ошибки в расчетах
не будет.
параметров матрицы
В Mathcad есть встроенные функции для определения параметров матрицы (рис. 4.5).
О rows(M) — число строк в массиве или векторе.
О cols(M) — число столбцов в массиве.
О last(M) — индекс последнего элемента в массиве.
О тах(М) и min(M) — максимальное и минимальное значения элементов в массиве.
Образование новых матриц из существующих
91
Функции для работы с матрицами
Число строк в массиве rows(A) = 5
Число столбцов в массиве cols(A) = 2
Индекс последнего элемента в векторе
rows(B) = 5
cols(B) = 3
last(V) = 5
Максимальный и минимальный элементы в массиве
тах(А) = 5 min(A) = 1
max(V) = 12 min(V) = 8
ММИЙНММИП1ммд1МВНВКМММЯВМИ
Press Fl for help
Рис. 4.5. Функции определения параметров массивов
Образование новых матриц
из существующих
Рассмотрим встроенные функции для образования новых матриц из уже суще-
ствующих (рис. 4.6).
О augment(A,B) — объединяет матрицы А и В «бок о бок». Матрицы А и В должны
иметь одинаковое число строк.
О stack(A, В) — объединяет матрицы друг над другом. Матрицы А и В должны иметь
одинаковое число столбцов.
О submatrix(A, irows, jrows, icols, jcols) — создает матрицу, вырезанную из матрицы
А. Новая матрица содержит элементы матрицы А, вырезаемые от ряда irows до
ряда jrows и от столбца icols до столбца jcols.
Указанные функции используются следующим образом.
1. Наберите имя новой матрицы и оператор присваивания.
2. На стандартной панели инструментов щелкните на кнопке Insert Function (Вста-
вить функцию).
3. В списке функций открывшегося диалогового окна найдите нужную функцию
и щелкните на кнопке Insert (Вставить). Имя функции можно набирать и с кла-
виатуры, но при этом нужно не ошибиться в написании.
4. В места ввода впишите нужные имена массивов.
Глава 4. Обработка массивов
92
А :=
В :=
D := stack(Cl ,С2)
Press Fl for Ырг Z
4
1
4
2
3
1
С2 = subtnatiix(C,3,.5,3,5)
3
4
1
С2 =
2
3
3
2
3
4
2
2
1
2
1
3
1
2
1
2
2
3
3
4
1
2
поменяйте номера
строк и столбцов
С := augment(A,B) Cl := submatnx(C,l ,2,1,3)
3
шм jPage 2
2
3
3
4
4
2
3
4
2
3
3
4
4
1
2
1 2 3
Рис. 4.6. Функции объединения и вырезания матриц
Ввод больших массивов
В Mathcad есть ограничения на размер вводимых массивов. При использовании шаб-
лона матрицы можно создать массив, имеющий не более ста элементов. Если надо
ввести массив больших размеров, используются встроенные функции augment и stack.
Массив практически неограниченных размеров можно ввести с помощью диск-
ретной переменной по какой-либо расчетной формуле, либо считать массив из
внешнего файла функцией READPRN (рис. 4.7).
Рис. 4.7. Создание больших массивов
Матричные операторы
93
Сортировка векторов и матриц
В Mathcad имеется несколько встроенных функций для сортировки элементов мас-
сива в порядке возрастания или убывания.
О sort(v) — сортировка элементов вектора в порядке возрастания.
О reverse(v) — перестановка элементов вектора в обратном порядке.
О csort(M, i) — перестановка строк матрицы М в порядке возрастания элементов i-ro
столбца.
О rsort(M, i) — перестановка столбцов матрицы М в порядке возрастания элемен-
тов i-й строки.
Рис. 4.8. Примеры сортировки элементов массивов
[^ПРИМЕЧАНИЕ
Если элементы вектора или матрицы — комплексные числа, то сортировка ведется по
действительной части; мнимая часть игнорируется.
Примеры сортировки элементов массивов приведены на рис. 4.8.
Матричные операторы
Рассмотрим лишь наиболее часто употребляемые матричные операторы.
Транспонирование
Транспонированием называется операция, в результате которой столбцы исходной
матрицы становятся строками, а строки — столбцами.
1. Наберите имя матрицы.
2. Щелкните на кнопке Vector and Matrix Toolbar (Панель векторов и матриц) матема-
тической панели.
94
Глава 4. Обработка массивов
3. В открывшейся панели Matrix (Матрица) щелкните на кнопке Matrix Transpose
(Транспонирование матрицы).
При вводе больших векторов из соображений экономии места удобно вводить их
в виде строки с последующим транспонированием.
Все матричные операторы и матричные функции работают только со столбцами
(векторами), а не со строками, поэтому для выполнения действий со строками вна-
чале их приходится транспонировать в столбцы, а после выполнения нужной опе-
рации вновь транспонировать в строки.
Для нахождения матрицы, обратной заданной, щелкните на кнопке Inverse (Инвер-
сия) панели Matrix.
Для нахождения определителя заданной матрицы щелкните на кнопке Determinant
(Определитель) панели Matrix.
Произведение прямой матрицы на обратную есть единичная матрица. Иногда еди-
ничная матрица необходима для решения матричных уравнений. Для создания
единичной матрицы в Mathcad есть встроенная функция identity(n), где п — раз-
мер квадратной матрицы.
Некоторые матричные операции иллюстрирует рис. 4.9.
Рис. 4.9. Стандартные операции с матрицами
Сложение, вычитание и умножение матриц
Сложение и вычитание матриц выполняется с помощью традиционных операто-
ров сложения и вычитания (рис. 4.10).
Матричные операторы
95
Сложение, вычитание и умножение матриц
/26 38 29 26 38^
17 27 27 17 27
13 21 30 13 21
2 2-3
ООО
14 20 13 14 20
<20 29 21 20 29;
The number of rows and/or columns
in these arrays do not match.
Рис. 4.10. Арифметические операции с матрицами
Оператор умножения в документе Mathcad по умолчанию обозначается точкой,
для ввода которой нужно нажать клавишу * (звездочка) — знак умножения, харак-
терный для языков программирования.
Вид оператора умножения в документе можно поменять. Щелкните правой кноп-
кой мыши на выражении, где есть оператор умножения, в открывшемся контекст-
ном меню раскройте подменю View Multiplication as (Вид знака умножения) и щелкните
мышью на одной из семи команд, предлагающих разные варианты представления
оператора умножения.
Точно так же можно изменить вид оператора присваивания значения, но делать
это не рекомендуется, чтобы не путать знак присваивания значения со знаком ло-
гического равенства.
По правилу перемножения матриц число столбцов первой матрицы должно быть
равно числу строк второй матрицы А(т х п) • В(п х k) = C(jn х k) , где в скобках ука-
заны размеры перемножаемых матриц.
Полезно запомнить, что произведение строки на столбец дает число, а произ-
ведение столбца на строку — полностью заполненную квадратную матрицу
(рис. 4.11).
Скалярное произведение векторов дает число, равное сумме попарных произведе-
ний элементов этих векторов
п
U • V = У [J. . ц , где п — число элементов каждого вектора, или
»=1
U • V = |17.|. |ц |. cos(0) , где 0 — угол между векторами.
96
Глава 4. Обработка массивов
Для ввода оператора скалярного произведения векторов (рис. 4.12) используется
клавиша * (звездочка) или кнопка Dot Product (Скалярное произведение) панели
Рис. 4.12. Произведение векторов
Векторное произведение двух векторов X и Y с углом между ними 0 равно век-
тору с модулем U| • | V • sin(0) , направленному перпендикулярно плоскости, опре-
деляемой векторами U и V. Оператор векторного произведения можно ввести толь-
ко с панели Matrix при помощи кнопки Cross Product (Векторное произведение).
Векторное произведение можно вычислить только для векторов с тремя элементами.
Сумма элементов вектора вычисляется щелчком на кнопке Vector Sum (Векторная
сумма) панели Matrix.
Сумма диагональных элементов квадратной матрицы, называемая следом матри-
цы, определяется с помощью встроенной функции tr(M), где М — имя матрицы.
Оператор векторизации
В Mathcad существует несколько необычный оператор, называемый оператором
векторизации и предназначенный для работы с массивами. Он позволяет выпол-
Собственные числа и векторы матриц
97
нить однотипную операцию со всеми элементами массива (рис. 4.13), например
вычислить cos(a), где а — матрица углов.
1. Выделите клавишей пробела все выражение.
2. Щелкните на кнопке Vectorize (Векторизация) панели Matrix. Над выделенным
выражением появится знак векторизации.
3. Нажмите клавишу = (равно).
Mathcad допускает использование вектора в качестве аргумента функции, и в этом
случае знак векторизации не требуется, например, если V — вектор, f(V) = ответ —
без знака векторизации.
..
Pres? FJ for help;
0.7
0.9 А
0.3
0.4
ко.1
0.7
mXrmmwaAmmmmXmwwwvmi
25.842 >
45.573
72.542
66.422
60
л
V84.261
180
180------~Z
----acos(L)
— acos
л
45.573
ISO . ,, .
----acos(y ( L - матрица, нужна векторизация)
л
This must be either a scalar or a vector.
а
Рис. 4.13. Использование оператора векторизации
Собственные числа и векторы матриц
В технических расчетах весьма актуальна задача определения собственных чисел
и собственных векторов квадратных матриц. В Mathcad имеется несколько встро-
енных функций для этих целей.
Стандартная задача на определение собственных чисел А • L = X • L или (А - X • Е) • L = 0,
где Е — единичная матрица, А — квадратная матрица, X — вектор собственных чи-
сел, L — спектр собственных векторов (рис. 4.14).
Для решения стандартной задачи используются следующие функции.
О eigenvals(A) — вычисляет вектор собственных чисел матрицы А, превращающий
ее в диагональную матрицу.
О eigenvecs(A) — вычисляет спектр собственных векторов матрицы А. Результат
расчета — матрица, каждый столбец которой представляет собой нормирован-
ный собственный вектор для одного из собственных чисел.
Пример стандартной задачи — по заданному тензору напряжений найти 3 главных
напряжения (собственные числа) и соответствующие им направляющие косину-
сы для нормалей к трем главным площадкам (собственные векторы).
4 Зак. 882
98
Глава 4. Обработка массивов
Рис. 4.14. Определение собственных чисел квадратной матрицы
Нестандартная задача на собственные числа имеет вид А • L = X • В • L или (А - X • В) • L = 0,
где А и В — квадратные матрицы (неединичные), X — вектор собственных чисел,
L — спектр собственных векторов (рис. 4.15).
Рис. 4.15. Обобщенные собственные числа матрицы
Пример нестандартной задачи — определение собственных частот колебаний уп-
ругих систем. В этой задаче собственное число X = со2 — квадрат собственной час-
тоты колебаний, собственный вектор L<1> — форма колебания для собственной
частоты со, (примеры 12 и 13 в части IV).
Число обусловленности квадратной матрицы
99
Для решения нестандартной задачи используются следующие функции.
О genvals(A, В) — вычисляет вектор обобщенных собственных чисел.
О genvecs(A, В) — вычисляет спектр собственных векторов. Результат расчета —
матрица, каждый столбец которой соответствует собственному числу.
Вектор собственных чисел можно преобразовать в диагональную матрицу с помо-
щью функции diag(?). Результат ее действия — диагональная матрица, на главной
диагонали которой расположены элементы вектора ?.
Норма квадратной матрицы
Норма квадратной матрицы характеризует порядок величины элементов матрицы.
В Mathcad есть четыре функции для оценки нормы (рис. 4.16).
О norm 1(A) — норма в пространстве L1. __
О norm2(A) — норма в пространстве L2.
О поппе(А) — евклидова норма.
О normi (А) — шах-норма, или -норма.
Евклидова норма эквивалентна длине многомерного вектора поте = Д2 .
Как видно из рисунка, величина нормы мало зависит от способа ее вычисления.
При увеличении всех элементов матрицы в 100 раз все нормы также увеличивают-
ся в 100 раз.
Рис. 4.16. Функции вычисления нормы матрицы
Число обусловленности квадратной матрицы
Число обусловленности является мерой чувствительности системы линейных ал-
гебраических уравнений А • X = В , определяемой матрицей коэффициентов А,
к погрешностям вектора В правых частей уравнений. Чем больше число обуслов-
ленности, тем более неустойчив процесс решения системы. В примере на рис. 4.17
100 Глава 4. Обработка массивов
матрица А хорошо обусловленная, а матрица АА, в которой вторая строка почти
пропорциональна первой, плохо обусловленная.
Рис. 4.17. Функции вычисления обусловленности квадратной матрицы
Матричные разложения
Большинство матричных методов решения систем линейных алгебраических уравне-
ний основано на представлении матрицы коэффициентов уравнения в виде произве-
дения матриц специального вида, полученных путем разложения исходной матрицы.
В Mathcad имеется несколько функций, реализующих алгоритмы наиболее попу-
лярных матричных разложений.
Разложение Холесского
Разложением матрицы по методу Холесского является представление ее в виде
А = L • Lr , где L — нижняя треугольная матрица (то есть матрица, в которой по
верхнюю сторону от диагонали находятся нули).
Выполняется это разложение функцией cholesky(A), где А — симметричная поло-
жительно-определенная матрица (рис. 4.18).
QR-разложение
QR-разложение представляет исходную матрицу в виде А = Q • R , где Q — орто-
нормированная1, a R — верхняя треугольная матрица (нули под главной диагональю).
Выполняется это разложение функцией qr(A). Результатом действия функции
является матрица L, полученная из двух матриц Qh R, составленных бок о бок.
Чтобы выделить каждую матрицу отдельно, используется функция submatrix
(рис. 4.19).
Матричные разложения 101
Рис. 4.18. Разложение матрицы по методу Холесского
Рис. 4.19. QR-разложение квадратной матрицы
LU-разложение
LU-разложением, или треугольным разложением, матрицы А является матричное
разложение типа Р • А = L • U, где U и L — верхняя и нижняя треугольные матри-
цы, а Р, A, L, U — квадратные матрицы одного размера.
LU-разложение квадратной матрицы А выполняется функцией Lu (А).
1 То есть состоящая из ортогональных друг другу векторов единичной длины.
102 Глава 4. Обработка массивов
Фактически треугольное разложение матрицы производится при решении систе-
мы линейных алгебраических уравнений методом Гаусса.
Функция Lu(A), как и функция qr(A), выводит составную матрицу, содержащую
матрицы Р, L, U, составленные «бок о бок» (рис. 4.20).
Рис. 4.20. LU-разложение квадратной матрицы
Сингулярное разложение
^-0.958 -0.2 -0.208^
А := г20 3 3 2 <4 -5 4> -5 9 > svd(A) = -0.076 -0.519 0.851 -0.278 0.831 0.482 -0.958 -0.2 0.208 -0.076 -0.519 -0.851 <-0.278 0.831 -0.482;
<21.401 <21.401^ <21.401 0 0 >
eigenvals(A) = 11.161 svds(A) = 11.161 diag(svds(A)) = 0 11.161 0
<-1.562; < 1.562 ; k 0 0 1.562;
Проверка сингулярного разложения
r-0.958 -0.2 -0.208^ <21.401 0 0 > '-0.958 -0.2 0.208 > r20
-0.076 -0.519 0.851 • 0 11.161 0 • -0.076 -0.519 -0.851 S 3
<-0.278 0.831 0.482 ; < 0 0 1.562; <-0.278 0.831 -0.482; k 4
Press Fl few help.
Рис. 4.21. Сингулярное разложение квадратной матрицы
Вывод векторов и матриц 103
Сингулярное разложение
Сингулярным разложением матрицы А размером М х N, где М> N, является раз-
ложение вида А = В х s х Сг, где В и С — ортогональные матрицы размеромMxN
и Nx М соответственно, s — диагональная матрица с сингулярными числами мат-
рицы А на главной диагонали.
svds(A) — вектор, состоящий из сингулярных чисел, svd(A) — сингулярное разло-
жение матрицы А. Примеры поиска сингулярных чисел невырожденной матрицы
А и сингулярной матрицы А1 приведены на рис. 4.21.
1 У> ^ПРИМЕЧАНИЕ Более подробную информацию о различных матричных разложениях ищите в центре
документации Mathcad.
Вывод векторов и матриц
В Mathcad существует два способа отображения массивов: в виде матрицы и в виде
таблицы (рис. 4.22).
Рис. 4.22. Изменение стиля отображения массива
Для изменения стиля отображения массива в главном меню выберите команду
Format ► Result (Формат ► Результаты), в открывшемся диалоговом окне перейдите на
вкладку Display Options (Параметры отображения) и в списке Matrix display style (Стиль
отображения матриц) выберите пункт Matrix (Матрица), Table (Таблица) или Automatic
(Автоматический выбор).
Как правило, Mathcad выбирает вариант Matrix для маленьких массивов и Table для
больших массивов.
Более простой путь форматирования выведенного массива — дважды щелкнуть
в области массива, который надо отформатировать, — появится диалоговое окно
Result Format (Формат результата), открытое на вкла ;ке Number Format (Формат чисел).
104 Глава 4. Обработка массивов
Остается только перейти на нужную вкладку (Display Options) и выбрать требуе-
мые параметры.
Если число элементов в строке или столбце больше 10, то в стиле Table для эконо-
мии места в документе Mathcad выводит только 10 чисел, а сбоку и сверху — поло-
сы прокрутки для просмотра остальных элементов массива.
Стиль отображения Table допускает различное выравнивание выведенного масси-
ва относительно его имени. Для задания выравнивания, поместив курсор в область
массива, надо щелкнуть правой кнопкой мыши и в контекстном меню раскрыть
Alignment (Выравнивание), в котором, как показано на рис. 4.23, предлагается 5 мест
расположения названия массива: Тор (Верх), Center (Центр), Bottom (Низ), Above
(Выше) и Below (Ниже). В том же контекстном меню имеется команда Properties (Свой-
ства), которая позволяет установить или убрать нумерацию строк и столбцов.
... WW *
Copy SetecJibn v
BoUofn
Л: i
Above
:2
з
5
ЕхрогС,
ж»
3
4
5
2
3
4
2
3
4
5
5
Рис. 4.23. Контекстное меню массива, отображаемого в стиле Table
В окне Display Options (Параметры отображения) есть флажок Expand nested arrays (Разво-
рачивать вложенные массивы), установив который, можно увидеть все вложенные в со-
ставной массив массивы. Составными называют массивы, которые иногда формиру-
ют для удобства вычислений из разнотипных элементов. Необходимость в составных
массивах возникает при разработке больших программ, когда в одном и том же месте
надо вывести несколько различных величин (чисел, векторов, матриц). Подробнее с
составными массивами можно познакомиться в главе 9 и в примерах 16—17 из части IV.
Комплексные числа
Mathcad с одинаковым успехом вычисляет выражения с действительными и ком-
плексными числами.
Комплексные числа можно записывать в любой принятой в математике форме:
О обычной (в виде суммы действительной и мнимой частей числа с = а + b • i;
О в тригонометрической форме с = А • (sin(cp) + i • cos(cp));
О в экспоненциальной форме с = А • е,ф.
Комплексные числа
105
Для ввода мнимой единицы надо набрать с клавиатуры li или lj и ввести число.
При выведении курсора из области числа символ 1 исчезает, остается комплекс-
ное число в привычном виде (рис. 4.24).
Рис. 4.24. Ввод комплексных чисел
Рис. 4.25. Расчеты с векторами комплексных чисел
106 Глава 4. Обработка массивов
В качестве примера рассмотрен расчет токов и напряжений в цепи переменного
тока по законам Кирхгофа. В этом случае ЭДС в цепи (Е), напряжения (II), токи
(J), сопротивления (Z) — комплексные числа. ЭДС задана в экспоненциальной
форме, но при нажатии клавиши = (равно) выводится в обычном виде. После вво-
да констант в комплексной форме все формулы записываются так же, как и для
действительных чисел. При расчете вектора напряжений на различных участках
цепи по закону Ома для определения попарных произведений Ц = J, •Zi использо-
ван оператор векторизации (рис. 4.25).
В Mathcad есть оператор преобразования комплексного числа в комплексно-со-
пряженное (сМ. рис. 4.25). Он не представлен на математической панели, а вызы-
вается с помощью символа " (двойная кавычка).
Модуль комплексного числа А = VRe2 + Im2 вычисляется оператором | |, вводи-
мым щелчком на кнопке Absolute Value (Абсолютное значение) панели Calculator (Каль-
кулятор) или на кнопке Determinant (Определитель) панели Matrix (Матрица). Тот же
оператор позволяет вычислить модуль вектора или определитель матрицы
Аргумент комплексного числа вычисляется с помощью встроенной функции arg(A),
которая выдает угол поворота вектора в системе координат Re-Im (рис. 4.26).
Рис. 4.26. Вычисление модуля и аргумента комплексных чисел
ГЛАВА
Символьные
вычисления
Основой символьных вычислений в Mathcad являются формулы и правила их
преобразования, заимствованные из системы символьной математики Maple 5,
предназначенной для математиков высшей квалификации. Из более чем 300 сим-
вольных функций Maple 5 в Mathcad включено порядка 20, но и этого достаточно
для инженерно-технических работников, для которых и предназначен пакет Mathcad.
Как правило, большинству пользователей Mathcad для работы достаточно числен-
ных расчетов, результаты которых затем анализируются с помощью графиков.
Лишь изредка возникает необходимость в символьных вычислениях. Кроме того,
некоторые встроенные функции Mathcad для своего успешного применения тре-
буют предварительных символьных вычислений.
О При нахождении корней полинома функцией polyroot символьным путем же-
лательно найти коэффициенты полинома для ввода их в качестве параметров
функции polyroot.
О При использовании функции общей регрессии genfit надо создать вектор, со-
держащий в символьном виде саму аппроксимирующую функцию и ее первую
и вторую производные.
О При решении дифференциальных уравнений необходимо задание высшей про-
изводной в явном виде. Иногда это можно сделать, используя символьное ре-
шение уравнения относительно производной высшего порядка.
Оптимизация численных вычислений
В Mathcad есть возможность оптимизации решений. Если активизировать коман-
ду Math ► Optimization (Математика ► Оптимизация), то перед вычислением каждого
выражения символьный процессор Mathcad будет пытаться упростить все выра-
жения для ускорения и уточнения вычислений.
В Mathcad есть два самостоятельных процессора: численный и символьный, кото-
рые обычно не имеют связи друг с другом. При включенном режиме оптимизации
они работают совместно.
108
Глава 5. Символьные вычисления
Можно включить режим оптимизации для вычисления одного конкретного выра-
жения. Для этого щелкните правой кнопкой мыши на интересующем вас выраже-
нии и в открывшемся контекстном меню выберите команду Optimize (Оптимизиро-
вать). Около выражения, для которого Mathcad будет искать символьное решение,
появится красная звездочка (рис. 5.1).
ВНИМАНИЕ
Оптимизация возможна только для выражений, содержащих оператор присваива-
ния (:=).
Рис. 5.1. Оптимизация вычислений
В некоторых случаях, например при вычислении интегралов по поверхности или
объему (двойной или тройной интеграл), удается найти символьное решение ин-
теграла (см. рис. 5.1), что резко ускоряет расчеты. Ведь вычисление интегралов —
самая медленная операция в Mathcad.
В Mathcad есть два инструмента символьных вычислений:
О меню Symbolics (Символьные вычисления);
О панель Symbolic (Символьные вычисления), вызываемая щелчком на кнопке Sym-
bolic Keyword Toolbar (Панель символьных вычислений) математической панели.
кпользование меню Symbolics
Меню Symbolics (Символьные вычисления) предоставляет меньше возможностей, чем
панель Symbolic (Символьные вычисления). Однако использовать меню просто, а по-
тому и удобно. В ряде случаев лучше обращаться к меню Symbolics, чем к панели
инструментов.
Использование меню Symbolics 109
Команды меню Symbolics показаны на рис. 5.2. Для выполнения любой из них не-
обходимо сначала выделить объект вычислений.
О Щелкните мышью на выражении, чтобы произвести символьную операцию над
всем выражением.
О Чтобы произвести символьную операцию над частью выражения, выделите эту
часть черным цветом, то есть подведите указатель мыши к началу нужной час-
ти выражения, нажмите левую кнопку мыши и переместите указатель мыши до
конца этой части при нажатой левой кнопке мыши.
О Щелкните мышью на переменной, относительно которой надо произвести сим-
вольную операцию.
Рис. 5.2. Меню Symbolics
ПРИМЕЧАНИЕ
Выделение черным цветом используется в Mathcad, когда какие-либо действия нужно
сыполнить над частью выражения: вырезать в буфер обмена, скопировать, удалить,
изменить шрифт или размер шрифта и т. д.
Выполняя символьные операции, следует помнить, что не всякое выражение под-
дается символьным преобразованиям, а потому не всякая задача имеет символь-
ное решение (в отличие от численного).
Рассмотрение символьных операций начнем с последней команды меню Symbolics —
команды Evaluation Style (Стиль вычислений). При выборе этой команды открывает-
ся диалоговое окно (рис. 5.3), которое позволяет выбрать стиль выводимого сим-
вольного решения: горизонтально — рядом с исходным выражением, вертикаль-
но — под ним, с комментариями и без них (на представленных далее рисунках
выбрано горизонтальное расположение ответов).
ВНИМАНИЕ
Перед выполнением символьных операций убедитесь, что активизирована (помечена
флажком) команда Automatic Calculation (Автоматический режим вычислений) в меню
Math (Математика).
110
Глава 5. Символьные вычисления
Рис. 5.3. Окно выбора стиля вывода символьного результата
Символьная оценка
Для выполнения символьной оценки выделите выражение или его часть, раскрой-
те подменю Evaluate (Оценить) меню Symbolics (Символьные вычисления) и выберите
команду Symbolically (Символически), Floating Point (С плавающей точкой) пли Complex
(В комплексной форме).
Символьный процессор по-разному обрабатывает числа с десятичной точкой и без нее.
О Если символьный процессор получает числа, содержащие десятичную точку,
то любые возвращаемые численные результаты будут десятичными приближе-
ниями точного решения.
О Если символьный процессор получает числа без десятичных точек, то возвраща-
емые численные результаты, когда это возможно, будут без десятичных точек.
О Если символьная операция дает ответ в виде десятичной дроби, то этот ответ
всегда отображается с 20 значащими цифрами. На отображение не действуют
ни локальный, ни глобальный числовые форматы.
Примеры использования команды Evaluate приведены на рисунке 5.4.
Упрощение выражений
Команда Simplify (Упростить) служит для основных алгебраических и тригономет-
рических упрощений выбранного выражения. Она выполняет арифметические
преобразования, сокращает общие множители, использует основные тождества для
тригонометрических и обратных функций, уменьшает степени. Можно упрощать
как все выражение целиком, так и его части. Если преобразование всего выраже-
ния не дает желаемого результата, попытайтесь выделить и упростить часть выра-
жения. Примеры использования команды Simplify приведены на рис. 5.5.
Разложение выражений
Операция символьного разложения по смыслу противоположна операции упро-
щения. В ходе разложения раскрываются все суммы и произведения, а сложные
тригонометрические выражения разлагаются с помощью тригонометрических тож-
деств. Если выражение — дробь, раскладывается числитель, и выражение представ-
Использование меню Symbolics 111
ляется как сумма дробей. Примеры использования команды Expand (Разложить)
приведены на рис. 5.6.
Рис. 5.4. Примеры символьной оценки выражений
Рис. 5.5. Примеры упрощения выражений
112
Глава 5. Символьные вычисления
4 msgMapleExpand
Г
ДУШ
и ши > я я iii.i П» в я я май мл'лйУймй* ня
Рис. 5.6. Примеры разложения выражений
X4 + 16 X3 + 96-Х2 + 256-х + 256
tan(3x) + cos(2-x) msgMapleExpand
(з tan(x) - tan(x)3) 2
— -------------— + 2-cos(x) - 1
\1 - 3 tan(x)2)
(x+l)-(x- 1) msgMapleExpand
x2- 1
cos(5-x) msgMapleExpand
5 3
16-cos(x) -20-cos(x) + 5-cos(x)
Разложить самостоятельно
tan(3x)
Prfc$5 Fifer help.
Разложение на множители
Команда Factor (Разложить на множители) позволяет представить полиномы как произ-
ведения более простых полиномов, а целые числа как простые сомножители. Команда
объединяет сумму дробей в одну дробь и упрощает «многоэтажную» дробь с несколь-
кими дробными чертами. Примеры использования команды приведены на рис. 5.7.
а
19125
a-b + ас
msgMapleFactor
msgMapleFactor
2 3
3-5 17
a-(b + с)
3 3
msgMapleFactor
2
2
2-х3-3-х + 1
х3 + 2-х3 - 9 х - 18
msgMapleFactor
(х-l)-
Разложить самостоятельно
о 2 5 5 v 3 _ 2 3
2 а -у + а-Ъ-у - а-b у -2 а у
3 1
к + 1 х + 3
~3~
1 - X
J
F1 io* help
3-х
WO Jf МН йпе %
MAMAMAAAAAMMAAMWWlMMMWWMVWWWMt
Рис. 5.7. Примеры разложения выражений на множители
ВНИМАНИЕ Mathcad разлагает на множители только то, что выделено.
Использование меню Symbolics 113
Приведение подобных слагаемых
Команда Collect (Привести подобные слагаемые) объединяет члены, содержащие оди-
наковые степени выделенной переменной. Примеры использования команды Collect
приведены на рис. 5.8.
Рис. 5.8. Примеры приведения подобных слагаемых
Коэффициенты полинома
Многие выражения или части выражения представляются в виде полиномов от
выделенной переменной; коэффициенты полинома могут быть найдены символь-
ным процессором, причем коэффициенты могут быть сложными функциями дру-
гих переменных. Примеры использования команды Polynomial Coefficients (Коэф-
фициенты полинома) приведены на рис. 5.9.
по степеням у
бх а - а-х
2-х
а, Ь, с
разложите по степеням
3
(b e-З а)
,23
2x a
,34 .32
За x + ox a
[NUM
3 4 ,2, 43 2 msgMapleCoeffs
3 a x у + 2 x (a + xy) -a x y
Найденные коэффициенты полинома, разложенного
по степеням х
по степеням а
2
-ay
2?
, 2
ба у
3-a^y + 6-
2y3
2
ay
Самостоятельно
3,2
a - b - c .
Press Fl For Kelp.
2x у
4 2
o x у - x-y
£ 3
ox у
Л 4
Рис. 5.9. Примеры нахождения коэффициентов полинома
О
114
Глава 5. Символьные вычисления
Вычисление пределов
В Mathcad есть три оператора вычисления пределов.
1. На математической панели щелкните на кнопке Calculus Toolbar (Панель вычис-
лений) — откроется панель Calculus (Вычисление), на которой внизу есть три кноп-
ки для ввода операторов вычисления пределов. Щелкните на одной из них.
2. Введите выражение в место ввода справа от слова lim.
3. В место ввода под словом lim введите имя переменной, по которой надо вычис-
лить предел, и ее предельное значение.
4. Выделите угловым курсором или черным цветом все выражение целиком.
5. Выберите команду Symbolics ► Evaluate ► Symbolically (Символьные вычисления ►
Оценить ► Символически). Mathcad возвратит значение предела, если оно суще-
ствует. Примеры вычисления пределов показаны на рис. 5.10.
Предварительно выделите все выражение *|
/ 2
г Yx
lim -—
msgMapleYields
lim
tan(x)
x
msgMapleYields
tan(x)
- л
T
tan(x)
71
I
msgMapleYields
msgMapleY elds
3
3
Самостоятельно вычислите пределы функций
—- при х—>0 f-----при п -» О
v I п + 2/
2 с
х - 5-х + 4
(х-1)<х+6)
при х 1 |Ц
Рис. 5.10. Примеры вычисления пределов функций
Символьные вычисления по выбранной переменной
Команда Substitute (Подстановка) заменяет выделенным и скопированным в буфер
обмена выражением заданную переменную.
1. Выделите выражение, которое будет заменять переменную.
2. Скопируйте выделенное выражение в буфер обмена.
3. Выделите переменную, которую надо заменить.
Использование меню Symbolics 115
4. Выберите команду Symbolics ► Variable ► Substitute (Символьные вычисления ► Пе-
ременная ► Подставить), как показано на рис. 5.11. Mathcad подставит выраже-
ние из буфера обмена вместо выделенной переменой.—"
Примеры подстановки переменной показаны на рис. 5.12.
Рис. 5.11. Подменю Variable меню Symbolics
msgMapleSubstitution
cos(f(sin(x))) + U + f(sin(x))
cos
-sin
ЖитоТ
***• rV ifK '.г. -1 ймм..
MW page 3
Подставить f(sin(x)) вместо у скопировать в буфер
fi>in(x))
С 2
a
b
Скопировать в буфер msgMapleSubstitution
cos(x) sin(x) A
^-sin(x) cos(x))
Press M Го* 'eh.
Рис. 5.12. Примеры подстановки переменных
116
Глава 5. Символьные вычисления
Вычисление производной или интеграла
С помощью меню Symbolics (Символьные вычисления) производную или интеграл
можно вычислить двумя способами.
О В нужном выражении, записанном без знаков производной или интеграла,
выделите переменную, по которой надо вычислить производную или взять
интеграл, и выберите команду Symbolics ► Variable ► Differentiate (Символьные
вычисления ► Переменная ► Дифференцировать) или Symbolics ► Variable ► Integrate
(Символьные вычисления ► Переменная ► Интегрировать).
О На панели Calculus (Вычисление) щелкните на одной из кнопок вычисления ин-
теграла или производной, запищите с помощью введенного шаблона нужное
выражение и выберите команду Symbolics ► Evaluate ► Symbolically (Символьные
вычисления ► Оценить ► Символически).
Примеры вычисления производной и интеграла приведены на рис. 5.13.
Рис. 5.13. Примеры символьного дифференцирования и интегрирования выражений
Символьное решение уравнений и неравенств
Решить уравнение символьно труднее, чем численно. Может оказаться, что реше-
ния в символьном виде не существует.
1. Введите уравнение, использовав жирный знак равенства (знак логического ра-
венства, а не присваивания значения). Если в выражении отсутствует знак ра-
венства, Mathcad полагает, что выражение равно нулю.
2. Выделите переменную (в любом месте уравнения), относительно которой надо
решить уравнение.
3. Выберите команду Symbolics ► Variable ► Solve (Символьные вычисления ► Пере-
менная ► Решить).
Использование меню Symbolics 117
Если решений несколько, Mathcad выводит вектор решений. Примеры символь-
ного решения уравнений приведены на рис. 5.14.
3 2
х - 10-х + 9 msgMapleSolve
9 3
2 2
3 , 2
;•!
msgMapleSolve
9 3 г-
-----J13
2 2 v
Самостоятельно решите уравнение и неравенство
2 „ Л 2 Л Л
Jj J .................-
г
Рис. 5.14. Символьное решение уравнений и неравенств
Разложение в ряд Тейлора
Чтобы разложить выражение в ряд Тейлора с остаточным членом в форме Пиано,
выполните следующие действия.
1. Выделите переменную в выражении, которое надо разложить в ряд.
2. Выберите команду Symbolics ► Variable ► Expand to Series (Символьные вычисления ►
Переменная ► Разложить в ряд).
3. В появившемся диалоговом окне укажите порядок остаточного члена.
В полученном ответе остаточный член обозначается как 0(хб), то есть отбрасыва-
ются члены ряда, содержащие х6 и выше. Прежде чем использовать разложение
для дальнейших вычислений, остаточный член надо удалить.
Ряд Тейлора для функции обычно сходится только в малой окрестности выбран-
ной точки. В качестве точки разложения Mathcad берет нуль. Для разложения
функции в точке, отличной от нуля, необходима замена переменной. Например,
для разложения в ряд функции 1п(х) в окрестности точки х = 1 надо разложить в
ряд функцию ln(x + 1), а затем переменную х заменить на х - 1. Этот и другие при-
меры разложения в ряд приведены на рис. 5.15.
Разложение на простейшие дроби
Чтобы преобразовать выражение в сумму простейших дробей, выделите пере-
менную в заданном выражении и выберите команду Symbolics ► Variable ► Convert
to Partial Fraction (Символьные вычисления ► Переменная ► Разложить на простейшие
дроби).
118 Глава 5. Символьные вычисления
Символьный процессор будет пытаться разложить знаменатель выражения на мно-
жители. Mathcad не станет разлагать выражение, которое содержит десятичные точ-
ки. Примеры разложения выражения на простейшие дроби приведены на рис. 5.16.
Рис. 5.15. Примеры разложений функций в ряд Тейлора
Рис. 5.16. Примеры разложения выражений на простейшие дроби
Использование меню Symbolics 119
Символьные операции с матрицами
Mathcad позволяет выполнить с матрицами ряд символьных операций.
Рис. 5.17. Примеры символьных операций с матрицами
Создайте матрицу с цифровыми или буквенными элементами, выделите ее любым
способом и раскройте подменю Matrix (Матрица) меню Symbolics (Символьные вычис-
ления) с командами Transpose (Транспонировать), Invert (Инвертировать), Determinant
(Вычислить определитель). На рисунке 5.17 эти команды применены к матрице на-
правляющих косинусов для плоской задачи. Кроме всего прочего эти примеры
доказывают свойство ортогональности матрицы направляющих косинусов, то есть
то, что обратная матрица равна транспонированной.
Чтобы выполнить арифметические действия над несколькими (чаще всего двумя)
матрицами, надо выделить целиком все матричное выражение и выбрать команду
Symbolics ► Evaluate ► Symbolically (Символьные вычисления ► Оценить ► Символически).
На рисунке показано символьное решение системы линейных алгебраических урав-
нений, записанных в матричном виде.
Вычисление интегральных преобразований
Mathcad позволяет вычислить символьно три интегральных преобразования: Фу-
рье, Лапласа и ^-преобразование.
120
Глава 5. Символьные вычисления
О Прямое преобразование Фурье возвращает функцию от со, определяемую формулой:
Здесь f (t) — преобразуемое выражение.
О Обратное преобразование Фурье возвращает функцию от t , задаваемую выра-
жением:
-da.
2 л J-°°
Здесь F(co) — преобразуемое выражение.
О Прямое преобразование Лапласа возвращает функцию от s, определяемую фор-
мулой:
-dt.
Здесь f (t) — преобразуемое выражение.
О Обратное преобразование Лапласа возвращает функцию от t, задаваемую вы-
ражением:
— f° 1 F(s)'6st 'ds.
2ni
Здесь F(s) — преобразуемое выражение, все особенности которого находятся сле-
ва от линии Re(s) = а.
О Прямое z-преобразование возвращает функцию от 5, определяемую формулой:
£/(«)•
Здесь f (п) — преобразуемое выражение.
О Обратное z-преобразование возвращает функцию от и, задаваемую контурным
интегралом вокруг начала координат:
Т <£ F(z) • z”*1 dz.
1П Jc
Здесь F(z) — преобразуемое выражение, С — контур, включающий все особенно-
сти подынтегрального выражения.
Для выполнения любого из шести указанных преобразований проделайте описан-
ную ниже процедуру.
1. Введите нужное выражение.
2. Выделите переменную курсором.
3. Выберите команду Symbolics ► Transform ► Fourier (Символьные вычисления ► Пре-
образовать ► Преобразование Фурье) или другую команду преобразования (Inverse
Fourier, Laplace, Inverse Laplace, Z, Inverse Z).
Примеры указанных преобразований приведены на рис. 5.18.
В выводимых ответах Mathcad использует специальные функции. Так, в преобра-
зованиях Фурье используется функция Dirac (дельта-функция Дирака). Об этой и
других специальных функциях можно прочитать в справочной системе Mathcad
(рис. 5.19).
Использование меню Symbolics 121
msgMaplelnvLaplace
z 2 msgMapleLaplace
cos(x)
z 7 msgMapleFourier 1
cos(x) -л-
msgMaplelnvFourier i
- + - exp(-2 i-t)
2 4
упростить промежуточный результат msgMapleSimple - cos(2 t) + -
2 2
s
2~~
2 s
-cos(2t) + -
2 2
msgMapleZ
2
z-
3
2
2
msgMaplelnvZ n
упростить промежуточный результат msgMapleFactor
2
*
.... . ,. .. ........ .........г.
iPressFlferhe^'.;: AUToF 'InUMWs
$
Рис. 5.18. Примеры интегральных преобразований функций
ДОМОЙу/ ^ШПечагь
T
.y •,
Скрыть Назад г
• " : • •. •;;. •• •. •
J Поиск|
Вардите ключевое олово для поиска; •
?у« * I**» 11 Н .III« » « « нам !*** — а, ||М>1<
;| special functions
}"£ij^£iiiiii>iii«iiiiiiairi^
Spacebar
spacing between bars
. хх-ж-кчс :•:<:•»;
Dirac(х) = 0 if х?0
II
1-
<5:
and
special functions
spectrum of signal
Spe«. .u.
spe
sph
spir® Выберите раздел и нажмите кнопку
Найденные разделы
Заголовок :
Dirac (х) dx = 1
...x.:..................
i
‘3
/У:,
$ d
$ .<
Illy Местонахождение ‘
SQIi
$qu||
sta(||
start
Special Functions
Mathcad Hel
Special Functions and Syntax used in Sy... Mathcad Help
:fW
Показать
111 й 1.Й I Ill
s
w-y
‘ Отмена ?|
.. «»»»»
jglj
31
w
v'K '
>
J
Рис. 5.19. Поиск специальных функций в справочной системе Mathcad
122
Глава 5. Символьные вычисления
Использование панели Symbolic
Панель Symbolic (Символьные вычисления), как показано на рис. 5.20, вызывается из
математической панели щелчком на кнопке Symbolic Keyword Toolbar (Панель сим-
вольных вычислений).
— * “* Modifiers
float complex assume
solve simplify substitute
(дгтпг— . tvnapg C06tfS
Symbolic Keyword T oolbar |
collect series parfrac
Ц fpurfer lapiace ztrans
invfouiier WapJace invztrans
Рис. 5.20. Панель символьных вычислений
В Mathcad существует символьный знак равенства (—»), который вводится с кла-
виатуры сочетанием клавиш Ctrl+. (точка). Можно также использовать кнопки
Symbolic Keyword Evaluation (Символьный оператор оценки) и Symbolic Evaluation (Сим-
вольная оценка) панели Symbolic (Символьные вычисления) или кнопки Evaluate Sym-
bolically (Оценить символически) и Symbolic Keyword Evaluation (Символьный оператор
оценки) панели Evaluation (Оценка). В отличие от обычного знака равенства, сим-
вольный знак равенства возвращает не число, а выражение.
По умолчанию символьный знак равенства упрощает выражение слева отчзнака,
аналогично команде Symbolics ► Evaluate ► Symbolically (Символьные вычисления ►
Оценить ► Символически).
На панели Symbolic (см. рис. 5.20) есть две кнопки (Symbolic Evaluation и Symbolic
Keyword Evaluation) для ввода символьного знака равенства с одним местом ввода и
с двумя местами ввода. Одно место ввода предназначено для ввода выражения или
функции (встроенной или пользователя), второе — для ввода ключевого слова,
означающего выполняемое действие.
ПРИМЕЧАНИЕ
Как уже упоминалось, при выполнении символьных вычислений с помощью команд
меню Symbolics Mathcad игнорирует предыдущие определения всех величин, входя-
щих в рассматриваемое выражение, а при использовании символьного знака равен-
ства Mathcad учитывает все предыдущие определения и с их учетом пересчитывает
результаты. Кроме того, при выполнении символьных вычислений с помощью команд
меню Symbolics Mathcad не учитывает функции пользователя, а при использовании
символьного знака равенства учитывает.
Символьный знак равенства с двумя местами ввода позволяет создавать програм-
мы символьных вычислений, включающих в себя несколько последовательных
действий.
Использование панели Symbolic 123
Инструменты, представленные на панели Symbolic (всего 24 кнопки), имеют соот-
ветствующие аналоги среди команд меню Symbolics. При щелчке на кнопке в доку-
менте появляется шаблон символьной операции с указанием ключевого слова.
В шаблоне надо заполнить места ввода, а в случае появления лишних мест ввода
их надо удалить (выделить курсором и нажать клавишу Del).
Команды, их шаблоны и действия команд указаны в табл. 5.1.
Таблица. 5.1. Инструменты символьных вычислений
Кнопка Шаблон Описание
float • float, • —» Вычисления с плавающей точкой
complex • complex, • -э Преобразования в форму a + i>b
expand • expand, • —» Раскрытие степеней и произведений, сумм нескольких переменных
solve • solve, • -э Решение уравнений и систем уравнений для указанной после запятой переменной
simplify • simplify—» Упрощение выражений
substitute • substitute, • = • —» Вычисление выражений с подстановкой определенных значений или с заменой переменной
collect • collect, • —> Упрощение выражений представлением их суммой простых полиномов
series • series, • = • —> Разложение выражения в степенной ряд. Число членов вводится в правое место ввода
assume • assume, • —» Вычисления с присвоением определенных значений переменных
parfrac • parfrac —» Разложение выражения на простые дроби
coeffs • coeffs, • —» Определение вектора коэффициентов полинома
factor • factor, • —» Разложение выражения на произведения
fourier • fourier, • —» Прямое преобразование Фурье
laplace • laplace, • —> Прямое преобразование Лапласа
ztrans • ztrans, • —> Прямое z-преобразование
invfourier • invfourier, • —» Обратное преобразование Фурье
inviaplace • inviaplace, • -» Обратное преобразование Лапласа
invztrans • invztrance, • —» Обратное z-преобразование
MT—> •T—» Транспонирование матрицы
M-1—» •-1 —» Обращение матрицы
|m|-> l*H Вычисление определителя матрицы
Modifiers Вывод панели Modifier
Примеры символьных вычислений с одноместным знаком равенства приведены
на рис. 5.21.
Символьные вычисления начинают с ввода исходного выражения, подлежащего
преобразованию.
О Для выполнения операции simplify, а также для вычисления интегралов, произ-
водных, сумм и произведений введите одноместный знак символьного равен-
ства с панели Symbolic, щелкнув на кнопке Symbolic Evaluation.
О Для выполнения других символьных операций после ввода выражения щелк-
ните на кнопке с названием необходимой операции в панели Symbolic и в по-
124
Глава 5. Символьные вычисления
явившемся на экране шаблоне заполните нужные места ввода и удалите не-
нужные.
О Для одновременного выполнения нескольких символьных операций введите
двухместный знак символьного равенства с панели Symbolic, щелкнув на кноп-
ке Symbolic Keyword Evaluation, и в появившемся шаблоне заполните нужные ме-
ста ввода и удалить ненужные.
О Для вывода результатов символьных вычислений необходимо вывести курсор
за пределы выражения и щелкнуть мышью.
Рис. 5.21. Символьные вычисления с одноместным знаком равенства
Одноместный символьный знак равенства используется для символьного вычис-
ления интегралов, производных, сумм и произведений (рис. 5.21).
ВНИМАНИЕ
При использовании двухместного символьного знака равенства после ввода каждого
ключевого слова с названием символьной операции автоматически появляется свобод-
ное место для ввода следующей символьной операции. После ввода всех символьных
операций надо удалить лишние места ввода и автоматически появившиеся лишние скобки.
При выполнении большинства символьных операций удобно применять функции
пользователя (рис. 5.22), что позволяет упростить понимание символьных вычис-
лений, делает документ менее громоздким.
Для символьного решения уравнений и неравенств с помощью панели Symbolic
нужно ввести в документ операцию solve. При этом на экране появляется символь-
ный знак равенства с местом ввода, где надо указать переменную, относительно
которой решается уравнение или неравенство (см. рис. 5.22).
Для символьного решения уравнений можно использовать функцию root и вычис-
лительный блок Given...Find, как показано на рис. 5.23. При этом для вывода ре-
зультата используется одноместный символьный знак равенства.
Использование панели Symbolic 125
Применение функций пользователя
2 d
f(xa) := ха - б ха + 2 xa - 12 —
dxa
fl» to -> - ь3 - 2 Ь2 - 12 b - 1080
а 3
Решение уравнений и неравенств
3 2
ха - З ха - 4-ха + 20 > 0 solve,ха
Press Fl for help.
-J.. ... .. .. ..... . ^Z... . ...... ....... ..... . .
-2
f(xa) = 0 solve,ха ->
6
f(xa) > 0 solve,ха -»
AAMAMi
Рис. 5.22. Использование функций пользователя в символьных вычислениях
Рис. 5.23. Использование функций root, Find, Minerr для символьных вычислений
126
Глава 5. Символьные вычисления
Хотя в шаблонах операций expand, factor, collect, solve и coeff есть места ввода для
нескольких аргументов, заполнять второе место ввода, указанное после запятой,
не нужно (если в выражении только один аргумент).
При использовании операции substitute необходимо задать вариант подстановки.
Если надо заменить не одну переменную, а несколько, то второй и последующие
варианты подстановки вводятся через запятую и набираются с клавиатуры.
Ключевое слово assume позволяет ввести ограничения на значения переменных,
что бывает необходимо, если, например, функция имеет разрыв в некоторой точке
(рис. 5.24).
При разложении в ряд Тейлора (операция series) необходимо указать координаты
точки, в окрестности которой производится разложение, и число членов ряда. Если
не указать это число, то Mathcad по умолчанию выводит результат с 6 членами
ряда Тейлора (рис. 5.25).
Использовать одновременно несколько операций довольно сложно, так как надо
быть уверенным, что может быть преобразован промежуточный символьный ре-
зультат (рис. 5.26). Чтобы убедиться в этом, его надо увидеть, то есть нужно выво-
дить результат каждой операции по отдельности.
Одноместный символьный знак равенства позволяет выполнять различные опе-
рации с массивами. Кроме операций транспонирования, обращения и вычисления
определителя матрицы, представленных на панели Symbolic, можно выполнять сло-
жение, вычитание и перемножение матриц, а также использовать встроенные функ-
Использование панели Symbolic 127
ции для работы с матрицами, например для нахождения собственных чисел (eigen-
vals) и собственных векторов (eigenvecs), как показано на рис. 5.27 и 5.28.
Разложение в ряд Тэйлора вблизи точки х1 =0, у1=1
е
series,xl = 0,yl = 1,2 -» ехр(1) + exp(l)xl + exp(l)(yl - 1)
2 - число членов ряда
е
series,х1 = 0 ,yl = 1,2
д л -> 2.718x1 + 2.718 yl
float,4 7
е
2
1 1* 2
_.у1
<<. ... ...
Press Fl for help
J NUM page?
<
Рис. 5.25. Разложение выражения в ряд Тейлора
2 5 2 5
х +у substitute ,х = z + 1 ,у х z — 2 —>(z+l) + (z-2)
Использование нескольких операций одновременно
х1 +3
substitute ,xl = (yl + 1) у 12 + 2 у 1 + 4
expand 7 о 7
yl + 4yl + 6yl + 4yl + 1
substitute^ = z + 1 ,y =
factor
z - 2
2
4
3
!;•
complex
solve, z
-3
complex
solve, z
число 9 с десятичной точкой
Press F1 For help
-1
2
-1.5000000000000000000 - 1.5000000000000000000-i
-1.5000000000000000000 + 1.5000000000000000000i
..........
V;
^<,1йо<жЖ|1,АЧ<«м>ждарым.
Рис. 5.26. Использование двухместного знака символьного равенства
Возможность получения символьного решения почти любого матричного выра-
жения является несомненным достоинством Mathcad.
При использовании символьного знака равенства Mathcad учитывает все преды-
дущие присваивания значений константам и переменным и подставляет их в ре-
2
2
— г
i
2
Глава 5. Символьные вычисления
128
зультат символьных вычислений. Если значение не задано, Mathcad окрашивает
данный символ в красный цвет, но символьное выражение вычисляет правильно.
Поэтому лучше использовать величины, которым не присвоены численные значе-
ния. Если это нежелательно, лучше обращаться к командам меню Symbolics, кото-
рые игнорируют все ранее присвоенные численные значения.
Рис. 5.27. Символьные операции с массивами
eigenvals(A) ->
•:MX)vwMW&&tfMw£wvMwwMwwCwww№>№WA4MXMivttvvv&MRtaX«vMiwvw^^
2
NUM iPage 9
вывод отключен.
слишком большое выражение
Рис. 5.28. Символьное определение собственных чисел и собственных векторов матрицы
Использование панели Symbolic 129
Встроенные функции и переменные
Списки встроенных функций, которые используют символьный и численный про-
цессоры, частично пересекаются. Часть встроенных функций, имеющих общепри-
нятое математическое значение, подобно функции sin или log, участвуют в сим-
вольных преобразованиях. Другие функции, например interp или rnd, не имеющие
общепризнанного математического значения, символьным процессором не обра-
батываются. С другой стороны, символьный процессор использует ряд функций,
не вычисляемых численным процессором. Список таких функций можно найти,
обратившись за помощью к Mathcad.
Список встроенных функций, используемых в символьных вычислениях, включа-
ет тригонометрические и гиперболические функции и обратные им, логарифми-
ческие и показательные функции, функции Re и Im вещественной и мнимой частей
комплексного числа, функцию ошибок erf, гамма-функцию Г, функцию вычисле-
ния остатка от деления mod, ступенчатую функцию Хивисайда Ф. функции max и
min, матричные функции identity и eigenvaIs. В целом эти функции трактуются оди-
наково символьным и численным процессорами.
Встроенные константы, имеющие общепринятое математическое значение, сим-
вольным и численным процессорами трактуются одинаково. Символьный процес-
сор распознает константы л, е и w Они сохраняют свой смысл в символьных вы-
числениях.
Встроенные константы, не имеющие общепринятого математического значения,
символьным процессором не распознаются, например, константы TOL и ORIGIN бу-
дут обрабатываться подобно любой неопределенной переменной.
Функции и переменные, задаваемые пользователем самостоятельно, распознают-
ся символьным процессором при указании символьного знака равенства и не рас-
познаются при использовании команд меню Symbolics.
Особенности символьных вычислений
При работе с символьным процессором следует помнить, что:
О многие вычисления могут быть выполнены только численно;
О многие вычисления возвращают такие длинные ответы, что их неудобно ис-
пользовать (такие вычисления лучше выполнять численно).
Большинство уравнений не могут быть решены символьно. Большая часть интег-
ралов, порой выглядящих просто, также не имеют символьного решения, выра-
женного через элементарные функции.
Символьные вычисления могут порождать настолько длинные ответы, что они не
поместятся в рабочем окне. Если ответ состоит из слагаемых, его можно разбить
плюсами на несколько строк.
5 Зак. 882
130
Глава 5. Символьные вычисления
1. Выделите весь ответ черным цветом. Наведите указатель мыши на выделенное
черным выражение и, нажав правую кнопку мыши, перетащите его на свобод-
ное место. Появится копия ответа.
2. Уголком курсора выделите всю часть выражения перед знаком плюс, после ко-
торого будет перенос.
3. Нажмите сочетание клавиш Ctrl+Enter.
4. Удалите лишний знак плюс.
5. Повторите перенос строки столько раз, сколько строк вам нужно.
При решении уравнений через символьный знак равенства процессор может
сообщить о длинном ответе, не предлагая его вывести. При использовании
команды Symbolics ► Variable ► Solve (Символьные вычисления ► Переменная ► Ре-
шить) Mathcad спрашивает, не следует ли ответ поместить в буфер обмена
(рис. 5.29). Если вы ответите OK, Mathcad поместит строку в буфер обмена.
Щелкнув затем на кнопке Paste (Вставить) стандартной панели инструментов,
вы увидите на экране ответ на языке, похожем на FORTRAN. Информацию о
том, как разобраться в подобном ответе, можно найти в Центре документации
Mathcad.
Рис. 5.29. Обработка длинных ответов
Подводя итоги теме символьных вычислений, следует отметить, что в Mathcad
символьные вычисления имеют вспомогательное значение.
О В инженерных расчетах к символьным операциям приходится прибегать до-
вольно редко.
О В ряде случаев вообще не существует символьного результата вычислений.
О Ряд символьных операций проще выполнить вручную, чем обращаться к Mathcad.
Использование панели Symbolic 131
О В справочной системе и в Центре документации сведений о символьных опера-
циях очень мало, как мало и примеров символьных вычислений.
О Выполнение некоторых, даже очевидных, символьных операций вызывает не-
понятное затруднение у символьного процессора Mathcad.
О Mathcad — это инструмент для расчетов. Инструмент должен быть удобным.
В тех случаях, когда выполнение каких-либо операций сложно или неудобно,
а сравнительно быстрое получение результатов расчета невозможно, вряд ли
имеет смысл обращаться к Mathcad.
О Профессиональные математики и ученые, которым приходится часто прибе-
гать к символьным вычислениям, вряд ли обратятся за помощью к Mathcad.
Для них разработаны более мощные пакеты, например Maple и Mathematica.
______Решение
ГЛАВА дифференциальных
уравнений
Дифференциальное уравнение называется обыкновенным (ОДУ), если в него вхо-
дят производные только по одной переменной. В противном случае говорят об урав-
нении в частных производных. Mathcad предоставляет широкие возможности для
решения ОДУ и гораздо меньше возможностей для решения уравнений в частных
производных.
Поскольку решение дифференциальных уравнений состоит в интегрировании,
чтобы обеспечить однозначность решения, необходимо задавать дополнительные
условия для определения постоянных интегрирования.
Mathcad решает ОДУ двух типов:
О задачи Коши — ОДУ с начальными условиями (задаются значения функции
и ее производных в начальной точке интервала интегрирования);
О краевые задачи — ОДУ с граничными условиями (задаются значения функции
и ее производных в начале и в конце интервала интегрирования).
< ) ВНИМАНИЕ Mathcad в состоянии решить только те ОДУ, которые можно записать в стандартном
--------------- виде, то есть решить алгебраически относительно производной высшего порядка и
записать в виде у'(х) = f(x).
Для численного интегрирования одного ОДУ (равно как и системы ОДУ) можно
использовать вычислительный блок Given...Odesolve, введенный впервые в версии
Mathcad 2000 Pro, или встроенные функции, оставшиеся от более ранних версий
Mathcad. Мы рассмотрим оба варианта решения ОДУ.
Вычислительный блок Given...Odesolve
Простота и удобство использования блока Given...Odesolve позволили описать его
уже во вводной части книги (см. раздел «Решение дифференциальных уравнений»
в главе 2). Кратко напомним об этом.
Вычислительный блок Given...Odesolve
133
Применение функции Odesolve требует записи вычислительного блока, в который
входят три части.
О Ключевое слово Given.
О Дифференциальное уравнение и начальные, или граничные, условия к нему.
О Функция Odesolve(x, xk, п), где:
• х — имя переменной, относительно которой решается уравнение;
• xk — конец интервала интегрирования (начало интервала интегрирования
указывается в начальных условиях);
• п — необязательный внутренний параметр, определяющий число шагов ин-
тегрирования, на которых вычисляется решение дифференциального урав-
нения.
Примеры использования функции Odesolve имеются в главе 2, на рис. 6.1 и 6.2, а так-
же на некоторых других рисунках этого раздела.
Given
УСФ = 1
О
' Х‘~У(Х) = x sin(x)
У(0) = 1
у := Odesolve(x,2)
У(х)
d а х
-у(х)
Решение дифференциального уравнения
(для набора штриха в выражении
у'(О) служат клавиши Ctrl+F7)
^у(х) - 2
О
AUTO | sNUM
Press F1for help.
Рис. 6.1. Использование функции Odesolve
у”(0) = -0.5
Уравнение с начальными условиями
Если вид дифференциального уравнения меняется с изменением аргумента (на-
пример, уравнение содержит ступенчатую разрывную функцию), то такое уравне-
ние можно записать с условием, то есть объединить несколько уравнений в одно
уравнение (рис. 6.3).
134 Глава 6. Решение дифференциальных уравнений
Рис. 6.2. Решение уравнения с граничными условиями
Рис. 6.3. Объединение двух дифференциальных уравнений в одно
Mathcad позволяет записать условие несколькими способами:
О с использованием булевых операторов:
а • у "(х) + b • у(х) • х2 • (х < 0) + у(х) • (1 - х) • (х > 0) = с ;
Вычислительный блок Given...Odesolve 135
/
О с использованием функции if:
а • у"(х) + if (х < О,b • у(х) • х2 , у (х) • (1 - х) = с .
С использованием условного оператора программирования if в данном случае за-
писать условие невозможно, так как вертикальной черте (обязательному призна-
ку программирования) должен предшествовать оператор присваивания := (в на-
шем примере — знак + или знак логического равенства =).
В Mathcad все встроенные функции для решения дифференциальных уравнений
требуют записи производной высшего порядка в явном виде. Однако, как показа-
но на рис. 6.1 и 6.2, присутствие коэффициента (постоянного или переменного)
перед производной высшего порядка — не помеха при решении ОДУ. Если урав-
нение есть сложная функция от высшей производной, предварительно надо ре-
шить это уравнение алгебраически относительно высшей производной. На рисун-
ке 6.4 исходное уравнение решено символьно относительно у'(х). Для выполнения
этой операции переменная была выделена, в главном меню выбрана команда Sym-
bolics ► Variable ► Solve (Символьные вычисления ► Переменная ► Решить) и найденный
результат подставлен в дифференциальное уравнение (которое решено с помощью
функции Odesolve).
I 21
Дано уравнение yll - у*(х) J = у(х)
решим уравнение символьно относительно у*(х)
у (1 а2) - a msgMapleSolve
Запишем уравнение
в стандартном виде
и подставим в блок
Given... Odesolve
Рис. 6.4. Приведение дифференциального уравнения к стандартному виду и его решение
136 Глава б. Решение дифференциальных уравнений
В Mathcad 200li возможности функции Odesolve расширены. Теперь эта функция
может решать и системы дифференциальных уравнений. При этом несколько из-
меняется обращение к функции:
О решение одного уравнения:
Odesolve(x. xk, n)
О решение системы дифференциальных уравнений:
Odesolve((eetfrop имен неизвестных), х, xk. п)
На рисунке 6.5 приведено решение системы из трех дифференциальных уравне-
ний первого порядка. Соответственно вектор имен неизвестных содержит имена
трех из них: х, у, z. Граничные условия заданы в точке t = -1. Конечная точка ин-
тервала интегрирования! = 3. Следовательно, интервал интегрирования от -1 до 3.
Конечное значение всегда должно быть больше начального.
Рис. 6.5. Решение системы ОДУ с помощью функции Odesolve
Если график строится для значений, выходящих за пределы интервала интегриро-
вания, Mathcad экстраполирует значения функции за пределы интервала интег-
рирования, получая чаще всего неправдоподобные результаты.
В Mathcad 200li в качестве ограничений функции Odesolve можно указывать ал-
гебраические уравнения, правда, лишь в том случае, если выбран способ решения
истем ОДУ (в контекстном меню функции Odesolve нужно активизиро-
вать команду Stiff) и в расчет включено уравнение Лагранжа (рис. 6.6). Графики
результатов расчета этой жесткой системы уравнений приведены на рис. 6.7. При-
мер взят из Центра документации.
Вычислительный блок Given...Odesolve
137
Фактически в процессе решения блок Odesolve преобразует заданные дифферен-
циальные уравнения к стандартному виду, решает их с помощью функций rkfixed
и Rkadapt (см. раздел «Функции rkfixed, Rkadapt и Bulstoer») и в результате полу-
чает массив значений функции и ее производные.
Рис. б.б. Решение системы ОДУ с алгебраическими ограничениями
Рис. 6.7. Графики решения системы ОДУ с алгебраическими ограничениями
138 Глава 6. Решение дифференциальных уравнений
Далее используются функции интерполяции LspLine и interp, преобразующие мас-
сив решений системы ОДУ в функцию, которую затем можно дифференцировать
или интегрировать. Кстати, необязательный параметр steps в обращении к функ-
ции Odesolve как раз задает число точек интерполяции. Чем больше steps, тем выше
точность интерполяции, но тем больше время решения задачи.
Для решения системы жестких ОДУ используется функция Radau (см. раздел
«Жесткие системы дифференциальных уравнений»).
Как уже упоминалось, при решении системы ОДУ есть возможность выбрать ме-
тод решения. Для этого надо щелкнуть правой кнопкой мыши не имени функции
Odesolve и в открывшемся контекстом меню выбрать команду Fixed (решение с фик-
сированным шагом с помощью функции rkfixed), Adaptive (решение с переменным
шагом с помощью функции Rkadapt) или Stiff (решение жесткой системы ОДУ с по-
мощью функции Radau).
Если граничные условия заданы в разных точках, в начале решения функция
Odesolve приводит задачу с граничными условиями к задаче с начальными услови-
ями, используя для этого функцию sbval (см. раздел «Двухточечные краевые зада-
чи»). Далее решается задача с начальными условиями с помощью функций rkfixed,
Rkadapt или Radau в зависимости от выбранного пользователем метода решения
(Fixed, Adaptive или Stiff).
Таким образом, функция Odesolve объединила в единый блок все основные функ-
ции решения ОДУ, существующие на данный момент.
функции rkfixed, Rkadapt и Bulstoer
Рассмотрим три функции, предназначенные для решения дифференциальных урав-
нений и их систем: rkfixed, Rkadapt, Bulstoer.
Обращение к этим трем функциям выполняется одинаково:
rkf1xed(y, xl, х2. m. D)
Аргументы функции перечислены ниже.
О у — вектор начальных условий размерности п (п — порядок дифференциально-
го уравнения или число уравнений в системе, если решается система диффе-
ренциальных уравнений).
О xl и х2 — граничные точки интервала, на котором ищется решение дифферен-
циального уравнения. Начальные условия, заданные в векторе у, — это значе-
ния решения в точке xl.
От — число точек (не считая начальной), в которых ищется приближенное ре-
шение. При помощи этого аргумента определяется число строк (1 + т) в матри-
це, возвращаемой указанными функциями.
Функции rkfixed и Rkadapt реализуют метод Рунге—Кутта четвертого порядка. Этот
метод не является самым быстродействующим, но почти всегда приводит к иско-
мому результату.
Функция rkfixed ищет решение с постоянным шагом. Функция Rkadapt прове-
ряет, как быстро изменяется приближенное решение, и адаптирует соответствен-
Функции rkfixed, Rkadapt и Bulstoer 139
но шаг решения. Этот адаптивный контроль величины шага дает возможность
функции Rkadapt вычислять значения приближенного решения на более мел-
кой сетке в тех местах, где оно меняется быстро, и на более крупной там, где
оно меняется медленно. Это позволяет повысить точность и сократить время
решения задачи. '
ВНИМАНИЕ Все три функции решают ОДУ и их системы только с начальными, но не с граничными
условиями, в отличие от функции Odesolve, которая решает дифференциальное урав-
нение любого порядка как с начальными, так и с граничными условиями.
Хотя функция Rkadapt при решении дифференциального уравнения использует во
внутренних расчетах переменный шаг, возвращает она приближенное решение на
равномерной сетке (в равноотстоящих точках).
Когда известно, что решение является гладкой функцией, лучше задействовать
функцию Bulstoer, которая вместо метода Рунге-Кутта, как в функциях rkfixed
и Rkadapt, использует метод Булирша—Штера. Найденное функцией Bulstoer ре-
шение является несколько более точным, чем у других функций.
Для решения дифференциальных уравнений или их систем необходимо задать
следующие величины:
О начальные условия;
О число точек, в которых надо найти решение;
О само дифференциальное уравнение (или саму систему), записанное специаль-
ным образом (как будет описано далее).
Дифференциальные уравнения первого порядка
При интегрировании дифференциального уравнения первого порядка появляется
одна произвольная постоянная, поэтому надо задать одно начальное условие уО,
если ORIGIN = 0, или yl, если ORIGIN = 1 (Mathcad ожидает начальные условия в
виде вектора).
Далее нужно ввести функцию двух переменных D(x, у), содержащую вектор пер-
вых производных от неизвестных функций. Для ОДУ первого порядка функция
D(x, у) содержит одну первую производную у'(х).
В примере, представленном на рис. 6.8, было просто разрешить уравнение относи-
тельно первой производной и определить функцию D(x, у). В случае же нелиней-
ного дифференциального уравнения (рис. 6.9) необходимо разрешить его алгебра-
ически относительно высшей производной (в данном случае первой). Это можно
сделать в символьном виде и подставить решение в функцию D(x, у). Далее вызы-
вается функция rkfixed, Rkadapt или Bulstoer, которая возвращает решение уравне-
ния. В результате решения получается матрица, содержащая два столбца:
О координаты х точек, в которых найдено решение;
О значения найденного решения в указанных точках.
Найденное решение можно выводить в виде таблиц или графиков.
140 Глава 6. Решение дифференциальных ураЕнени!Й
ОДУ первого порядка
исходное уравнение
Уо ;= 4 начальное приближение у(0)=4
D(x,y) := -3-у0 первая производная в явномвиде
Z := rkfixed(y,0,4,50,D) решение с фиксированным шагом
Рис. 6.8. Решение дифференциального уравнения первого порядка
Рис. 6.9. Решение дифференциального уравнения с переменным шагом
ВНИМАНИЕ Функции rkfixed, Rkadapt и Bulstoer возвращают матрицы, а не функции, поэтому ин-
тегрирование и дифференцирование найденного решения стандартными методами
Mathcad невозможно. Необходимо использовать функции интерполяции для перехо-
да от матрицы к функции.
Функции rkfixed, Rkadapt и Bulstoer 141
Дифференциальные уравнения порядка
выше первого
Хотя для решения дифференциальных уравнений порядка выше первого лучше
подходит вычислительный блок Given...Odesolve, здесь мы будем рассматривать ре-
шение с использованием функций rkfixed, Rkadapt и Bulstoer.
1. Задайте вектор из п элементов, определяющих начальные условия для иско-
мой функции и ее производных (вектор начальных условий):
у, у’, у", у"', ...у""”
2. Введите функцию D(x, у), которая теперь является вектором, содержащим п эле-
ментов:
D(x,y) =
у(п)(х)
3. Введите выражение, содержащее функцию rkfixed, Rkadapt или Bulstoer.
Рис. 6.10. Решение дифференциального уравнения четвертого порядка
142 Глава 6. Решение дифференциальных уравнений
Рис. 6.11. Результаты решения уравнения, представленного на рис 6.10
В результате решения получается матрица, содержащая п столбцов: в первом содер-
жатся значения аргумента х, а в оставшихся — искомая функция у и ее производные:
у(х),у'(х),у"(х)...у|п|(х)
Пример решения ОДУ четвертого порядка с помощью функций rkfixed, Rkadapt,
Bulstoer показан на рис. 6.10 и 6.11.
Системы дифференциальных уравнений
Методика решения систем дифференциальных уравнений та же, что и одного диф-
ференциального уравнения высокого порядка.
Рассмотрим дифференциальное уравнение порядка п:
УМ = f(x,y{n~'\y(n~2\..y', у).
Выполним следующую замену:
У} (*) = у(х)
Уг(х) = У\х)
• • •
Уп{х) = у(п~'\х)
После замены дифференциальное уравнение может быть представлено в виде си-
стемы дифференциальных уравнений:
Функции rkfixed, Rkadapt и Bulstoer 143
yi(x) = y2(jx}
Уг(х) = у3(х)
Уп(х) = f<x,y(n l\y(n 2)...y',y)
Рис. 6.12. Решение системы ОДУ первого порядка
Заметим, что в приведенных уравнениях содержатся производные только первого
порядка. Преобразовав подобным образом каждое из уравнений, входящее в сис-
тему, получим систему уравнений с большим количеством неизвестных функций,
но с производными только первого порядка.
В результате решения получается матрица, содержащая п столбцов: в первом со-
держатся значения аргумента х в точках, где найдены решения, в оставшихся —
искомые функции и их производные:
у(х),у,(х),у"(х)...у"”(х)
Примеры решения систем ОДУ первого и второго порядка показаны на рис. 6.12
и 6.13. Фактически также решалось дифференциальное уравнение высокого по-
рядка, где функция D(x, у) представляла собой систему уравнений первого поряд-
ка (см. рис. 6.10).
Примеры для самостоятельного решения дифференциальных уравнений и их сис-
тем приведены на рис. 6.14.
144 Глава 6. Решение дифференциальных уравнений
Рис. 6.13. Решение системы ОДУ второго порядка
Решить самостоятельно с помощью функции rkfixed
или Rkadapt с начальными условиями
Ж:
У
y(Cf) =
ln(y)cos(x)
у(2) = 2 у*(2) = 1 /(25 = 1
у*" _ 2-у" + у* = 0 вариируйте граничные условия
Системы ОДУ
d
~X1
dt 1
d
аЛ
d
dt*3
= X
Press Fl forhelp,.
d
—х =
dt
х
d У
—У =-----
dt 2x+3y
'^T v'’' : '
Рис. 6.14. Примеры для самостоятельной работы с ОДУ и их системами
Жесткие системы дифференциальных уравнений 145
Жесткие системы дифференциальных
уравнений
Система дифференциальных уравнений, записанная в матричном виде Y = А * X,
считается жесткой, если матрица коэффициентов почти вырожденная. В этом
случае решение, возвращаемое функцией rkfixed, может быть неустойчивым. При
решении жесткой системы необходимо использовать одну из трех функций, спе-
циально разработанных для решения жестких систем дифференциальных урав-
нений. К ранее существовавшим функциям Stiffb и Stiffr, реализующим соот-
ветственно методы Булирша-Штера и Розенброка, в Mathcad 200li добавилась
функция Radau, реализующая метод RADAU5. Рассмотрим вначале функции Stiffb
и Stiffr.
Вид матрицы, возвращаемой этими функциями, совпадает с возвращаемой функ-
цией rkfixed. Однако функции Stiffr и Stiffb требуют дополнительно задания Яко-
биана системы уравнений.
Обращение к функциям выглядит следующим образом:
St1ffb(y. xl. х2, n, D. J)
St1ffr(y. xl. х2. n. D. J)
Здесь:
О у — вектор начальных условий размерности т, т (порядок ОДУ или число урав-
нений в системе ОДУ);
О xl и х2 — граничные точки интервала, на котором ищется решение системы
ОДУ (начальные условия, заданные вектором у, — это значение решения в точ-
ке xl);
On — число точек (не считая начальной), в которых ищется решение;
О D(xz у) — m-мерный вектор, содержащий первые производные неизвестных функ-
ций;
о J(x, у) — функция, которая возвращает матрицу размером m х (т + 1), первый
столбец ее содержит производные F(t, у) по у, остальные столбцы представля-
ют собой матрицу Якоби системы ОДУ.
Пример решения жесткой системы ОДУ приведен на рис. 6.15.
Обратите внимание, если увеличить число шагов в 1000 раз, то приведенную сис-
тему можно решить с помощью функции rkfixed (рис. 6.16). Причина здесь в том,
что система не слишком жесткая. Если увеличить разницу в коэффициентах урав-
нений, то функция rkfixed потребует гигантского числа шагов и принципиально не
сможет решить систему.
Новая функция Radau, введенная в Mathcad 2001 i, имеет такой же список аргумен-
тов, как и функции Rkadapt и Bulstoer:
Radau(y, xl. х2. D)
Функция Radau предназначена для решения систем жестких ОДУ, как и функции
Stiffr и Stiffb. Преимуществом функции Radau перед функциями Stiffr и Stiffb явля-
ется то, что она не требует указания Якобиана в качестве параметра.
146 Глава 6. Решение дифференциальных уравнений
л
Жесткие ОДУ
F(t,y) := 01 Уо - 100yfy2 - lOOO-yj
уО := О
1000 у
100 yj
-0.1
J(t,y) :=
О
-100 у2 - 1000
-100 У1
01
1000
D := Stiflfb(y0,0,50,50,F,J)
104D<2>
О
АСТГ
Press ₽1 far Щз
50 60
20 30 40
D<°>
О 10
Рис. 6.15. Пример решения жесткой системы ОДУ
Рис. 6.16. Решение жесткой системы ОДУ с помощью функции rkfixed
Жесткие системы дифференциальных уравнений 147
Сравнение результатов расчета жесткой системы ОДУ с помощью функций Rada и
и Stiff г приведено на рис. 6.17. Численные результаты, естественно, совпадают, но
использовать функцию Radau проще.
Рис. 6.17. Решение жесткой системы уравнений с помощью функций Radau и Stiffr
На рисунке 6.18 показано решение той же системы ОДУ, но при использовании
функции Odesolve для решения жесткой (в контекстном меню активизирована ко-
манда Stiff) системы уравнений.
Рис. 6.18. Решение жесткой системы уравнений с помощью функции Odesolve
148 Глава б. Решение дифференциальных уравнений
Нахождение решения
только в конечной точке
Функции для численного решения дифференциальных уравнений, описанные
выше, искали решение у(х) в равноотстоящих точках на отрезке or х1 до х2. Однако
часто возникает задача, когда необходимо найти решение только в конечной точке
интервала у(х2). Рассмотренные функции будут давать такое решение, совершая,
однако, много ненужной работы. Если нужно только значение функции в конце
интервала у(х2), лучше использовать перечисленные далее функции. Каждая из
них соответствует одной из уже упоминавшихся функций и обладает аналогичны-
ми свойствами, но ее имя начинается со строчной буквы.
Обращение к этим функциям выглядит следующим образом:
bulstoer (у. xl. х2. асе. D. kmax. save)
rkadapt (у. xl . х2 . асе . D . kmax. save)
radau (у. Х1. х2. асе, D. kmax. save)
stiffb (у. xl. х2. асе. D. J. kmax. save)
stiffr (у. xl. х2. асе. D. J. kmax. save)
Здесь:
О у — вектор начальных условий размерности п (п — порядок ОДУ или число урав-
нений в системе ОДУ);
О х1 и х2 — граничные точки интервала, на котором ищется решение системы ОДУ
(начальные условия, заданные вектором у, — это значение решения в точке xl);
О асе — параметр, контролирующий качество решения: малое значение асе вы-
нуждает алгоритм брать меньшие шаги вдоль траектории, что увеличивает точ-
ность решения (значения асе, близкие к 0.001, дают хорошую точность);
О D(x, у) — n-мерный вектор, содержащий первые производные неизвестных фун-
кций;
О J (х, у) — функция, которая возвращает матрицу размером п х (п +1), первый
столбец ее содержит производные F(t, у) по у, а остальные столбцы представля-
ют собой матрицу Якоби системы ОДУ;
О kmax — максимальное число промежуточных точек, в которых ищется решение
(значение kmax ограничивает число строк матрицы, возвращаемой функцией);
О save — минимально допустимый интервал между точками, в которых ищется
приближенное решение (он определяет минимальное различие между любыми
двумя числами в первом столбце матрицы, возвращаемой функцией).
Следует отметить, что экономия времени при использовании этих функций неве-
лика (см. пример на рис. 6.17), поэтому применение их вряд ли целесообразно.
Двухточечные краевые задачи
При решении дифференциального ураЕщения первого порядка задается одно гра-
ничное условие, причем обязательно в начале интервала интегрирования. При ре-
шении одного дифференциального уравнения выше первого порядка число гра-
Двухточечные краевые задачи 149
ничных условий должно быть равно порядку уравнения. Эти условия могут быть
заданы в одной точке, причем обязательно в начале интервала интегрирования,
или в двух точках, одна из которых обязательно должна быть началом интервала
интегрирования. Вторая точка может быть любой, но обязательно правее начала
интервала.
Хотя для решения дифференциальных уравнений любого порядка с граничными
условиями лучше всего подходит функция Odesolve, можно использовать и все ос-
тальные рассмотренные функции, включая rkfixed, Rkadapt, Bulstoer и другие. Мож-
но, но сложно. Гораздо сложнее, чем Odesolve.
Допустим, что:
О дана система дифференциальных уравнений или одно дифференциальное урав-
нение порядка п;
О в начальной точке xl интервала, на котором ищется решение, задана часть гра-
ничных условий;
О внутри или в конце интервала в точке х2 заданы недостающие граничные усло-
вия;
О общее количество граничных условий равно п.
В этом случае необходимо использовать функцию sbval, чтобы найти недостаю-
щие граничные условия в точке xl. После этого можно будет решать обычную за-
дачу с начальными условиями (задачу Коши), для решения которой подойдет лю-
бая из описанных ранее функций.
ВНИМАНИЕ Функция sbval не решает дифференциальное уравнение, она только вычисляет недо-
~~~ стающие начальные условия.
Для того чтобы найденные функцией sbval недостающие начальные условия со-
гласовать с граничными условиями во второй точке интервала, используется алго-
ритм стрельбы. Суть его заключается в пробном задании недостающих начальных
условий и решении затем задачи Коши известными методами.
Обращение к функции sbval выглядит следующим образом:
sbval(z. xl. х2, L. load, score)
Ниже перечислены аргументы функции.
О z — вектор начальных приближений для недостающих начальных условий в точ-
ке Х1.
О xl и х2 — точки интервала, в которых заданы граничные условия.
О D(x, у) — функция, содержащая в виде вектора из п элементов первые производ-
ные неизвестных функций.
О load(xl, у) — векторная функция, содержащая значения начальных условий в точ-
ке xl (вектор состоит из п элементов, соответствующих вектору начальных ус-
ловий в точке xl, некоторые из этих элементов являются константами, опре-
деляемыми начальными условиями, другие неизвестны и должны определяться
функцией sbval).
150 Глава 6. Решение дифференциальных уравнений
О score(x2, у) — векторная функция, возвращающая вектор, количество элемен-
тов которого равно порядку уравнения п. Каждый элемент вектора содержит
разность между начальным условием, заданным в точке х2, и значением иско-
мого решения уравнения в этой точке. Вектор score показывает, насколько зна-
чения найденного решения в точке х2 близки к значениям, заданным в точке х2.
Значение 0 для любого элемента указывает на полное совпадение между на-
чальным условием и тем значением, которое возвращается функцией sbval.
В качестве примера решения двухточечной краевой задачи на рис. 6.19 показано
решение дифференциального уравнения упругой линии балки с двумя консолями
(определение прогиба балки). И что же? Программа Mathcad не справилась с по-
ставленной задачей. Ведь все встроенные функции, включая и функцию Odesolve
(см. далее), для решения дифференциальных уравнений требуют обязательно за-
дания одного из двух граничных условий на левом конце балки. Поэтому прогиб
балки на левой консоли определить не удается, и Mathcad определяет прогиб бал-
ки во всех точках, начиная с левой опоры балки (точка А) х = а.
Рис. 6.19. Расчет прогиба балки функциями sbval и rkfixed
Двухточечные краевые задачи 151
На балке три участка, поэтому уравнение изгибающего момента М(х) записано с ис-
пользованием булевых операторов (возможна также запись М(х) с использовани-
ем функции условия if или условного оператора if). Для сравнения на рис. 6.20
показано решение той же задачи с помощью функции Odesolve.
Рис. 6.20. Определение прогиба балки с помощью функции Odesolve
В некоторых случаях бывает, что кроме граничных условий в двух точках задано
условие и в некоторой третьей точке внутри интервала интегрирования. В этом
случае необходимо использовать функцию bvalfit, которая, как и sbval, вычисляет
недостающие начальные условия для последующего решения задачи Коши.
Обращение к функции bvalfit выглядит следующим образом:
bvalf1t(zl. z2. xl. х2, xf. D. loadl. Ioad2. score)
Ниже перечислены аргументы функции.
О zl — вектор, содержащий начальное приближение для начальных условий,
не заданных в точке xl.
О z2 — то же самое для граничных условий, не заданных в точке х2.
О xl и х2 — точки интервала, где заданы граничные условия.
О xf — некоторая точка между xl и х2. В этой точке решения, начинающиеся в точ-
ках xl и х2, должны быть равны.
О D(x, у) — функция, содержащая в виде вектора первые производные неизвест-
ных функций.
О load(xl, у) — векторная функция, содержащая значения начальных условий в
точке xl (вектор состоит из п элементов, соответствующих вектору начальных
152 Глава 6. Решение дифференциальных уравнений
условий в точке xl, некоторые из этих элементов являются константами, опре-
деляемыми начальными условиями, другие неизвестны и должны определять-
ся функцией bvalfit).
О Ioad2(x2, z2) — аналогично функции load 1, но для значений в точке х2.
О score(xf, у) — векторная функция, возвращающая вектор из п элементов, кото-
рый определяет, насколько значения решений, начинающихся из точек xl и х2,
соответствуют друг другу в точке xf. Если необходимо, чтобы решения совпали,
определите score(xf, у) = у.
Функцию bvalfit нужно использовать, когда производные имеют разрыв где-либо
на интервале поиска решения. Пример использования функции bvalfit приведен
на рис. 6.21, результаты расчета показаны на рис. 6.22. Для дифференциального
уравнения второго порядка с разрывной правой частью d в точке xf = 0 с помощью
функции bvalfit найдены недостающие граничные условия в точках xl и х2. Далее
с помощью функции rkfixed решено уравнение для х < 0.
Дифференциальное уравнение с разрывной правой частью
при х<0
краевые условия
D(x,y) =
Zlo > 1
при х>0
у(1) = 2
xf := 0 точка стыковки двух
кусков решения
стартовые значения
для поиска
величин
loadl(xl ,zl) :=
zl
yV)
стартовое значение
yX-i)
У(1)
стартовое значение
УХО
score(xf,y) := у условие, приводящее к стыковке
решений в точке x=xf
S := bvalfit(zl ,z2,-l ,1,0,D,loadl ,load2, score)
S = (0.092 -0.678) содержит y*(-l) и y*(l)
Press Fl "oi help
• . л-
А1ЛО 12
0
Рис. 6.21. Краевая задача с граничным условием в промежуточной точке
Решение этого уравнения в точке xf использовано в качестве начальных условий
для решения этого же уравнения при х > 0.
Обратите внимание, как это же уравнение решает функция Odesolve с использова-
нием булевых операторов для записи правой части уравнения или функции уело-
Дифференциальные уравнения в частных производных 153
вия if (см. рис 6.22). Условный оператор if в данном случае неприменим, так как
перед вертикальной чертой, указывающей на ввод программы, должен стоять опе-
ратор присваивания значения (:=), а не логический знак равенства (=).
Решение двух дифференциальных уравнений
с известными начальными условиями
¥1 := rkfixed
S,
¥2 := rkfixed
V yi
ЧОД
Y1
,-l,0,10,D
,0,l,10,D
Решение с помощью функции Odesolve
у*(х) - if(x< 0,у(х), у(х)) Поменяйте местами
Given /(х) = у(х) (х < 0) - у(х) (х > СГ) эти 2 уравнения
y(l) = 2
у := Odesolve(x,l) х = -1 ,-0.9.. 1
Решение уравнения с использованием функций
Рис. 6.22. Решение уравнения (рис. 6.21) функцией Odesolve
bvalfit и rkfixed
A~ ЙЖ .........У
На том же рис. 6.22 выведены графики решения дифференциального уравнения с по
мощью функции Odesolve и функций bvalfit и rkfixed. Оба графика полностью совп;
дают, только функция Odesolve возвращает функцию, а функция rkfixed — массив
Дифференциальные уравнения
в частных производных
Дифференциальные уравнения в частных производных требуют нахождения фун-
кции не одной, а нескольких переменных. Mathcad имеет очень ограниченные воз-
можности для решения таких уравнений. С помощью двух встроенных функций
multi grid и relax можно решить простейшие случаи уравнения Пуассона:
154 Глава 6. Решение дифференциальных уравнений
d2F(x,y) ! d2F(x,y)
дх2 by2
= -р(х,у).
Это уравнение очень часто используется в технике, например для описания полей
напряжений и деформаций в плоской задаче теории упругости, в задачах тепло-
проводности, гидроаэродинамики, электростатики.
В Mathcad для численного решения уравнения Пуассона используется метод ко-
нечных разностей. Уравнение Пуассона на квадратной области представляется в виде
aj.k“j+\.k + bj,kuj-\.k + cj,k“j,k+i + dj,kuj,k-\ + ej,k“j,k - fjjr
Численное решение ищется в Mathcad только на квадратной области, состоящей
из (n + 1) х (n + 1) точек. Поэтому граничные условия должны быть определены
пользователем для всех четырех сторон квадрата. Самый простой (и наиболее ча-
сто используемый) вариант — нулевые граничные условия. В таком случае можно
использовать функцию multigrid.
Обращение к функции выглядит следующим образом:
multigrid(M. ncycle)
Здесь:
О М — квадратная матрица размером 1 + 2п, которая содержит значения правой
части уравнения Пуассона в соответствующей точке квадратной области;
О Ncycle — число циклов на каждом уровне итерации функции multi grid (хорошую
аппроксимацию решения обычно дает значение 2).
Пример использования функции multigrid приведен на рис. 6.23.
Если граничные условия по сторонам квадрата ненулевые, необходимо использо-
вать функцию relax.
Обращение к функции выглядит следующим образом:
relax(a, b. с. d, е. f, u. rjac)
Ниже перечислены аргументы функции.
О а, Ь, с, d, е — квадратные матрицы одинакового размера, содержащие коэффи-
циенты аппроксимирующего уравнения.
Of— квадратная матрица, содержащая значения правой части уравнения в каж-
дой точке области, где ищется решение.
Ou — квадратная матрица, содержащая граничные значения решения на грани-
цах квадратной области и начальное приближение для решения внутри области.
О rjac — спектральный радиус итераций Якоби. Это число между 0 и 1, которое
управляет сходимостью процесса релаксации.
Использование этой функции relax требует глубокого знания метода конечных
разностей для составления указанных матриц. Не будем останавливаться на этой
функции, решающей лишь частный случай уравнения Пуассона. В части IV книги
с помощью значительно более мощного метода конечных элементов приводится
пример решения уравнения Пуассона при кручении стержней произвольного по-
перечного сечения (пример 15). Этот пример может быть полезен и в других при-
ложениях уравнения Пуассона.
Дифференциальные уравнения в частных производных 155
Решение уравнения Пуассона
n:=32 М := 0 Задание нулевых граничных условий
и начального приближения во всех узлах
Мд д := -10 М25 12 := 20 М25 := “20 Три точечных источника
i:=l..n j:=l..n М. . :=-1 Значения правой части уравнения
,J Пуассона постоянны во всех точках
Поменяйте местами 2 предыдущие строки
F := multigrid(M,2)
•' /. г
5
,ф
•ж
i:
!
ММАААМАМЫЫММЫММММММММЫМЫЫ
Ж?
£
Рис. 6.23. Решение уравнения Пуассона с постоянной правой частью
Завершая рассмотрение темы решения дифференциальных уравнений, отметим,
что универсальная функция Odesolve, включившая в свой алгоритм решения ОДУ
алгоритмы всех созданных ранее функций плюс алгоритмы функций интерполя-
ции, одна может справиться с любой из рассмотренных в этой главе задач. Просто-
та использования этой функции в сочетании с огромными возможностями восхи-
щает.
_______Обработка
) ГЛАВА экспериментальных
данных
При обработке экспериментальных данных, как правило, возникает задача ап-
проксимации результатов эксперимента аналитической зависимостью у = /(х),
которую можно использовать в последующих расчетах.
Существуют три возможности аппроксимации опытных данных.
О Аппроксимирующая функция f(x) должна пройти через все опытные точки.
Такой способ аппроксимации называется интерполяцией.
О Аппроксимирующая функция должна сглаживать (усреднять) опытные
данные. Такой способ аппроксимации называется регрессией, или сглажива-
нием.
О Аппроксимирующая функция должна отбрасывать систематическую погреш-
ность (так называемые шумы, наложившиеся на экспериментальные данные).
Такой способ называется сглаживанием с фильтрацией данных.
Рассмотрим поочередно все три способа аппроксимации данных.
Интерполяция
Встроенные функции Mathcad позволяют при интерполяции проводить через эк-
спериментальные точки кривые разной степени гладкости.
Линейная интерполяция
При линейной интерполяции аппроксимирующая функция соединяет опытные
точки отрезками прямых линий. Для линейной интерполяции используется встро-
енная функция linterp.
Обращение к функции:
linterp(x. у, t)
Интерполяция 157
Здесь:
О х — вектор опытных значений аргумента;
О у — вектор опытных значений функции;
О t — значение аргумента, при котором вычисляется интерполирующее значение
функции.
Иногда достаточно знать одно интерполирующее, значение функции, но чаще оп-
ределяется ряд значений функции, тогда t — вектор значений, а результат расче-
та — массив интерполирующих значений. Еще чаще t — просто перемецная (аргу-
мент интерполирующей функции), тогда результат расчета — функция, которую
можно далее интегрировать, дифференцировать и т. д. Примеры линейной интер-
поляции показаны на рис. 7.1. Исходный массив данных У на этом рисунке создан
генератором случайных чисел rnd, о котором рассказано в следующей главе, а ко-
ординаты X равноотстоят друг от друга, хотя это не обязательно.
Рис. 7.1. Линейная интерполяция экспериментальных данных
ВНИМАНИЕ
Для всех встроенных функций в этой главе в массиве опытных данных элементы век-
тора X должны быть обязательно расположены в порядке возрастания.
158 Глава 7. Обработка экспериментальных данных
Кубическая сплайн-интерполяция
В большинстве случаев желательно соединять экспериментальные точки не лома-
ной линией, а гладкой кривой, для чего используется сплайн-интерполяция. Ку-
бическая сплайн-интерполяция позволяет провести кривую через набор точек та-
ким образом, что первые и вторые производные кривой будут непрерывны в каждой
точке. Эта кривая образуется путем создания ряда кубических полиномов, прохо-
дящих через наборы из трех соседних точек. Кубические полиномы затем состы-
ковываются друг с другом так, чтобы образовать единую кривую.
Для кубической сплайн-интерполяции используется встроенная функция interp.
Обращение к функции:
interp(vs, X. Y. t)
Здесь:
О vs — вектор вторых производных, созданный функцией Ispline(X, Y), pspline(X, Y)
или cspline(X, Y);
О X — вектор опытных значений аргумента, расположенных в порядке возрастания;
О Y — вектор опытных значений функции;
О t — значение аргумента, при котором вычисляется интерполирующее значение
функции.
Сплайн-интерполяция реализована в Mathcad несколько сложнее, чем линейная.
Перед применением функции interp необходимо определить первый из ее аргу-
ментов — вектор vs. Делается это при помощи одной из трех встроенных функций
тех же аргументов (X и Y):
О LspLine(X, Y) — создает вектор коэффициентов кривой, которая приближается
к прямой линии в граничных точках;
О pspli ne(X, Y) — создает вектор коэффициентов кривой, которая приближается
к квадратичной параболе в граничных точках;
О cspline(X, Y) — создает вектор коэффициентов кривой, которая приближается
к кубической параболе в граничных точках.
Выбор конкретной функции сплайн-коэффициентов влияет на интерполяцию
вблизи конечных точек интервала. Использование двух функций для интерполя-
ции можно совместить, записав, например, interp(cspline(X, Y), X, Y, t). Примеры ку-
бической сплайн-интерполяции показаны на рис. 7.2.
В-сплайн-интерполяция
В-сплайн-интерполяция отличается от обычной сплайн-интерполяции тем, что
сшивка отдельных отрезков (сплайнов) производится не в точках Xi, а в точках,
координаты которых задаются пользователем. Применяется интерполяция В-сплай-
нами так же, как и обычная сплайн-интерполяция, но для определения сплайн-
коэффициентов применяется функция bspline.
Обращение к функции:
bspl1ne(X. Y. XX. п)
Интерполяция 159
Здесь:
О X — вектор опытных значений аргумента, расположенных в порядке возраста-
ния;
О Y — вектор опытных значений функции;
О XX — вектор значений аргумента, при которых вычисляются интерполирующие
значения функции;
О п ~ порядок полиномов сплайн-интерполяции (1,2 или 3).
Рис. 7.2. Кубическая сплайн-интерполяция массива Y, приведенного на рис. 7.1
Размерность вектора XX должна быть на п - 1 меньше, чем размерность вектора X.
Первый элемент вектора XX должен быть меньше первого элемента вектора X или
равен ему. Последний элемент вектора XX должен быть больше последнего элемен-
та X или равен ему.
Наложенные на вектор XX ограничения делают крайне неудобным использование
В-сплайн-интерполяции, так как пользователь лишается возможности свободного
выбора точек сшивки полиномов. К тому же по непонятным причинам функция
bspline отказывается интерполировать некоторые наборы данных, а в Центре доку-
ментации Mathcad соответствующие примеры отсутствуют. Пример использова-
ния функции bspline приведен на рис. 7.3.
Все описанные функции интерполяции не допускают присутствия в наборе дан-
ных двух и более значений функции при одном и том же значении аргумента, что
160 Глава 7. Обработка экспериментальных данных
на практике встречается весьма часто. Более того, если два соседних значения ар-
гумента близки, все функции интерполяции дают всплеск на графике в этом месте
(рис. 7.4). Чтобы убрать всплеск, раздвиньте близлежащие точки.
Интерполяция В-сплайнами
пп := 2 поменяйте порядок полиномов 1.2 или 3
nun := n - (nn - 1) j := 0.. пип пип = 9 п = 10
аргументы точек соединения
полиномов интерполяции
YY(t) := interp(bspline(X,Y,XX,2),X,Y,t)
Рис. 7.3. В-сплайн-интерполяция массива Y, приведенного на рис. 7.1
Линейное предсказание
Кроме интерполяции в промежуточных точках, иногда нужно оценить значения
функции за пределами области заданных точек. Все рассмотренные ранее функ-
ции интерполяции осуществляют экстраполяцию данных за пределами интервала
заданных точек с помощью соответствующей зависимости, основанной на анализе
расположения нескольких исходных точек на границе интервала данных. Но
в Mathcad имеется и специальная функция предсказания predict.
Обращение к функции:
predict(Y. m. n)
Здесь:
О Y — вектор заданных значений функции, обязательно взятых через равные ин-
тервалы аргумента;
От— число последовательных значений Y, на основании которых функция predict
возвращает п предсказанных значений Y.
Интерполяция 161
Влияние близких точек на сплайн-интерполяцию
ХТ = (0 1 2 3 4 5 6 7 8 9 10)
пусть X, = 5 X, := 5.1
5 6
Две точки близки - на графиках всплеск.
Увеличьте расстояние между точками
Ycsn(t) := interp(cspline(X,Y) ,X,Y,t)
YY(t) := interp(bspline(X,Y,XX,2),X,Y,t)
Рис. 7.4. Влияние близких точек на результат интерполяции массива Y, приведенного на рис. 7.1
Функция предсказания
Задан массив из пп точек
пп := 50
i:=0..nn у. :=10 е ^’^^sin(0 2-i)
предсказать значения еще п точек
6 Зак 882
т:=30 п:=100 ур := predict(y,m,n) k:=0.. п
Рис. 7.5. Функция предсказания в Mathcad
162 Глава 7. Обработка экспериментальных данных
Значений аргумента для данных не требуется, поскольку по определению функ-
ция действует на данные, идущие друг за другом с одинаковым шагом. Обратите
внимание на то, что результат, возвращаемый функцией predict, надо вставлять
«в хвост» исходных данных.
Функция predict использует линейный алгоритм предсказания, который точен,
когда экстраполируется функция гладкая и осциллирующая, хотя необязательно
периодическая.
В алгоритме используются последние m исходных значений данных, чтобы вычис-
лить коэффициенты предсказания. Как только это сделано, с помощью последних
m точек предсказываются координаты (т + 1)-й точки, что фактически означает
создание скользящего окна шириной в m точек.
Как видно из рис. 7.5, функция предсказания может быть полезной при экстрапо-
ляции данных на небольшие расстояния. Вдали от исходных данных результат чаще
всего оказывается неудовлетворительным. Аналогичная ситуация имеет место при
недостатке исходных данных.
Интерполяция функции двух переменных
Mathcad выполняет интерполяцию кубическими сплайнами функции двух пере-
менных таким же образом, как и функции одной переменной, рассмотренной ра-
нее. Mathcad проводит через сетку узлов поверхность, составленную из кубичес-
ких полиномов от х и у, так, что первые и вторые частные производные являются
непрерывными в каждом узле сетки.
В качестве первого шага в двухмерной сплайн-интерполяции (как и одномерной)
нужно определить узлы, через которые должна пройти поверхность.
1. Создайте матрицу XY размерностью п х 2, элементы которой определяют коор-
динаты х и у по диагонали прямоугольной сетки. Таким образом число узлов по
осям координат х и у обязательно должно быть одинаковым, что резко огра-
ничивает возможности двухмерной интерполяции или заставляет прибегать
к специальным приемам, чтобы привести неквадратную область к квадратной.
2. Введите матрицу Z размерностью п х п, каждый элемент которой — заданное
значение функции в соответствующем узле.
3. Вычислите вектор вторых производных cspline(X, Z) функции Z в узлах.
4. Чтобы найти интерполируемое значение функции Z в произвольной точке, ска-
жем, в точке с координатами хО и уО, используйте функцию interp:
Z0 := interp(cspline(XY, Z), XY, Z,
На практике приходится вычислять интерполируемые значения функции сразу
во всех узлах сетки. Для этого Z записывается как функция от х и у и с помощью
функции CreateMech создается массив точек для графика поверхности:
хО
уО
ZZ(x, у) := interp(cspline(XY,Z),XY,Z,
Z1 := CreateMec^ZZ^I.xZ.ylyZ.nx^y)
Интерполяция 163
В обращении к функции CreateMech обязательным является только параметр
ZZ, остальные можно опустить. Здесь xl, х2, yl, у2 — нижний и верхний пределы
аргументов х и у (по умолчанию от -5 до 5); пх и пу — число точек сетки по
переменным х и у (по умолчанию 20). Примеры двухмерной интерполяции при-
ведены на рис. 7.6 (см. также пример 15 в части IV). О функции CreateMech рас-
сказывается в главе 15.
Двухмерная интерполяция
п := 5 i:=0.. n j:=0„ п
ZZ(x,y) := interp cspline(XY ,Z) ,XY,Z,
| sin(ccj) • cosfp j) |
I— 71 71
ZZ ,0 ,ti , —, — ,30,30
2 2
поменяйте местами
два выражения Z1
Z1 := CreateMesh(ZZ)
J Объем, ограниченный поверхностью
i
Press Fl tor help.
....... . . ,. i. ....... ..______
Рис. 7.6. Двухмерная интерполяция массива данных
Для двухмерной интерполяции векторы значений координат по осям х и у должны
иметь одинаковый размер, то есть интерполяция выполняется только на квад-
ратной поверхности. Однако это требование можно обойти двумя путями.
О Перед вычислением значений функции на неквадратной плоскости можно об-
нулить массив значений функции на квадратной поверхности, большей, чем
заданная неквадратная. После этого остается вычислить значения функции на
заданной поверхности и построить график поверхности (рис. 7.7). В результате
поверхность появится лишь над частью квадратной плоскости.
О Можно двойным щелчком мыши открыть окно форматирования графика,
и, перейдя на вкладку QuickPlot Data (Параметры быстрого построения), установить
требуемые пределы координат хи у (рис. 7.8). Так можно изменить вид поверх-
164 Глава 7. Обработка экспериментальных данных
ности до интерполяции и после интерполяции, вписав соответствующее имя
функции. При использовании функции CreateMech требуемые пределы коорди-
нат х и у надо указать в качестве параметров функции.
Рис. 7.7. Двухмерная интерполяция на неквадратной области
Рис. 7.8. Установка предельных значений координат неквадратной области
Функции регрессии 165
На рисунке 7.7 поверхность Z1 (справа) — график массива, созданного функцией
CreateMech, после двухмерной интерполяции массива Z (см. рис. 7.6). Поверхность
ZZ построена непосредственно после интерполяции с помощью вкладки QuickPlot
Data окна форматирования графика (см. рис. 7.8). Попробуйте поменять размеры
неквадратной области.
Функции регрессии
В Mathcad включен ряд функций для вычисления регрессии. Эти функции созда-
ют кривые или поверхности определенного типа с минимальным отклонением от
имеющегося набора данных. Функции различаются прежде всего типом кривой
или поверхности, которую они используют, чтобы аппроксимировать данные.
В отличие от функций интерполяции эти функции не требуют, чтобы аппрокси-
мирующая кривая или поверхность проходила через точки данных.
Некоторые функции регрессии возвращают коэффициенты аналитической
функции и позволяют записать аппроксимирующую функцию в явном виде. Эти
функции описаны в главе 2 первой части книги и в данной главе не рассматри-
ваются.
Ряд функций регрессии не позволяет получить аппроксимирующую функцию в яв-
ном виде. Они возвращают лишь численные результаты в виде таблиц или графи-
ков. Две из них, которые не выводят коэффициентов и аппроксимируют массив
данных одним степенным полиномом (regress) или отрезками нескольких полино-
мов (loess), рассматриваются в главе 2.
В Mathcad регрессия с использованием одного полинома реализуется комбинаци-
ей встроенных функций регрессии regress и интерполяции interp.
Обращение к функциям:
InterpCs. х. у. t)
regressCx. у. п)
Здесь:
О х — вектор значений аргумента, элементы которого расположены в порядке воз-
растания;
О у — вектор значений функции того же размера;
Os— вектор коэффициентов для построения аппроксимирующего полинома, соз-
даваемый функцией regress;
О t — значение аргумента, при котором вычисляется интерполирующая функция;
On — степень аппроксимирующего полинома.
Степень аппроксимирующего полинома может быть любой.
Примеры вызова функций regress и interp:
s := regressCX. Y. n)
YYCt) := InterpCs. X. Y. t)
YY(t) := InterpCregressCX. Y, n). X. Y. t)
166 Глава 7. Обработка экспериментальных данных
Регрессия с использованием нескольких отрезков полинома также реализуется
комбинацией встроенных функций регрессии и интерполяции:
interpCs. х. у. t)
loess(x. у, span)
Здесь:
О s := loess(X, Y, span) — вектор коэффициентов для построения аппроксимирую-
щего полинома второй степени, требуемый функцией interp;
О span > 0 — параметр, определяющий размер отрезков полиномов.
Параметр span задает степень сглаженности данных, определяя размер отрезков поли-
номов, из которых сшивается аппроксимирующая кривая. На практике 0.2 < span < 2.
При span = 2 результат аппроксимации тот же, что при аппроксимации одной па-
раболой. При span =0.2 аппроксимирующая кривая почти точно описывает любой
набор данных.
Примеры использования функций regress и loess приведены в главе 2 и на рис. 7.9.
Рис. 7.9. Функции регрессии, не дающие аналитического выражения
Двухмерная регрессия
Функции регрессии допускают многомерную регрессию. Пример двухмерной ре-
грессии приведен на рис. 7.10 и 7.11. В этом случае массив XY координат точек х
становится двухмерным массивом, состоящим из двух столбцов: первый столбец —
координаты по оси х, второй — координаты по оси у.
Функции регрессии 167
Рис. 7.10. Исходные массивы и их перестройка для двухмерной регрессии
ВНИМАНИЕ
При двухмерной интерполяции массив координат точек XY содержит координаты то-
чек диагонали квадратной области. Например, для массива точек 4x4 вводятся коор-
динаты лишь 4 точек. Координаты остальных точек определяются автоматически. При
двухмерной регрессии массив координат точек XY содержит координаты всех точек
прямоугольной области (не обязательно квадратной), записанные по столбцам. На-
пример, для массива точек 4x5 вводятся координаты всех 20 точек.
Массив значений функции Z во всех точках прямоугольной области вводится по
столбцам. Число строк вектора Z равно числу строк массива XY.
Двухмерная интерполяция производится функцией regress(XY, 4 N)wiHloess(XY, 4 span).
Здесь N — порядок аппроксимирующего полинома, a span определяет размер отрез-
ков полиномов, как и при одномерной регрессии.
Mathcad допускает многомерную интерполяцию. Можно увеличивать число неза-
висимых переменных, просто добавляя сначала столбцы в массив XY, а затем соот-
ветствующее число строк к вектору Z, которые передаются функции interp. Функ-
ция regress может иметь любое число независимых переменных, но при большом
числе переменных она будет работать слишком медленно и требовать много памя-
ти. Функция loess допускает максимум 4 независимые переменные.
Для функции regress число значений данных m должно удовлетворять соотношению
n + k-1 n+k
k n
Здесь n — число независимых переменных (число столбцов XY), к — желаемая сте-
пень полинома, m — число значений данных (число строк в массиве XY). Напри-
168 Глава 7. Обработка экспериментальных данных
мер, если имеется 5 независимых переменных и ищется приближение полиномом
4-й степени, потребуется более чем 126 наблюдений.
Рис. 7.11. Результаты двухмерной интерполяции массива, приведенного на рис. 7.10
Обобщенная регрессия
Бывают случаи, когда закон изменения функции известен и требуется подобрать
лишь коэффициенты этой функции, однако сама аппроксимирующая зависимость
такова, что использовать функции специальной регрессии невозможно. В этом
случае Mathcad предлагает две функции регрессии общего вида: Unfit и genfit.
Если предполагаемая зависимость представляет собой линейную комбинацию не-
которых функций у = я0 • /0(х) + а\ ' fi(x) + ••• + ап ' fAx) и надо •пишь подобрать
коэффициенты этих функций, то используется функция Unfit, например, пусть
имеется функция:
/(х) = ai • sin(2x) + а2 cos(3x).
Функции регрессии 169
Для этой функции функция linfit(x, у, F) возвращает вектор, содержащий набор
коэффициентов при функциях / (х) . Здесь у(х) — вектор заданных значений фун-
кции при значениях аргумента, содержащихся в векторе х; F — вектор функций,
входящих в линейную комбинацию у(х).
Для произвольной функции с неизвестными коэффициентами надо использовать
функцию genfit, например, пусть имеется функция:
Для этой функции функция genfit(x, у, С, F) возвращает вектор, содержащий п па-
раметров, наилучшим образом аппроксимирующих данные из векторов х и у за-
данных функцией У(х). Здесь F(x) — функция, которая возвращает п + 1-мерный
вектор, содержащий функцию /(х) и ее частные производные относительно неиз-
вестных параметров; С — п-мерный вектор начальных значений для п неизвестных
параметров.
Примеры применения функций Unfit и genfit приведены на рис. 7.12-7.14.
Рис. 7.12. Регрессия данных функцией Unfit
170 Глава 7. Обработка экспериментальных данных
Нелинейная регрессия общего вида
Цхх,а,Ь,с) := a-sin(bxx + с) предлагаемая функция
символьное вычисление производных
—f(xx,a,b,c) —> sin(b-xx + с)
da
—f(xx,a,b,c) -> acos(bxx + c)
de
—f(xx,a,b,c) -> acos(bxx + c)xx
db
<100>
1
<0.2 >
начальные
b приближения
c
FF(xx,k) :=
sin
XX
предлагаемая функция
ее производная по а
ее производная по b
ее производная по с
К
Press
Рис. 7.13. Нелинейная регрессия данных с помощью функции genfit
Рис. 7.14. Нелинейная регрессия данных с помощью функции genfit (продолжение)
Функции сглаживания 171
Функции сглаживания
В процессе сглаживания из исходного набора данных получается новый набор дан-
ных, более гладкий, чем исходный.
СОВЕТ Убедитесь, что каждый элемент в векторе исходных данных определен. Mathcad при-
сваивает значение 0 любым элементам, значения которых не определены.
Mathcad предлагает три встроенные функции сглаживания.
О medsmooth(y, п) возвращает m-мерный вектор, созданный сглаживанием мето-
дом скользящей медианы. Здесь:
• у — m-мерный вектор вещественных чисел;
• п — ширина окна, по которому происходит сглаживание (п должно быть не-
четным числом, меньшим или равным числу элементов вектора у).
О ksmooth(x, у, Ь) возвращает n-мерный вектор. Здесь:
• х и у — n-мерные векторы, причем вектор у создан сглаживанием при помо-
щи гауссова ядра данных из х;
• b — параметр, управляющий окном сглаживания, который должен быть в не-
сколько раз больше величины интервала между точками х (чем больше Ь,
тем больше окно, используемое при сглаживании).
О supsmooth(x, у) возвращает n-мерный вектор, созданный локальным использо-
ванием симметричной линейной процедуры сглаживания методом наименьших
квадратов по правилу k-ближайших соседей, в которой к выбирается адаптив-
но. Здесь х и у — n-мерные векторы исходных данных. Элементы х должны быть
расположены в порядке возрастания.
Функция medsmooth наиболее устойчивая из этих трех функций, так как в мень-
шей степени подвержена влиянию на данные шума.
Функция ksmooth использует гауссово ядро, чтобы вычислить локально взвешен-
ные средние значения исходного вектора у. Такое сглаживание наиболее полезно,
когда интервалы между точками данных примерно одинаковы.
Функция supsmooth полезна, если длина интервалов существенно изменяется. Эта
функция адаптивно выбирает различную ширину полосы сглаживания для раз-
личных частей вектора данных.
Примеры использования всех трех функций сглаживания приведены на рис. 7.15.
Массив исходных данных в данном примере получен путем наложения на синусо-
иду случайно выбранного числа, созданного генератором случайных чисел rnd (с).
Случайно выбранные числа будут лежать в интервале от 0 до с. Более подробно о
генераторах случайных чисел рассказано в главе 8, посвященной математической
статистике.
В отличие от регрессии и интерполяции функции сглаживания возвращают мас-
сив, а не функцию. Для получения функции после сглаживания необходимо ис-
пользовать интерполяцию или регрессию (рис. 7.16).
172 Глава 7. Обработка экспериментальных данных
iiintiniiniwnnaawwirГ1Ы<лллапги>л«1Ы>«п>пгnt**rfifWWM*iWMWWW<afli¥innnnnMairmartftiiMnnf fnaaninifiBoimnin-M-r virnni^w^^.-r-----»-'>v\^wwww-" гм л rr~№^in'n--*>vvsAA*vwinftririnftf^i,r i’iXWI мх»1 <
Функции сглаживания Л
i := 0.. 30 xl- := i 0.5 zL .= sin^xlj + md(l)rioменяйте число в функции rnd
sup := supsmooth(xl ,zl) med := medsmooth(zl ,31) ksm := ksmooth(xl ,zl ,1)
Рис. 7.15. Сглаживание данных с созданием массива значений
Рис. 7.16. Сглаживание данных с созданием функции
Дискретные преобразования 173
Дискретные преобразования
Mathcad содержит функции для быстрого дискретного преобразования Фурье
(БПФ) и его обращения, а также для одномерного волнового преобразования и
его обращения. Все эти функции имеют векторные аргументы.
Преобразование Фурье
В Mathcad входят два типа функций для дискретного преобразования Фурье: fft
и ifft, cfft и icfft. Эти функции дискретны: они получают в качестве аргументов и воз-
вращают векторы и матрицы. Их нельзя использовать с другими функциями.
Применяйте функции fft и ifft, если выполнены следующие два условия:
О аргументы вещественные;
О вектор данных имеет 2т элементов.
Во всех остальных случаях используйте функции cfft и icfft.
Первое условие необходимо, потому что для вещественных данных вторая поло-
вина преобразования Фурье является комплексно-сопряженной с первой. Mathcad
отбрасывает вторую половину вектора результата, что сохраняет время и память
при вычислениях. Паре функций cfft и icfft не требуется симметрия в преобразова-
нии, и они могут использоваться для вещественных и комплексных чисел.
Второе условие требуется, потому что для пары функций fft и ifft задействуется
высоко эффективный алгоритм быстрого преобразования Фурье. Для этого век-
тор аргумента, используемого функцией fft, должен иметь 2™ элементов. Алгоритм
функций cfft и icfft допускает в качестве аргументов векторы и матрицы произ-
вольного размера. Двухмерное преобразование Фурье выполняется только с по-
мощью этих функций.
Существуют различные формулировки определения преобразования Фурье с раз-
личными нормировочными коэффициентами и соглашениями о знаке перед мни-
мой единицей в показателе экспоненты прямого и обратного преобразований.
Функции fft, ifft, cfft, icfft используют нормировочный коэффициент 1/4п и поло-
жительный показатель степени в прямом преобразовании. Функции FFT, IFFT, CFFT,
ICFFT используют нормировочный коэффициент \./п и отрицательный показатель
степени в прямом преобразовании.
ВНИМАНИЕ
Аргумент х не относится к параметрам встроенных функций, так как по умолчанию
берется через равные интервалы в возрастающем порядке.
Перечислим функции дискретного преобразования Фурье.
О fft(у) возвращает коэффициенты ряда Фурье вектора у, содержащего 2ОТ элемен-
тов. Результат — комплекснозначный вектор размерности 1 + 2'"-1. Элементы
вектора коэффициентов, возвращаемого fft, вычисляются по формуле:
4 w-l
Cj = 4= X yke2^k .
у/п Л=о
174 Глава 7. Обработка экспериментальных данных
В этой формуле п — число элементов вектора у, i — мнимая единица. Если частота
измерения исходного сигнала fs, то частота, соответствующая ск , равна
О ifft(c) возвращает обратное дискретное преобразование Фурье. Результат ве-
щественный. Вектор с должен иметь 1 + 2т элементов, где т — целое. Функция воз-
j п-1
вращает вектор d, чьи элементы вычисляются по формуле: d = -= У wke~2ni(<^n^k ,
dn k=o
где w — вектор комплексно-сопряженный вектору у. Это та же самая формула,
что и для fft, кроме знака минус в показателе степени. Функции fft и ifft — точ-
ные обращения. Для всех вещественных у справедливо ifft(fft(y)) - у.
О cfft(y) возвращает коэффициенты ряда Фурье вектора или массива, содержа-
щего как вещественные, так и комплексные числа. Число элементов вектора у
может быть любым. Возвращаемый массив имеет тот же размер, что и массив,
используемый как аргумент.
О icfft(c) возвращает обратное преобразование Фурье вектора или матрицы дан-
ных. Функции cfft и icfft — обратные друг к другу. То есть icft(cfft(y)) = у.
Рис. 7.17. Формирование массива зашумленных данных для последующей очистки
Дискретные преобразования 175
Рассмотренные преобразования Фурье не являются единственно возможными.
Широко распространена следующая пара формул преобразования Фурье:
-2ni(J/ri)k
л-1
dj = £ wke2ni(j/n)k.
k=0
Эти формулы применяются в функциях FFT и IFFT.
Функции FFT, IFFT, CFFT, ICFFT используются аналогично функциям fft, ifft, cfft, icfft.
В рассмотренном на рис. 7.17 примере экспериментальная функция создана путем
наложения на произвольную аналитическую функцию (sin + cos) случайных чи-
сел, созданных функцией rnd(n), возвращающей случайное число, лежащее между
О и п. Функция cfft возвращает коэффициенты ряда Фурье для созданного масси-
ва чисел. Из набора найденных коэффициентов можно выбрать ряд коэффициен-
тов, удовлетворяющих заданному условию k1 < [fj ] < k2.
Далее с помощью функции icfft определяется функция, представляющая собой
сут^му синусоид с коэффициентами, выбранными согласно заданному условию.
; ;'Амммм
Прямое преобразование
f := сйад kl := 1.5 k2 := 7 поменяйте k1 и k2 j:=0..n
выбор коэффициентов обратное преобразование
g. := if(kl < |f | £ k2.f-.0j h := icffi(£
Поменяйте cfft на CFFT и icfft на ICFFT
0 20 40 60 80 100
NUM Page?
Рис. 7.18. Фильтрация данных с разложением в ряд Фурье
176 Глава 7. Обработка экспериментальных данных
Меняя условие (величины kl и к2), можно включить в создаваемую функцию только
необходимые гармоники (рис. 7.18). Поменяйте саму функцию, условие, число
точек. Функция cfft позволяет работать с массивом из любого числа точек.
Двухмерное преобразование Фурье
В Mathcad имеется возможность применения встроенных функций комплексного
преобразования Фурье не только к одномерным, но и к двухмерным массивам.
На рисунке 7.19 показана поверхность ступенчатой функции Y(x, у). Обратите вни-
мание на запись условия при создании ступенчатой функции. Условие С(х, у) за-
писано в виде произведения булевых операторов. С(х, у) = 1, если условие выпол-
няется, и С(х, у) = 0, если условие не выполняется. По функции Y(x, у) сформирован
массив данных YY. С помощью генератора случайных чисел rod на массив YY нало-
жены помехи. Попробуйте поменять исходные данные.
Рис. 7.19. Наложение помех на двухмерный массив данных
На рисунке 7.20 показано дискретное преобразование Фурье функции YP с поме-
хами. Слева показан массив коэффициентов, справа — результат обратного преоб-
разования Фурье.
Дискретные преобразования 177
Рис. 7.20. Двухмерное преобразование Фурье массива данных с помехами
Для обратного преобразования использованы только те гармоники, у которых ко-
эффициенты лежат внутри выбранного диапазона значений д.
Волновое преобразование
Волновое (вейвлетное) преобразование в ряде случаев оказывается более эффек-
тивным, чем преобразование Фурье. Преобразование Фурье раскладывает задан-
ную функцию на ряд гармоник (бесконечно осциллирующих синусоид). При вол-
новом преобразовании базовые функции локализованы в некоторой ограниченной
области значений аргумента, а вдали от нее малы или равны нулю.
Для выполнения волновых преобразований Mathcad имеет одну встроенную фун-
кцию, использующую функцию Даубечи:
О wave (у) — вектор прямого волнового преобразования;
О iwave(v) — вектор обратного волнового преобразования, где:
• у — вектор данных, взятых через равные промежутки значений аргумента;
• v — вектор данных вейвлет-спектра (коэффициентов волнового преобразо-
вания).
Вектор у должен содержать 2п элементов (п — целое число). Результатом обраще-
ния к функции wave является вектор, содержащий несколько коэффициентов двух-
параметрического вейвлет-спектра. Пример волнового преобразования приведен
на рис. 7.21. Выполняемые действия, включая фильтрацию коэффициентов, ана-
логичны действиям при преобразовании Фурье (см. рис. 7.17—7.20).
178 Глава 7. Обработка экспериментальных данных
Волновые преобразования
ORIGIN := О
N := 32
t :=0,0.01 ..В
0..N- 1
Bi
0
Y(t)
обнуление предыдущего
значения YY
N J
К := wave(YY)
Л:
ii
".
? &
И
$
К
&
й о?
10
Рис. 7.21. Пример волнового преобразования данных
Press F! for help
_ Поменяйте номера выбираемых коэффициентов
IK I < k2 К ol
i| ” ’ i* J Поменяйте местами два выражения КК
УК := iwave(KK)
ГЛАВА
Математическая
статистика
Mathcad имеет богатый набор функций математической статистики, позволяющих
вычислять характеристики выборки данных (средние величины, дисперсию, ко-
эффициенты корреляции и другие), плотности вероятности, функции вероятнос-
ти, квантили вероятности для 17 различных видов распределения случайных ве-
личин. Кроме того, в Mathcad есть генераторы случайных чисел, соответствующие
всем 17 видам распределения, позволяющие эффективно проводить моделирова-
ние методом Монте-Карло.
Характеристики выборки данных
и связи двух массивов
Mathcad содержит 16 различных функций для оценки параметров выборки дан-
ных:
О mean (А) — возвращает среднее значение элементов массива А;
О hmean(x) — возвращает среднее гармоническое значение элементов масси-
ва А;
О gmean(A) — возвращает среднее геометрическое значение элементов масси-
ва А;
О var(A) — возвращает дисперсию элементов массива А;
О Var(A) — возвращает несмещенную дисперсию элементов массива А;
О stdev(A) — возвращает среднеквадратическое отклонение элементов масси-
ва А;
О Stdev(A) — возвращает несмещенное среднеквадратическое отклонение элемен-
тов массива А;
180
Глава 8. Математическая статистика
О median (А) — возвращает медиану массива А, которая делит гистограмму плот-
ности вероятностей на две равные части;
О mode(A) — возвращает моду массива А (наиболее часто встречающееся значе-
ние выборки данных);
О skew(A) — возвращает асимметрию массива А (степень ассиметричности гисто-
граммы плотности вероятности относительно оси, проходящей через ее центр
тяжести);
О kurt(x) — возвращает эксцесс массива А (степень сглаженности плотности веро-
ятности в окрестности главного максимума);
О stderr(А, В) — возвращает стандартную ошибку при линейной регрессии масси-
вов А и В;
О cvar(A, В) — возвращает ковариацию элементов двух массивов А и В;
О согг(А, В) — возвращает коэффициент корреляции двух массивов А и В;
О hist(int, у) — строит гистограмму массива А;
О histogram(п, у) — тоже строит гистограмму массива А.
Формулы для расчета указанных характеристик приведены на рис. 8.1 и 8.2.
ORIGIN := 1
Векторы наблюдений
34
n := rows(K)
п
Среднее арифметическое mean(K) = 32
tn := mean(K)
Среднее геометрическое gtnean(K) = 31.766
n
FT IG = 31.766
Mi = 1
n
Среднее гармоническое hmean(K) = 31.516
= 31.516
Press Fl for hefo
>NGM f sue 1
AUTO
Рис. 8.1. Оценка параметров выборки данных
Все приведенные статистические функции могут использоваться для работы как
с векторами, так и с матрицами. При этом статистические характеристики рассчи-
тываются для совокупности значени i всех элементов матрицы, без разделения ее
на строки и столбцы. Так, для матрицы размерностью m х п объем выборки равен
m х п.
В качестве аргументов функций можно указать любое количество векторов, матриц,
скаляров. Пример вычисления статистических характеристик для нескольких мас-
сивов приведен на рис. 8.3. Порядок указания массивов значения не имеет.
Характеристики выборки данных и связи двух массивов 181
Рис. 8.2. Оценка параметров выборки данных (продолжение)
Рис. 8.3. Оценка параметров нескольких массивов данных
В Mathcad имеются три функции для оценки связи двух векторов или матриц:
О stderr(A, В) — возвращает стандартную ошибку при линейной регрессии масси-
вов А и В;
О cvar(A, В) — возвращает ковариацию элементов двух массивов А и В;
О согг(А, В) — возвращает коэффициент корреляции двух массивов А и В.
Коэффициент корреляции и ковариация различаются лишь нормировкой.
1 ”
Ковариация определяется по формуле С = — • У (Д; - А ) • (Д - В ), коэффици-
ент корреляции — по формуле R = ———
СУ л • О о
отклонения массивов А и В.
, где и — среднеквадратичные
182
Глава 8. Математическая статистика
Чаще на практике используется коэффициент корреляции, дающий относитель-
ную, а не абсолютную (как ковариация) оценку связи двух массивов. Чем ближе
к единице коэффициент корреляции, тем теснее связь. Пример расчета парамет-
ров связи массивов приведен на рис. 8.4.
Рис. 8.4. Оценка связи двух векторов А и К
Функции распределения вероятностей
В Mathcad имеются встроенные функции для оценки 17 видов распределения слу-
чайных величин. Эти функции рассчитывают плотность вероятности, функцию
распределения, квантиль вероятности, генерируют вектор случайных чисел, рас-
пределенных по любому из 17 видов распределения.
Функции распределения вероятностей различаются написанием первой буквы,
а оставшаяся часть имени функции указывает на выбранный вид распределения
(в списке функций эта часть обозначена звездочкой).
О d*(x, par) — плотность вероятности;
О р*(х, par) — функция распределения;
О q*(P, par) — квантиль распределения;
О r*(M, par) — вектор из М независимых чисел, распределенных по выбранному
закону.
Здесь:
Ох — значение случайной величины;
О Р — значение вероятности;
О par — список параметров распределения.
Чтобы получить функции, относящиеся, например, к нормальному распределению,
надо вместо звездочки поставить norm. Список параметров для нормального рас-
пределения содержит две величины:
Функции распределения вероятностей 183
О ц — математическое ожидание;
О о — среднеквадратичное отклонение.
Указанные функции приобретают вид: dnorm(x, ц, o),pnorm(xz pi, o),qnorm(P, ц, о),
rnorm(M, pi, о).
Перечислим все типы распределения вместе с их параметрами, обозначив звездоч-
кой первую букву встроенных функций.
О *beta(xz si, s2) — бета-распределение, х— значение случайной величины
(О < х < 1), si, s2 — параметры (si, s2 > 0).
О *binom(k, n, р) — биномиальное распределение, п — целый параметр (0 < к < п),
р — вероятность успеха единичного испытания (0 < р < 1).
О *cauchy(x, L s) — распределение Коши, I — параметр разложения, s — параметр
масштаба (s > 0). <
О *chisq(x, d) — %2 -распределение (хи-квадрат-распределение), d — число степе-
ней свободы (d > 0).
О *ехр(х, г) — экспоненциальное распределение, г — показатель экспоненты
(г>0).
О *F(x, dlz d2) — распределение Фишера, dl, d2 — числа степеней свободы (dl,
d2 > 0).
О *gamma(kz р) — гамма-распределение, s — параметр формы (s > 0).
О *geom(kz р) — геометрическое распределение, р — параметр, равный вероятнос-
ти успеха единичного испытания (0 < р < 1), к — целое число (к > 0).
О *hypergeom(kz а, Ь, п) — гипергеометрическое распределение, a, b, п —целые па-
раметры.
О *lnort(xz ц, о) — логарифмически нормальное распределение, ц — натуральный
логарифм математического ожидания, о — натуральный логарифм среднеквад-
ратичного отклонения (о > 0).
О *logis(xz L s) — логистическое распределение, I — математическое ожидание, s—
параметр масштаба (s > 0).
О *nbinom(kz nz р) — отрицательное биномиальное распределение, n — целый па-
раметр (п>0),0<р< 1.
О *norm(xz ц, а) — нормальное распределение, ц — математическое ожидание, о —
среднеквадратическое отклонение (о > 0)
О *pois(kz X) — распределение Пуассона, X — параметр (X > 0).
О *t(xz d) — распределение Стьюдента, d — число степеней свободы (d > 0).
О *unif(xz а, Ь) — равномерное распределение, а, b — границы интервала (а > Ь).
О *weibull(xz s) — распределение Вейбулла, s — параметр (s > 0).
Примеры определения плотности вероятности, функции распределения и кванти-
лей распределения приведены на рис. 8.5 и 8.6.
184 Глава 8. Математическая статистика
Плотность
Функция
вероятности распределения
х:= -5,-4.95 .5
p(x) := dnorm(x,0,l)
p(x) = dt(x,100)
p(x) := dunif(x,-2,2)
p(x) := dlnorm(x,0,l)
p(x) := dlogis(x,0,l)
W(x) := pnorm(x,0,l)
W(x) := pt(x, 100)
W(x) := punif(x,-2,2)
W(x) := plnonn(x,0,l)
W(x) := plogis(x,0,l)
Сдвигая график W и p вниз, оцените
различные распределения вероятностей
Рис. 8.5. Плотность вероятности р и функция распределения вероятностей W
Рис. 8.6. График определения квантиля вероятности q
Генераторы случайных чисел
Для каждого закона распределения в Mathcad имеется функция-генератор
случайных чисел, что позволяет проводить моделирование методами Монте-
Карло.
Построение гистограмм 185
Простейшая из функций rnd(N) возвращает одно случайное число, лежащее
в интервале от 0 до N. Другие функции-генераторы случайных чисел создают век-
тор чисел, распределенных по выбранному закону. Например, функция runif(М, а, Ь)
создает вектор из М чисел, равномерно распределенных в интервале от а до Ь. При-
меры работы генератора случайных чисел приведены на рис. 8.7 и 8.8.
Создайте одно случайное число, равномерно распределенное между 0 и х
(сотрите знак равенства и введите его вновь - число поменяется) rnd(x)
-3
md(2) = 2.537 х 10 одно число i:=1..4 V^mdClO) вектор
V := monn(5,10,2) V := rchisq(5,10) V := rexp(5,0.3) V := rgeom(5,0.2)
Опустите вниз одно из выражений V
V := sort(V) V := reverse(V) сортировка вектора по росту и обратно
среднее арифметическое
дисперсия
среднеквадратичное
отклонение
медиана
mean(V) = 3.6
va<V) = 11.44
stdev(V) = 3.382
median(V) = 3
д11тС . 'Page -?
Рис. 8.7. Работа генератора случайных чисел
Формирование массива с помощью случайных чисел
Для всех функций, кроме rnd N := 4 а:=1 b := 4 k:=l.. N
<k> z ч
е := rumf(3,a,b) 73.45 1.84 1.37 2.28
Поменяйте генератор чисел е = 1.47 3.05 3.5 3.85
< 3.2 3.17 2.55 2.65 j
Для функции rnd п := 3 m := 4
Д;
md(5) Д = 3.696
<0.137
i := 1.. n j - 1.. m
4.235 2.28 4.915 > > ; %
0.98 4.197 2.505
2.863 2.657 4.215 ;
ййтсп Ш Я’аде 3 \
Рис. 8.8. Работа генератора случайных чисел (продолжение)
Построение гистограмм
Гистограммой называется график, аппроксимирующий по случайным данным
плотность их распределения. При построении гистограммы область значений слу-
чайной величины разбивается на заданное число сегментов, а затем подсчитыва-
ется число попаданий в каждый сегмент. В Mathcad 2000 включена функция his-
togram (n, data)» которая возвращает 2 столбца. В первом — средние точки каждого
из п интервалов, во втором — частоты попадания случайных чисел вектора data
186
Глава 8. Математическая статистика
в каждый из п интервалов. Пример построения гистограммы приведен на рис. 8.9.
Массивы исходных данных V из 1000 чисел на этом рисунке создаются генератора-
ми случайных чисел, соответствующих выбранному закону распределения. Число
интервалов пп выбрано равным 21.
Нормальное распределение
Распределение Стьюдента
Равномерное распределение
Логарифмически нормальное
Логистическое распределение
V : morm( 1000,10,1)
VI:» rt(1000,100)
V2 :» runif(1000 ,-2,2)
V3 :« rlnonn(1000,0,1)
V4rlogis( 1000,0,1)
Построение гистограммы
<2> <
rm:» 21 tn:«0.. rm hh :« histogram(rm,Vl) h>hh int:=hh
(в функции histogram поменяйте номер V)
Рис. 8.9. Применение функции histogram
Рис. 8.10. Применение функции hist
Примеры статистических расчетов 187
Менее удобна старая функция hist(int, data). Здесь int имеет двоякий смысл. Либо
это вектор середин интервалов (можно задать интервалы разной ширины), либо
число интервалов, data — вектор случайных чисел. Пример использования функ-
ции hist приведен на рис. 8.10.
Для оформления гистограммы надо дважды щелкнуть мышью на графике, в от-
крывшемся окне форматирования графика перейти на вкладку Traces (Линии)
и в списке Туре (Тип) выбрать пункт solidbar (сплошные столбики) или bar (стол-
бики).
Примеры статистических расчетов
Рассмотрим конкретные примеры проведения статистических расчетов в про-
грамме Mathcad.
Расчет доверительного интервала
На рисунке 8.11 приведен расчет доверительного интервала математического ожи-
дания для малой выборки К из 6 чисел. Для расчета использовано распределение
Стьюдента. Доверительный интервал определен, исходя из вероятности попада-
ния числа внутрь интервала 99 %.
Рис. 8.11. Оценка доверительного интервала для малой выборки данных
Построение усталостной кривой
Рисунки 8.12 и 8.13 иллюстрируют обработку результатов испытаний стали на ус-
талость. Заданы максимальные напряжения цикла а и соответствующая им долго-
вечность N. Усталостная кривая построена в логарифмических координатах. Для
построения графика в таких координатах надо дважды щелкнуть мышью на гра-
фике и на вкладке X-Y Axes (Оси Хи Y) открывшегося окна форматирования графи-
ка установить два флажка Log scale (Логарифмический масштаб). Коэффициент 0.986
свидетельствует о хорошей корреляции двух величин X и Y.
188
Глава 8. Математическая статистика
Рис. 8.12. Обработка результатов эксперимента
Рис. 8.13. Обработка результатов эксперимента (продолжение)
С помощью линейной регрессии найдена аналитическая зависимость X = log(N) от
Y = log (ст). Для вероятности 99 % найден квантиль вероятности Стьюдента и опре-
делены границы доверительного интервала.
ЧАСТЬ
Дополнительные
возможности Mathcad
□ Программирование
□ Анимация
□ Учет размерностей
Л Вспомогательные функции Mathcad
□ Работа с документами
□ Текст
Л Построение графиков
Л Справочная информация в Mathcad
*
Программирование занимает особое место в Mathcad. Для начального обучения
изучать его совершенно не обязательно. Возможности Mathcad позволяют решить
подавляющее количество задач без всякого программирования, да к тому же, как
правило, несколькими способами. Однако есть класс задач, при решении которых
без программирования не обойтись. Это задачи, в которых часть документа из не-
скольких или многих операторов надо выполнить многократно. В таких случаях
документ должен состоять из отдельных подпрограмм, объединенных в единую
«головную» программу. И в этом случае программирования можно было бы избе-
жать, если бы создатели Mathcad предусмотрели оператор перехода к метке, кото-
рый есть (был) во многих языках программирования, в частности в FORTRAN.
Серьезные программисты считают «дурным тоном» использование оператора пе-
рехода к метке, полагая, что в любой программе можно обойтись без меток. Это
верно, но зачастую требует больших усилий. Система же Mathcad предназначена
для обычных инженеров, не всегда являющихся специалистами в программирова-
нии, и поэтому не должна быть сложной в применении.
Mathcad позволяет вводить программы любой сложности. Образцом достаточно
сложной программы является программа решения плоской упругопластической
задачи методом конечных элементов, приведенная в примере 16 части IV.
Программирование в Mathcad чрезвычайно наглядно и понятно, так как программа
представляет собой последовательность формул. Основные операторы программиро-
вания расположены на панели Programming (Программирование), вызываемой щелчком
на кнопке Programming Toolbar (Панель программирования) математической панели.
Далее программами будем называть не все документы Mathcad, а только те из них,
которые написаны с использованием панели программирования.
Создание программ
Программа Mathcad есть частный случай выражения Mathcad. Подобно любому вы-
ражению, программа возвращает значение, если за ней следует знак равенства. Обыч-
Создание программ 191
ное выражение Mathcad состоит из одной строки. Выражение-программа содержит
много строк. Фактически выражение-программа — это составное выражение.
Выражение-программа состоит из названия выражения, следующего за ним знака
присваивания значения и необходимых выражений в правой части, записанных
в столбик и объединенных слева вертикальной чертой.
Ввод строк в программу
Для создания программы надо выполнить описанную ниже процедуру.
1. Введите имя выражения-программы.
2. Введите оператор присваивания (:=).
3. Щелкните на кнопке Add Program Line (Добавить строку программы) панели про-
граммирования столько раз, сколько строк должна содержать программа.
4. В появившиеся места ввода введите нужные операторы, лишние места ввода
удалите.
Чтобы создать недостающие места ввода, надо установить синий уголок курсора
в конец строки, после которой ввести новую строку. Клавишей пробела следует
выделить полностью всю строку и щелкнуть на кнопке Add Program Line. При этом
надо учитывать следующее (рис. 9.1):
О если синий уголок курсора находится в начале строки, то после щелчка на кнопке
Add Line место ввода появится выше этой строки;
О если синий уголок курсора находится в конце строки, то после щелчка на кноп-
ке Add Line место ввода появится ниже этой строки.
u.-—’
Положение
курсора
у(х) :=
у(х) :=
x+ a
Результат щелчка на кнопке Add Program Line
y(x) :=
...................г..,....;....
y(x) :=
..................... •
$
continue
otherwise 1
I white
return
..............
::Й
ft
Add Line
а
a
s
b
а
a
b
i
х
Рис. 9.1. Ввод строки в программу
В некоторых случаях, например при вставке строки между двумя вложенными цик-
лами, что при создании программы требуется выполнять достаточно часто, указан-
ный прием не работает. В этом случае нужна другая последовательность действий.
1. Выделите черным цветом весь внутренний цикл.
2. Вырежьте его в буфер обмена, щелкнув на кнопке Cut (Вырезать) стандартной
панели инструментов.
192 Глава 9. Программирование
3. Щелкните на кнопке Add Program Line (Добавить строку программ) панели про-
граммирования.
4. Вставьте из буфера обмена вырезанный кусок на прежнее место ввода, устано-
вив туда курсор и щелкнув на кнопке Paste (Вставить) стандартной панели ин-
струментов.
5. Заполните появившееся дополнительное место ввода.
При достаточном навыке этот прием вставки дополнительных строк удобно ис-
пользовать во всех случаях.
Локальное присваивание значений
Программа Mathcad — это обособленный модуль внутри документа Mathcad со
своими именами переменных и их значениями, которые не видны из других мест
документа.
Присваивание значений переменным и константам в программах производится
с помощью программного оператора присваивания (<—), который вводится с пане-
ли программирования щелчком на кнопке Local Definition (Локальное определение).
При создании программы, когда этот знак приходится использовать часто, полез-
но пользоваться клавишей { (открывающая фигурная скобка).
Локальные значения переменных нельзя использовать вне программы. Если это
все же необходимо, их надо вывести из программы специальным образом (см. раз-
дел «Вывод значений из программы»).
ВНИМАНИЕ Ни «обычный» оператор присваивания (:=), ни оператор вывода (=) в пределах про-
------------- грамм не применяются.
Из основного документа в программу передаются в виде констант все значения
величин, имеющих одинаковые имена. Эти значения сохраняются неизменными
при любых действиях с ними внутри программы.
В большой программе, например, в программе решения упругопластической зада-
чи (пример 16 в части IV), где в головную программу ZZ надо передать много пере-
менных величин, всем им в начале программы присваиваются значения. Обратите
внимание, что имена передаваемых и принимаемых величин чаще всего совпада-
ют, чтобы программу было легче понять. В указанном примере передается 6 вели-
чин и каждая занимает одну строку в программе, что в значительной степени уве-
личивает программу.
Передать нужные величины в программу можно и другим способом, создав про-
грамму-функцию, где передаваемые величины заданы в виде параметров функ-
ции. Так оформлены в рассмотренном примере все подпрограммы, используемые
затем в главной программе. При этом программа занимает меньше места в длину,
но больше в ширину.
Для экономии места в документе можно прибегать к наложению объектов друг на
друга. Щелкните правой кнопкой мыши на объекте и выберите в контекстном меню
Условный оператор if 193
команду Bring to Front (Выдвинуть на передний план) или Send to Back (Убрать на зад-
ний план). Документ получается более компактным. Именно так скомпонованы
многие программы в этой книге.
Любая программа представляет собой сочетание обычных математических выра-
жений с операторами условия и цикла. Разберем действие этих операторов.
Условный оператор if
Условный оператор if действует в два этапа. Сначала проверяется условие, запи-
санное справа от оператора if, и, если оно истинно, выполняется выражение слева
от него, если ложно, происходит переход к следующей строке программы.
Чтобы вставить условный оператор if в программу, проделайте ойисанную ниже
процедуру. 1
1. В создаваемой программе установите курсор на свободное место ввода, в кото-
рое должен быть вставлен условный оператор.
2. На панели программирования щелкните на кнопке If Statement (Оператор if).
В программе появится шаблон оператора с двумя местами ввода.
3. В правое место ввода введите условие. Пользуйтесь при этом логическими опе-
раторами, вводя их с панели Boolean (Булевы операторы).
4. Слева от оператора if введите выражение, которое должно выполняться, если
условие истинно.
Если при выполнении условия должно выполняться сразу несколько выражений,
то надо иметь несколько мест ввода. Для их создания установите курсор на место
ввода слева от оператора if и щелкните на кнопке Add Program Line (Добавить строку
программы) панели программирования столько раз, сколько строк надо ввести. Об-
ратите внимание, что при этом меняется вид условного оператора. Новая вертикаль-
ная линия с местами ввода появляется не слева, а ниже и правее оператора if (рис. 9.2).
7 Зак. 882
Рис. 9.2. Три способа записи условия в Mathcad
194 Глава 9. Программирование
Если условие ложно, происходит переход к следующей строке программы. Она
может содержать новое условие или быть обычным выражением.
Напомним, что в Mathcad есть три способа записи условия:
О с помощью условного оператора программирования if;
О с помощью булевых операторов;
О с помощью функции if.
Рисунок 9.2 иллюстрирует применение всех трех способов записи условия.
Часто встречается условие с двумя вариантами действия: если ..., то ..., иначе ... Для
слова «иначе» имеется оператор otherwise, который вводится щелчком на кнопке
Otherwise Statement (Оператор otherwise) панели программирования.
В случае двух вариантов действий условие лучше вводить в несколько ином по-
рядке.
1. На свободное место ввода в программе введите выражение, выполняемое, если
условие истинно.
2. Выделите курсором выражение так, чтобы уголок курсора был в конце выраже-
ния, и щелкните на кнопке If панели программирования.
3. Справа от оператора if введите условие.
4. На следующем свободном месте ввода (на следующей строке) введите выраже-
ние, выполняемое, если условие ложно.
5. Выделите курсором выражение так, чтобы уголок курсора был в конце выраже-
ния, и щелкните на кнопке Otherwise панели программирования.
На рисунке 9.3 приведен пример использования условного оператора if. В каче-
стве примера выбрано построение эпюр изгибающих моментов и поперечных сил
в балке (рис. 9.4). Применение условного оператора особенно удобно при выпол-
нении операции со ступенчатыми функциями. Участков на балке может быть не-
сколько, но функция изгибающих моментов одна (примеры работы со ступенча-
тыми функциями имеются в части IV).
Операторы цикла
Важнейшим элементом программирования, помимо условного оператора, являет-
ся оператор цикла. В обычном документе Mathcad использование дискретной пе-
ременной фактически равноценно применению оператора цикла, служащего для
вычисления одного выражения. Mathcad вычисляет выражения сверху вниз и пе-
реходит к следующему выражению, лишь окончательно завершив все вычисления
в предыдущем выражении, и больше вернуться к нему не может. Если же в каждом
цикле должно быть вычислено несколько выражений, необходимо составлять про-
грамму.
ВНИМАНИЕ Использование дискретных переменных внутри программ не допускается.
Операторы цикла 195
Рис. 9.3. Использование условного оператора if
Рис. 9.4. Эпюры поперечной силы и изгибающего момента при изгибе балки
В Mathcad имеются два оператора цикла: for и while.
О Если заранее известно число повторений цикла, используется оператор for.
О Если цикл должен завершиться по выполнении некоторого условия, и момент
выполнения этого условия не известен, используется оператор while.
Рассмотрим каждый из операторов.
196 Глава 9. Программирование
Оператор while
Цикл while выполняется до тех пор, пока остается истинным условие продолже-
ния цикла, поэтому нет необходимости знать заранее число вычислений. Важно
только, чтобы где-либо внутри цикла или в другом выполняемом участке програм-
мы присутствовал оператор, делающий условие цикла ложным. В противном слу-
чае цикл будет выполняться бесконечно. В этом случае, чтобы остановить про-
грамму, нужно нажать клавишу Esc.
Чтобы записать цикл while, надо выполнить следующую последовательность действий.
1. Установите курсор в свободное место ввода в программе (справа от вертикаль-
ной черты).
2. На панели программирования щелкните на кнопке While Loop (Цикл while). По-
явится шаблон с двумя местами ввода.
3. Справа от оператора while введите условие продолжения цикла. Обычно это
логическое выражение.
4. В оставшееся место ввода (внизу под оператором while) введите выражение, ко-
торое вычисляется в цикле. Если в цикле надо вычислять несколько выражений,
то вначале установите курсор в место ввода и щелкните на кнопке Add Program
Line (Добавить строку программы) или нажмите клавишу ] (закрывающая квадрат-
ная скобка) столько раз, сколько строк будет содержать цикл. Затем заполните
все места ввода, введя нужные выражения, и удалите лишние места ввода.
Обнаружив оператор цикла while, Mathcad проверяет условие продолжения цик-
ла. Если оно истинно, Mathcad выполняет тело цикла и снова проверяет условие.
Если оно ложно, Mathcad заканчивает выполнение цикла.
Пример использования цикла while приведен на рис. 9.5.
Рис. 9.5. Применение оператора цикла while
Операторы цикла 197
Оператор for
В цикле for число повторений цикла определяется переменной, задаваемой в нача-
ле цикла.
1. Установите курсор в свободное место ввода в программе (справа от вертикаль-
ной черты).
2. На панели программирования щелкните на кнопке For Loop (Цикл for). Появит-
ся шаблон с тремя местами ввода.
3. Справа от оператора for введите имя переменной цикла, а после знака I — диа-
пазон изменения переменной цикла так же, как в случае дискретной перемен-
ной. Переменной цикла может быть ряд чисел или вектор Либо список скаля-
ров, диапазонов или векторов, разделенных запятой (рис. 9.6).
4. В оставшееся место ввода (ниже оператора for) введите выражение, которое дол-
жно вычисляться в цикле. Если в цикле надо вычислять несколько выражений,
то вначале установите курсор в место ввода и щелкните на кнопке Add Program
Line (Добавить строку программы) или нажмите клавишу ] (закрывающая квадрат-
ная скобка) столько раз, сколько строк будет содержать цикл. Затем заполните
все места ввода, введя нужные выражения, и удалите лишние места ввода.
Mathcad легко справляется со сложными математическими проблемами, легко
решает сложные уравнения. А вот простые для любого человека логические зада-
чи решаются с большим трудом. На рисунках Э.7-9.9 показаны примеры решения
логических задач выборки нужных значений вектора или матрицы средствами
программирования. Эти примеры иллюстрируют различные приемы записи
условия в операторе if: с помощью булевых операторов (рис. 9.9), с помощью логиче-
ской функции (рис. 9.8). Демонстрируются приемы формирования массивов вы-
ходных данных. При работе с массивами удобно использовать привычную ну-
мерацию элементов массива, начиная с единицы, поэтому в примерах на
программирование далее первой строкой является строка ORIGIN := 1.
Рис. 9.6. Применение оператора цикла for
198 Глава 9. Программирование
Вставка массива В в массив А
А := identity (5)
г := 3
место вставки
строка
столбец с := 2
ORIGIN := 1
С := А<—А
\о о
о о о>
ООО
1 о о
О 1 о
0 0 1;
“Передача массива А в программу"
Рис. 9.7. Вставка массива в массив
Рис. 9.8. Извлечение нужных элементов вектора
Операторы цикла 199
Рис. 9.9. Извлечение нужных элементов матрицы
В примере на рис. 9.7 показан ввод комментария в программу. Для этого надо ус-
тановить курсор в свободное место ввода в программе и ввести символ " (двойная
кавычка). На экране появится пара кавычек с местом ввода между ними. Введите
туда текст комментария.
Mathcad вычисляет выражения слева направо и сверху вниз. Местом выполнения
программы является место присваивания значения имени выражения. Результаты
действия программы можно вывести правее и ниже места присваивания значения.
Для экономии места в документе прибегают к наложению одной области на дру-
гую, ведь программа занимает прямоугольную область, большая часть которой
пуста. Переместите любое выражение в область программы и, пока выражение
выделено, щелкните на нем правой кнопкой мыши и в контекстном меню выбери-
те команду Bring to Front (Выдвинуть на передний план). Можно также, выделив про-
грамму, выбрать в контекстном меню команду Send to Back (Убрать на задний план).
Таким образом скомпонованы все примеры в части IV.
Операторы break, continue и return
Операторы break, continue и return используются для управления циклами и про-
граммой в целом:
О continue возвращает программу к началу цикла;
О break обеспечивает выход из цикла и продолжение работы программы;
О return обеспечивает выход из программы.
200 Глава 9. Программирование
Работу этих операторов иллюстрирует рис. 9.10. Оператор continue в этом примере
создает список нечетных чисел (вектор V), осуществляя возврат в начало цикла,
если остаток от деления числа п на 2, то есть mod(n, 2), равен 0. Оператор break
осуществляет выход из цикла и продолжение работы программы, если п < 0. Опе-
ратор return осуществляет выход из программы, если п = -10, с записью коммента-
рия end program (конец программы).
Рис. 9.10. Применение операторов continue, break, return
Вывод значений из программы
а
Результатом выполнения программы является результат выполнения последнего
оператора программы. Если последним оператором является математическое вы-
ражение, то результат его вычисления и будет результатом выполнения програм-
мы. В сложных программах иногда приходится выводить много данных и это дела-
ется путем формирования внутри программы массивов и составных массивов.
Для вывода результатов расчета установите курсор в пустое место ввода послед-
него оператора.
О Для вывода одного числа введите имя соответствующей переменной (любой, ко-
торой присвоено какое-либо значение в программе или в основном документе).
Составные массивы
201
О Для вывода вектора (или матрицы) введите его (ее) имя. Однако помните, что
каждый элемент массива должен быть определен либо в программе, либо в ос-
новном документе.
Составные массивы
Иногда при выводе результатов расчета возникает задача одновременного вывода
и скаляров, и векторов, и матриц. Но ведь место вывода только одно!
Напомним, что Mathcad присваивает выражению с именем программы значение
последнего оператора программы.
Выход из трудного положения дает составной массив, который имеет структуру
обычного массива, но его элементы могут быть числами, векторами или матрица-
ми, совершенно не связанными друг с другом.
Рис. 9.11. Вывод результатов работы программы с помощью составного массива
202 Глава 9. Программирование
Массив Z на рис. 9.11 — это матрица-столбец (вектор), для уменьшения размера
программы записанный в транспонированном виде. Он содержит 3 элемента: Zl —
это 4 массива различной размерности, Z2 — 4 вектора «бок о бок», Z3 — скаляр (чрс-
ло итераций). На этом рисунке показано, как, используя верхние и нижние индек-
сы, вывести любое расчетное значение. Поупражняйтесь самостоятельно в выводе
расчетных значений. Убедитесь в почти неограниченных возможностях вывода
расчетных данных.
Составные массивы не имеют физического и математического смысла, поэтому
операции матричного исчисления к ним неприменимы, кроме операции транспо-
нирования.
Подпрограммы-функции
Любая программа является выражением, состоящим из ряда выражений (объеди-
ненных вертикальной чертой), каждое из которых, в свою очередь, может быть
программой.
Например, если часть программы, состоящая из нескольких операторов, должна
выполняться несколько раз, ее Целесообразно записать в виде подпрограммы-функ-
ции и вызывать, меняя внутренние параметры, каждый раз, когда это нужно.
Как правило, подпрограмма-функция располагается где-то выше главной програм-
мы, в которой она используется (см. примеры 16 и 17 в части IV).
Отладка программ
Mathcad — перспективное средство программирования. Создать расчетную про-
грамму в Mathcad во много раз быстрее и значительно проще, чем в традиционных
средах программирования.
Кроме того, программа Mathcad — это, фактически, записанный в виде последова-
тельности формул алгоритм решения задачи. Поэтому программа абсолютно по-
нятна каждому, знающему суть задачи. В отличие от нее программа на любом из
традиционных языков программирования представляет собой очень трудный для
понимания длинный список операторов.
Приведенная в примере 16 части IV книги программа решения упругопластиче-
ской задачи методом конечных элементов располагается на трех страницах и
включает записанные в виде формул операторы, подпрограммы и главную про-
грамму. Та же программа на языке FORTRAN представляет собой 15 страниц
операторов.
Несмотря на очевидные достоинства, складывается впечатление, что разработчи-
ки не рассчитывали на применение Mathcad в качестве инструмента создания слож-
ных программ. В частности, отсутствуют специальные средства отладки программ,
допускающие пошаговый вывод результатов расчета, вывод значений отдельных
переменных на каждом шаге программы. Такие средства имеются практически во
всех современных средах программирования.
Отладка программ 203
Рекомендации, представленные далее, составлены на основании личного опыта
программирования автора.
При разработке программы составьте ее формульный алгоритм, повторяющиеся
несколько раз или просто загромождающие программу-части выделите и запиши-
те в виде подпрограмм-функций. Составьте головную программу. Она должна быть
сравнительно короткой и включать обращения к подпрограммам.
Далее начинается отладка программы. Вначале отлаживается каждая подпрограмма.
Просмотрите список величин, используемых в данной подпрограмме. Константы,
не изменяющиеся внутри программы, должны быть заданы в основном документе
Mathcad где-либо выше места использования подпрограммы. Можно присвоить
им значения и в самой подпрограмме, но лучше без нужды не увеличивать ее
размер.
Переменным величинам, изменяющимся внутри подпрограммы, должны быть при-
своены значения обязательно внутри подпрограммы, или эти величины должны
быть включены в число параметров в названии подпрограммы-функции. В про-
тивном случае эти величины будут иметь значения, присвоенные им в основном
документе, и не будут изменяться в процессе расчета в подпрограмме.
В конце подпрограммы создайте место вывода результатов в виде составного мас-
сива, включив в него как можно больше величин промежуточных расчетов в под-
программе.
Посмотрите на результаты расчета. Как правило, программа с первого раза не ра-
ботает и результатов не дает. Щелкните мышью внутри подпрограммы. Посмот-
рите, есть ли сообщение об ошибках. Если сообщение об ошибках есть, постарай-
тесь исправить ошибки. Чаще всего появляется сообщение This variable or function
is not defined above (Данная переменная или функция еще не определена). В этом слу-
чае проследите по документу, где этой величине должно быть присвоено значение
(внутри программы, в подпрограмме, в основном документе). Если оно должно
быть присвоено внутри программы — присвойте правильное значение, если в ос-
новном документе — проверьте значение, написав имя переменной и нажав клави-
шу = (равно), если же значение должно быть присвоено в подпрограмме — щелкните
на ней и при отсутствии сообщений об ошибках проанализируйте подпрограмму,
как описано далее.
Часто встречается сообщение Value of subscript or superscript is too big (or too small)
for this array (Значение верхнего или нижнего индекса слишком велико или слишком
мало для этого массива). В этом случае, если массив вводился в основном доку-
менте, проверьте его значения. Если массив больших, чем вы задали, размеров,
значит, надо обнулить массив перед вводом значений. Если массив вводился внут-
ри программы или подпрограммы, проверьте диапазоны переменных циклов, их
соответствие значению ORIGIN. Если ORIGIN = 1, переменные цикла не должны
иметь значений 0.
Если сообщений об ошибках нет, предстоит разбить программу на части для про-
верки.
1. Выделите черным цветом проверяемый фрагмент программы и вырежьте его
в буфер обмена, Щелкнув на кнопке Cut (Вырезать) стандартной панели инстру-
ментов.
204 Глава 9. Программирование
2. Щелкните мышью вне программы и вставьте в это место из буфера вырезан-
ный фрагмент, щелкнув на кнопке Paste (Вставить) стандартной панели инстру-
ментов.
3. Программный оператор присваивания (<—) замените обычным (:=).
4. Задайте численные значения переменным, входящим в вырезанное и вставлен-
ное выражение и посмотрите на результат расчета, нажав клавишу = (равно).
Добейтесь правильного ответа. Если надо вырезать оператор цикла или усло-
вия, то он вырезается по частям (рис. 9.12).
5. В любом месте вне программы напишите имя будущей проверочной програм-
мы, введите оператор присваивания (:=), и, щелкая на кнопке Add Program Line
(Добавить строку программы) панели программирования, создайте несколько мест
ввода «про запас».
6. Выделите тело цикла или условия и вырежьте его в буфер обмена.
7. Вставьте вырезанный фрагмент в любое место вне программы.
8. Выделите и вырежьте в буфер обмена оператор цикла или условия.
9. Вставьте оператор в нужное место ввода проверочной программы.
Рис. 9.12. Составление проверочной программы
Приемы ускорения работы Mathcad 205
10. Выделите перетаскиванием мыши при нажатой левой кнопке тело цикла и вы-
режьте его в буфер.
11. В место ввода в проверочной программе вставьте из буфера тело цикла.
12. Выделите перетаскиванием мыши при нажатой левой кнопке условие и вы-
режьте его в буфер.
13. В место ввода в проверочной программе вставьте из буфера условие.
14. Закончите составление проверочной программы, не забыв вставить составной
массив для вывода результатов расчета. Проверьте результаты.
Если при выполнении проверочной программы не появляется сообщений об ошиб-
ках, но и численные результаты не выводятся, то предстоит полная разборка про-
граммы, как описано выше. Отлаживайте каждый кусок программы по отдельно-
сти, а затем вставляйте в основную программу. Сначала важно получить хоть
какие-нибудь результаты.
Если наконец вы получили результат, но он неверный, добавьте несколько строк
в составной массив, предназначенный для вывода результатов, и включите туда
для просмотра большинство расчетных величин. Постепенно после отладки воз-
4 вращайте вырезанные куски программы на место.
Конечно, эти способы отладки очень примитивны, но других разработчики Mathcad
нам не предоставили. Тем не менее повторяем, что создавать программы в Mathcad
удобней и проще, чем в традиционных средах программирования, а отлаживать не
труднее, чем, скажем, программы на языке FORTRAN. Время составления и от-
ладки программы в Mathcad в несколько раз меньше, чем потребовалось бы для
аналогичной программы на языке FORTRAN.
Приемы ускорения работы Mathcad
Решение задачи в Mathcad обычно длится дольше, чем решение аналогичной зада-
чи, составленное на любом из компилируемых языков программирования. Это не
имеет значения при однократном вычислении выражения. В больших же програм-
мах при выполнении многократных расчетов (например, итерационных процедур)
задержка во времени становится недопустимо большой.
Эта задержка связана с тем, что язык программирования в Mathcad является не
компилируемым, а интерпретируемым, то есть Mathcad перед выполнением каж-
дого оператора выполняет некие подготовительные операции. В компилируемых
же языках программирования подготовительные операции выполняются один раз,
до решения задачи, а после редактирования и компиляции программы создается
объектный модуль — исполняемый файл (ехе-файл).
Рассмотрим случаи, когда ускорение решения задачи в Mathcad все-таки воз-
можно.
Больше всего времени в Mathcad занимает операция интегрирования. При щелч-
ке правой кнопки мыши на знаке интеграла открывается контекстное меню, пред-
лагающее четыре способа вычисления интеграла. По умолчанию Mathcad автома-
206 Глава 9. Программирование
тически выбирает адаптивный метод, наиболее точный, но и наиболее длитель-
ный. Выберите другой метод интегрирования. Возможно, скорость вычисления ин-
теграла возрастет. Проверьте это на примере вычисления интеграла Дюамеля в при-
мере 11 части IV.
В ряде случаев вместо функции можно использовать матрицы. В примерах 12 и 13
части IV матрицу масс элемента можно вычислить, как интеграл:
М.= j т • N(x)iN(x)j • doc.
Однако это очень долго. Счет идет гораздо быстрее, если введены стандартные
матрицы с элементами-формулами.
Если каждый элемент матрицы является функцией от других матриц, то при
вычислении каждого элемента матрицы программа вычисляет всю матрицу, а за-
тем берет из нее лишь одно значение. В программах, использующих метод ко-
нечных элементов при формировании матрицы жесткости, можно записать два
вида выражений:
¥
КЕ(к) := A(k)T С A(k) -Fk-t
КЕк -=4-C-Ak-Fk-t
При большом числе элементов первое из этих выражений «висит», второе «ле-
тит». Скорость вычисления второго выражения в сотни раз больше, чем пер-
вого.
При работе с большими матрицами, когда требуется обращение матрицы (реше-
ние системы уравнений), оператор А := К’1 • Р, хорошо работающий в примерах 12-15,
в примере 16 требует много времени (по методу Гаусса идет пересчет всех элемен-
тов матрицы, включая нули). В методе конечных элементов при работе с ленточ-
ными матрицами рекомендуется использовать метод Холесского, реализованный
в программе МСНВ. Такая программа включена в пример 16 части IV.
Есть немало и других возможностей по ускорению работы Mathcad и облегчения
отладки программ. Главное — сохранить основные достоинства Mathcad: нагляд-
ность, простоту, удобство работы.
<5^7
fW ГЛАВА Анимация
Mathcad предусматривает возможность анимации графиков и результатов вычис-
лений путем создания AVI-файлов и вставки их в документ Mathcad. Воспроизво-
дятся созданные AVI-файлы встроенными в Windows средствами.
Создание анимации
Mathcad имеет встроенную переменную FRAME, предназначенную только для со-
здания анимационных клипов. FRAME принимает целочисленные значения от 0 до
п и должна быть включена в расчетные выражения так, чтобы с изменением FRAME
изменялся вид соответствующего графика. Фактически, значением FRAME является
номер кадра. Значение переменной FRAME обычно задается не в документе Mathcad,
а в диалоговом окне, открывающемся командой View ► Animate (Вид ► Анимировать).
Перед созданием анимационного клипа убедитесь, что в меню Math (Математика)
включен режим автоматических вычислений.
%) ВНИМАНИЕ
Среди прилагаемых к книге файлов, относящихся к этой главе, имеется несколько гра-
фиков. Чтобы сделать из них анимационные клипы, нужно удалить оператор FRAME ?
13, находящийся в начале документа.
Рассмотрим процесс создания анимации.
1. Введите переменную FRAME в математическое выражение, определяющее вид
графика (рис. 10.1).
2. Выберите команду View ► Animate (Вид ► Анимировать).
3. После открытия диалогового окна анимации курсором выделите нужный фраг-
мент изображения.
4. В диалоговом окне задайте общее число кадров и частоту их воспроизведения.
Установленное по умолчанию число 10 — слишком большая скорость воспро-
изведения кадров. Лучше установить 2-3 кадра в секунду, иначе «кино» про-
длится всего 1 секунду.
208 Глава 10. Анимация
150
х(х)
_ 180 i f
..........
<х) := х + FRAME
90
30
150
30
о
210
330
210
330
240
300
£
г Playback
270
х
При анимации графиков переменная
FRAME в документе Mathcad не задается
х:-0,0.1 ..30
ifx)
______ 180
.'У: :>:Ж.
. Caned 1
120
90
Fch FRAME
c
From.
•> ! • ; w '
lA
&
Frames/See
120
240
300
270
х
_____
0
’ : §w₽ Дл;
.......
ЙЖ₽
Скорость
Open.
' Сору
Настрой»^ СЫ+0
•Co®fnW„.........
в
J
: . .........................•...................:_
5Ыаа an area of jw vested; уйШ contend
toe FRAME v&iabte, enter siarttng and ending FRAME values ’
ALJ and choose Animate
‘pj’pri ... . v ....
• ^Qdaap^c| ^Mafhca
......................
щи iPeget.;-
: . v...' ,.й. ....':•.
АШО
Рис. 10.1. Подготовка анимации
5. Щелкните на кнопке Animate (Анимация) и наблюдайте за созданием кадров. Пос-
ле завершения этого процесса появится окно проигрывателя видеофайлов. В этом
окне, щелкнув на второй слева кнопке (см. рис. 10.1), можно установить размер
окна фильма и скорость воспроизведения. Размеры окна можно изменить и обыч-
ным способом, то есть растягивая его за угол мышью. Однако при этом пропорции
окна могут измениться. Созданный клип можно сохранить, щелкнув в окне Animate
(Анимация) на кнопке Save As (Сохранить как), и использовать вне документа Mathcad.
6. Сохраненный как AVI-файл клип нужно вставить в документ Mathcad. Для
этого в главном меню Mathcad выберите команду Insert ► Object (Вставка ► Объ-
ект), в открывшемся окне Вставка объекта установите переключатель Создать из
файла, выберите нужный файл, щелкнув на кнопке Обзор (рис. 10.2). Желатель-
но также установит флажок Связь. Это позволит редактировать AVI-файл не-
посредственно из документа Mathcad.
Если в окне Вставка объекта установить флажок В виде значка и щелкнуть на кнопке
» 0К, то на месте курсора в документе Mathcad появится значок AVI-файла. Двой-
ной щелчок мышью на этом значке вызовет появление проигрывателя видеофай-
лов и воспроизведение анимации. Если флажок В виде значка не устанавливать, то
после щелчка на кнопке 0К на месте курсора в документе Mathcad появится кар-
тинка с первым кадром AVI-файла. Двойной щелчок мышью на картинке вызовет
появление проигрывателя видеофайлов и исполнение анимации.
Создание анимации 209
Вставленный в документ AVI-файл можно редактировать. Для этого щелкните на
объекте (значке или картинке) правой кнопкой мыши и в появившемся контекст-
ном меню выберите команду Связанный объект: Видеозапись ► Правка, как показано
на рис. 10.3.
Создать новый
’ Создать из Файла
м...
h '
. >•
|0:\Редакция-чистовик\Раг12\Glava 1 ,v.
.........
1 В.видезвач»
.. - -- --ДдтЙ^Йд: • • •
^^МнпНниЕВ
Видеозапись •'
-----I'.:.,,.-,....
Добавление в докинг изображения •
содержимого файла Изображение: б^ет^
; • обязано о Файлом, что позволит отражать в
докупите изменения этого Файла.
«Л/.:-.-:
11.„....... &.Й 1. .
Рис.10.2. Диалоговое окно вставки объекта
Рис. 10.3. Переход к редактированию AVI-файла
В открывшемся окне редактирования (рис. 10.4) желательно установить флажок
Автоповтор, тогда «кино» будет длиться бесконечно долго, до тех пор, пока вы не
щелкните мышью вне объекта.
Файлы анимации (AVI-файлы) обычно занимают много места на диске. Mathcad
позволяет сохранить их в сжатом формате. Перед созданием анимации можно выб-
рать, какие методы сжатия использовать и сжимать ли файл вообще. Для этого
в диалоговом окне Animate (см. рис. 10.1) щелкните на кнопке Options (Параметры)
и в раскрывающемся списке открывшегося окна Compressor Options (Параметры ежа-
210 Глава 10. Анимация
тия) выберите один из вариантов сжатия видеоданных или пункт Полные кадры (без
сжатия), как показано на рис. 10.5.
Uiwiiiiiiiii iiiiinniMii|iiMii!iii
....
.Отмена
ihmmuiihiiihih""
воспроизведение в документе
........................... ................
/п .А
. ..." -.Л-" ' 4 ~ . -i- •:
.•••.•«•.-.•✓✓✓.у. > -i
Г Объект OLET-:-^..
. ......................:
j - Р - Панель воспроизведения
j •.....-.....---:44-.-.
’ .Заголовок! qq1.avi
j - ...
• • • ?.•::••• , Ч
...... ..,................ .........>
......:........*
; 1 ih
. f ИМШНМННЯНШ
0,00 010 0,20 0,30 0,40 0.50 Р»1 П7№ пял М-Щ/
-Файл Правка Устройство Шкала Справка
•;>>: • vZ-x.. ..... ..... ....... :. z.... ... . .
qq1.avi * Видеозапись в Client Document
Рис. 10.4. Установка параметров редактирования AVI-файла
Рис. 10.5. Выбор метода сжатия AVI-файла
ВНИМАНИЕ
При создании анимационных клипов рекомендуется отключить автоматическое масш-
табирование графика, так как возможны скачки изображения при изменении масшта-
ба. По осям графика введите числовые значения вручную.
Рекомендую вставить анимационный клип в документ Mathcad не в виде значка,
а в виде картинки. После этого график, с которого сделан клип, можно удалить.
Двойной щелчок мышью в области объекта приведет к воспроизведению клипа.
Много интересных примеров анимации объектов (графиков и числовых данных)
приведено в Центре документации Mathcad. Несколько примеров анимации гра-
фиков и числовых данных имеется в следующем разделе.
Галерея анимационных клипов 211
Галерея анимационных клипов
Рисунки 10.6-10.10 иллюстрируют некоторые возможности анимации. Используют-
ся различные типы графиков и числовая анимация. Для наглядности иллюстраций
значение переменной FRAME равно 13, то есть на каждом рисунке показан 13-й кадр
анимации.
Рис. 10.6. Движение спирали
Рис. 10.7. «Американские горки»
Среди прилагаемых к книге файлов, относящихся к этой главе, имеется несколько
графиков. Самостоятельно сделайте из них анимационные клипы. Не забудьте
перед этим удалить оператор FRAME := 13, находящийся в начале документа.
Рис. 10.8. Строительство сарая
212 Глава 10. Анимация
к- = 1 v' hi =
0 0 0
10 0.54 0.841
20 -0.832 1.819
30 -2.97 0.423
40 -2.615 -3.027
50 1.418 -4.795
60 5.761 -1.676
70 5.277 4.599
80 -1.164 7.915
90 -8.2 3.709
100 -8.391 -5.44
110 0.049 -11
120 10.126 -6.439
Рис. 10.9. Смерч
a:=2-FRAME i:=0..40 j:=0..40
F
Рис. 10.10. Анимация контурной карты
ГЛАВА Учет размерностей
В Mathcad возможны вычисления с учетом размерностей используемых величин.
Единицы измерения, хотя они и не требуются в выражениях Mathcad, могут по-
мочь обнаружить ошибки и улучшить вид результатов вычислений.
Выбор единиц измерения
В Mathcad встроено большое количество единиц измерения. С ними можно обра-
щаться, как со встроенными переменными. Чтобы связать единицу измерения с чис-
лом, достаточно умножить число на ее наименование.
Перед началом работы с размерными величинами надо установить систему еди-
ниц измерения, с которой вы будете работать.
1. В главном меню Mathcad выберите команду Math ► Options (Математика ► Пара-
метры) и в открывшемся окне перейдите на вкладку Unit System (Система единиц
измерения), как показано на рис. 11.1.
Рис. 11.1. Выбор системы единмц измерения
214 Глава 11. Учет размерностей
2. Выберите систему единиц измерения, установив, переключатель SI (International)
(Международная система единиц измерения Си), и щелкните на кнопке ОК. При уста-
новке положения None (Нет), никаких размерностей в расчетах учитываться не будет.
Посмотрите на встроенные единицы измерения, имеющиеся в выбранной систе-
ме. Для этого на стандартной панели Mathcad щелкните на кнопке Insert Unit (Вста-
вить единицу измерения) стандартной панели инструментов (кнопка с изображени-
ем мерной кружки). Вначале ничего вставлять не надо, просто познакомьтесь со
списком единиц, которые по умолчанию можно использовать в расчетах. В даль-
нейшем в начале документа при вводе исходных данных для расчета их надо запи-
сывать, умножая число на стандартное обозначение размерности, которое можно
ввести с клавиатуры либо выбирать в окне Insert Units (рис. 11.2).
Рис. 11.2. Окно вставки встроенных единиц измерения
Units and dimensions
Attaching units to a variable
Unit conversion
Simplifying units
Ucheb function
unary operators
undefined expressions
underscores in names
Undo command
uniform distribution
uniform polyhedra
Unit command on the Insert menu
unit conversions
unit placeholder (defined)
unit step function
units
Пенить
iMiiiiiiHim?
When you first start Mathcad, a complete set of units is
available for your calculations. You can attach these
built-in units to your variables or define and attach
your own units. Mathcad checks for dimensional
consistency and automatically displays results in terms
of the appropriate units for the unit system you've
chosen.
units of measurement
I ft inriinn ..
vAs.-azavavv.,
•Впадите ключе e be ель во для поиске;
|units and dimensions, overview |
Рис. 11.3. Описание встроенных единиц измерения в справочной системе Mathcad
Ввод пользовательских единиц измерения 215
В принципе можно придумать и использовать свои, абсолютно любые размернос-
ти. С полным списком встроенных размерностей можно ознакомиться в справоч-
ной системе Mathcad, выбрав команду Help ► Mathcad Help (Справка ► Справка по
Mathcad) и открыв подраздел List of built-in units (Список встроенных единиц измере-
ния) раздела Units and Dimensions, overview (Обзор единиц измерения и размерностей),
как показано на рис. 11.3.
Ввод пользовательских
единиц измерения
Возможны случаи, когда удобнее вести расчеты в своих собственных единицах из-
мерения, например подсчитать число мешков, людей, машин и т. д. Для нас удоб-
нее обозначать размерности русскими буквами.
1. Выберите в главном меню Mathcad команду Math ► Options (Математика ► Пара-
метры) и в открывшемся окне перейдите на вкладку Dimensions (Размерности),
показанную на рис. 11.4.
Рис. 11.4. Ввод пользовательских размерностей
2. Установите флажок Display dimensions (Показывать размерности).
3. Удалите старые размерности и введите с клавиатуры новые, абсолютно любые.
4. В начале документа Mathcad введите производные от исходных размерно-
стей, как показано, например, на рис. 11.5. Далее можно вводить исходные дан-
ные, умноженные на любую размерность (стандартную на английском языке
или производную от стандартной). После вычисления при выводе резуль-
татов расчета данные будут появляться на экране уже с введенными вами
размерностями.
216 Глава 11. Учет размерностей
Ввод размерностей, производных от базовых
метр := m кг := kg сек := s Н := N т := 1000 кг
кН := 1000 • N Р := 3 - кН мин := 60 • сек час := 3600 s
можно И так мм:=тш см:=ст мин := nun час := hr км:=кт
Ввод величин со стандартными размерностями
а:= 2 m М := 5000 kg t > 120 • s Р := 3000 • N
Ввод величин с производными размерностями
а := 2 • метр М := 5 т t := 2 • мин Р := 3 • кН
Вывод на экран, если в окне Math Options
свои размерности не указаны:
а = 2m М = 5000kg t = 120s Р = 3000kgms'2
Введены свои размерности масса - кг, длина - метр, время - сек
-2
а = 2метр М = 5000 кг t = 120 сек Р = 3000 кг метр сек
В поле ввода вписаны производные размерности
а = 200см М = 5т t = 120сек Р = ЗкН
Рис. 11.5. Пример ввода размерностей в исходных данных к расчету
Изменение масштаба результатов расчета
Часто бывает желательно вывести результаты расчета в размерностях, кратных
исходным, например, вместо «кг» использовать «тонны», вместо «метр» — «кило-
метр», вместо «сек» — «час» или «мин». Производные размерности вводят, как
обычные константы, используя оператор присваивания (:=) и указывая соответ-
ствующий множитель (см. рис. 11.5). Производную размерность нельзя определить,
умножая число на пользовательскую размерность, вписанную на вкладке Dimensions
(Размерности) окна Math Options (Математические параметры). Умножать число надо
на стандартную размерность, записанную на английском языке, или на другую
производную размерность, которой выше в документе присвоено какое-либо зна-
чение.
При выводе результатов расчета после нажатия клавиши = (равно) появляется
число и рядом с ним — место ввода размерности. Если число уже имеет размер-
ность, то рядом с размерностью появляется еще одно место ввода. Сюда можно
поместить любую переменную, константу или выражение.
[^ПРИМЕЧАНИЕ
Не забудьте, что когда что-нибудь вводится в место ввода единицы измерения, Mathcad
изменяет полученный результат так, чтобы произведение числа и выражения, стояще-
го на месте размерности, давало правильное значение.
Изменение масштаба результатов расчета 217
Можно использовать место ввода, чтобы выразить, например, значение угла в до-
лях числа л или вывести числовой коэффициент при каком-то буквенном выраже-
нии. На рисунке 11.6 рассчитанная величина А выведена в трех вариантах:
О естественный вывод Mathcad в единицах, указанных в окне Math Options;
P-а
О выведен числовой коэффициент при ——;
О в поле ввода справа от числа введено кН.
Рис. 11.6. Ввод выражения вместо размерности
Для расчета тригонометрических функций Mathcad требует ввода угловых значе-
ний в радианах, результаты же удобнее обычно показывать в градусах. Для этого
в место ввода надо вписать слово deg (градус). Появится ответ в градусах (рис. 11.7).
Когда исходные данные для расчета введены с размерностями, то выводимый ре-
зультат расчета всегда будет содержать размерность в стандартном обозначении,
если пользовательская размерность не задавалась, или пользовательскую размер-
ность, если вы ее ввели.
Рис. 11.7. Вывод значений угла в радианах и в градусах
Если где-либо введены производные размерности (см., например рис. 11.5), и вы
хотите видеть результат в этой размерности, нужно сделать следующее.
218 Глава 11. Учет размерностей
1. Установите курсор в место ввода справа от выведенной размерности и введите
производную размерность. При этом исчезнет не только старая размерность, но
и сам числовой результат расчета.
2. Щелкните мышью вне выражения. Появится новое число, соответствующее
введенной вами размерности, и сама размерность (рис. 11.8).
В место ввода правее места вывода числа нужно
вписать свою размерность - результат изменится.
:» 9.81
t := 2 • мин
а := 50 • см
2
сек
v := g • t
v = 1177.2 мсек
Мгог = 1500
2
кгм
2
сек
размерность,
введенная в меню
вписана своя размерность
m
i
Z:=
размерность
форматирована
2
сек
2
кгм
-0.4
сек
М- —
а
^кзг — 1-5 кН
_ км
v = 4237.92---
час
дробная размерность
Z - 106.743 кг0 2 М0'2
v = 1177 —
сек
Мизг = 1^00
Press Fl for help
•> :<;<
Рис. 11.8. Вывод результатов расчета в различных размерностях
i
^КЗГ Р ’ а
В зависимости от вычисляемого выражения размерность может иметь как целую,
так и дробную степень.
Можно включить автоматический перевод единиц измерения в более простые формы.
1. Дважды щелкните мышью на результате вычислений — откроется диалоговое
окно Result Format (Формат результата).
2. Перейдите на вкладке Unit Display (Отображение единиц измерения).
3. Установите оба флажка: Format Units (Формат размерностей) и Symplify units when
possible (Упрощать размерности, если возможно).
4. При щелчке на кнопке 0К упрощение размерностей будет относиться к выде-
ленному выражению, при щелчке на кнопке Set as default (Установить по умолча-
нию) — ко всему документу.
Размерность элементов массива
Размерность элементов массива вводится так же, как и размерность чисел, то есть
путем умножения выражения на стандартную размерность на английском языке
Размерность элементов массива 219
или производную размерность, введенную ранее. Действия с размерными масси-
вами иллюстрирует рис. 11.9.
Рис. 11.9. Работа с размерными массивами
Массив А введен в килоньютонах, массив V — в миллиметрах. При выводе резуль-
тата Mathcad использует размерности, вписанные на вкладке Dimensions —
2
КГ м
2 •
сек
После снятия флажка Format units (Формат размерностей) размерность на экране
меняет вид на кг м2сек'2. Для ввода производной размерности кН надо в дополни-
тельное место ввода вписать кН, при этом численный результат исчезает. Щелчок
мышью вне выражения ведет к пересчету результата и размерности м кН.
Дискретная переменная тоже может быть размерной. При использовании ее раз-
мерность можно учесть, поместив дискретную переменную выше определения
функции и введя размерность в определение функции (рис. 11.10). Можно также
записать дискретную переменную через размерные величины или в дискретной
переменной умножить числа на соответствующую размерность.
При выводе результата расчета появляется размерность, введенная пользователем
на вкладке Dimensions (на русском языке). Для ввода производной размерности
надо вписать ее в место ввода справа от выведенной размерности.
Графики строятся в стандартных размерностях, которые можно увидеть в окне Insert
Unit (Вставка единиц измерения), показанном на рис. 11.2. Ввести пользовательские
размерности на графиках нельзя. Для изменения масштаба графика разделите на
графике названия аргумента и функции на размерность (рис. 11.11).
220 Глава 11. Учет размерностей
Выполните самостоятельно приведенные на рис. 11.12 упражнения с размерно-
стями.
Примеры инженерных расчетов с учетом размерностей приведены в части IV (см. при-
меры 1,2,3,4, И, 14).
Рис. 11.10. Ввод и вывод размерной функции
Рис. 11.11. Учет размерности при построении графика .
Размерность элементов массива 221
Рис. 11.12. Упражнения для самостоятельной работы с размерностями
Подводя итоги этой главы, следует заметить, что учитывать размерности не слож-
но в простых задачах, где с размерностями и так все ясно, и их можно ввести разве
что для украшения отчета. В сложных же расчетах при использовании многих функ-
ций и нескольких дискретных переменных учесть размерности может оказаться
сложно. В таких случаях размерность (для справки) можно указать рядом с ре-
зультатом расчета в виде текстового комментария.
ГЛАВА
Вспомогательные
функции Mathcad
В предыдущих главах мы уже сталкивались с некоторыми наиболее широко ис-
пользуемыми встроенными функциями Mathcad. В этой главе речь пойдет о тех
функциях, которые применяются сравнительно редко, поэтому описание функ-
ций дано в краткой форме и не всегда сопровождается примерами. Полный список
встроенных функций Mathcad приведен в приложении В. Дополнительные сведе-
ния о работе с этими функциями можно найти в справочной системе Mathcad.
Проще всего найти описание нужной функции, щелкнув сначала на кнопке Insert
Function (Вставить функцию) стандартной панели инструментов Mathcad, азатем на
имени нужной функции в списке открывшегося диалогового окна — описание бу-
дет выведено в нижней части окна. Для получения дополнительных сведений в окне
Insert Function (Вставка функции) можно щелкнуть на кнопке со знаком вопроса —
откроется раздел справочной системы, посвященный выбранной функции, в кон-
це которого имеются ссылки на сопутствующие разделы и на примеры использо-
вания функций из центра ресурсов.
Откроем окно Insert Function и рассмотрим все группы функций.
^)ПРИМЕЧАНИЕ
Для удобства работы с матрицами во всех примерах этой главы значение системной
переменной ORIGIN равно 1.
Функции для работы
с комплексными числами
Mathcad содержит несколько функций для работы с комплексными числами:
О Re(z) — действительная часть комплексного числа z;
о Im(z) — мнимая часть комплексного числа z;
Функции для работы с комплексными числами 223
о arg(z) — аргумент комплексного числа z, -л < arg(z) < л ;
О csgn(z) — функция комплексного знака числа, возвращает:
• 0, если z = 0;
• 1,если Re(z) > 0 или Re(z) — 0 и Im(z) > 0;
• -1 — в остальных случаях;
О signum(z) — возвращает 1, если z = 0, и z/|z| — в остальных случаях.
Здесь z — вещественное, мнимое или комплексное число.
Комплексное число можно ввести как обычно, в виде суммы действительной и мни-
мой частей, либо как результат любого комплексного выражения.
ВНИМАНИЕ
Напомним, для ввода мнимой единицы надо ввести li или lj. После вывода курсора
из области числа единица исчезает, и Mathcad воспринимает число как комплекс-
ное.
Примеры ввода комплексных чисел и работы с ними приведены на рис. 12.1 (см. так-
же пример 8 в части IV).
Рис. 12.1. Функции для работы с комплексными числами
Функции Re и Im могут работать со скалярами, векторами и матрицами. Осталь-
ные функции с матрицами работать не могут.
Все функции, содержащиеся в категориях Curve Fitting (Функции регрессии) и Dif-
ferential Equation Solving (Функции решения дифференциальных уравнений) окна Insert
Function (Вставка функции) были подробно рассмотрены в главах 2, 6 и 7, поэтому
переходим сразу к категории Expression Туре (Тип выражения).
224 Глава 12. Вспомогательные функции Mathcad
Функции определения
типа выражения
В категории Expression Туре (Тип выражения) имеется 4 функции:
О IsArray(x) — возвращает 1, если х — матрица или вектор, иначе возвращает 0;
О IsScalar(x) — возвращает 1, если х — вещественный или комплексный скаляр,
иначе возвращает 0;
О IsString(x) — возвращает 1, если х — строка, иначе возвращает 0;
О UnitsOf(х) — возвращает размерность х, если х — размерная величина, иначе воз-
вращает 0.
Смысл этих функций понятен из их описания. Здесь и далее полагаем, что х —
вещественное безразмерное число и х > 0.
Функции доступа к файлам
В категории File Access (Доступ к файлам) 18 функций. Три из них являются чрез-
вычайно важными при разработке сложных программ. Это функции READPRN,
WRITEPRN и APPENDPRN — функции передачи данных в Mathcad из других файлов и
из Mathcad в другие файлы. Остальные функции предназначены для обработки
графических и музыкальных файлов и здесь не рассматриваются. С их описанием
и применением можно ознакомиться в справочной системе Mathcad и в центре
ресурсов. Итак, функции доступа к файлам:
О APPENDPRN("file") — добавляет числовые данные в существующий файл, здесь
"file" — имя файла или путь к файлу, если он находится в другом каталоге;
О READPRN("file") — считывает числовые данные из файла;
О WRITEPRN("file") — записывает числовые данные в файл.
Mathcad поддерживает еще несколько функций доступа к файлам, хотя их и нет
в окне Insert Function (Вставка функции). Это функции APPEND("file"), READ("file")
и WRITE("file"), оставленные для совместимости с прежними версиями Mathcad.
Если функции APPENDPRN, READPRN и WRITEPRN добавляют, считывают и записывают в
файл прямоугольную матрицу (число — частный случай матрицы размерностью 1x1),
то функции APPEND, READ и WRITE добавляют, считывают и записывают одно число.
Функции APPENDPRN, READPRN и WRITEPRN позволяют создавать вычислительные
комплексы из нескольких программ (см. раздел «Обмен данными с другими про-
граммами» в главе 2, а также пример 16 в части IV).
ВНИМАНИЕ
При вводе в название функции имени файла не забывайте ставить кавычки. Если не
указывать расширение, по умолчанию подразумевается расширение .ргп.
Функции поиска значений матрицы 225
На рисунке 12.2 показана запись матрицы Ат в файл primer.prn, добавление к нему
матрицы Вт, считывание данных из этого файла в матрицу К и присвоение разным
элементам матрицы К разных имен. Такая процедура позволяет записывать в файл
и считывать из файла разнообразные данные.
Рис. 12.2. Обмен данными между файлами
Функции поиска значений матрицы
В Mathcad имеется 4 функции поиска значений матрицы:
О Lookup(z, А, В)—в векторе или матрице А ищет заданную величину z и возвраща-
ет величины, стоящие в матрице В в той же позиции, что и z в матрице А; если
найдено несколько значений z, то возвращается вектор значений величин в стро-
гом порядке по рядам слева направо (рис. 12.3);
О hlookup(z, А, г) — в первом ряду матрицы А ищет заданную величину z и возвра-
щает величины в той же колонке в ряду г; если найдено несколько значений z,
то возвращается вектор значений величин (рис. 12.4);
О vlookup(z, А, с) — в первой колонке матрицы А ищет заданную величину z и воз-
вращает величины в том же ряду в колонке с; если найдено несколько значений
z, то возвращается вектор значений величин (рис. 12.5);
О match(z, А) — в векторе или матрице А ищет заданную величину z и возвращает
индексы, то есть номер строки и номер столбца; если найдено несколько значе-
ний z, то возвращается вектор найденных позиций величин в строгом порядке
по рядам слева направо (рис. 12.6).
Здесь z — действительное или комплексное число или строка, А и В — матрица или
вектор, г и с — номер строки и номер столбца (целые числа).
8 Зак. 882
226 Глава 12. Вспомогательные функции Mathcad
Рис. 12.3. Пример использования функции lookup
Функция hlookup ищет ч
число,
число z в первом ряду матрицы В и выводит
стоящее в той же колонке, что и число z, в ряду номер m
В :=
Vi i
Press Fl for help,
m := 1.. rovzs(B) hlookup(z,B,m)
(5) (О V" ••
= (5) !
(3) .(4). (1 'Wj-'
ж Л» * V -. < :>$••• ..j-’- Fj
JaUTO Г. Я«"1 iPage 2
f » A-r----- шУЙМШ r**1tifH**
4
3
3
Рис. 12.4. Пример использования функции hlookup
Функции hlookup и vlookup возвращают одно число. С помощью дискретной пере-
менной в приведенных примерах организован поиск по всей матрице.
Рис. 12.5. Пример использования функции vlookup
Преобразования функции в матрицу и матрицы в функцию 227
Функция match определяет место числа z в матрице В
Рис. 12.6. Пример использования функции match
Функция match для каждой найденной позиции числа z выводит две координаты
(номер строки и номер столбца) в виде составного массива. Чтобы раскрыть со-
ставной массив, надо проделать следующую процедуру.
1. Напишите имя выражения и нажмите клавишу = (равно). Появится ответ
в виде составного массива, где указаны только размерности вложенных мас-
сивов.
2. Дважды щелкните мышью на составном массиве — откроется диалоговое окно
Result Format (Формат результата).
3. Перейдите на вкладку Display Options (Параметры отображения) и установите фла-
жок Expand nested arrays (Раскрывать вложенные массивы).
На рисунке 12.6 показано, как с помощью дискретной переменной вывести отдельно
два вектора координат (по строкам и по столбцам).
Преобразования функции в матрицу
и матрицы в функцию
Преобразования функции в матрицу и матрицы в функцию необходимы в связи
с особенностями встроенных функций Mathcad. Одни функции возвращают мат-
рицу, а вам надо иметь функцию для последующего интегрирования или диффе-
ренцирования, или наоборот, Mathcad выводит функцию, а вам нужна матрица
для последующих матричных преобразований.
В Mathcad есть одна встроенная функция matrix, которая преобразует функцию
в матрицу. Пример ее использования приведен на рис. 12.7.
228 Глава 12. Вспомогательные функции Mathcad
Рис. 12.7. Преобразование функции в матрицу
Обращение к функции выглядит следующим образом:
matrix(m. n, F)
Функция возвращает матрицу размерностью mxn, элементы которой — значения
функции F(i, j), где i := O..m - 1 и] := O..n - 1.
Функция matrix по умолчанию использует значение системной переменной ORIGIN,
равное 0. Обычно же расчетчики используют это значение, равное 1, чтобы первая
строка и первый столбец матрицы обозначались номером 1. Однако функция matrix
значение ORIGIN = 1 не принимает. Приходится вырезать нулевые значения с по-
мощью функции submatrix. Получается громоздко и сложно. Кроме того, значения
х = i и у = j только целочисленные. Конечно, дробные значения аргументов орга-
низовать можно, записав х и у как некоторое выражение от i и]. Но и в этом случае
имеется ограничение, значения аргументов должны равноотстоять друг от друга.
На том же рис. 12.7 показано, как получить массив из функции без использования
функции matrix. С помощью дискретных переменных получается массив значений,
равноотстоящих друг от друга. Указывая произвольные векторы х и у, получаем
массив значений заданной функции для абсолютно произвольных аргументов.
Преобразование матрицы в функцию производится с использованием встроенных
функций интерполяции, которые, обрабатывая массивы точек, возвращают функ-
цию.
Преобразования функции в матрицу и матрицы в функцию 229
Рисунок 12.8 иллюстрирует преобразование вектора в функцию. Здесь X — вектор
значений аргумента, элементы которого обязательно располагаются в возрастаю-
щем порядке, a Y — вектор значений функции. В примере использована функция
кубической сплайн-интерполяции LspLine со стыковкой сплайнов по прямой ли-
нии. Приведенный график показывает совпадение значений вектора со значения-
ми найденной функции и возможность ее интегрирования и дифференцирования.
Рис. 12.8. Преобразование вектора в функцию
Преобразование матрицы в функцию двух переменных осуществляется путем двух-
мерной интерполяции (рис. 12.9), о которой рассказывалось в главе 7 (вверху на
рисунке показаны формулы создания исходного массива данных, который в кон-
кретной задаче должен быть уже создан; требуется лишь его интерполяция).
Полученную интерполяцией функцию ZZ(x, у) можно интегрировать, дифферен-
цировать, можно также выводить отдельные численные значения найденной функ-
ции.
При быстром построении графика поверхности в шаблон графика достаточно впи-
сать имя функции, и график построен. Но при этом пределы изменения аргумен-
тов берутся по умолчанию, и график получается несопоставимым с графиком ис-
ходных значений массива. Чтобы изменить масштаб графика, надо, дважды
щелкнув мышью на графике, открыть окно форматирования графика, перейти на
вкладку QuickPlot Data (Быстрое построение графика) и ввести пределы изменения
координат х и у (наибольшее и наименьшее значения элементов векторов X и Y).
Обратите внимание: на левом графике значения координат — это индексы i и], на
правом графике — значения х и у.
232 Глава 12. Вспомогательные функции Mathcad
Преобразование декартовых координат
в сферические и обратно
z. =
i
x. =
1
0.5 0 0.5
-0.5 0.866 1
-0.75 -1.299 1.5
Z2 := xyz2sph(x,y,z)
сферические координаты
VO 707 \
О
<0.785 >
Z2 =
2.094
<0.785 ;
2
7i ?
г
Z := sph2xyz(r,p,y) xi
Ti =
0.785
0.785
0.785
х. =
i
-2.094
0.785
3
0.5
-0.5
-0.75
Press Hl Го help.
• I lYf t- ммГ
2
z-
1
У1
:WM
Рис. 12.12. Преобразование прямоугольных координат в сферические и обратно
Напомним, для раскрытия составного массива надо дважды щелкнуть на нем мы-
шью, в открывшемся диалоговом окне Result Format (Формат результата) перейти на
вкладку Display Options (Параметры отображения) и установить флажок Expand nested
arrays (Раскрывать вложенные массивы). Обратите внимание, что угловая координа-
та по умолчанию выводится в радианах. Чтобы перевести радианы в градусы, надо
в место ввода размерностей вписать слово deg.
По умолчанию рассматриваемые функции работают только с числами — исполь-
зуется индексная форма (см. рис. 12.10) или оператор векторизации (см. рис. 12.11),
что предпочтительнее, поскольку проще и элегантнее.
Функции условия
В Mathcad есть несколько способов записи условия. Наиболее популярные из них
были рассмотрены в главах 2 и 9. Добавим к ним еще три функции, используемые
реже. Это функция Хевисайда, символ Кронекера и функция знака:
О Ф(х) — функция Хевисайда, возвращает 0, если х 0, иначе — 1;
° S(i, j) — символ Кронекера, возвращает 1, если i = j, иначе — 0;
О sign(x) — функция знака, возвращает 0, если х = 0, возвращает 1, если х > 0, воз-
вращает — 1 во всех остальных случаях.
Функции условия 233
Примеры использования указанных функций приведены на рис. 12.13 и 12.14.
В верхней части рис. 12.13 показана формула перемены знака выражения с помо-
щью функции sign, что требуется иногда, если аргумент возводится в четную сте-
пень. Далее приведены 4 способа записи условия в Mathcad. Использование функ-
ции Хевисайда почти аналогично использованию булевых операторов.
Рис. 12.13. Различные способы записи условия в Mathcad
Определение девиатора напряжений
1..3
1..3
а :=
-25
-25
-10
тензорная запись
V . :=<4,j-5(hj) cF0
матричная запись
DG := о - То
P>es$ fj for help
шаровой тензор
erg т0 := diag(oO)
3
-25
-25
То =
'о =
среднее
напряжение
оо = 8.333
о
о
8.333
8.333 7
-25
-18.333
11.667 >
0
-25
-18.333
Ылбт
ИЙУП1
Рис. 12.14. Использование символа Кронекера в вычислениях с тензорной записью
234 Глава 12. Вспомогательные функции Mathcad
Умножение соответствующего слагаемого на функцию Хевисайда включает сла-
гаемое в выражение или исключает его оттуда.
Так как функция Хевисайда возвращает 0, если аргумент функции равен 0 или
меньше 0, то, записав в качестве аргумента соответствующее выражение, можно
наложить на него любое ограничение.
На рисунке 12.14 показано применение символа Кронекера при использовании
в вычислениях тензорной записи. В качестве примера приведен расчет девиатора
заданного тензора напряжений. Как видно из примера, тензорная запись короче
и проще, чем матричная.
Функции округления чисел
Mathcad содержит 4 функции округления чисел:
О ceil(x) — возвращает ближайшее целое число, большее х (потолок);
О floor(x) — возвращает ближайшее целое число, меньшее х (пол);
О trunc(x) — возвращает целую часть числа;
О round(x, п) — возвращает округленное значение числа х с точностью до п знаков
после десятичной точки.
Примеры использования этих функций приведены на рис. 12.15.
Рис. 12.15. Функции округления, комбинаторики и теории чисел
Функции комбинаторики и теории чисел
Mathcad содержит 5 функций комбинаторики и теории чисел:
О combin(n, к) — возвращает число сочетаний из п целых чисел по к, где п > к;
О permut(n, к) — возвращает число размещений из и целых чисел по к, где п > к;
О 1cm (А, В, С,...) — возвращает наименьшее общее Кратное для чисел А, В, С„...,
О gcd(A, В, С,...) — возвращает наибольший общий делитель для чисел А, В„ С,...;
Функции тригонометрические, гиперболические, логарифмические 235
О mod(x, у) — возвращает остаток от делениях на у, записанный со знаком числа х.
В функциях 1cm и gcd аргументом может быть как строка чисел, указанных через
запятую, так и вектор. Примеры использования этих функций приведены на
рис. 12.15.
Функции тригонометрические,
гиперболические, логарифмические
и экспоненциальные
Примеры использования встроенных в Mathcad тригонометрических, гиперболи-
ческих, логарифмических и экспоненциальных функций приведены на рис. 12.16.
Их применение понятно и без пояснений. Обратите внимание на написание неко-
торых функций, не совпадающее с общепринятым в математике.
Рис. 12.16. Элементарные математические функции
В функции log(z, b) второй параметр b является необязательным. Если он отсут-
ствует, вычисляется десятичный логарифм, если присутствует — логарифм по
основанию Ь.
Обратите внимание на функции angle(x, у) и atan(x, у), вычисляющие угол и арк-
тангенс. Обе они в принципе определяют одно и то же: угол между осью абсцисс и
радиус-вектором точки с координатами х и у. Но если функция angle вычисляет
угол в пределах от 0 до л, то функция atan вычисляет угол от -л/2 до л/2. По умол-
чанию углы вычисляются в радианах. Чтобы вывести углы в градусах, надо в мес-
то ввода размерности (справа от числового результата) ввести слово deg.
236 Глава 12. Вспомогательные функции Mathcad
Специальные функции
В этом разделе рассматриваются некоторые редко используемые функции. Среди
них есть функции активные (вычисляемые) и неактивные (невычисляемые), ко-
торые применяются во внутренних алгоритмах Mathcad.
Функции Бесселя
Функции Бесселя по определению являются решениями различных краевых за-
дач для некоторых обыкновенных дифференциальных уравнений. Функции Бес-
селя первого и второго рода часто являются решениями волнового уравнения с ци-
линдрическими граничными условиями.
Mathcad содержит 18 встроенных функций.
Обычные функции Бесселя:
О J0(x) — функция Бесселя первого рода нулевого порядка;
О Л(х) — функция Бесселя первого рода первого порядка;
О Jn(m, х) — функция Бесселя первого рода m-го порядка;
О Y0(x) — функция Бесселя второго рода нулевого порядка (х > 0);
О Yl(x) — функция Бесселя второго рода первого порядка (х > 0);
О Yn(m, х) — функция Бесселя второго рода m-го порядка (х > 0).
Здесь х — вещественное безразмерное число, m — целое число, означающее поря-
док (0 < m < 100).
Модифицированные функции Бесселя:
О Ю(х) — модифицированная функция Бесселя первого рода нулевого порядка;
О И(х) — модифицированная функция Бесселя первого рода первого порядка;
О In(m,x) — модифицированная функция Бесселя первого рода m-го порядка;
О К0(х) — модифицированная функция Бесселя второго рода нулевого порядка (х > 0);
О К1(х) — модифицированная функция Бесселя второго рода первого порядка (х > 0);
О Kn(m,x) — модифицированная функция Бесселя второго рода m-го порядка (х > 0).
Здесь х — вещественное безразмерное число, m — целое число, означающее поря-
док (0 < m < 100).
Сферические функции Бесселя:
О js(n, х) — сферическая функция Бесселя первого рода порядка п (х > 0);
° ys(n, х) — сферическая функция Бесселя второго рода порядка п (х > 0).
Здесь п — порядок (целое число).
Примеры графического представления некоторых функций Бесселя показаны на
рис. 12.17 и 12.18.
Специальные функции 237
Рис. 12.17. Функции Бесселя первого рода (слева модифицированные, справа обычные)
Рис. 12.18. Функции Бесселя второго рода (слева), сферические функции Бесселя (справа)
Функции Эйри
Функции Эйри являются независимыми решениями ОДУ у" = ху:
О Ai(х) — функция Эйри первого рода;
О В1 (х) — функция Эйри второго рода.
Здесь х — вещественное безразмерное число.
238 Глава 12. Вспомогательные функции Mathcad
Функции Бесселя—Кельвина
Комплексная комбинация функций Бесселя—Кельвина вида ber(n,x) + i-bei(n,x) яв-
ляется решением соответствующего ОДУ, зависящего от параметра п:
О bei(п, х) — мнимая часть функции Бесселя—Кельвина порядка п;
О ber(n, х) — действительная часть функции Бесселя—Кельвина порядка п.
Другие специальные функции
В Mathcad введено много различных специальных функций. Кроме уже рассмот-
ренных, это гамма-функция, гипергеометрические функции, ортогональные поли-
номы и т. д. Описание этих функций, математические формулы и примеры исполь-
зования имеются в справочной системе Mathcad и в Центре ресурсов. Несколько
примеров использования этих функций приведено также на рисунке 12.19.
Дополнительные неактивные функции
При загрузке символьного процессора Mathcad распознает ряд дополнительных
специальных функций: интегралы Френеля, интегральные синус, косинус, пока-
зательная функция, дилогарифм, функция Дирака. Статус этих функций необы-
чен — они могут фигурировать в результатах символьных операций, но недоступ-
ны для обычных численных вычислений. Эти функции, по существу, являются
текстовыми записями. Выражения с неактивными функциями Mathcad помещает
в буфер обмена, и их можно извлечь оттуда для просмотра. Описание этих функ-
ций есть в справочной системе Mathcad.
Полиномы порядка п
Эрмита Лаггера F(n,x) := Her(n,x) F(n,x) := Lag(n,x)
Лежандра F(n,x) := Leg(n,x)
Якоби F(n,x) := Jac(n,2,l ,x) F(l.x)
Чебышева F(n,x) := Tcheb(n,x) F(2,x)
первого рода Я Я Я Я
Чебышева F(n,x) := Ucheb(n,x) F(3,x)
второго рода ♦
Гамма-функция F(n,x) := Г(п,х)
Press Fl for help.
10
0
-10
0
х:= -2,-1.9 ..2
сдвигая график вниз,
посмотрите все функции
х
4 i
Рис. 12.19. Примеры использования ортогональных полиномов
Строковые функции 239
Строковые функции
"a scalar " D := "a vector"
А := "This value " В := "must be "
S := concat(A,B,C) объединение строк
S = "This value must be a scalar"
strlen(S) = 28 число символов в строке
search(S,С,0) = 19 число позиций с начала строки S до подстроки С
subst<S,ll ,7) = "mustbe" выделение подстроки из 7 символов, начиная с позиции 11
АЩО
V := str2vec(E) V =(109 117 115 116 32 98 101 32)
преобразование строки символов в вектор ASCII-кодов
vec2str(V) = "must be " преобразование вектора ASCII-кодов в строку символов
num2str\2.3510
= "2350000"
гтитш -гмлплп преобразование числа в строку и обратно
str2num( 2350000 ) = 2350000
CWD = ,,О:\Книги\Учебныйкурс\Инженерные расчеты в MathacdVlMCK\Glava 1-15Х
полный путь к данному документу
И :’ ‘ | -П;.-
Press Fl for help
Г:..,.,,,,..,.....
..
Рис. 12.20. Примеры применения строковых функций
Строковые функции
Строковые функции выполняют действия со строковыми переменными. Строка
представляет собой цепочку символов, заключенных в кавычки. В Mathcad име-
ются следующие функции для работы со строками:
О concat(A, В, С...)—строковая переменная, полученная объединением строковых
переменных или констант А, В, С;
О num2str(z) — строковое представление числа z;
О str2num(S) — преобразование строкового представления числа S в вещественное;
О str2vec(S) — преобразование в вектор строки S, содержащей записи веществен-
ных чисел в строковом формате;
О strlen(S) — количество знаков в строке S;
О vec2str(V) — строковое представление вектора V;
О Istring(S) — возвращает 1, если S — строка;
О search(Sl, SubS, m) — возвращает стартовую позицию подстроки SubS в строке S1,
начиная с позиции т; возвращает 1, если подстрока не найдена;
О error(S) — при появлении ошибки возвращает строку S;
О CWD — возвращает полный путь к лапке, где хранится открытый документ.
Примеры действий со строками приведены на рис. 12.20.
При работе со строками первая позиция считается нулевой
gl ГЛАВА Работа с документами
Эта книга рассчитана на пользователей, знакомых с работой под управлением
Windows. Интерфейс Mathcad типичен для Windows-приложений, поэтому цель
описать все панели Mathcad не ставится. В процессе работы с Mathcad пользова-
тель поневоле вынужден будет знакомиться с интерфейсом Mathcad. В данной главе
сообщим лишь сведения, необходимые для инженерных расчетов в Mathcad и по-
зволяющие избежать определенных трудностей в работе.
Построение математических выражений
Вопросы построения математических выражений затрагивались в главе 1. Тем не
менее одну важную фразу оттуда мы повторим и здесь: «Имя выражения (все, что
находится слева от оператора присваивания) может состоять из латинских, рус-
ских, греческих и других букв, а также цифр, знаков подчеркивания (_), штриха
('), процента (%) и бесконечности (оо), вводимых с клавиатуры».
Имена переменных и функций не могут начинаться с цифры, знака подчеркива-
ния, штриха, процента, не могут включать в себя пробелы. Символ бесконечности
может быть только первым символом в имени.
ВНИМАНИЕ
Mathcad воспринимает прописные и строчные буквы как разные идентификаторы.
Математические выражения могут содержать лишь переменные и константы. Со-
ответственно в Mathcad предусмотрено определение стиля переменных и констант.
ВНИМАНИЕ
Если вы, установив курсор на одном из математических выражений (или выделив
это выражение целиком или частично), с помощью панели форматирования измени-
те наименование шрифта, его размер, то это изменение автоматически будет приме-
нено ко всем выражениям, относящимся соответственно к типам переменных или
констант.
Построение математических выражений . 241
Для изменения формата переменных или констант помимо панели форматирования
можно использовать диалоговое окно Equation Format (Формат уравнений), показанное
на рис. 13.1 Для его открытия выберите команду Format ► Equation (Формат ► Уравне-
ние). В списке Style Name (Имя стиля) выберите пункт Variables (Переменные) или
Constants (Константы), после чего щелкните на кнопке Modify (Изменить). В новом окне
последовательно выберите нужные шрифт, начертание, размер шрифта и щелкните
на кнопке ОК (рис. 13.2). Последнее окно относится к интерфейсу Windows, и имена
его элементов интерфейса в локализованной версии представлены на русском языке.
Variables
Шрифт:
Рис. 13.1. Окно форматирования переменных и констант
Начертание
обычный
О Agency FB
4? Algerian
О Arial Black
О Arial Narrow
% Arial Rounded MT Bole
p В идоизменение -~—
x:................
H..: Подчеркнутый
< • •
Ж
6:
обычный
курсив
жирный
жирный курсив
Образец
H асюр символов:
ЖЖ*
i XXX: •
10
11
12
14
16
18
20
Размер:
lio
: '• % ...
.. ’ h"'" . • ...Й
. Шрифт OpenType. Он используется для вывода как на зкран,
: так и на принтер.
&
£
Рис. 13.2. Выбор параметров стиля
Итак, Mathcad не разрешает изменять стиль одного отдельно взятого математи-
ческого выражения. Однако если нельзя, но очень хочется, то ... можно. Для этого
надо создать новый стиль и применить его к выбранному выражению.
1. В главном меню Mathcad выберите команду Format ► Equation.
2. В появившемся окне Equation Format выберите один из стилей, начинающихся
со слова User (при желании можно в дальнейшем переименовать его).
242 Глава 13. Работа с документами
3. Щелкните на кнопке Modify, в открывшемся окне задайте параметры стиля, выб-
рав его шрифт, начертание и размер, и щелкните на кнопке ОК.
Описанную процедуру иллюстрирует рис. 13.3. Аналогично можно создать свой
текстовый стиль, только в меню Format (Формат) вместо команды Equation (Уравне-
ние) надо выбрать команду Style (Стиль), как показано на рис. 13.4.
>
£
Math Style
£tyleName
New Style Name
Black
Cancel
Рис. 13.3. Создание своего стиля для выражений
в
Mathcad Profettional - {Untitled: 1]
Elfe £& J#ew Insert Ffirmar gymbofcs Window £elp
| Normal
fiesw».
:«***>*>
10
1 afcs..
АЬййРезюп$
Агва
Protect Worksheet^
Headers^oorers:.
Pepagjinale Ноц
Define Style
• Based On | N or mal
’• Description• --
Toni..,:
Paragraph.
Cancel
W
Пуж|. M i’ CHJ2 . I ^Windows 46- T 13JS'
Ш M W i sam;®®
:<-......
£
Й
$
!
Рис. 13.4. Создание нового текстового стиля
Построение математических выражений 243
А вот стиль вывода результатов расчета для одного единственного числа создать
не удается. Стили Users не принимаются, а любое изменение формата числа приво-
дит к аналогичному изменению формата всех чисел в документе.
Пример использования нового стиля приведен на рис. 13.5.
Первое выражение в верхней строке создано с помощью текстового стиля Normal
(Обычный), второе — вновь созданного стиля Nov 1. Во второй и третьей строках
для переменных варьируются стиль Variables и вновь созданный стиль User 1. Для
вывода результатов применен единый стиль Constants. Обратите внимание, что
переменная а, введенная стилем Variable, становится неопределенной для Mathcad
при назначении ей стиля User 1.
Внесенные изменения переменных и констант не касаются результатов расчетов.
Для них существует свой способ форматирования.
Рис. 13.5. Применение вновь созданных стилей
ВНИМАНИЕ Назначение собственного стиля идентификатору равносильно его переименованию.
После этого Mathcad начинает воспринимать даже одинаковые по составу букв иден-
тификаторы как разные.
Если в меню Format (Формат) выбрать команду Results (Результаты), то откроется окно
форматирования результатов расчетов, где можно задать параметры результатов на
вкладках Number Format (Формат чисел), Display Options (Параметры отображения), Units
Display (Вывод размерностей), Tolerance (Точность), как показано на рис. 13.6.
Рассмотрим вкладки этого окна.
о Number Format — параметры форматирования чисел подробно описаны в главе 1.
о Display Options — параметры отображения рассматривались в главе 4, посвящен-
ной работе с матрицами, поскольку именно к матрицам применяется большин-
ство элементов управления этой вкладки. Здесь же можно задать вид мнимой
единицы на экране (i или j).
О Units Display — два флажка этой вкладки упоминались в главе 11. При установке
флажка Format Units (Формат размерностей) отрицательные степени размернос-
тей выводятся в виде знаменателя дроби. Флажок Simplify units as possible (Упро-
щать размерности, если возможно), как правило, ничего не меняет.
244 Глава 13. Работа с документами
о Tolerance — на этой вкладке можно задать порог отображения комплексного
числа (Complex threshold), по умолчанию равный 10. Это означает, что при
> 1О10 число будет изображено как действительное (без мнимой час-
Im(Z)
х Im(Z) . мо . .
ти), а при —--->10 число будет изображено как чисто мнимое (без дей-
Re(Z)
ствительной части). Кроме того, на этой вкладке устанавливается порог нуля
(Zero threshold), определяющий, какие числа признаются равными нулю.
По умолчанию этот порог равен 15, то есть число, меньшее 10~15, будет выво-
диться как нуль.
Рис. 13.6. Окно форматирования результатов расчетов
Если необходимо как-то выделить одно или несколько выражений, используйте
команду Properties (Свойства) контекстного меню, раскрывающегося при щелчке
правой кнопкой мыши на нужном выражении. В Mathcad 20011 впервые появи-
лась возможность распространить действие параметров появляющегося при вы-
боре этой команды диалогового окна на всю предварительно выделенную группу
объектов, как показано на рис. 13.7. * В
^)ПРИМЕЧАНИЕ
Напоминаем, что состав команд контекстного меню зависит от выбранного объекта.
В данном случае на вкладке Display (Вид) установлены флажки Highlight Region (Вы-
делить область) и Show Border (Показывать рамку). Первый позволяет выделить ука-
занные выражения цветом, который выбирается с помощью диалогового окна Color
(Цвет) после щелчка на кнопке Choose Color (Выбор цвета), второй — окружить каж-
дое из выбранных выражений рамкой.
Единственный флажок на вкладке Protect (Защитить) позволяет запретить редак-
тирование выделенных объектов, но только в том случае, если включена защита
всего документа.
Защита информации в Mathcad 245
П&иф1И^^0е^Ш^Ие!
[GiverJ ]x2 + у2 я 36
;F > Mmen(x,y^
* Display Protect
Backgtomd
• . ’*
.^.Highlight Region
...........;•:...:...;. .:.. ....::
P Showgordet •
•’. '-7 7 , ’
.....
1
si?
OK
.......
Жйтмена
f
i
Choose £olor.
74.274'
’ I 4.22 >
*
Й
: > 7
Й
Рис. 13.7. Выбор свойств выделенной группы объектов
Защита информации в Mathcad
Возможность защиты информации появилась только в Mathcad версии 200 li.
Чтобы включить защиту документа в целом, надо в главном меню Mathcad выб-
рать команду Format ► Protect Worksheet (Формат ► Защитить документ). В появившем-
ся окне предлагается три уровня защиты документа (рис. 13.8).
Рис. 13.8. Защита документа от редактирования или копирования
О File (Файл) — не накладывает никаких ограничений на редактирование и копи-
рование любых областей файла, то есть защита отключена.
246 Глава 13. Работа с документами
О Content (Содержание) — существующие области защищены от редактирования.
Новые области могут быть созданы. Защищенные участки файла можно копировать.
О Editing (Редактирование) — созданные области не могут редактироваться или
копироваться. Новые области не могут быть созданы. Команды контекстного
меню недоступны.
При установке переключателя Content или Editing в поле Password (Пароль) можно
ввести пароль, чтобы затруднить процедуру снятия защиты. Для подтверждения
правильности введенного пароля его требуется ввести еще раз в последнем поле и
щелкнуть на кнопке ОК.
Для снятия защиты надо в главном меню Mathcad выбрать команду Format ►
Unprotect Worksheet (Формат ► Снять защиту с документа). Если был введен пароль,
появится сообщение с предложением ввести пароль для снятия защиты.
В Mathcad имеется возможность защищать от редактирования не только весь до-
кумент, но и выбранные области. Щелкните правой кнопкой мыши на любом объек-
те, в раскрывшемся контекстном меню выберите команду Properties (Свойства) и в
появившемся окне перейдите на вкладку Protect (Защита), как показано на рис. 13.9.
Рис. 13.9. Включение защиты выбранной области
По умолчанию флажок Protect region from editing (Защитить область от редактирова-
ния) для всех выражений установлен. Снимите его, чтобы в дальнейшем при вклю-
чении защиты с помощью команды Format ► Protect Worksheet (формат ► Защитить до-
кумент) объект оставался незащищенным и мог редактироваться. Не забудьте
сохранить файл, чтобы защита оставалась включенной при открытии файла.
В Mathcad 200li можно выбрать уровень защиты, устанавливаемый по умолча-
нию для всех открываемых документов. В главном меню Mathcad выберите ко-
манду View ► Preferences (Вид ► Предпочтения) и в открывшемся окне перейдите на
вкладку Script Security (Защита документов), как показано на рис. 13.10.
В открывшемся окне предлагается выбрать уровень безопасности, чтобы опреде-
лить действия:
О Low Security (Низкий уровень защиты) — документ открывается без учета уровня
защиты документа;
Закрытые зоны в Mathcad 247
О Medium Security (Средний уровень защиты) — при открытии документа выводится
на экран предупреждение, если документ содержит защищенные области;
О High Security (Высокий уровень защиты) — защищенные области автоматически
отключаются при открытии документа.
. .
Рис. 13.10. Выбор уровня защиты для всех открываемых документов
Закрытые зоны в Mathcad
Закрытая зона — это часть документа Mathcad, которая присутствует в документе,
участвует в расчетах, но не видна на экране. Необходимость в создании такой зоны
возникает в двух случаях: если нужно уменьшить размер документа или если нуж-
но скрыть информацию от посторонних глаз.
1. В главном меню Mathcad выберите команду Insert ► Area (Вставка ► Зона). На
экране появятся две горизонтальные линии с маркерами слева. Перетащите их
мышью в начало и в конец области, которую надо закрыть.
2. Щелкните правой кнопкой мыши на выделенной линиями области и в открыв-
шемся контекстном меню выберите команду Collapse (Закрыть). Выделенная об-
ласть исчезнет. Останется лишь одна горизонтальная линия с маркером.
Выражения, находящиеся в закрытой зоне, продолжают работать в документе, хотя
и не видны на экране.
Чтобы открыть закрытую зону, надо дважды щелкнуть левой кнопкой мыши на
линии с маркером. Закрытая зона становится открытой и появляется на экране
в обрамлении двух линий с маркерами.
Чтобы удалить закрытую зону, щелкните мышью на одной из линий с маркером,
выделив ее, и нажмите клавишу Del.
248 Глава 13. Работа с документами
Чтобы запретить доступ к закрытой зоне, вначале закройте ее командой Collapse,
затем, щелкнув на линии с маркером правой кнопкой мыши, в контекстном меню
выберите команду Lock (Запереть). Появится запрос на ввод пароля, причем два
раза для надежности (рис. 13.11). После ввода пароля на линии рядом с маркером
появится замок и дата запирания зоны.
Рис. 13.11. Ввод пароля при запирании и отпирании зоны
Для открытия запертой зоны щелкните правой кнопкой мыши на линии с марке-
ром и в контекстном меню выберите команду Unlock (Отпереть). Появится запрос
на ввод пароля. После ввода пароля зона откроется, замки на линии с маркерами
исчезнут.
Различные состояния зон показаны на рис. 13.12.
Создание вычислительных комплексов 249
Создание вычислительных комплексов
Используя панель программирования, с помощью Mathcad можно составить про-
грамму абсолютно любой степени сложности, но переводить на Mathcad уже име-
ющиеся программы, написанные на алгоритмических языках, было бы безумием.
Mathcad позволяет создавать вычислительные комплексы, объединяющие различ-
ные программы. К готовым программам надо лишь дописать недостающие фраг-
менты на Mathcad.
Есть несколько способов объединения различных программ в один вычислитель-
ный комплекс. Рассмотрим два таких способа.
Использование ссылок на другие файлы
В примере 14 из части IV продемонстрирована возможность объединения несколь-
ких документов Mathcad в один с помощью ссылок. В основном документе делает-
ся ссылка на другой документ. В результате оба документа объединяются в один
и работают совместно, хотя второго документа не видно на экране.
Для создания ссылки надо в главном меню Mathcad выбрать команду Insert ► Reference
(Вставить ► Ссылку). В открывшемся окне, щелкнув на кнопке Browse (Обзор), укажите
путь к документу, который хотите включить в расчет, и щелкните на кнопке ОК. В ос-
новном документе появится строка с именем подключенного документа.
Рекомендуется при создании ссылки использовать относительный путь. Указав
путь к документу, установите флажок Use relative path for reference (Использовать
относительный путь для ссылки). При этом в строке документа, указывающей на ссыл-
ку, появится буква (R). В этом случае ссылка останется действующей, даже если
вы переместите основной документ в другую папку. Важно лишь, чтобы оба доку-
мента находились на одном диске.
На рисунке 13.13 показано диалоговое окно вставки ссылки. Ниже окна виден ре-
зультат вставки: строка со ссылкой и начало расчетных данных.
При каких-либо изменениях в том или ином документе автоматический пересчет
происходит только после сохранения изменений в обоих документах. Иногда для
успешной работы комплекса программ после сохранения приходится закрыть
и вновь открыть файл.
Использование гиперссылок
В примере 14 для ввода данных и их корректировки программа Matr-ind была вклю-
чена в основной документ с помощью ссылки. В примере 16 для корректировки
Данных используется гиперссылка.
Гиперссылка позволяет открыть файл, с которым создана связь, в той оболочке,
в которой он создан.
1. Выделите слово, с которым будет связан интересующий вас файл, желательно
черным цветом. Тогда после установления связи выделенное слово окажется
выделенным жирным шрифтом.
250 Глава 13. Работа с документами
2. В главном меню Mathcad выберите команду Insert ► Hyperlink (Вставка ► Гипер
ссылка), в открывшемся окне щелкните на кнопке Browse и укажите путь к фай
лу, с которым надо связать выделенное слово. Затем щелкните на кнопке ОК.
ORIGIN := 1 nr >13 пф>5
0 Referenc е :D :\Р едакция-чистовик\Р art 4\Prim 14\Mke-14\М atr-indl .me d(R)
число узлов NU = 65
число элементов NE = 96
число узлов в ряду nr = 13
число рядов в столбце пф = 5
Рис. 13.13. Вставка ссылки на другой файл
Расчет координат узлов и матрицы индексов на фортране
D AN. DAT-
Press Fl For hdp
FORTRAN FORT.exe rez.rez
Рис. 13.14. Вставка гиперссылки
Двойной щелчок мышью на выделенном слове открывает файл, с которым уста
новлена связь. Этот файл можно отредактировать и сохранить. Для передачи дан
Создание вычислительных комплексов 251
ных в документ Mathcad внутри связанного файла их надо записать в другой внеш-
ний файл, откуда затем считать функцией READPRN.
Рисунок 13.14 иллюстрирует процедуру создания гиперссылки на файл Dan.dat,
где находятся исходные данные для расчета из примера 16 на языке FORTRAN.
После создания гиперссылки при подведении указателя мыши к слову, с которым
связана гиперссылка, указатель становится похожим на указательный палец. Двой-
ной щелчок на этом слове вызывает открытие связанного с ним файла в его обо-
лочке, в данном случае в программе Notepad (Блокнот), как показано на рис. 13.15.
Теперь можно проверить исходные данные, изменить их для новой задачи, сохра-
нить. Однако в расчеты документа Mathcad измененные данные автоматически не
попадут.
Документы, присоединенные гиперссылкой, надо вызвать двойным щелчком мыши
на связанном с ними слове и запустить.
Кольцо с 2-мя силами 6*3*0.57
2
2
0.3
100 0.57
22 2 4
111 113
22*0.
22 12
56 57 58
45 Безымянный > Блокнот
0 0 0 0 0
10 5 1.5
1 20 21 40 41
I 10*0.15
| 5*18.
1 2е6
60 61 80 81 100
м 1
* •-
<• •:
6 8 10
115 117
12
119
4 16 18 20 22
121 123 125 127 129 131
3 4 5 6 7
59 60 61 62 63 64 65 66
8 9
Расчет координат узлов и матрицы индексов на фортране
DAN.fr АТ
Press П for heip.
FORTRAN FORT.exe rez.rez
••• . •••• ••
Рис. 13.15. Открытие файла Dan.dat
Двойной щелчок на гиперссылке FORT.exe вызывает запуск и пересчет программы
на FORTRAN. Двойной щелчок на слове FORTRAN вызывает открытие оболочки
FORTRAN, в которой можно скорректировать программу на языке FORTRAN,
азатем снова активизировать гиперссылку FORT.exe. Двойной щелчок на гипер-
ссылке rez.rez открывает результаты работы программы на языке FORTRAN.
Результаты работы программы на языке FORTRAN в документ Mathcad не пере-
даются. Их надо предварительно записать в отдельный файл, а затем в документе
252 Глава 13. Работа с документами
Mathcad с помощью функции READPRN считать из этого файла, присвоить им нуж-
ные имена и далее использовать.
Если расчеты в Mathcad должны быть переданы в другую программу для продол-
жения расчетов или оформления результатов, в документе Mathcad нужные ре-
зультаты расчетов должны быть записаны в отдельный файл функцией WRITEPRN,
откуда их получит для обработки другая программа.
Подведем итог. Ссылка работает в документе Mathcad автоматически; гиперссыл-
ка требует запуска каждой подключенной программы двойным щелчком мыши.
Основная область применения гиперссылок — электронные книги, о которых речь
пойдет в следующей главе.
Вставка объектов в документ Mathcad
Хотя Mathcad позволяет создавать документы, содержащие и текст, и формулы,
и графики, иногда возникает потребность вставить в документ Mathcad фрагмент,
созданный в других программных оболочках.
Удобнее всего вставлять фрагменты через буфер обмена. Для примера рассмот-
рим вставку текста из документа Word. Для этого выделите нужный фрагмент в
документе Word, скопируйте его в буфер обмена, перейдите в окно Mathcad и щел-
чком мыши установите курсор в то место, куда надо скопировать фрагмент. Вста-
вить фрагмент в Mathcad можно двумя способами.
О Можно создать в документе Mathcad текстовую область, введя символ " (двой-
ная кавычка), и вставить туда фрагмент из буфера обмена, щелкнув на кнопке
Paste (Вставить) стандартной панели инструментов. В этом случае фрагмент бу-
дет вставлен в документ в виде текстовой области, которую затем можно редак-
тировать обычными средствами Mathcad.
О Можно, не создавая текстовой области, сразу вставить фрагмент из буфера об-
мена, щелкнув на кнопке Paste. В этом случае текст будет вставлен в документ
в виде объекта OLE, то есть для его редактирования каждый раз будет вызы-
ваться то приложение, в котором он был создан. Двойной щелчок мышью на
вставленном таким образом объекте открывает приложение, в котором он был
создан, что дает возможность редактировать объект (рис. 13.16).
Рис. 13.16. Редактирование документа Word в Mathcad
Вставка объектов в документ Mathcad 253
Можно также вставить фрагмент документа Mathcad в документ Word. Если для это-
го использовать буфер обмена, то текстовые области распознаются программой Word
и в дальнейшем их можно редактировать средствами Word как обычный текст, фор-
мулы же программой Word не распознаются и редактировать их нельзя (рис. 13.17).
Рис. 13.17. Фрагмент документа Mathcad в Word
Чтобы иметь возможность редактировать весь документ Mathcad (включая фор-
мулы и графики) внутри документа Word, его надо вставлять в виде объекта OLE.
1. Запустите Word и установите курсор в то место документа, где будет находить-
ся фрагмент документа Mathcad.
2. В главном меню Word выберите команду Вставка ► Объект.
3. В открывшемся диалоговом окне Вставка объекта перейдите на вкладку Созда-
ние из файла и, щелкнув на кнопке Обзор, найдите нужный файл с документов
Mathcad. При необходимости установите флажок Связь с файлом. В этом случае
все изменения, вносимые в документ Mathcad, будут автоматически отражать-
ся в документе Word. Если установить еще и флажок В виде значка, на месте
курсора появится значок, двойной щелчок мышью на котором вызовет откры-
тие выбранного файла в документе Word.
Можно также не вставлять в документ Word готовый файл Mathcad, а подгото-
вить его непосредственно при работе с документом Word. Для этого при открытии
диалогового окна Вставка объекта перейдите на вкладку Создание, в списке Тип объекта
выберите пункт Mathcad Document (Документ Mathcad) и щелкните на кнопке ОК.
После этого панели инструментов и меню программы Word изменятся, превра-
254 Глава 13. Работа с документами
тившись в соответствующие средства Mathcad (рис. 13.18). После завершения ра-
боты над документом Mathcad щелкните вне его в области документа Word — вы
вновь увидите панели инструментов и меню программы Word.
ДокументЗ - WettfcLj-
Файл 2^ Insert Pfir mat Tools jvmbJxs Qwt* tle&-
Normal
; i t. •
6
as;;;..22'7'.>
•:V j
6
sLb)
q(p) = qpois(p, 1)
q(p) := qlnorm(p,0,1)
Обращение функций распределения (квантиль вероятности)
q(p) := qnorm(p,0,1)
q(p) > qt(p.qKpJO))
p := 0,0.05 1 Сдвиньте вниз одно из выражений q(p)
•fTr>rrrrfrr>,rr>T>7r>Tf>T>Tr?VTTrrrrTTrfrr>ii-r>rr>'r>tT>rf>'>->>W>rf,>rrrfJT>r>rrrr-rr^->>r>>ff>rff7f>r>rr>r>iTrfT>-r>7rrrrrT7>Tf>i’^>\
WJzzzttt
ТСтр. I. Разд 1
1/1 .На 2см Ct l Кол 2.
««a.»-.'.. . rf»-»
l
Рис. 13.18. Редактирование документа Mathcad в документе Word
Аналогичным образом можно вставить документ Word в документ Mathcad.
Что во что вставлять, дело вкуса и определяется стоящим' । зторс\i док\
мента задачами. По нашему мнению, создавать технические документы, особенно
электронные документы с примерами решения задач, проще в Mathcad, несмотря
на огромные возможности редактора Word.
Базовые приемы работы с текстом приведены в главе 1. Повторим главное. Для
ввода текста на русском языке лучше всего, сменив латинскую раскладку клавиа-
туры на русскую, вводить текст прямо в математической области. После ввода пер-
вого слова и нажатия клавиши пробела математическая область автоматически
превращается в текстовую.
Учитывая, что Mathcad — нерусифицированная оболочка, и установка шрифта
с кириллицей вызывает проблемы при изменении стиля Normal (Обычный), ав-
томатически применяемого при наборе текста, рекомендуется заменить шаблон
Normal. О том, как это сделать, рассказывалось в главе 1. Напомним главное.
Среди прилагаемых к книге файлов на сайте редакции имеется файл Normal.mct
с установленными кириллическими шрифтами. Этот файл надо скопировать в
каталог Template той папки, в которой установлен пакет Mathcad — если про-
грамма установки Mathcad самостоятельно выбирала путь, это папка C:\Program
Files\Mathsoft\Mathcad 2001i Professional\Template. Новый шаблон заменит старый,
и впредь при каждом открытии Mathcad на экране будет появляться новый до-
кумент, которому назначен приспособленный для работы с кириллицей шаб-
лон.
В отличие от программы Word, устанавливающей строгие правила размещения
текста на странице, в Mathcad текст можно набирать в любом месте страницы. Раз-
меры тестовой области можно менять обычным для Windows способом: щелкнуть
мышью на нужной области, подвести указатель мыши к одному из маркеров выде-
ления, расположенных по периметру обрамляющей рамки, и, когда указатель пре-
вратится в двунаправленную стрелку, перетаскивать мышь при нажатой левой
кнопке.
Изменение стиля текстовой области не влияет на результаты расчета математи-
ческих выражений, поэтому стиль записи текста можно изменить как для всего
текста, так и для отдельного слова или буквы.
256
Глава 14. Текст
Изменение стиля текстовой области
Для изменения стиля Normal (Обычный), который по умолчанию применяется ко
всем текстовым областям в документе, надо в главном меню Mathcad выбрать ко-
манду Format ► Style (Формат ► Стиль), в списке открывшегося окна выделить пункт
Normal и щелкнуть на кнопке Modify (Изменить) — откроется окно Define Style (Опре-
деление стиля), показанное на рис. 14.1.
Рис. 14.1. Изменение стиля Normal
Для настройки параметров шрифта для стиля Normal (Обычный) в окне Define Style
(Определение стиля) щелкните на кнопке Font (Шрифт). Откроется окно Text Format
(Формат текста), показанное на рис. 14.2. В нем можно задать шрифт (Font), начер-
тание (Font style) и размер шрифта (Size).
При щелчке в окне Define Style (Определение стиля) на кнопке Paragraph (Абзац) от-
крывается окно Paragraph Format (Формат абзаца), позволяющее изменить парамет-
ры абзаца для стиля Normal (Обычный). Это окно показано на рис. 14.3.
В полях слева вверху окна задается отступ (Indent) текста с левой (left) и с правой
(right) стороны. Пункт, выбранный в списке Special (Специальный), определяет по-
ложение первой строки абзаца:
О None — нет сдвига первой строки;
О First Line (Красная строка) — сдвиг первой строки вправо по отношению к ос-
тальному тексту;
О Hanging (Висячая строка) — сдвиг первой строки влево по отношению к осталь-
ному тексту.
Форматирование текста 257
Рис. 14.2. Изменение параметров шрифта
Рис. 14.3. Окно установки параметров абзаца
С помощью списка Bullets (Маркеры) текст можно превратить в маркированный
или нумерованный список:
О None — маркеры отсутствуют;
О Bullets (Маркеры) — маркированный список;
О Numbers (Номера) — нумерованный список.
Переключатели в нижней части окна позволяют выбрать вариант выравнивания
текста (по левому краю, по правому краю, по центру).
Форматирование текста
Главное назначение окна Text Styles (Текстовые стили) — создание текстовых стилей
и изменение их параметров (о том, как создать пользовательский стиль для текста,
см. раздел «Построение математических выражений» в главе 13). Если вы не пла-
9 Зак. 882
258
Глава 14. Текст
нируете создавать собственный стиль для каждого из вариантов форматирования
текста, можно выполнять такое форматирование без использования стилей. Для
этого служат панель форматирования, с которой мы познакомились в главе 1, а так-
же команды Font (Шрифт) и Paragraph (Абзац) контекстного меню, появляющегося
при щелчке на текстовой области правой кнопкой мыши. Эти команды открывают
доступ к окнам настройки параметров шрифта (см. рис. 14.2) и абзаца (см. рис. 14.3)
соответственно.
На рисунке 14.4 показано, как влияют параметры абзаца и шрифта на вид текста.
Здесь верхняя часть текста введена с использованием красной строки, последний
абзац — с использованием висячей строки и нумерации, в центре видны два пунк-
та маркированного списка, первые слова последнего абзаца выделены полужир-
ным шрифтом.
Рис. 14.4. Форматированный текст
Рис. 14.5. Изменение свойств текста
Использование гиперссылок 259
Если в контекстном меню, появляющемся при щелчке на текстовой области, выб-
рать команду Properties (Свойства) и в открывшемся окне перейти на вкладку Text
(Текст), как показано на рис. 14.5, то можно установить следующие флажки, назна-
чение которых понятно из их названий:
О Occupy Page Width (Занимать всю ширину страницы);
о Push Regions Down As You Type (Расширять области вниз по мере ввода текста).
Mathcad позволяет выравнивать текст по позициям табуляции, создавая подобия
таблиц. В окне Paragraph Format (Формат абзаца) есть кнопка Tabs (Табуляции), пред-
назначенная для настройки ширины «столбцов» таких таблиц. Щелчок мышью на
этой кнопке открывает окно Tabs, в котором надо установить позиции табуляции
в дюймах. Результат настройки показан на рис. 14.6 внизу.
Tab stop position
Tabs,,.
Alignment
Al values are in. inches
Bullets: (none)
Center
(слов a) i И стинные де ф opr
несколько раз больше yo[
—
Indent (inches)
Lett
Press Fl for help
,A
Cancel
WVa+aJswv. ........ ,vavav.vaV {A’.v»"A'av.v>av/ava
(AUTO L: frlUMJPage Г
Clear All
a ..
2
3
Рис. 14.6. Установка параметров таблицы и созданная таблица
Использование гиперссылок
С помощью средств форматирования Mathcad можно создавать вполне професси-
ональные электронные документы, одним из достоинств которых является воз-
можность быстрого перехода между фрагментами с помощью гиперссылок.
Гиперссылка может вывести на экран не только нужный файл (см. раздел «Созда-
ние вычислительных комплексов» в главе 13), но и заданный фрагмент открытого
документа или выбранный сайт в Интернете. Гиперссылки особенно эффективны
в больших документах, обучающих и презентационных программах, в электрон-
ных книгах.
На рисунке 14.4 в последнем абзаце словосочетанию «Результаты расчета» назначе-
на гиперссылка. При двойном щелчке на ней мышью откроется нужный файл в том
месте, где находятся результаты расчета истинных напряжений и деформаций.
260
Глава 14. Текст
Напомним, что для создания гиперссылки надо в меню Insert (Вставка) выбрать
команду Hyperlink (Гиперссылка), в открывшемся окне щелкнуть на кнопке Browse
(Обзор), найти нужный файл, установить флажок Use relative path for hyperlink (Ис-
пользовать относительный путь для гиперссылки) и щелкнуть на кнопке ОК.
Чтобы при двойном щелчке мышью на слове, с которым связана ссылка, выбран-
ный файл открывался не в начале, а в определенном месте, это место необходимо
задать.
1. Откройте файл, на который будет создана ссылка.
2. Установите курсор на объект (слово, выражение или график), который при от-
крытии файла окажется в верхней части страницы.
3. Щелкните на объекте правой кнопкой мыши и в раскрывшемся контекстном
меню выберите команду Properties (Свойства).
4. В поле Тад (Метка) открывшегося окна введите имя метки (например, 111, как
показано на рис. 14.7) и щелкните на кнопке ОК.
Рис. 14.7. Установка метки на место, с которого откроется файл
После создания метки следует описанным способом создать гиперссылку. Вводя
путь к файлу, в конце адреса укажите и имя метки #111, как показано на рис. 14.8.
Теперь при двойном щелчке мышью на слове, с которым связана гиперссылка, ука-
занный в адресе файл откроется с того места, на которое установлена метка.
Если при создании гиперссылки установить флажок Display as pop-up document (По-
казывать как всплывающий документ), выбранный файл откроется в отдельном окне,
расположенном поверх всех окон (так называемое всплывающее окно), при этом
метка игнорируется. На рис. 14.9 показаны гиперссылка, связанная со словами
«Истинные деформации», и всплывающее окно, появляющееся при активизации
Использование гиперссылок 261
этой гиперссылки. Положение и размеры всплывающего окна можно менять. До-
кумент, открытый во всплывающем окне, вычисляется, но не редактируется.
Рис. 14.8. Создание гиперссылки на файл с указанием метки #111
Рис. 14.9. Открытие документа во всплывающем окне
ГЛАВА Построение графиков
О построении плоских и пространственных графиков рассказывалось в главе 1.
Повторим общие правила построения графиков, а затем остановимся на особенно-
стях построения.
Построение двухмерных
плоских графиков
Рассмотрим процедуру построения графика функции.
1. Установите крестообразный курсор в то место, где надо построить график.
2. На математической панели щелкните на кнопке Graph Toolbar (Панель графиков),
а на открывшейся панели ~ на кнопке X-Y Plot (График X-Y) с изображением плос-
кого графика.
3. В появившемся на месте курсора шаблоне плоского графика введите на оси
абсцисс имя аргумента, на оси ординат — имя функции.
4. Щелкните мышью вне шаблона графика. Для заданного диапазона изменения
аргумента график будет построен.
Если диапазон значений аргумента не задан, по умолчанию график будет постро-
ен в диапазоне значений аргумента от -10 до 10.
Чтобы в одном шаблоне разместить сразу несколько графиков, надо, набрав на оси
ординат имя первой функции, нажать клавишу, (запятая) — уголок курсора при
этом обязательно должен находиться в конце имени функции. В появившемся месте
ввода (черном квадратике) впишите имя второй функции и т. д.
Функцию можно задать аналитически или массивами значений аргумента и функ-
ции. Для построения плоского графика массивы обязательно должны быть векто-
рами одинаковой размерности.
При задании функции массивами в местах ввода на осях графика надо вписать
имена массивов с указанием индексов или без них. На рисунке 15.1 массивы чисел
Построение двухмерных плоских графиков 263
созданы генераторами случайных чисел (XI и Y1 — массивы, отсортированные в
произвольном порядке, X и Y — массивы, отсортированные в порядке возрастания).
Press Fl for help.
ORIGIN := 1
Xl := rlogis(10,20,10) Yl := runif(10,5,20)
X> sortfXl) Y:= sort(Yl)
Yl>
ммыммыыыыиыымЬ
NUM page 1
Рис. 15.1. Различные типы точек на графике
Напомним, что при двойном щелчке мышью в области графика открывается окно
форматирования графика. При переходе на вкладку Traces (Линии) предоставляет-
ся возможность задать следующие параметры (рис. 15.2):
О Symbol (Символ) — значок, отмечающий вычисленную точку:
• попе — значок отсутствует,
• x's — крестик,
• +'s — плюс,
• box — прямоугольник,
• dmnd — ромб,
• o's — кружок;
О Line (Вид линии):
• solid — сплошная,
• dot — мелкий пунктир,
• dadot — штрих-пунктир,
• dash — крупный пунктир;
О Color (Цвет линии);
О Weight (Толщина линии);
О Туре (Тип линии).’
264 Глава 15. Построение рафик—
• Line —линия,
• point —точка,
• bar — столбик гистограммы,
• solidbar — закрашенный столбик,
• step — ступенька,
• stem — палочка с кружочком,
• draw — рисованная линия,
• error — позволяет отложить на графике заранее вычисленную ошибку.
Рис. 15.2. Настройка параметров линий
Чтобы построить график, на котором будет отложена ошибка вычислений, надо,
кроме основной функции, вычислить функции ее верхней и нижней ошибки. Гра-
фик на рис. 15.3 построен по результатам испытаний стальных образцов на уста-
лость (см. раздел «Примеры статистических расчетов» в главе 8). Вычисленные
верхнее и нижнее отклонения (errorl и еггог2) представляют собой доверительный
интервал, соответствующий вероятности разрушения 99 %.
На рисунке 15.4 приведены примеры построения плоских графиков — обычный
график зависимости функции от аргумента и параметрический график. Обратите
внимание на наличие маркеров на левом графике (см. также рис. 2.16).
Для создания маркеров (пунктирных горизонтальных и вертикальных линий на
графике) дважды щелкните мышью на графике, на вкладке X-Y Axes (Оси X и Y) от-
крывшегося окна форматирования графиков установите флажок Show Markers (По-
казывать маркеры) по оси х (слева) и/или у (справа) и щелкните мышью вне графи-
ка. Окно форматирования исчезнет, а около выбранной оси (или у обеих осей)
Построение двухмерных плоских графиков 265
появятся 2 места бв ода, в которые можно ввести либо числа, либо имена констант.
Имя писать удобнее, так как при перемене значения константы автоматически
смещается и метка.
Рис. 15.3. График с отложенной ошибкой вычислений
айХЧМММмМШмКяММОйМЫШ
х:= 0,0.1 ..15
А := 3 С
20
x cos($ Ю
xsin(x) 0
X
. s » “"10
-20U
Обычный график
:cos(x) fl(x) := х sin(x)
8 маркеры
Параметрическое задание функции
10
x-cosCx)
0
X
-10
-20 -10 0 10 20
х sin(x) ,х
jAUTO
HUM Fage 1
Рис. 15.4. Пример построен ия плоских графиков
266 Глава 15. Построение графиков
Рисунок 15.5 иллюстрирует процедуру увеличения масштаба просмотра графика.
1. Щелкните правой кнопкой мыши в области графика и в открывшемся контек-
стном меню выберите команду Zoom (Масштаб) — откроется диалоговое окно X-
Y Zoom (Масштаб по осям X и Y).
2. Обведите указателем мыши при нажатой левой кнопке мыши ту область гра-
фика, которую хотите увеличить — эта область окажется выделенной пунктир-
ной линией.
3. В открытом окне X-Y Zoom щелкните на кнопке Zoom (Масштабировать) — выде-
ленная область увеличится до размеров всей рамки графика.
Рис. 15.5. Увеличение масштаба и трассировка графика
Чтобы вернуться к исходному виду графика, в окне X-Y Zoom щелкните на кнопке
Unzoom (Отменить масштабирование) или Full View (Вид полностью). Чтобы закрыть
окно X-Y Zoom, оставив график увеличенным, щелкните на кнопке ОК.
В контекстном меню, открывающемся при щелчке правой кнопкой мыши в облас-
ти графика, есть команда Trace (Трассировка). Выбор этой команды ведет к откры-
тию диалогового окна X-Y Trace (Трассировка по осям X и Y), показанного на рис. 15.5
справа. Щелкните левой кнопкой мыши на графике. В точке щелчка появится
перекрестие из пунктирных линий, перемещающееся при движении указателя
мыши с нажатой левой кнопкой. Одновременно в окне X-Y Trace вы увидите
Построение полярных графиков 267
цифры, указывающие текущие координаты перекрестия. Установив перекрестие
на нужную точку графика, можно скопировать координаты перекрестия в буфер
обмена и затем вставить в документ для использования в расчетах.
Если установить флажок Track Data Points (Двигаться по расчетным точкам), то при
перетаскивании перекрестие будет двигаться скачками от точки к точке. Если снять
этот флажок, движение перекрестия будет плавным.
Построение полярных гра
иков
Чтобы построить график функции в полярных координатах, в панели Graph (Гра-
фик) щелкните на кнопке Polar Plot (Полярный график) и в местах ввода появивше-
гося шаблона введите угловой аргумент функции (внизу) и имя функции для по-
строения обычного графика (слева). Для построения параметрического графика
надо ввести в обоих местах ввода имена функций углового аргумента (рис. 15.6).
Рис. 15.6. Примеры графиков в полярных координатах
Форматирование полярных графиков абсолютно аналогично форматированию
плоских графиков. Полярные графики, как и плоские, можно строить в обычных
и в логарифмических координатах.
Для построения графика в логарифмических координатах на вкладке X-Y Axes (Оси X
и Y) окна форматирования графика надо установить флажок Log Scale (Логарифми-
ческий масштаб). Пример использования логарифмических координат для поляр-
ного графика показан на рис. 15.6.
На полярном графике маркеры можно ставить только для радиальной координаты,
установив на вкладке X-Y Axes окна форматирования графика флажок Show Markers
(Показать маркеры).
268 Глава 15. Построение графиков
Используя команды Zoom (Масштаб) и Trace (Трассировка) контекстного меню, в поляр-
ных графиках, как и в плоских, можно менять масштаб просмотра и выполнять трас-
сировку. Заметим, что в логарифмических координатах команда Zoom недоступна.
Построение трехмерных гра
иков
Общие правила построения трехмерных графиков были описаны в главе 1. При
этом можно использовать панель Graph (График) математической панели; можно
построить трехмерный график с помощью мастера, вызываемого из главного меню
Mathcad; можно построить трехмерный график, создав матрицу значений функции
двух переменных; можно задействовать ускоренный метод построения без создания
матрицы значений функции; можно вызвать специальные функции CreateMech
и CreateSpace, предназначенные для создания массива значений функции и по-
строения графика.
Построение графика по массиву значений функции
Рисунок 15.7 иллюстрирует процедуру построения графика функции двух пере-
менных, заданных массивом значений. При этом два аргумента являются незави-
симыми переменными, а функция — зависимой переменной.
1. Создайте вектор значений функции, предварительно задав векторы значений
ее аргументов.
2. Установив курсор в то место, где нужно построить график, откройте панель
Graph (График), щелкнув на кнопке Graph Toolbar (Панель графиков) математи-
ческой панели, затем щелкните на кнопке Surface Plot (График поверхности). На
экране появится шаблон графика.
3. В единственном месте ввода введите имя функции (без аргументов) — график
будет построен.
Появившийся график больше похож на скелет из отдельных линий. Чтобы сде-
лать из него почти произведение искусства, надо дважды щелкнуть мышью в обла-
сти графика, открыв окно его форматирования. Чуть позднее мы вернемся к фор-
матированию графиков, а пока продолжим разговор о способах их создания.
Быстрое построение графика
Рисунок 15.8 иллюстрирует самы t простой и быстрый способ построения графика.
1. Введите функцию двух переменных.
2. Установив курсор в то место, где нужно построить график, откройте панель
Graph (График) и щелкните на кнопке Surface Plot (График поверхности). На экра-
не появится шаблон графика.
3. В единственном месте ввода введите имя функции (без аргументов) — график
будет построен.
Построение трехмерных графиков 269
Рис. 15.7. Построение трехмерного графика по заданному массиву значений функции
Рис. 15.8. Пример быстрого построения графиков
270 Глава 15. Построение графиков
В Mathcad есть возможность построения нескольких графиков на одном шаблоне
(см. рис. 15.8, справа). Для этого в единственном месте ввода шаблона надо ввести
через запятую имена всех функций.
При быстром построении графиков Mathcad по умолчанию выбирает значения
обоих аргументов в пределах от -5 до +5 и число контурных линий 20. Для из-
менения этих значений дважды щелкните мышью на графике, в открывшемся
окне форматирования перейдите на вкладку QuickPlot Data (Данные для быстрого
построения графика), измените пределы значений переменных и щелкните на
кнопке ОК.
На рисунке 15.9 показан тот же график, что и на рис. 15.8, но после установки
новых пределов изменения значений аргументов. Для этого предназначены об-
ласти окна Range 1 — для первого аргумента и Range 2 — для второго аргумента
(start — начальное значение, end — конечное значение). В поле # of Grids вво-
дится число линий сетки, покрывающей поверхность. В принципе, все линии с
поверхности можно удалить. Для этого на вкладке Appearance (Внешний вид)
в группе Line Options (Параметры линии) установите переключатель No Lines (Без
линий).
ЬАЛМАЙШ
Рис. 15.9. Тот же график, что на рис. 15.8, слева, после изменения пределов значений аргументов
После ввода новых значений пределов «бочонок» оказался разрезанным двумя
сечениями.
На той же вкладке QuickPlot Data есть группа переключателей Coordinate System (Си-
стема координат), которая позволяет быстро построить график в декартовой (Carte-
Построение трехмерных графиков 271
sian), сферической (Spherical) или цилиндрической (Cylindrical) системе координат.
Достаточно установить нужный переключатель и щелкнуть на кнопке ОК.
На рисунке 15.10 показан пример построения графика функции в двух проекци-
ях — в месте ввода шаблона графика имя функции указано два раза. Двойным щелч-
ком мыши открываем окно форматирования графика. На вкладке General (Общие)
внизу есть группа переключателей Display as (Показывать как). С ее помощью для
каждой функции можно выбрать тип графика.
Рис. 15.10. Примеры быстрого построения графиков
В нашем примере для первой функции установлен переключатель Surface Plot (Гра-
фик поверхности), для второй — Contour Plot (Контурный график). Каждый график
форматируется отдельно. Для контурного графика в окне форматирования на
вкладке Special (Специальная) можно указать, нужны ли линии уровня (рис. 15.11).
Если линии нужны, то следует указать, каков вид этих линий, сколько их, требует-
ся ли проставлять цифровые значения на графике.
Установите флажки Fill (Заливка), Draw Lines (Рисовать линии), Auto Contour (Автома-
тический выбор положения линий контура), Numbered (С указанием чисел). Можно снять
флажок Auto Contour и задать число линий контура в поле Number (Число). В списке
Line Style можно выбрать вид линий: сплошные (solid), мелкий пунктир (dotted),
крупный пунктир (dashed), штрих-пунктир (da-dot).
272 Глава 15. Построение графиков
f(x,y) := sin(0 2x y)
3-D Rot Fofmat
-z&
GenetaC4 (/'‘Axes |’ Appeatartce3'4'|Lighting' ]' Titfe"
] QiAckPlot Data ]
Z.
Ho» 1
Advanced
РШММ'Г'^Л.’Вж ’
I * 2j : Sfiacjn9 ' ',
1'1 II14
solid :
dashed
dotted
da-dot
;кй
•JJ
Press Fl for help.
iWWWWWWI
.. -Co^iW
Рис. 15.11. Пример форматирования контурного графика
Создание массива значений функции
Для быстрого построения графика функции двух переменных Mathcad использу-
ет встроенную функцию CreateMech. Эту функцию может применить и пользова-
тель Mathcad для создания массива значений функции.
Функция CreateMech принимает в качестве параметров выражения для исходной
функции. Последняя задается в виде одной функции двух переменных, в виде фун-
кции-вектора из трех элементов или в виде трех отдельных функций, параметри-
чески определяющих функцию двух переменных, поверхность которой надо по-
строить.
Функция CreateMech возвращает массив координат х, z/, z параметрически задан-
ной функции. По этим значениям и строится график поверхности.
Обращение к функции выглядит следующим образом:
CreateMech(G [F] [fl. f2. f3J). sO. si. to. tl. sgrid. tgrid. fmap)
Здесь:
О G, или F, или fl, f2, f3 — один из трех возможных вариантов задания исходной
функции двух переменных;
О sO, si, tO, tl — пределы изменения переменных (по умолчанию от -5 до 5);
О sgrid, tgrid — число расчетных точек по интервалу изменения переменных s и t,
то есть число линий в сетке, покрывающей график (по умолчанию 20);
О fmap — трехэлементная векторная функция (или три функции), осуществляю-
щая пересчет исходных координат (полярных, цилиндрических или сфериче-
Построение трехмерных графиков 273
ских) в декартовы (по умолчанию — когда параметр fmap отсутствует — исход-
ные координаты декартовы).
Если вас устраивают значения, принимаемые по умолчанию, в качестве параметров
функции CreateMech можно указать только имя исходной функции (рис. 15.12).
Когда вы вписываете в шаблон трехмерного графика имя функции и щелкаете
мышью вне области графика, на экране появляется нераскрашенный график
функции. Чтобы раскрасить его, двойным щелчком откройте окно форматирова-
ния графика и перейдите на вкладку Appearance (Внешний вид), показанную на
рис. 15.12.
В разделе Fill Options (Параметры заливки) по умолчанию установлен переключа-
тель No Fill (Без заливки). Установите переключатель Fill Surface (Заливка поверхнос-
ти), а также переключатель Colormap (Палитра красок) в группе Color Options (Пара-
метры цвета). Если хотите нанести на график расчетные точки, установите в разделе
Point Options (Параметры точек) флажок Draw Points (Рисовать точки).
В разделе Line Options (Параметры линий) установите переключатель Wireframe (Сетка).
Там же можно выбрать толщину линий (Weight). Цвет линий задается в разделе
Color Options.
Рис. 15.12. Построение графика поверхности с помощью функции CreateMech
На рисунке 15.13 дан еще один пример использования функции CreateMech. График
показан в двух проекциях. Каждая из проекций может форматироваться от-
дельно — соответствующие вкладки имеются в нижней части вкладки General
(Общие).
274 Глава 15. Построение графиков
В разделе View (Вид) вкладки General (Общие) можно выбрать углы поворота изоб-
раженной поверхности вокруг всех трех осей:
О Rotation — вращение вокруг оси z (углы могут принимать значения от -360
до 360°);
О Tilt — вращение вокруг оси х после вращения вокруг оси z (углы могут прини-
мать значения от 0 до 180°);
О Twist — вращение вокруг оси у после вращения вокруг осей z и х (углы могут
принимать значения от -360 до 360°).
хО := -2 xl := 2 уО := -2 у1 := 2 F(x,y) := sin(x-y)
Ш-J Л-- W ...... л
_____LZ? < ->• • Z
Рис. 15.13. Вкладка General окна форматирования трехмерных графиков
Поменяйте углы и посмотрите на вид графика.
Этот способ вращения хорош, если надо поточнее развернуть поверхность. Одна-
ко обычно используют более простой способ, описанный в главе 1:
О если двигать мышь при нажатой левой кнопке, график поворачивается;
О если двигать мышь при нажатой левой кнопке и нажатой клавише Ctrl, график
приближается или удаляется;
О если при нажатой левой кнопке и нажатой клавише Shift отвести мышь за пре-
делы графика, начинается анимированное вращение графика (для остановки
вращения надо щелкнуть мышью в области графика).
Построение поверхностей тел вращения
Аналитически тела вращения, как правило, описываются в сферических или ци-
линдрических координатах. Mathcad строит трехмерные графики в декартовых
Построение трехмерных графиков 275
координатах. В таких случаях необходимо преобразовать исходные координаты
в декартовы. Для подобных преобразований можно использовать аналитические
формулы или встроенные функции cyl2xyz и sph2xyz.
Рисунок 15.14 иллюстрирует процедуру построения поверхности шара с аналити-
ческим преобразованием сферических кюординат в прямоугольные без примене-
ния функции CreateMech.
Рис. 15.14. Построение шара с использованием аналитического
преобразования координат
Рисунок 15.15 иллюстрирует процедуру построения поверхности шара с примене-
нием функции CreateMech. В качестве фунзкции преобразования координат fmap при-
лагаются три выражения: аналитическое преобразование цилиндрических коор-
динат в декартовы, преобразование цилиндрических координат в декартовы
функцией cyL2xyz, преобразование сферических координат в декартовы функцией
sph2xyz. Поменяйте эти выражения местгами.
Функция CreateMech в этом примере применена с параметрами и без параметров.
Без параметров получается замкнутая фигура. С параметрами есть возможность,
меняя пределы изменения углов, модифицировать размеры выреза.
Еще один пример применения функции! CreateMech показан на рис. 15.16.
276 Глава 15. Построение графиков
Поменяйте местами fmap
rcosyxj
r sin(a)
z )
Ф1 := 1.5 л поменяйте значения углов 6 и ф
finaP(Y) := суГЬу^,:=
fmap(v) := sph2xyz^V| »v2’v3)
60:= О 01:= л
М := CreateMesh(G,60,61,фО,ф1,50,50,frnap) Ml := CreateMesh(G,finap)
Рис. 15.15. Построение поверхности тела вращения с вырезом
Рис. 15.16. Поверхность вращения плоской кривой
Построение трехмерных графиков 277
Построение пространственной кривой
Построение пространственной кривой выполняется с помощью встроенной функции
CreateSpace. В качестве параметра она прин имает трехэлементную векторную функ-
цию одной переменной и возвращает декартовы координаты пространственной кривой.
Обращение к функции:
CreateSpace (F. tO. tl. tgrid. fmap)
Здесь:
OF — трехэлементная векторная функци я одной переменной;
О tO и tl — пределы изменения перемени ой (по умолчанию от -5 до 5);
О tgrid — число точек кривой (по умолчашию 20);
О fmap — функция преобразования координат (параметр fmap необязательный, при
его отсутствии по умолчанию входная функция считается заданной в декарто-
вых координатах).
Применение функции CreateSpace иллюстрирует рис. 15.17.
>/t- cos(t)
H(t) := -sin(t)
tO := 0 tl := 16
С := CreateSpac e(H,tO,tl ,200)
Поменяйте местами выражения С
Рис. 15.17. Построение пространственной кривой
Рисунок 15.18 и 15.19 иллюстрируют возможности Mathcad в плане создания слож-
ных пересекающихся фигур. Обе фигуры получены путем формирования масси-
вов координат точек фигур по формулам. На этих фигурах поупражняйтесь в фор-
матировании графиков.
278 Глава 15. Построение графиков
Рис. 15.18. Пересечение трех цилиндров
Рис. 15.19. Два связанных кольца
Построение трехмерных графиков 279
Построение многогранников
В Mathcad имеется возможность быстрого построения поверхностей многогран-
ников. Всего можно построить 80 многогранников. Соответствующие графики
можно найти в разделе Polyhedra (Многогранники) центра ресурсов.
Для построения полиэдра выведите на экран шаблон трехмерного графика и в ме-
сто ввода введите Polyhedron("#^), где 7V — целое число от 1 до 80. Примеры по-
строения многогранников приведены на рис. 15.20 и 15.21.
Рис. 15.20. Пример построения поверхности многогранника
Р olyhe dron( “ #80")
Press Fl For help.
............. ......... .....
Рис. 15.21. Примеры построения поверхностей многогранников
280 Глава 15. Построение граф эв
Быстрое изменение типа графика
В заключение рассмотрим некоторые типы графиков, сравнительно редко исполь-
зуемых на практике, но тем не менее имеющихся в арсенале Mathcad
В нижней части вкладки General (Общие) окна форматирования трехмерных гра-
фиков имеются 6 переключателей, предназначенных для быстрой смены типа гра-
фика (см. рис. 15.13):
О Surface Plot — трехмерный график поверхности;
О Contour Plot — плоский контурный график (график линий одного уровня);
О Data Points — точечный график, показывающий расположение расчетных точек
в пространстве;
О Vector Field Plot — плоский векторный график;
О Bar Plot — трехмерная гистограмма функции в виде столбиков;
О Patch Plot — график «из лоскутков», похожий на точечный график, но каждая
точка в нем имеет вид лоскутка.
Примеры точечного и столбчатого графиков показаны на рис. 15.22, пример «лос-
кутного» графика — на рис. 15.23.
При построении поверхности требуются векторы значений двух координат точек
на плоскости и вектор значений функции в этих точках, создаваемые с помощью
формул или функции CreateMech.
Рис. 15.22. Примеры построения точечного (слева) и столбчатого (справа) графиков
Построение трехмерных графиков 281
Рис. 15.23. График поверхности из лоскутков
у := 0 обнуление прежнего значения массива у
Fl(x,y) := sin(xy) F2(x,y) := cos(xy) n:=10 m:= 10
i := 0.. n j := 0.. m x. :=----i
J * 1 2n
л
Hl- . :=Flfx ,y l
ij I i’Jj/
G. .:=H1. . + 1H2. .
ij i,J ij
Поменяйте фунцию F и число точек пит
о 5 ю
(Н1 ,Н2) Вместо (Н1 ,Н2) поставьте G
Press F If or help.
Рис. 15.24. Векторное поле функции
282 Глава 15. Построение графиков
Построение графика векторного поля
Векторное представление функции изображается с помощью коротких стрелочек —
векторов. Стрелочка направлена в сторону возрастания высоты поверхности (уве-
личения значений функции). Плотность стрелочек зависит от скорости измене-
ния функции, то есть от ее градиента. Длина стрелочки пропорциональна модулю
вектора. Такого вида графики удобно приводить при расчете различных полей:
электромагнитных, тепловых, гравитационных и т. д.
При построении векторного поля требуется двухмерный массив значений функ-
ции в заданных точках. На рисунке 15.24 показано векторное поле — поток функ-
ции G, проекции которой на оси х и у — это Н1 и Н2 соответственно.
Иногда удобно представить функцию как матрицу комплексных чисел, где одна
из проекций вектора — его вещественная часть, другая проекция — мнимая часть.
ГЛАВА СпРавочная
-У информация в Mathcad
В Mathcad есть несколько источников справочной информации:
О меню Help (Справка);
О центр ресурсов;
О Интернет.
Рассмотрим кратко эти источники.
Меню Help
В меню Help (Справка) главного меню Mathcad есть несколько команд, обеспечива-
ющих доступ к справочной информации (рис. 16.1):
О Mathcad Help (Справка по Mathcad) — система справок по всем вопросам работы
в Mathcad;
О Developer's Referance (Справка для разработчиков) — дополнительные справки для
разработчиков приложений Mathcad;
О Author's Referance (Справка для авторов) — дополнительные главы справки для
авторов электронных книг.
Рис. 16.1. Вызов справки в Mathcad
284 Глава 16. Справочная информация в Mathcad
Если в какой-либо момент работы в Mathcad вам понадобилась помощь, выберите
в главном меню команду Help ► Mathcad Help, щелкните на кнопке со знаком вопро-
са ? на стандартной панели инструментов Mathcad или воспользуйтесь клавишей F1.
Откроется окно справочной системы Mathcad. Справка в Mathcad является кон-
текстно-зависимой, то есть ее содержание зависит от того, из какого места доку-
мента Mathcad она вызвана. Например, при установке курсора на имени функции
polyroots и нажатии клавиши F1 на экране появляется окно Mathcad Help, открытое
на описании функции polyroots (рис. 16.2).
СКрЫТЬ-
ДиМСЙ
Finding Roots
H13IS.I
• •
держание | Шпатель з Поиск
- ............. i........
“•Q? • Hl*
В:П ечат t> П ара&етсы
"" A
•
...........
й< ;
it*
Computational Features
Layout T ools
Worksheet Management
Vectors and Matrices
t Strings
root(f(varl, var2, ...),varl, [a, b]) Returns the
value of varl lying between a and b at which the
function f equal to zero.
polyroots(v) Returns a vector containing all the roots
of the polynomial whose coefficients are in v.
?
Operators
Solving and Optimization
2
2
= 9’
Solving and Optimizing Overview |J
Solving One Equation in One Unkn»||
Solving Linear Systems
Solving a System of Nonlinear Equa
Approximate Solutions to a System c
Arguments:
• f is a scalar-valued function of any number of
variables.
1
9
К
i
Finding Roots
Using the Maximize and Minimize Fl
Solving an Equation Using Symbolic
Solving Differential Equations
7 j ';
й
• varl is a scalar variable found in f. varl in the
second argument is the variable with respect to
which the root is found.
—
• a and b are optional. If included, they must be
Рис. 16.2. Окно справочной системы Mathcad
Окно справочной системы Mathcad построено в характерном для Windows-при-
ложений стиле и состоит из двух частей. Слева отображается список статей, спра-
ва — их содержание.
Справочная система насыщена гиперссылками, находящимися в тексте статей и
обеспечивающими переход от одной статьи к другой. Для перехода между статья-
ми имеются также кнопки навигации Back (Назад), Forward (Вперед), Ноте (Домой).
В тексте статей часто встречаются кнопки QuickSheet Example (Пример из шпаргал-
ки), открывающие доступ к примерам из центра ресурсов, связанным с содержани-
ем справочной статьи.
Статей гораздо больше, чем заголовков в содержании. Для вывода большинства из
них на экран требуется один-два перехода по гиперссылкам.
В конце почти каждой статьи есть кнопка Related Topics (См. также). Щелчок на этой
кнопке открывает перечень статей близкой тематики, связанных гиперссылками
с текущей статьей.
Перевод справочной системы Mathcad 285
Перевод справочной системы Mathcad
Все статьи справочной системы Mathcad написаны на английском языке. Если
английский текст для вас непонятен, воспользуйтесь какой-либо системой машин-
ного перевода, например Prompt.
Выделите фрагмент текста, который хотите перевести (рис. 16.3), или в главном
меню Mathcad выберите команду Edit ► Select all (Правка ► Выделить все). Затем ско-
пируйте выделенный текст в буфер обмена и в меню Prompt выберите команду Пе-
ревод Clipboard. В появившемся окне выберите направление перевода — Англо-рус-
ский перевод и щелкните на кнопке ОК. Машинный перевод, конечно, примитивный,
но зато быстрый и, в общем, понятно, о чем идет речь (рис. 16.4).
Й Mathcad Help
*
*
Ж
Скрьп ь : Назад
..
J • 5 * *
Содержание j указатель j Л oners j
:ж': x
...... _ . .
Error Messages in Numerical Calculations
I
Any errors in a worksheet are marked with an
error message and the offending name or НИ
operator is higNighted in a different color [
(usually red). ММММШММЯИ11МИИМИ1
йг.
й
II
he worksheet cannot process an expression
й
rocess, you must fix the error.
I
[?] Error Messages in Numerical Calculations]
s?
5?
Computational Features
j?] Controlling Calculation
[?] Iteration and Looping
[?| Doing Calculations in Parall . ,
( Г?! Symbolic Optimization
Layout Tools
Worksheet Management
Vectors and Matrices
All evaluations n
A_______________
matching “Given".
For information on a particular error message
click on it in the list below: НКВМММНИ8И
$
receded by a
Either an error or a
Рис. 16.3. Выделение текста для перевода
В Mathcad Help все статьи подготовлены в текстовом редакторе, по-видимому,
в Word, и поэтому электронный переводчик обрабатывает их без проблем. Слож-
нее со статьями из центра ресурсов. Они подготовлены как часть электронной книги
в Mathcad и не распознаются текстовым электронным переводчиком. Эти статьи
вначале надо перенести в текстовый редактор.
1. Выделите текст статьи электронной книги, скопируйте ее в буфер обмена и
вставьте в пустой документ Mathcad. Поскольку электронная книга создана
в Mathcad, то только в Mathcad ее можно преобразовать в текстовый файл.
2. В меню File (Файл) выберите команду Save as (Сохранить как), в поле открывше-
гося окна впишите какое-либо имя файла и выберите тип файла Rich Text Format
File (*.rtf). Затем щелкните на кнопке Save (Сохранить). Созданный документ
превратится в текстовый файл.
286 Глава 16. Справочная информация в Mathcad
3. Откройте созданный файл в Word, скопируйте текст в буфер обмена, вызовите
электронный переводчик и выберите команду Перевод Clipboard, а затем направ-
ление перевода — Англо-русский перевод.
Рис. 16.4. Перевод выделенного текста
Примеры перевода текста из центра ресурсов приведены далее.
Центр ресурсов
Центр ресурсов представляет собой сборник примеров, поясняющих работу опе-
раторов и встроенных функций Mathcad, а также примеров решения различных
математических, физических, инженерных задач с помощью Mathcad.
Чтобы вызвать окно центра ресурсов, на стандартной панели инструментов Mathcad
щелкните на кнопке Resource Center (Центр ресурсов) с изображением открытой книги
или в главном меню Mathcad выберите команду Help ► Resource Center (Справка ► Центр
ресурсов). На экране появится титульный лист этой электронной книги (рис. 16.5).
На титульном листе все заголовки являются гиперссылками. Щелчок мышью на
любом из них открывает соответствующий раздел книги. Всего разделов три:
О Overview and Tutorial (Обзор и учебник) — информация о возможностях системы
и основные приемы работы с Mathcad;
О QuickSheets and Reference Tables (Шпаргалки и справочные таблицы) — сборник при-
меров решения различных задач в Mathcad;
О Extending Mathcad (Расширение возможностей Mathcad) — коллекция примеров
применения в Mathcad компонентов других приложений.
Передвигаться по центру ресурсов очень легко. В начале каждого раздела и под-
раздела приводится оглавление, выполненное в виде гиперссылок.
Центр ресурсов 287
Рис. 16.5. Заглавная страница электронной книги Resource Center
Особенностью центра pecypcobMathcad является возможность выполнения рас-
четов прямо на страницах этой электронной книги. Пользователь может изменять
любые параметры и наблюдать изменение результатов расчета. Правда, сохранить
результаты пересчета прямо в электронной книге нельзя — включена защита от
записи. Зато нужные куски книги можно скопировать в свой документ.
Чтобы скопировать фрагмент книги, надо выделить его пунктирной рамкой, обве-
дя указателем при нажатой левой кнопке мыши, а затем скопировать в буфер об-
мена и оттуда вставить в нужное место своего документа.
Есть и более простой способ копирования, типичный для всех Windows-приложе-
ний. Выделенный фрагмент можно просто перетащить в свой документ при нажа-
той левой кнопке мыши.
Обзор и учебник '
В разделе Overyiew and Tutorial (Обзор и учебник) пользователь найдет основные све-
дения по текущей версии Mathcad. Оглавление этого раздела центра ресурсов с пе-
реводом на русский язык показано на рис. 16.6.
288 Глава 16. Справочная информация в Mathcad
Рис. 16.6- Первая страница учебника и ее перевод
В кратком обзоре рассказывается о новинках текущей версии и перечисляются
основные возможности Mathcad.
Начало учебника посвящено обучению основам работы в Mathcad и похоже на
главу 1 данной книги (рис. 16.7).
81 Resource Се nter Getting Started Tutond Contenb
ЕЗе Edt &iew l^eit Format Math Symbols. Help .... * * = Q SDiUJSifeGI# -
Clipboard: АгОо^дссЁий перевод
A Quick Tour of Mathcad's Features
Mathcad Toolbars
Navigating the Resource Center
Entering Text
Working with Matlicad Regions
Building Mathematical Expressions
Defining Variables
Defining Functions
Defining Range Variables
Defining Vectors and Matrices
Creating Graphs
Formatting Text and Math
Formatting Results
Using Units
Обновить Заметь j Направление Сграек;
Быстрый Тур(просмотр) по Особенностям Матг
Mathcad Инструментальные панели
Управление Центром Ресурса
Текст Ввода
Работа с Mathcad Областями(регионами)
Формирование Математических Выражений
Определение Переменных
Функции Определения
Определение Переменных Диапазона
Определение Векторов и Матриц
Диаграммы(графики) Создания
Форматирование Текста и Математики
Результаты Форматирования
Использование Модулей
Доступ к Mathcad Сотрудничеству
Анимация Диаграммы(графика)
Где Получить Большее количество Справки
Accessing the Mathcad Collaborators
Рис. 16.7. Оглавление раздела Getting Started Tutorial с переводом
Центр ресурсов 289
В последующих разделах идет углубленное изучение Mathcad с большим количе-
ством примеров, как правило, не слишком сложных.
Шпаргалки и справочные таблицы
В разделе QuickSheets and Reference Tables (Шпаргалки и справочные таблицы) центра
ресурсов сосредоточено большое количество примеров в основном из математики
и физики с использованием большинства встроенных функций и других средств
Mathcad. Оглавление этой части книги с переводом показано на рис. 16.8.
Правка gm ;Вст^вка Формат Первис Таблица -ffiO 2 M^hType Vcc Й
4;"": W
^Clipboard: Англо-Русский
5 • ।
*;;ii Arial
«•«.« Л.У.-.'.'Л.-.». . А . f
ь
MATHCAD RESOURCE CENTER
QuickSheets and Refes
Reference Tables
QuickSheets
About QuickSheets
Calculus and Differential Equations
Personal QuickSheets
Data Analysis
Arithmetic and Algebra
Statistics
| | Business and Finance
' rx f Components in Mathcad
; 11 Units
? I Special Functions
IT . Vectors and Matrices
’ 7 Programming
: <r j Solving Equations
11 Animations
? j Graphing and Visualization
Extra Math Symbols
г жяа
Обмочить Заменить Неправ лея
MATHCAD ЦЕНТР РЕСУРСА
QuickSheets и Таблицы ссылок
Таблицы ссылок
QuickSheets
Относительно QuickSheets
Исчисление и Дифференциально-р
Персональный QuickSheets
Анализ данных
Арифметика и Алгебра
Статистика
Бизнес и Финансы
Компоненты в Mathcad
Модули
Специальные Функции
Векторы и Матрицы
Программирование
Решение Уравнений
Мультипликации
Нанесение графика и Визуализаци
Дополнительные Математические
Рис. 16.8. Первая страница раздела QuickSheets and Reference Tables
Раздел Reference Tables (Справочные таблицы) содержит простейшие математичес-
кие формулы, сведения о свойствах различных материалов и т. п. Сведения бес-
системные и, в общем, мало полезные. Правда, в разделе Geometry Formulas (Геомет-
рические формулы) есть весьма любопытный раздел Polyhedra (Многогранники),
содержащий графики поверхностей 80 правильных многогранников (об исполь-
зовании этого раздела центра ресурсов речь шла в разделе «Построение трехмер-
ных графиков» главы 15).
Расширение возможностей Mathcad
В разделе Extending Mathcad (Расширение возможностей Mathcad) центра ресурсов
собраны примеры совместной работы Mathcad и компонентов других приложе-
10 Зак. 882
290 Глава 16. Справочная информация в Mathcad
ний, а также информация об особенностях работы с тем или иным компонентом
(рис. 16.9). Некоторые из компонентов поставляются вместе с Mathcad, другие
необходимо приобретать за отдельную плату.
*1 Resource Center: Extending Mathcad
insert FgttB# geip
Clipboard: Англо-Русскмй перевод
Excel: Calculating the Periodicity of Sunspots
Visio Add-in: Analysis of a Circuit
Axum: Poisson Distribution
Matlab: Drawing a Buckyball
Axum an<| Excel: New Jersey Pick-lt Lottery
Visio: RC Ci.cuit Solver
i ' <!i
Data Acquisition: Waveform Input
VisSim Add-in: Simulations with Mathcad
MathSoft Custom Controls: Buttons, Boxes, and эбнсеpt: 3вменялr | s СПпайхв
Visio: Mathcad-Driven CAD Drawing
Lotus 1-2-3' Inserting a Scripted Component
SmartSketch: Mathcad-Driven CAD drawing
SmartSketch: Mathcad-Driven Backhoe Drawing
SmartSketch: Belt and Pulley Example
SPLUS: Binomial Random Variables
Сбор данных: Ввод Формы волны
VisSim Надстройка: Моделирования с Mathcad
MathSoft Заказное Средство управления:
Кнопки, Рамки, и Сдвиги
Excel: Вычисление Периодичности Веснушек
Visio Надстройка: Анализ Схемы
Axum: Распределение Пуассона
Matlab: Рисунок Buckyball
Axum и Excel: Нью-Джерси Лотерея " выбирает это "
Visio' RC Решающее устройство Схемы
Visio: Mathcad-управляемый Рисунок
АВТОМАТИЗИРОВАННОГО ПРОЕКТИРОВАНИЯ
Lotus 1-2-3: Вставка Подготовленного Компонента
SmartSketch: Mathcad-управляемый рисунок
(автоматизированного проектирования
SmartSketch: Mathcad-управляемым Backhoe Рисуног
SmartSketch: Лента и Пример Шкива
SPLUS: Биноминальные Случайные величины
•i •
SPLUS: Generating Random Samples
.......... <
Рис. 16.9. Оглавление раздела Extending Mathcad с переводом
Собранные здесь примеры играют роль рекламы. Кто заинтересуется примером,
может установить нужное приложение на свой компьютер и уже в приложении
изучать правила работы с ним.
Mathcad и Интернет
В Mathcad имеется встроенный браузер, позволяющий пользоваться услугами
Интернета, не выходя из Mathcad.
Кнопки доступа в Интернет из Mathcad находятся в левой части окна центра ре-
сурсов (см. рис. 16.5):
О CoLLaboratory — организация совместной работы над проектами;
О Web Library — доступ в веб-библиотеку фирмы Mathsoft;
О Mathcad.com — открытие начальной страницы фирмы Mathsoft;
О Support — техническая поддержка;
О Web Store — Интернет-магазин фирмы Mathsoft.
Mathcad и Интернет 291
Совместная работа над проектами
Щелкнув в окне центра ресурсов на ссылке С ollaboratory (Совместная работа), пользо-
ватель попадает в одноименный раздел сайта фирмы Mathsoft. Здесь хранятся те-
матические подборки документов — проектов для совместной работы над ними
ученых из разных стран мира. Каждый проект имеет руководителя — обычно пер-
вого автора, предложившего проект. Остальные члены авторского коллектива мо-
гут принимать полноценное участие в доработке проекта.
После установки связи появляется страница сайта с запросом имени пользовате-
ля и пароля. Если пользователь впервые попадает в этот раздел сайта, ему необхо-
димо зарегистрироваться. Для этого следует щелкнуть на ссылке New User (Новый
пользователь) и в появившемся окне ввести данные о себе. Появится окно, сообща-
ющее, что вам по электронной почте будет передан пароль для дальнейшего входа
в раздел совместной работы. Введя полученный пароль, пользователь сможет по-
пасть в окно с тематическим каталогом проектов. Выбрав в каталоге нужный про-
ект, его можно сразу загрузить в Mathcad или просто записать на жесткий диск.
После этого с документом можно работать как обычно — модернизировать, допол-
нять и т. д.
На этом же сайте содержится обширная переписка между пользователями проекта.
Файл проекта или любого другого документа Mathcad можно отправить по элек-
тронной почте любому адресату. Для этого достаточно в окне Mathcad выбрать в
меню File (Файл) команду Send (Отправить). При этом появится окно электронной
почты выбранного по умолчанию почтового клиента. Текущий документ вклады-
вается в сообщение электронной почты файлом с расширением .med. Остается ука-
зать адрес назначения и ввести само сообщение. Щелчок на кнопке Отправить —
и сообщение уходит по указанному адресу.
Доступ в веб-библиотеку
Веб-библиотека фирмы Mathsoft содержит множество интересных примеров при-
менения системы Mathcad в различных областях науки, техники, образования. Для
доступа в библиотеку надо щелкнуть на ссылке Web Library в окне центра ресурсов.
Появится страница библиотеки с указанием различных разделов веб-сайта, дос-
тупных из библиотеки. Например, выбрав раздел Upgrade (Обновление), можно по-
лучить доступ к окну обновления системы Mathcad до уровня последней версии.
Однако надо помнить, что все услуги в этой библиотеке платные. Придется ука-
зать номер своей кредитной карточки и датгь обязательство оплатить выбранную
операцию.
Веб-сайт фирмы Mathsoft
Для посещения этого сайта достаточно щелкнуть на ссылке Mathcad.com и дож-
даться загрузки начальной страницы сайта с перечнем разделов сайта в виде ги-
перссылок.
Помимо кратких описаний программных продуктов, выпускаемых фирмой Math-
soft, здесь содержатся полезные утилиты для их модернизации, сотни файлов с при-
292 Глава 16. Справочная информация в Mathcad
мерами их применения, последние новости о работе фирмы и другая информация.
Некоторые инструменты здесь можно получить бесплатно, другие придется опла-
тить.
Интернет-магазин фирмы Mathsoft
Щелкнув на ссылке Web Store (Веб-магазин) в окне центра ресурсов, вы попадаете
в Интернет-магазин, где за приличную плату можно получить пакеты расшире-
ния системы Mathcad, представляющие собой электронные книги по различным
направлениям науки и техники.
Техническая поддержка Mathcad
Щелчок на ссылке Support (Поддержка) в окне центра ресурсов открывает окно со
страницей технической поддержки продукции фирмы Mathsoft. С этой страницы
можно получить доступ к различной документации по системе Mathcad и много
другой полезной информации. Большинство услуг, которые предоставляются на
этой странице, доступны только для зарегистрированных пользователей системы
Mathcad.
В целом можно отметить, что пакет Mathcad прекрасно интегрирован в Интернет.
Фирма Mathsoft много работает именно в этом направлении. Большинство изме-
нений и усовершенствований в последних версиях Mathcad касаются именно ра-
боты в Интернете.
О ЧАСТЬ
Примеры инженерных
расчетов
□ Расчет балки на изгиб
□ Расчет стержня на кручение
□ Расчет балки на косой изгиб
□ Построение обобщенной диаграммы
деформирования
□ Расчет упругопластического изгиба балки
□ Расчет статически неопределимой рамы
методом сил
□ Кинематический анализ кулачкового
механизма
□ Расчет электрической цепи переменного тока
□ Переходные процессы при коммутации
электрической цепи
□ Оценка параметров статистической выборки
□ Расчет вынужденных колебаний балки
□ Динамический расчет балки матричным
методом перемещений
□ Расчет пространственной стержневой
системы
□ Расчет кольца методом конечных
элементов
П Решение уравнения Пуассона
при кручении стержня
□ Решение плоской упругопластической
задачи методом конечных элементов
□ Расчет толстостенной трубы под давлением
ilfl ПРИМЕР Расчет балки на изгиб
Для приведенной на рис. П1.1 балки с различными нагрузками требуется:
построить эпюры внутренних усилии;
произвести расчет на прочность;
определить перемещения и построить упругую линию балки.
Мп
Р2
Мо := 5000 • N m L1 := 2 m
град .= deg
Рис. П1.1. Исходные данные к расчету балки на изгиб
*
I 5
2
4
q2 .•= <3000 • -
m
= 7 - m L4 := 10 • m
%.
Исходные данные
Pl := 3000 N P2 := 4000 • N ql := 3000 • —
m
поменяйте нагрузки и длины
материал - дерево Оцоп:=ю7 -— Е:=1-1010 —
2
m
производные от размерностей
6 N
Н := N кН := 1000 • N МПа .= 10 • —-
мм := 0.001 m cm := 0.1 • m м '.= m
> ftt-: . •
- - • ♦
................... 'L=,®i0T
Пример 1. Расчет балки на изгиб 295
Исходные данные заданы в системе Си (в ньютонах и метрах), хотя это не обяза-
тельно. Задайте их в любой размерности и умножьте внутри программы на пере-
водной коэффициент в случае, если вы ведете расчет без учета размерностей.
Данный пример рассчитан с учетом размерностей, поэтому исходные данные вве-
дены в виде произведения числа на стандартную размерность на английском язы-
ке: ньютоны N и метры т. Для вывода размерностей на русском языке надо ввести
переводные коэффициенты (см. рис. Ш.1): Н, кН, м, см, мм, град. При этом жела-
тельно вписать пользовательские размерности на русском языке в соответствую-
щие поля на вкладке Dimensions (Размерности) диалогового окна, открываемого ко-
мандой Math ► Options (Математика ► Параметры). Тогда результаты расчетов будут
выводиться на экран на русском языке. В противном случае они будут выведены
на английском. Для учета размерностей целесообразно вначале ввести производ-
ные размерности, а затем вводить исходные данные, записанные в производных
размерностях, как это сделано в последующих примерах.
Запишем выражения для поперечной силы Q и изгибающего момента М для после-
днего 4-го участка. Уравнения для первых трех участков получаются из записан-
ного уравнения путем отбрасывания слагаемых от нагрузок, находящихся справа
от сечения:
Q(x) = Ra-P1-(x-L1)-^-q1-(x-L1)2+P2 + q1-(x-L2)+q2-(x-L3);
M(x) = Ra-x-P1-(x-L1)-^q1-(x-L1)2+^q1-(x-L2)2+P2-(x-L2)-M0+^q2-(x-L3)2.
Для сравнения показаны 2 способа ввода выражений с условиями: с использова-
нием оператора if панели программирования (рис. П 1.2) и с использованием буле-
вых логических операторов (см. далее). Сравните и выберите, какой вариант вам
больше нравится.
Обратите внимание, что в момент составления выражений Q и М опорная реакция
еще не известна. Для ее определения используется условие равенства нулю изги-
бающего момента на правой опоре В при х = L4.
Поскольку в этом примере расчет ведется с учетом размерностей, при использова-
нии функции root начальное приближение к ней должно иметь размерность. На-
чальное приближение для Ra записано в виде произведения числа на размерность
(безразлично, стандартную или производную).
После нахождения опорной реакции Ra появляется возможность построить эпю-
ры (графики) Q и М (рис. П1.3).
Диапазон изменения дискретной переменной для построения графиков и вывода
числовых значений задан в долях от полной длины балки L4. В шаблоне графика
вручную введено максимальное значение на оси х, равное L4. В этом случае даже
при изменении исходных размеров балки график будет корректным.
По умолчанию-Mathcad строит график в единицах стандартной размерности. Для
построения графика в единицах производных размерностей надо названия вели-
чин, вписанные в места ввода на осях абсцисс и ординат, разделить на производ-
ную размерность (в нашем случае — на кН).
296 Пример 1. Расчет балки на изгиб
Рис. П1.2. Поперечная сила и изгибающий момент в балке
Рис. П1.3. Эпюры внутренних усилий в балке
Пример 1. Расчет балки на изгиб 297
Далее выполнен расчет на прочность балки из условия прочности
тахо =
Цтах М\\
W
где [су] — допускаемое напряжение, обозначенное на рис. П1.4 как оД0П.
Нахождение экстремальных значений изгибающего момента
L4
х = —
2
L4
х := —
2
Given M(Ra,x) = -20000 • Н • м xmin := Minen(x)
xmin = 7.762 м M(Ra,xmin) = -10.013 кН • м
Given M(Ra,x) = 20000 • Н м xmax := Minen(x)
xmax = 2.65 м M(Ra,xmax) = 10.53 кН м
maxM := if(M(Ra,xmax) > M(Ra,xmin) ,M(Ra,xmax), |M(Ra,xmin) |)
maxM = 10.534кН • ivi
Определение размеров сечения балки
3.------
maxM б 3 |32 • W
W :=------ W « 1.053 х 10 мм d:=-------------- d= 220.56MM
адоп V 71
4
тг • d 4
J :=----- J = 1.162 см
64
Г j help J70< I ipaoe 2
Рис. П1.4. Определение размеров сечения балки
Для нахождения максимального по модулю значения изгибающего момента исполь-
зована функция Minerr, которая возвращает в нашем случае минимальное расхождение
между функцией изгибающего момента М и числом, заведомо превышающим экстре-
мальные значения функции, видимые на графике. Функции Minimize и Maximize с этой
задачей не справляются, так как наша функция М имеет разрыв от действия пары сил.
ВНИМАНИЕ
Чтобы функция (в данном случае Minerr) работала с размерными величинами, надо
численные значения умножать на размерность и для начального приближения, и внут-
ри блока Given.
Выбор maxM из двух значений (максимального и минимального) осуществлен функ-
цией if, хотя было бы нагляднее использовать оператор if панели программирования.
Из условия прочности определен момент сопротивления при изгибе сечения бал-
ки W и диаметр сечения балки d. Mathcad выводит результат расчета в стандарт-
ной размерности, введенной на вкладке Dimensions, то есть в метрах. Вписав мм в
пустое место ввода справа от результата, получаем ответ в миллиметрах. Анало-
гичным образом можно изменить размерность ответа и в других вычислениях.
298 Пример 1. Расчет балки на изгиб
Перемещения при изгибе определялись двумя способами: методом начальных парамет-
ров и с помощью интеграла Мора. Первый метод решения задачи показан на рис. П1.5.
1
1
Определение прогиба балки методом начальных параметров
?(х,6д) := • J вд • х + • х3^ if 0 < х < L1
Е J • е0 X + — • X3 - — • (х - L1)3 - • (х - L1)4
|_ 6 6 24
Е-1вдх + — х3- — -(х-Ll)3 - -^ (х-Ы)4
6 6 24
1
P2
6
Р2
— • I
6
-Mo
24
Ra 3 Pl
— • x-------
6 6
3 /
I + -3- • (x -
24
24
24
вд '= —0 01 6g := root(EIf(L4,0g) >$o) $0 = —0-018 6g = -1.033град
0(х) :
ад
Е-J
производная терпит разрыв при x=L3 (скачок под парой сил)
6(L3 - 0.001 • ш) = 0.6083 deg G(L3 + 0.001 m) = 0.6077 deg 0(L3)= 0.011
I*******
•>••• ' ’ • • •>••• .......
Press Fl for Ьф,
• -A •
A' '
? •
Рис. П1.5. Расчет перемещений при изгибе методом начальных параметров
Универсальное уравнение Крылова упругой линии балки в методе начальных пара-
метров записано с применением оператора if панели программирования (см. рис. П1.5)
и с помощью булевых операторов (рис. П1.6).
Начальный параметр 0о найден с помощью функции root из условия равенства
нулю прогиба балки на правой опоре при х = L4. По умолчанию Mathcad выводит
углы в радианах. Для вывода угла в градусах в свободное место ввода справа от
результата надо вписать либо стандартную размерность deg, либо ее производную
град, введенную ранее в документ (см. рис. П1.1).
Зная начальный параметр 0О, мы определили прогиб балки f(х), а затем угол пово-
рота сечения 0(х) путем дифференцирования прогиба балки. При дифференци-
ровании Mathcad не может найти решения, если функция имеет разрыв. В нашей
задаче функция имеет разрыв от действия пары сил при х = L3. В первых версиях
Mathcad такого разрыва было достаточно, чтобы график не строился вообще. В по-
следних версиях Mathcad график строится во всех точках, за исключением точки
разрыва, поэтому на графике мы видим пропущенную точку при х = L3 (рис. П1.7).
Пример 1. Расчет балки на изгиб 299
Q(Ra,x) := Ra - Pl • (х > LI) - ql • (х - LI) • (х > LI) + ql • (х - L2) • (х > L2) ...
+ P2 • (x > L2) + q2 • (x - L3) • (x > L3)
M(Ra,x) := Ra • x - Pl • (x - LI) • (x > LI) - 0.5 • ql • (x - LI)2 • (x > LI) ...
+ 0.5 • ql • (x - L2)2 • (x > L2) + P2 • (x - L2) • (x > L2) ...
+ (-Mq) • (x > L3) + 0.5 • q2 • (x - L3)2 • (x > L3)
0
EIf(x,6o) := E • J • * x + ~ ‘ ’ (x " Ll)^ • (x > LI) - ~ • (x - Ll)^ (x > Ll) ...
P2 3 ql 4
+ — • (x - L2) • (x > L2) + • (x - L2) (x > L2) ...
(-Mo) 2 q2 4
+ ------~ • (x - L3) • (x > L3) + (x - L3) • (x > L3)
2 24
©o := -0 01 0Q := root(EIf(L4,0o) .©o) e0 = -0.01803
6(x) := IfTx)
ax
x:=0,— .. L4
100
MMMlM
T Ж £
....... ............. ... . . ... ..... ...... . ...
Page 5
t . . «. . ....
1Press Fl for help. ................
«МйММММММйМММММММММШМеМММйМММММйМММОМаМОйММММММйММОМММММММММОММйММОвсоМ
Рис. П1.6. Использование булевых операторов
Рис. П1.7. Прогиб f(x) и угол поворота сечения балки 0(х)
Масштабирование графика не производилось (прогибы — в метрах, углы — в ра-
дианах), так как при таких размерностях графики смотрятся лучше всего (в сопо-
ставимых масштабах). Четко видны соотношения между функцией и ее Производ-
ной. Там, где функция имеет экстремум, производная равна нулю.
300 Пример 1. Расчет балки на изгиб
Определение экстремальных значений прогиба балки производилось двумя спо-
собами: с помощью функции Minerr и с помощью функций Minimize и Maximize
(рис. П1.8). В случае с изгибающими моментами функции Minimize и Maximize отка-
зались работать, так как функция изгибающего момента имела скачок при х = L3.
Функции прогиба и угла поворота сечения гладкие (без скачков), и поэтому функ-
ции Minimize и Maximize работают нормально. Для получения размерного результа-
та в начальном приближении число умножается на размерность.
Рис. П1.8. Определение экстремальных значений прогиба балки
Для функции Maximize пришлось задать ограничение вычислений (по длине бал-
ки;, так как в противном случае эта функция вычисляет глобальный экстремум,
находящийся за пределами балки.
пределение перемещений балки при изгибе с помощью интеграла Мора пред-
почтительнее метода начальных параметров.
Интеграл Мора:
М(х) • М(х) * dx
• щ * ь М(х) — изгибающий момент от внешних сил, А/(х) — изгибающий момент
от единичной силы, приложенной в точке, где мы ищем перемещение.
даг ной задаче мы ищем два перемещения, угловое и линейное, поэтому рассмат-
риваем две единичные системы: от единичной силы для определения прогиба бал-
Пример 1. Расчет балки на изгиб 301
ки и от единичного момента для определения угла поворота сечения балки. Эти
схемы показаны на рис. П1.9.
Рис. П1.9. Определение перемещений балки с помощью интеграла Мора
Изгибающие моменты от единичных сил записаны с помощью оператора if панели
программирования. Если выражения для изгибающих моментов недлинные, то та-
кая запись наиболее наглядна и проста. Запись реакций опор и изгибающих мо-
ментов через текущую координату хх позволяет, используя дискретную перемен-
ную, определить ряд значений прогиба и угла поворота для различных сечений по
длине балки, построить графики и вывести таблицу результатов расчета, как пока-
зано на рис. П1.10. Здесь f(x) и G(x) — метод начальных параметров, А(х) и 0(х) —
интеграл Мора.
Интеграл Мора, как и ранее производная, не может вычислить перемещения в се-
чении х = L3, где функция изгибающего момента от внешних сил имеет разрыв (ска-
чок на эпюре М от пары сил).
302 Пример 1. Расчет балки на изгиб
Рис. П1.10. Сравнение результатов расчета перемещений балки
В таблице результатов на рис. П1.10 размерности мм и град введены вручную, м —
автоматически, так как последняя определена в качестве стандартной размерно-
сти на вкладке Dimensions окна Math Options.
Расчет стержня
на кручение
Рассмотрим расчет стержня на кручение. Задачу решаем в двух вариантах:
О статически-определимая задача;
О статически-неопределимая задача.
Вначале решим статически-определимую задачу. \
По форме сечения стержень делится на 3 участка (круглый, прямоугольный и коль-
цевой), по нагрузкам — на 4 участка (рис. П2.1).
Рис. П2.1. Исходные данные к расчету стержня на кручение
304 Пример 2. Расчет стержня на кручение
Поскольку расчет ведется с учетом размерностей, в начале программы введены
производные размерностей для нагрузок и длин. Далее приведены исходные дан-
ные для расчета, где числа умножаются на размерность.
Расчет начинается с записи выражений для крутящих моментов на всех четырех
участках стержня с использованием оператора условия if панели программирова-
ния. Эпюра крутящих моментов показана на рис. П2.2. Крутящий момент на эпю-
ре выражен в кНм, для чего на оси ординат момент Мк разделен на размерность кНм.
Длина стержня выражена в метрах.
Рис. П2.2. Крутящие моменты по длине стержня
Геометрические характеристики для трех форм поперечного сечения стержня за-
писаны с использованием оператора условия if панели программирования по стан-
дартным формулам сопротивления материалов (рис. П2.3). График на этом же
рисунке иллюстрирует соотношение жесткостей сечений, показан также перевод
размерностей (из м4 в см4).
На рисунке П2.4 приведен расчет касательных напряжений и углов закручивания
по длине стержня. Использование условного оператора при записи крутящего мо-
мента и геометрических характеристик позволяет вместо четырех интегралов по
участкам записать один интеграл сразу для всего стержня. Масштаб эпюр изменен
делением значений Мк и ф на производные размерности МПа и град.
Статически-неопределимая задача на кручение (рис. П2.5) получена из стати-
чески-определимой путем добавления жесткой заделки стержня справа в сече-
нии А. Исходные данные для расчета те же, что в статически-определимой задаче
Пример 2. Расчет стержня на кручение 305
(см. рис. П2.1). Опорные реакции в этой задаче нельзя найти из условий статики.
В уравнении крутящего момента на место момента Ml поставлен неизвестный реак-
тивный момент Ма. Поскольку он неизвестен, то является параметром функции
Мк(х, Ма).
Рис. П2.3. Геометрические характеристики сечений стержня
рис. П2.4. Напряжения и перемещения при кручении стержня
306 Пример 2. Расчет стержня на кручение
Мк(х,Ма) :=
Рис. П2.5. Статически-неопределимая задача на кручение
Ш J
Press Fl for help.
” -AUTO j
[Ma + ml (L - L3) J if
[Ma + М2 + ml (L- L3)] if LI < x < L2
Решение уравнения неразрывности деформаций $=0
Ма:=1кН м начальное приближение
гх
МЦх,Ма)
GJk(x)
О
ф(х,Ма) :=
Ma := root(|(L,Ma) ,Ma) Ma = ЗкНм
x 4 Mk(x,Ma)
Tmax(x) >
Wk(x)
:Й:
х
Рис. П2.6. Результаты решения статически-неопределимой задачи на кручение
Пример 2. Расчет стержня на кручение 307
Величину Ма находим из условия равенства нулю взаимного угла закручивания
между заделками ф = 0. Это уравнение решается с помощью функции root. На-
чальное приближение к ней записано путем умножения числа на размерность, по-
этому результат решения — размерное число, выведенное в стандартной размерно-
сти. Вписав в место ввода справа от размерности нужную производную размерность
кНм, получаем приведенный на рис. П2.6 результат.
Выведенные на график результаты расчета масштабированы путем деления на
производную размерность. Значения касательных напряжений еще уменьшены
в 100 раз, чтобы графики были сопоставимы.
Эпюра крутящих моментов Мк(х, Ма) построена стилем графика stem. Во всех пре-
дыдущих эпюрах для изображения в заштрихованном виде использовался стиль bar.
Эпюра углов закручивания подтверждает правильность решения задачи: в начале
и в конце стержня (в заделках А и В) угол закручивания равен нулю.
Опасным является сечение в правой заделке А, где касательное напряжение т мак-
симально.
ПРИМЕР
Расчет балки
на косой изгиб
В этом примере рассматривается изгиб балки в двух взаимно-перпендикулярных
плоскостях (рис. П3.1). Требуется подобрать размеры поперечного сечения дере-
вянного стержня. Рассматриваются два варианта сечения стержня: стержень, ско-
лоченный из досок заданной толщины, и круглое бревно. Кроме нагрузок и разме-
ров стержня задано допускаемое напряжение для дерева (сосна) оД0П.
Рис. П3.1. Исходные данные к расчету балки на косой изгиб
Расчет ведется с учетом размерностей, поэтому в начале документа введены раз-
мерности, производные от стандартных. Далее введены исходные данные для рас-
чета как числа, умноженные на размерности.
Пример 3. Расчет балки на косой изгиб 309
На рисунке П3.2 приведены выражения для изгибающих моментов, действующих
на стержень в двух взаимно-перпендикулярных плоскостях, и их эпюры. Обрати-
те внимание, что количество участков и их границы в вертикальной и горизон-
тальной плоскостях различны. При расчете вручную это привело бы к существен-
ному увеличению объемов вычислений. Для Mathcad это не имеет значения.
Рис. П3.2. Эпюры изгибающих моментов в двух плоскостях
На рисунке ПЗ.З приведен расчет размеров поперечного сечения стержня, сколо-
ченного из досок, в форме короба. Задана толщина досок и полная высота состав-
ного сечения. Требуется подобрать ширину сечения из условия прочности.
Эта задача значительно сложнее задач, в которых задается соотношение размеров, так
как в этом случае приходится решать нелинейное кубическое уравнение. Неизвест-
ная ширина сечения Ь включена в параметры геометрических характеристик сечения
(моментов инерции J и моментов сопротивления при изгибе W) и напряжений о.
Из условия прочности тахо = сгдоп определяем ширину сечения при различных
значениях координаты х, используя функцию root. Следует заметить, что данная
задача сложна даже для Mathcad. Неизвестный размер b находится в знаменателе
в третьей степени и в процессе итерационных вычислений в Mathcad знаменатель
может оказаться равным нулю, что ведет к прерыванию вычислений. В данном
примере результат расчета в значительной степени зависит от выбранного началь-
ного приближения. Причем если экстремальное значение b остается практически
310 Пример 3. Расчет балки на косой изгиб
постоянным, то вид кривой на графике изменяется, некоторые точки остаются не
сосчитанными вследствие деления на нуль — на графике в этих местах пропуски.
Расчет прямоугольного составного сечения из досок.
Задаемся толщиной 6 := 5 см и высотой сечения h:= 30 см
Найти ширину сечения b (поменяйте размеры 6 и h.)
- b h3
J --------
12
3
12
JzCb>2
Wz(b) := ———
3
W) - — - -
.=---------
W<b) Wy(b)
Jy(b)-2
Wy(b) >
12
|My(x)| найдем ширину сечения b из
условия прочности Б различных
сечениях и выберем максимум
Press II for
Рис. ПЗ.З. Определение размеров прямоугольного сечения из условия прочности
Максимальное значение ширины сечения b хорошо видно на графике (рис. П3.4).
Однако чтобы использовать его в дальнейших расчетах, это значение определяет-
ся с помощью функции Minerr. Для такого рода функций (с переломами, скачками
и глубокими впадинами) использование функции Minerr предпочтительно. Функ-
ция Maximize в подобных случаях может вообще не найти решения.
Рис. П3.4. Определение размеров прямоугольного сечения из условия прочности (продолжение)
Пример 3. Расчет балки на косой изгиб 311
Обратите внимание, поскольку расчет ведется с учетом размерностей, начальные
приближения к функциям root и Minerr задаются размерными (умножением числа
на размерность). Дискретная переменная х тоже должна задаваться размерными
числами. В нашем случае она задана через длину стержня L, которая уже введена
как размерная.
Далее определяется положение нейтральной оси в опасном сечении. По определению
на нейтральной оси ст = 0. Для определения координат точек неитральной оси исполь-
зуется функция root (рис. П3.5). Поперечное сечение с построенной нейтральной осью
показано на рис. П3.6. Контур поперечного сечения построен по пяти точкам (четыре
угловые точки и пятая для замкнутости сечения). По умолчанию Mathcad строит гра-
фики в стандартных единицах размерности, то есть в метрах. Для построения графика
в сантиметрах координаты у и z разделены на производную размерность см.
Рис. П3.5. Определение положения нейтральной оси в опасном сечении
Рис. П3.6. Положение нейтральной оси в опасном сечении
312 Пример 3. Расчет балки на косой изгиб
Аналогичным образом из условия прочности определялся диаметр круглого стерж-
ня (рис. П3.7).
3
Сечение - круглое бревно W(d) := 0.1 • d
Mrar<x) := Jlvly(x)2 + Mz(x)2
опасное
сечение по графику при х=4
15
10
Мкзг(^)
кН-м
____ 5
Press Fl forheip.
х := Зм хх := Maximize [Mror,x^
хх = 4m М1ГЗГ(хх) = 11.314кНм
из условия прочности
в опасном сечении
d := 10-см
dl(xx) := root(cr(xx,d) - Рдап,^
dl(xx) = 22.449 см
х := 0,03-м.. L
Мизг(х)
W(d)
M
Рис. П3.7. Определение диаметра стержня круглого сечения
На графике суммарного изгибающего момента хорошо видно опасное сечение, где
значение Мизг(х) максимально. Для нахождения положения опасного сечения ис-
пользована функция Minerr, для нахождения диаметра стержня из условия проч-
ности — функция root.
Построение
обобщенной
диаграммы
деформирования
При расчете упругих деформаций и напряжений в конструкции используется за-
кон Гука. За пределами упругости вместо закона Гука используется уравнение обоб-
щенной диаграммы деформирования, в качестве которой принимается диаграмма
истинных напряжений при растяжении. Такая диаграмма строится по результа-
там испытаний стандартного образца на растяжение.
По замерам образца до и после испытаний в расчет вводят начальные длину и ди-
аметр образца, а также диаметр образца в шейке после разрыва.
С нарисованной испытательной машиной диаграммы в координатах нагрузка-пе-
ремещение снимают координаты нескольких характерных точек: начала и конца
площадки текучести, точек, соответствующих максимальной нагрузке на образец
и моменту разрыва образца. Кроме того, для последующей аппроксимации диаг-
раммы деформирования необходимы координаты по крайней мере двух точек меж-
ду пределом текучести и пределом прочности. Чтобы на диаграмме был виден уча-
сток упругости, введена точка начала нагружения с координатами (0, 0).
Исходные данные для построения диаграммы истинных напряжений приведены
на рис. П4.1. Этот пример выполнен с учетом размерностей, поэтому в начале до-
кумента введены производные размерности, далее — исходные данные.
Координаты точек диаграммы введены в виде строки для экономии места в доку-
менте, а затем транспонированы, так как Mathcad работает только с векторами
(столбцами чисел), но не со строками.
Умноженные на масштаб диаграммы координаты ее точек уже выражают нагруз-
ку в ньютонах и абсолютное удлинение образца в метрах. Для расчета напряжений
введены площади поперечного сечения образца в начале Fo и в конце нагружения FK.
На рисунке П4.2 показана диаграмма деформирования, построенная машиной.
Собственные упругие деформации машины, накладываясь на деформации образ-
ца, очень искажают вид диаграммы, увеличивая ее наклон.
314
Пример 4. Построение обобщенной диаграммы деформирования
Рис. П4.1. Исходные данные для построения диаграммы деформирования
Рис. П4.2. Учет податливости машины
Пример 4. Построение обобщенной диаграммы деформирования 315
Для исправления диаграммы необходимо вычесть полную упругую деформацию
и добавить упругую деформацию образца, как показано в формуле на рис. П4.2.
Ввиду малости упругих деформаций образца упругая ветвь исправленной диа-
граммы (пунктирная линия) почти совпадает с осью нагрузок.
На рисунке П4.3 приведен расчет условных и истинных деформаций и напряже-
ний. Условные величины отнесены к первоначальным размерам образца Еои Lo,
истинные — к текущим размерам F и L.
Истинные деформации определяются по формуле:
Применение этой формулы требует замера диаметра образца в процессе испыта-
ний, что обычно не делается, поэтому она применена лишь для определения де-
формации в момент разрыва образца.
До образования шейки в образце используется другая формула: еи =1п(1 + е),
не требующая замера диметра.
AL := ALl —
Условные деформации
al
е := —
Условные напряжения
F0
Истинные деформации
Еи ?
у. У
Истинные напряжения
ои :=
В шейке образца еи ?
п
F0
п
аи := —
П Fm
о • е
Л] J
For Help, ргей Fl
Рис. П4.3. Расчет истинных деформаций и напряжений
Истинные напряжения определяются по формуле ои = а • ее”, также не требую-
щей замера диаметра.
Результаты расчета деформаций и напряжений приведены на рис. П4.4.
Для расчетов на прочность и жесткость в упругопластической области необходи-
мо знать уравнение диаграммы деформирования. Получение таких уравнений ил-
люстрирует рис. П4.5. Линейная аппроксимация заменяет рассматриваемый учас-
ток диаграммы прямой линией, степенная аппроксимация — кривой.
316 Пример 4. Построение обобщенной диаграммы деформирования
Рис. П4.4. Результаты расчета деформаций и напряжений
Рис. П4.5. Аппроксимация диаграммы деформирования
Для расчетов в области малых упругопластических деформаций выбран участок
диаграммы деформирования от предела текучести до предела прочности.
При линейной аппроксимации коэффициенты уравнения прямой линии а = а + b • £
определяются с помощью встроенной функции регрессии line. При степенной ап-
проксимации коэффициенты уравнения о = а + b • ес определяются с помощью
функции pwrfit, требующей начального приближения коэффициентов.
Пример 4. Построение обобщенной диаграммы деформирования 317
ВНИМАНИЕ
Функции регрессии не могут работать с размерными единицами. Чтобы сделать их без-
размерными, напряжения, входящие в параметры функций, разделены на размерность.
Рис. П4.6. Обобщенная диаграмма деформирования и ее аппроксимации
Вид диаграмм условных и истинных напряжений (см. рис. П4.4) показан на рис. П4.6
слева. Истинные деформации и напряжения в момент разрыва в несколько раз
больше условных. Результаты аппроксимации диаграммы деформирования пока-
заны на рис. П4.6 справа.
Расчет
В ПРИМЕР упругопластического
изгиба балки
В данном примере определяется распределение напряжений при изгибе балки.
Схема и нагрузки, действующие на балку, не имеют значения, так как в расчете
используется только величина изгибающего момента в опасном сечении. Для рас-
чета выбрана балка прямоугольного сечения шириной Ь и высотой h. Если сечение
другой формы, то надо в выражении изгибающего момента М = • у • dF изменить
F
dF, а в формуле подсчета напряжения при разгрузке изменить момент сопротивле-
ния при изгибе. Для разнообразия расчет ведется без учета размерностей, поэтому
в некоторых местах примера размерность указана в виде комментария.
Исходные данные для расчета — размеры сечения и свойства материала балки —
приведены на рис. П5.1. Распределение деформаций и напряжений по высоте се-
чения балки показано на рис. П5.2. Именно для этого материала в примере 4 была
построена диаграмма деформирования и записаны ее аппроксимации. Эти ап-
проксимации и используются в данном примере (рис. П5.3).
Рис. П5.1. Исходные данные для расчета
Считается, что гипотеза плоских сечений справедлива как при упругих, так и при
упругопластических деформациях. Из гипотезы плоских сечений следует (из по-
добия треугольников):
^гпах _ _ £
h/2 “ут “7
Пример 5. Расчет упругопластического изгиба балки 319
Рис. П5.2. Распределение деформаций и напряжений по высоте сечения балки
из гипотезы плоских сечении
ет h
emax 2
emax-
Напряжения в балке с учетом апроксимации
cr(emax,v,kJ := Ее (emax, v) if efemax.v) < ет
диаграммы деформирования
упругая деформация
otherwise
диаграмма Прандтля
[ст+ El (e(emax,y) - гт)] if k= 2 линейное упрочнение
_ <, { \0.73
37 + 150-е (emax, у)
степенное упрочнение
h
Изгибающий момент
в опасном сечении балки
М (emax, к) := 2-
¥•
Press Fl for helpl j
$
Т
О
Ч:
i
*
Рис.П 5.3. Определение изгибающего момента
Отсюда получаются выражения, приведенные в верхней части рис. П5.3. Далее на
том же рисунке показаны функция распределения напряжений (уравнение диа-
граммы деформирования) и функция изгибающего момента.
При использовании диаграммы Прандтля (k = 1) пластический шарнир образуется
при деформации порядка 1 % (рис. П5.4), то есть изгибающий момент практиче-
ски не растет при увеличении деформации, что соответствует ут = 6 мм.
Обычно при расчете требуется найти распределение напряжений, соответствую-
щее заданной нагрузке на бал^у (прямая задача). Эту задачу невозможно решить,
не получив функцию изгибающего момента от максимальной деформации. Имея
320 Пример 5. Расчет упругопластического изгиба балки
эту функцию (см. рис. П5.3), с помощью функции root для заданной нагрузки оп-
ределяем максимальную деформацию и по ней строим распределение напряже-
ний в балке (рис. П5.5).
Напряжения при упругой разгрузке определяются из условия равенства изгибаю-
щих моментов при нагрузке и разгрузке. Остаточные напряжения подсчитываются
как сумма напряжений при нагрузке и при разгрузке. Эпюры напряжений при на-
грузке, напряжений при разгрузке и остаточных напряжений показаны на рис. П5.6
и П5.7. На рис. П5.7 также показаны формулы для расчета остаточных напряжений.
Рис. П5.4. Изгибающий момент М и граница зоны пластичности ут
iAUTO
Прямая задача - задана нагрузка, найти распределение напряжений
Дано: ММ := 900 кгм Найти стах
Степенная апроксимация диаграммы деформирования к:=3
Etnaxl := 0.006 emaxl := го ot(M (emaxl ,k) - ММ-1000, emaxl) emaxl = 0.054
£
Рис. П5.5. Распределение напряжений, соответствующее заданной нагрузке на балку
PressFl For help i
Пример 5. Расчет упругопластического изгиба балки 321
Рис. П5.6. Возникновение остаточных напряжений в балке
Рис* П5.7. Остаточные напряжения при изгибе балки
11 Зак. 882
ПРИМЕР
Расчет статически
неопределимой
рамы методом сил
Представленная программа предназначена для расчета плоских рам с прямоли-
нейными и криволинейными стержнями.
На рисунке П6.1 приведены исходные данные для расчета. Все величины взяты
равными 1. В этом случае все численные результаты расчета представляют собой
коэффициенты при буквенном выражении. Само буквенное выражение можно
ввести в место ввода размерности.
Дано Р := 1 Е := 1
а := 1 b := а
1
РО > а-0.5
ORIGIN
п:= 3 степень статической неопределимости
m := 3 число участков ||!|
р - радиус кривизны (для прямых участков р=1)
рк>1 РЗ := РО |||
:л .:::: *•: :
Press Fl for help. :AUTO ] |Page 1
Рис. П6.1. Исходные данные для расчета
Для реальной численной задачи надо вместо 1 вписать числовые исходные дан-
ные. Соотношение размеров а, Ь, г можно поменять. Результат останется верным.
А вот чтобы добавить новые нагрузки, надо изменить вектор моментов от внешних
сил. Для любой новой схемы рамы надо заменить все моменты (и от внешних сил,
и от единичных). Задача решается без учета размерностей.
Сформулируем основную идею метода сил.
О Заданная статически неопределимая система заменяется статически определи-
мой, ей эквивалентной, путем отбрасывания лишних связей и замены их неиз-
вестными силами. Величину этих сил определяют из условий эквивалентности
двух систем.
О Две системы считаются эквивалентными, если перемещения, деформации и на-
пряжения в них равны.
Пример 6. Расчет статически неопределимой рамы методом сил 323
О Для решения поставленной задачи достаточно, чтобы перемещения эквивалент-
ной системы в месте отброшенных связей были такими же, как в заданной системе.
Для рассматриваемой три раза статически-неопределимой системы отброшены три
связи в правой заделке (точка В). Должны быть справедливы следующие уравне-
ния:
• 8П + Х2 • 812 + Х3 • 813 + - О
• 821
• 831 + Х2 • 832 + Х3 • 833 + ДЗР - О
Это канонические уравнения метода сил. В них:
™ г Ml: • Ml : -dx т г MkP -Mbi-dx
О 8Z; = X J —: ~ X J —:'-------------------------коэффициенты подат-
ливости;
О X, — неизвестные реакции отброшенных связей;
О Mki и Mk j — изгибающие моменты от сил Х, = 1 и от Х; = 1;
О Mk P — изгибающие моменты от внешних сил;
О k — номер участка рамы;
О т — количество участков.
Рис. П6.2. Схемы нагружения заданной и эквивалентной систем
Схемы нагружения заданной, эквивалентной, грузовой и трех единичных систем
показаны на рис. П6.2-П6.4, изгибающие моменты для грузовой и единичных си-
324 Пример 6. Расчет статически неопределимой рамы методом сил
стем — на рис. П6.5. Вычисление коэффициентов податливости и решение систе-
мы канонических уравнений имеется на рис. П6.6.
Перемещение в заданной точке определяется для эквивалентной системы. Изги-
бающие моменты для эквивалентной системы
п
Мэ,к = MkP + У,Xj -Mki.
Z=1
Здесь п — степень статической неопределимости.
Рис. Пб.З. Схемы нагружения грузовой и единичной систем
Рис. П6.4. Схемы нагружения еще двух единичных систем
Пример 6. Расчет статически неопределимой рамы методом сил 325
Рис. П6.5. Изгибающие моменты от внешних и единичных сил
Перемещение в заданной точке —
Определение углового перемещения точки А иллюстрирует рис. П6.7.
Для проверки правильности решения рекомендуется найти перемещения эквива-
лентной системы в точках, где ее перемещения известны заранее (на опорах). В на-
шем примере была отброшена правая опора и методом сил найдены реакции в ней.
Для проверки находим перемещения левой опоры В эквивалентной системы с по-
мощью интеграла Мора.
рис. Пб.б. Решение системы канонических уравнений метода сил
326 Пример 6. Расчет статически неопределимой рамы методом сил
Перемещение
МА(х) := 1
точки А
изгибающие моменты
от единичной силы,
приложенной в точке А,
где ищем перемещение
п
Мэкв(х,к) = Мр(х)к+ £ ХгМ1(л)кД
МА(х)к
Рк-
к=1
E-J
еа = -0.061 —
EJ
' ЙЙЙЙЙ
Press Fl for help;
й?Й
m
О
Ж
Рис. П6.7. Определение перемещения в заданной точке
В заделке нет перемещений, поэтому все три перемещения опоры В (вертикаль-
ное, горизонтальное и угловое) должны быть равны нулю. Проверку правильно-
сти решения иллюстрирует рис. П6.8.
Проверка (заделка справа)
х<-
е = 0
^верт = 0 ^горкз = 0
моменты от единичной силы
&
Д™ ^верт “
Д™ ^гориз = 0
дня в = 0
-2ро
X
b - х
МВ(х) :=
МВ(х) :=
МВ(х) > 1
Ь + PQ- Sin(x)
Проверьте правильность решения ,по очереди
сдвигая вниз различные варианты МВ(х)
Во всех трех случаях должно быть
Д =0
к=1
МВ(х).
^зкв(х > Ю -----
EJ
Л .0
Press F1& help'.. ...................
•й£: "if'-.
tl-
m
0
к
0
Яое I
Рис. П6.8. Проверка правильности решения
Пример 6. Расчет статически неопределимой рамы методом сил 327
Интегралы Мора для прямолинейных и криволинейных стержней немного отли-
чаются друг от друга.
Для прямолинейных стержней
k=iLk
Mp,k 'Mk,i
Для криволинейных стержней
' ^k,i ‘ d$
E^k
Здесь dS = p • dtp — элемент длины дуги, р и (р — полярные координаты точки, в ко-
торой ищем перемещение.
В нашем документе Mathcad при получении единой формулы для любых стерж-
ней перед интегралом Мора введен множитель р.
Для прямолинейных стержней р = 1, для криволинейных р — радиус кривизны
стержня. Соответственно, в вектор длин участков рамы L для криволинейных стерж-
ней вместо длины участка вводится угол охвата участка в радианах. В нашем слу-
чае — 0 < ср < 71.
—х Кинематический
« МММ
J ПРИМЕР анализ кулачкового
механизма
Как пример обработки экспериментальных данных приводится определение угло
вой скорости и углового ускорения коромысла газораспределительного механиз
ма двигателя внутреннего сгорания.
Исходные данные для расчета получены путем эксперимента (иногда их получа
ют путем снятия координат точек с чертежа после графического построения) и при
ведены на рис. П7.1 и П7.5, слева (сплошная линия).
Рис. П7.1. Исходные данные для расчета
Пример 7. Кинематический анализ кулачкового механизма
329
Для экономии места в документе векторы из 34 чисел представлены в виде строк,
а не столбцов, по 17 чисел в строке. Затем объединены в единую строку и транспо-
нированы в столбец, так как все функции Mathcad работают только со столбцами
чисел, но не со строками.
В этом примере системная переменная ORIGIN равна 0.
Для определения угловой скорости и углового ускорения массивы исходных дан-
ных надо превратить в функции, которые можно дифференцировать.
Вначале аргумент (угол поворота кулачка) превращаем в функцию времени. Ку-
лачок вращается с постоянной скоростью. Его угловая скорость ш задана в нашем
примере глобально около графика, чтобы, изменяя значения со, наблюдать на гра-
фике изменение результатов расчета.
Угол поворота кулачка ф = со -1 .Чтобы построить график для одного полного обо-
рота кулачка, найден период вращения Т = 2л/<л.
Массив углов поворота коромысла превращается в функцию путем кубической
сплайн-интерполяции.
Массив вторых производных функции, используемый при сплайн-интерполяции,
можно задать функциями Ispline, cspline, pspline (см. главу 7), или функциями ре-
грессии regress, loess.
В данном примере функции регрессии присутствуют, но выключены. Чтобы вклю-
чить их, надо щелкнуть на выражении правой кнопкой мыши и в открывшемся
контекстном меню установить флажок возле команды Enable Evaluation (Разрешить
вычисление).
Следует отметить, что функции регрессии предпочтительно использовать для глад-
ких функций. Для нашей почти ступенчатой функции более близкий к истине ре-
зультат дают функции интерполяции.
Полученную тем или иным способом функцию углов поворота коромысла после-
довательно дифференцируем два раза, определяя угловую скорость и угловое ус-
корение, которые нужны в дальнейшем для определения сил инерции, действую-
щих на механизм (рис. П7.2).
Результаты расчета с использованием функции интерполяции приведены на
рис. П7.3. График функции интерполяции проходит через все экспериментальные
точки (по определению интерполяции), функции регрессии сглаживают исход-
ные данные и немного искажают заданный график перемещений.
В крайних точках движения коромысла при перемене направления движения ус-
корение меняет знак (претерпевает разрыв). При увеличении числа точек и, сле-
довательно, уменьшении шага дифференцирования, разрыв становится более яв-
ным, и пики на графике ускорения возрастают.
Если опытные замеры выполняются с большой погрешностью, то для сглаживания
опытных данных можно применить функции сглаживания. На рисунке П7.2 интер-
поляция со сглаживанием, как и интерполяция с регрессией, отключена. Включите
нужное выражение и посмотрите на эффект сглаживания исходных данных.
С той же целью можно использовать разложение функции в ряд Фурье (рис. П7.4).
При этом выбирают лишь гармоники, Наиболее сильно влияющие на результат, то
330 Пример 7. Кинематический анализ кулачкового механизма
есть те, у которых коэффициент больше. На рисунках П7.5 и П7.6 приведен ре-
зультат расчета с использованием лишь трех гармоник из 34. У остальных гармо-
ник коэффициент раз в 20 меньше.
Определение скорости и ускорения
в зависимости от времени t
л T
Т := 2— Т = 0628 $l(t):=tw t:=0- ,.Т
со пп
пп - новое число точек и W - угловая
скорость заданы глобально около графиков
( беГсглаживания Vl(O:=btelp(lSpline(*>4/),<f,V^l(f))
I функции регрессии VKO > intetp(regress(*.5)4,4/,ф1(1)) '
1 отключены yl(t):= intexp(loess(ф,Ч/,0.2),ф,ч>,ф1(1)) ‘
интерполяция sup := sup smooth^, у)
j co сглаживанием { ( % 4 ।
i птктлчрмя W) > inteip(lspline(|,sup) ,|,sup,|l(t))
угловая скорость коромысла
угловое ускорение коромысла
«Kop(t) := -yl(t)
r dt
j2
екорб) := —чУКО
dt
:• ЗййййЯййФййЯй'ЗйййЙййаЯЙЧ^ЙЖЙ^^
Press Fl for help. ’ & ’ |AUTO:^<
**^***************5**«!«>**«*^**а**>****а*ХалХ*аЛд^лаХ»Х**Хй<КалаА*м*а>й;*л*аалаХаа*а«л*Л*аа*>>ЛМж^
Г
Рис. П7.2. Определение угловой скорости и углового ускорения коромысла
Рис. П7.3. Результаты расчета с использованием функции интерполяции
Пример 7. Кинематический анализ кулачкового механизма 331
Рис. П7.4. Разложение в ряд Фурье для сглаживания опытных данных
Рис. П7.5. Выбор коэффициентов ряда Фурье
Обратите внимание, что прямое преобразование Фурье (функция cfft) выводит
значения в виде комплексных чисел. Чтобы получить коэффициент перед косину-
сом, надо найти модуль комплексного числа. Поскольку мы хотим найти модуль
для всех чисел вектора необходимо использовать оператор векторизации пане-
ли матриц.
Обратное преобразование Фурье выполняется только для гармоник с коэффици-
ентами к, удовлетворяющими заданному условию (в данном примере к > 3).
332 Пример 7. Кинематический анализ кулачкового механизма
Рис. П7.6. Результаты расчета с использованием разложения в ряд Фурье
Функции преобразования Фурье возвращают массив. Чтобы превратить его в функ-
цию, используется интерполяция.
Последующее дифференцирование найденной функции позволяет определить уг-
ловую скорость и угловое ускорение.
В результате расчета пики ускорений оказались сглаженными, но график переме-
щения несколько отличается от экспериментального (см. рис. П7.5), что нежела-
тельно.
Оптимальным методом расчета в данном примере является интерполяция со сгла-
живанием.
z—.Расчет
.g;. . ____
ЖВ ПРИМЕР электрической цепи
переменного тока
В цепи, показанной на рис. П8.01, действует источник синусоидальной ЭДС
e(t) = Ет sin(o)£ + у) . Требуется определить токи и напряжения, действующие на
всех участках цепи; проверить баланс мощностей и найти показания приборов.
Рис. П8.1. Схема электрической цепи и исходные данные для расчета
Определим напряжения и токи в ветвях цепи по уравнениям Кирхгофа. Задаемся
направлениями токов в ветвях и обхода контуров. Составляем систему уравнений
для комплексов действующих токов и напряжений:
й “ г 2 + z3 = О
-г3 + г4 + г5 = О
zp’j + г2г2 = Е
z2i2 + z3z3 + z4i4 = E
= 0
Записываем эту систему в матричной форме (рис. П8.2).
334 Пример 8. Расчет электрической цепи переменного тока
О
О
о
о
о
Z
О
*3
О
О
О
< 4.1178 + 0.05421
3.9827 + 0.0704Н
-0.1351 + 0.016211
-0.81059 + 0.097241
< 0.67549 - 0.081031 7
•><
Press Fl for hdp.
z4
"Z4
Е= 118.939 + 43.291
Решить матричное
z,
|Е| = 126.572
уравнение A-I = В
В:=
•В
U > (I z)
/-0.54202 + 41.177961'4
119.4809 + 2.112261
-5.40396 + 0.648261
4.86194 + 40.52971
4.86194 + 40.52971 У
8#
о
о
и =
о
Е
Е
Рис. П8.2. Определение токов и напряжений в ветвях по уравнениям Кирхгофа
Решая приведенную систему уравнений, определяем токи на участках 1-5. По за-
кону Ома определяем напряжения U = I • z . Для одновременного вычисления по-
парного произведения элементов векторов используем оператор векторизации.
Решим ту же задачу методом эквивалентных преобразований. Найдем эквивален-
тное сопротивление всей цепи гполное(рис. П8.3). Далее по закону Ома определяем
напряжение и ток последовательно на каждом участке цепи.
Рис. П8.3. Расчет токов и напряжений в ветвях методом эквивалентных преобразований
Пример 8. Расчет электрической цепи переменного тока 335
Результаты расчета токов и напряжений в ветвях цепи, полученные двумя метода-
ми полностью совпадают (см. рис. П8.2 и П8.3).
На рисунке П8.4 показаны определение модуля, аргумента и мгновенного значе-
ния токов и напряжений в ветвях цепи.
ВНИМАНИЕ
Во всех операциях с векторами комплексных чисел необходимо использовать опера-
тор векторизации.
Рис. П8.4. Аргумент, модуль и мгновенные значения напряжений и токов в ветвях цепи
Проверим баланс активных и реактивных мощностей (рис. П8.5).
Рис. П8.5. Проверка баланса активных и реактивных мощностей
Мощность источника тока 5ИСТ0Ч должна быть равна суммарной мощности прием-
ников тока Sприем*
336 Пример 8. Расчет электрической цепи переменного тока
0>)ПРИМЕЧАНИЕ
Для нахождения произведения комплексно-сопряженных чисел используется осо-
бый оператор, вызываемый нажатием клавиши " (двойная кавычка). Для нахожде-
ния произведения векторов комплексных чисел используется оператор векториза-
ции.
Далее вычисляем активную мощность Р как действительную часть полной мощно-
сти S, и реактивную мощность Q как мнимую часть полной мощности S.
Действующие значения токов и напряжений в ветвях цепи приведены на рис. П8.6.
Рис. П8.6. Действующие значения токов и напряжений в ветвях цепи
Показания приборов
вольтметра
амперметра
ваттметра
Press Ft for help
Uv = 40.82
вольт
1а :=
1а = 3.983
ампер
Pw := IfleMCTBgUfleHCTBi-cos^n)
Ш
180
ф13----= 82.405 град
л
Pw = 0.741 ватт
Рис. П8.7. Расчет показаний приборов, включенных в цепь (см. рис. П8.1)
Расчетные показания приборов, подключенных к цепи, в местах, показанных на
схеме цепи (см. рис. П8.1), приведены на рис. П8.7.
ПРИМЕР
Переходные
процессы
при коммутации
электрической цепи
Переходные процессы при коммутации электрических цепей описываются линей-
ными неоднородными дифференциальными уравнениями. Составляется система
уравнений по законам Кирхгофа для мгновенных значений токов и напряжений
в цепи после коммутации. К этим уравнениям добавляются уравнения связи. За-
тем путем подстановки строятся дифференциальные уравнения.
В примере рассматривается цепь (рис. П9.1), содержащая источник тока Е, ка-
тушку индуктивности L, два сопротивления R1 и R2, конденсатор С и рубиль-
ник.
Рис. П9.1. Схема электрической цепи
Ниже представлены системы уравнений для нашей цепи в состоянии после ком-
мутации.
338 Пример 9. Переходные процессы при коммутации электрической цепи
О В разомкнутом состоянии:
i1 = i3
i2 = 0
E = L— + R1i1 + U,
dt
i3 = C^-
dt
О В замкнутом состоянии:
Е = L —+ R1i1 + R2i2
dt
R2i2 = 0
i3 = C^
dt
Путем подстановки друг в друга получаем систему двух уравнений первого порядка.
О В разомкнутом состоянии:
L—- + R1i1 + Uc =Е
dt
dll
С-—-^ = i1
dt
О В замкнутом состоянии:
L —+ R1i1 + R2i2 = E
dt
dU
С .
dt R2
Граничные условия (при t = 0):
О перед коммутацией:
ис ,
И(0) = О
UC(O) = E
О цепь еще замкнута:
dUc м
—- = 0
dt р?
Uc(0) = - -- Е
с R1 + R2
।
О цепь еще разомкнута:
И(0) = - Е
R1 + R2
dUc м
—— = 0
dt
Решая приведенные уравнения, можно найти падение напряжения на конденсато-
ре Uc и токи il, 12,13 во всех ветвях электрической цепи.
Пример 9. Переходные процессы при коммутации электрической цепи 339
Для решения дифференциальных уравнений использована функция Odesolve. На-
помним, функция Odesolve имеет 3 параметра. В обозначениях примера t — аргу-
мент, по которому дифференцируется функция, tl — правая граница интегрирова-
ния (левая граница задается в граничных условиях внутри блока Given.. .Odesolve),
100 — число шагов интегрирования (необязательный параметр).
При решении наших уравнений необязательный параметр оказался обязательным.
Без записи этого параметра функция Odesolve не может решить заданные уравнения.
Наведите указатель мыши на имя функции и щелкните правой кнопкой — откро-
ется контекстное меню, с помощью команд которого можно выбрать способ реше-
ния уравнения: Fixed (с фиксированным шагом), Adaptive (с переменным шагом)
или Stiff (как жесткое дифференциальное уравнение).
Смена метода интегрирования иногда позволяет решить уравнение, но не в нашем
случае. Mathcad выдает сообщения об ошибке — каждый раз разные, но абсолют-
но бесполезные, так как это отклик на внутренние процессы, связанные с алгорит-
мом решения задачи и не известные пользователю.
Только при вводе числа шагов интегрирования решение появляется. Иной раз вве-
дение большого числа шагов приводит к верному решению. В нашем случае 10 ша-
гов дают недостаточно точное решение, а 100,1000,10000 шагов возвращают абсо-
лютно одинаковые и верные решения.
На рисунке П9.2 приведено решение дифференциального уравнения второго по-
рядка при размыкании электрической цепи. В верхней части рисунка показаны
исходные данные для расчета.
Рис. П9.2. Напряжение на конденсаторе и ток при размыкании цепи
340 Пример 9. Переходные процессы при коммутации электрической цепи
При разомкнутой цепи токи 1*2 = 0, il = 13, поэтому на рис. П9.2 приведен график
лишь одного тока и напряжения на конденсаторе. Как видно из графиков, пере-
ходные процессы в цепи затухают примерно через 0,02 секунды.
На рисунке П9.3 приведено решение системы дифференциальных уравнений при
замыкании электрической цепи.
—-—замените любое
Замыкание I1 (и2-= .□ граничное условие
Given Lil'(t) = -R1 il(t) - U(t) + E
C U'(t) = il(t) -
U'(0) = 0 U(0) = E
i2(t) :=
U(t)
R2
Рис. П9.3. Напряжение на конденсаторе и токи в ветвях цепи при ее замыкании
Из приведенных ранее четврех исходных уравнений можно составить одно урав-
нение второго порядка или два уравнения первого порядка. При размыкании цепи
решалось одно уравнение второго порядка.
Чтобы продемонстрировать новые возможности функции Odesolve, которая рань-
ше решала лишь одиночные дифференциальные уравнения, а теперь может решать
системы дифференциальных уравнений, при замыкании цепи решается система
из двух дифференциальных уравнений.
В качестве параметра функции Odesolve вместо одного аргумента вводится вектор
из двух аргументов U nil.
В качестве граничных условий можно использовать 2 любых из четырех гранич-
ных условий И(0) = 0, i1'(0) = 0 , Uc(0) = 0 и U' (0) = Е. Поменяйте граничные ус-
ловия. Результат слегка изменится в первую микросекунду, но дальнейший про-
цесс совпадет.
Поскольку при замыкании токи в ветвях различны, на графиках приведены токи
во всех трех ветвях (см. рис. П9.3).
Оценка параметров
ПРИМЕР статистической
выборки
Те, кому приходилось выполнять статистические расчеты вручную, наверняка по-
мнят, какой огромный объем рутинных вычислений приходится проделывать в
процессе расчетов, особенно при сравнительно больших объемах выборки данных.
Данный пример показывает, как легко программируется и рассчитывается очень
трудоемкая статистическая задача.
Для заданной выборки данных требуется подобрать закон распределения и опре-
делить его параметры. Для создания выборки данных в примере используется ге-
нератор случайных чисел, позволяющий создавать выборку данных, подчиненных
заранее заданному закону распределения.
В примере предлагаются три генератора случайных чисел для нормального rnorm,
логистического rlogis и равномерного runif распределения (рис. П10.1). Сдвигая вниз
один из генераторов, мы тем самым вводим в расчет именно его данные.
Рис. П10.1. Создание статистической выборки, ее параметры и первая оценка статистических гипотез
342 Пример 10. Оценка параметров статистической выборки
Далее принятую выборку данных сортируем по росту функцией sort для последу-
ющего построения графиков и определяем для нее среднее арифметическое mean
и среднеквадратическое stdev отклонения.
Выдвигаем три гипотезы закона распределения и определяем функцию вероятно-
сти для них. При этом предполагаем, что выборка данных подчиняется
О нормальному распределению (функция вероятности pnorm);
О логистическому распределению (plogis);
О равномерному распределению (punif).
На рисунке П10.2 показано графическое сравнение выборки данных и функций
вероятности всех трех выбранных законов распределения. Для оценки использу-
ется суммарная вероятность рй которая равна 1 для полной выборки.
Рис. П10.2. Графическое сравнение выборки данных и статистических гипотез
Выборка данных, созданная функцией runif (генератором случайных чисел равно-
мерного распределения), как и следовало ожидать, располагается ближе всего к
прямой, соответствующей равномерному распределению. Проверим это наблюде-
ние методами математической статистики.
Сначала посчитаем коэффициенты корреляции с помощью функции согг
(см. рис. П10.1).
Для равномерного распределения коэффициент корреляции чуть-чуть больше, чем
для нормального и логистического распределений. Однако поскольку все три кри-
вые вероятности близки друг к другу, коэффициенты корреляции тоже близки друг
к другу и не дают надежной оценки.
Значительно убедительнее выглядит оценка с помощью взвешенных квадратов
отклонений Д2. Для равномерного распределения квадрат отклонений в 6 раз мень-
ше, чем для нормального, и в 2 раза меньше, чем для логистического.
Пример 10. Оценка параметров статистической выборки 343
Далее для оценки справедливости той или иной гипотезы используем методы Пир-
сона и Романовского. Для такой оценки надо выполнить гораздо более сложные
расчеты. В этих методах идет сравнение не функций вероятности, а плотностей
вероятности, что требует оценки относительных частот выпадания чисел, то есть
построений гистограммы выборки данных.
Для построения гистограммы используем встроенную функцию histogram, возвра-
щающую матрицу из двух столбцов. Первый из них — значения х середины интер-
валов, второй — относительные частоты (столбики на рис. П10.3). На том же ри-
сунке ромбиками и точками показаны значения плотностей вероятности трех
распределений, найденных функциями dnorm, dlogis и dunif.
Рис. П10.3. Гистограмма выборки данных и плотности вероятностей статистических гипотез
Оценка выдвинутых гипотез с помощью критериев Пирсона и Романовского при-
ведена на рис. П10.4. Маленький объем выборки данных не позволяет оценить
правильность выдвинутых гипотез с помощью этих критериев, и их использова-
ние служит лишь иллюстрацией возможностей Mathcad.
В результате лишь оценка гипотез с помощью взвешенных квадратов отклонений
позволяет подтвердить тот очевидный факт, что выборка данных имеет равномер-
ное распределение.
Для оценки параметров выбранного распределения используем метод максималь-
ного правдоподобия (рис. П10.5). Функция правдоподобия представляет собой
произведение плотностей вероятности выборки данных по принятому закону рас-
пределения. Эта функция максимальна при верных значениях математического
ожидания m и среднеквадратического отклонения и.
344 Пример 10. Оценка параметров статистической выборки
Рис. П10.4. Критерии согласия Пирсона и Романовского
Приравнивая производные от функции правдоподобия нулю и решая систему
уравнений, определяем значения m и а. Для демонстрации возможностей
Mathcad взята логарифмическая функция правдоподобия. Решение исключи-
тельно трудоемкой задачи (при решении вручную) занимает всего 2-3 строчки
в Mathcad.
Рис. П10.5. Оценка параметров выбранного распределения методом максимального правдоподобия
Этот метод применим только в том случае, если плотность распределения имеет
экстремум. Метод не работает в случае равномерного распределения, поэтому при-
менен к логистическому и нормальному распределению. Поменяйте местами функ-
ции правдоподобия для этих распределений.
ПРИМЕР
Расчет вынужденных
колебаний балки
В этом примере рассматривается балка на двух опорах, посередине которой уста-
новлен электродвигатель с неуравновешенными грузами на оси. При вращении элек-
тродвигателя возникает центробежная сила, вызывающая вынужденные колебания
балки. Схема установки и исходные данные для расчета приведены на рис. П11.1.
Размерности, производные от стандартных
б Н
Н := N Kr:=kg сек:= s м:=т мм:=тт см:= ст МПа:=10---------
2
L:= 120 см b := 80 мм Ь>7.3-мм размеры балки м
Е:=2105МПа сталь
mg := 5.1-кг масса балки т:= 5.65 кг масса электродвигателя
mr 0.12-кг масса грузика д ;= 30-ivtm xl := 60-ivim
Press Fl for help.
ft*1*
Рис. ПИЛ. Исходные данные для расчета
Расчет ведется с учетом размерностей, поэтому в начале документа введены раз-
мерности, производные от стандартных. Для вывода результатов в размерностях,
346 Пример 11. Расчет вынужденных колебаний балки
производных от стандартных, надо в место ввода справа от числа со стандартной
размерностью ввести производную размерность. Результат изменится.
В первой части расчета определяется собственная частота колебаний балки
(рис. П11.2). Для этого вначале вычисляются площадь поперечного сечения F,
осевой момент инерции J, жесткость балки при изгибе К и коэффициент приве-
дения массы кпр. Далее по обычной формуле сопротивления материалов опреде-
лена собственная частота колебаний балки 0) как системы с одной степенью сво-
боды.
Рис. П11.2. Расчет собственной частоты колебаний балки
Для последующего расчета вынужденных колебаний балки определены амплиту-
да вынуждающей силы как центробежная сила при вращении неуравновешенных
грузов и статический прогиб балки под действием этой силы.
Рассматривается момент наступления резонанса, то есть частота вынуждающей
силы v (скорость вращения электродвигателя) равна собственной частоте балки
со. Однако программа работает при любой частоте V. При выходе из резонанса ам-
плитуда колебаний резко уменьшается. Работая с документом, поменяйте частоту
вынуждающей силы V.
Для расчета вынужденных затухающих колебаний необходимо знать коэффици-
ент затухания. В справочниках можно найти значения этого коэффициента для
некоторых материалов и конструкций. Так, для стальных балок рекомендуется
брать отношение h/w = 0.02.
Однако во многих случаях коэффициент затухания легко определяется опытным
путем с помощью логарифмического декремента. Необходимо лишь стукнуть чем-
либо по конструкции и записать график затухающих колебаний. Логарифмиче-
Пример 11. Расчет вынужденных колебаний балки 347
скии декремент определяется по выражению 5 = In
Ч
Ч+
двух соседних колебаний (обычно первого и второго). Далее находят относитель-
, где Uj и ui+1 — амплитуды
ное затухание колебаний
h = S
со 2л ’
Определение коэффициента затухания иллюстрирует рис. П11.3. Логарифмиче-
ский декремент зависит от точности замера амплитуд. Для повышения точности в
примере в формулу декремента подставлены не амплитуды, а размахи колебаний,
то есть удвоенные амплитуды первого и второго периодов колебаний.
Маленький секрет. На рисунке П11.3 над графиком затухающих колебаний проходит
горизонтальная линия. В документе Mathcad это признак закрытой зоны, внутри
которой скрыт обычный расчет свободных затухающих колебаний балки.
Рис. П11.3. Определение коэффициента затухания колебаний
Причина проста. На опыте график записывает самописец после удара по балке.
Но подготовить такой график к печати в книге довольно сложно. Пришлось схит-
рить.
Работая с документом Mathcad, сделайте двойной щелчок мышью на этой линии —
закрытая зона откроется. Чтобы снова закрыть ее, щелкните на линии правой кноп-
кой мыши и в контекстном меню выберите команду Collapse (Закрыть).
Этот прием удобно использовать, чтобы прятать громоздкие таблицы, без которых
программа не работает. Таким способом в последующих примерах спрятаны мат-
рицы жесткости, масс и направляющих косинусов>
348 Пример 11. Расчет вынужденных колебаний балки
На рисунке ПИЛ определяется зависимость перемещения от силы и времени с по-
мощью интеграла Дюамеля. Нагрузка Р, являющаяся вертикальной составляющей
центробежной силы, изменяется по синусоиде. В момент резонанса в течение 3-4 се-
кунд амплитуда колебаний растет, достигает максимума и далее не меняется.
Рис. П11.4. Вынужденные колебания балки
Коэффициент динамичности показывает, во сколько раз возрастает амплитуда
колебаний по сравнению со статическим прогибом балки (рис. П11.5). Для нахож-
дения максимальной амплитуды использована функция Minerr ввиду сложности
работы с многопериодной функцией. Результат зависит от выбранного начально-
го приближения. Функция Maximize вообще с этой задачей не справилась.
Рис. П11.5. Определение коэффициента динамичности
Пример 11. Расчет вынужденных колебаний балки 349
На рисунках П11.6 и П11.7 показаны примеры расчета вынужденных колебаний той
же балки под действием нагрузок других видов: пилообразной и прямоугольной.
Рис. П11.6. Вынужденные колебания балки под действием пилообразной нагрузки
Рис. П11.7. Вынужденные колебания балки под действием прямоугольной нагрузки
350 Пример 11. Расчет вынужденных колебаний балки
Неприятной особенностью этих расчетов является длительное «моргание» Mathcad
в процессе вычисления интеграла Дюамеля. Для сокращения времени вычисления
интегралов выберите команду Math ► Options (Математика ► Параметры), в открывшем-
ся окне перейдите на вкладку Built-In Variables (Встроенные переменные) и уменьши-
те значение в поле Convergence Tolerance (TOL) (Погрешность сходимости). По умол-
чанию TOL= 0.001. Эта встроенная переменная Mathcad определяет точность
вычисления интегралов и производных. Она также управляет шагом итерации при
решении уравнений и систем уравнений. Уменьшение TOL в 10 раз ведет к сокра-
щению времени вычисления наших интегралов в 2-3 раза.
Щелкнув правой кнопкой мыши на шаблоне интеграла, в контекстном меню мож-
но выбрать одну из четырех команд, определяющих способ вычисления интегра-
ла. Из четырех команд к нашему примеру подходят две:
О Romberg — вычисление интеграла методом Ромберга;
О Adaptive — вычисление интеграла адаптивным методом (с переменным шагом).
По скорости вычислений разницы между этими методами нет, но метод Ромберга
дает необъяснимый разрыв в одной точке где-то в середине графика, видимо вы-
званный делением на ноль в процессе одной из операций вычисления интеграла.
ПРИМЕР
Динамический
расчет балки
матричным методом
перемещений
Целью расчета является определение вектора собственных частот балки. В преды-
дущем примере балка рассматривалась как система с одной степенью свободы, и со-
ответственно определена была только одна собственная частота (первая).
Для определения вектора собственных частот надо рассматривать балку как сис-
тему с несколькими степенями свободы. В данном примере расчет выполнен мат-
ричным методом перемещений, являющимся частным простейшим случаем мето-
да конечных элементов.
Статический расчет балки
Поясним суть матричного метода.
1. Заданная стержневая система (в нашем случае балка) разбивается на элемен-
ты — стержни.
2. Для каждого элемента составляется основное уравнение матричного метода,
представляющее собой формулу закона Гука в обобщенном виде Р = К • Д, где
Р — вектор сил, Д — вектор перемещений, К — матрица жесткости.
3. Уравнения для отдельных элементов объединяются в единую систему урав-
нений, решение которой дает вектор узловых перемещений стержневой сис-
темы.
4. Зная узловые перемещения системы, можно определить внутренние усилия
в стержнях, напряжения, собственные частоты и т. д.
На рисунке П12.1 показано разбиение заданной балки на элементы — стержни
и представлены исходные данные для расчета.
Плоский стержневой элемент, показанный на рис. П12.2, имеет 6 степеней свобо-
ды (узловых перемещений). Соответственно в уравнении Р = К • Д векторы сил
Р и перемещений Д содержат по 6 элементов. Матрица жесткости К — стандарт-
ная размерностью 6x6 — приведена на рис. П12.3.
352 Пример 12. Динамический расчет балки матричным методом перемещений
Рис. П12.1. Расчетная схема балки
Рис. П12.2. Плоский стержневой элемент
В матричном методе используются две системы координат: локальная и глобаль-
ная.
Локальная система — своя для каждого элемента. Осьх направлена вдоль оси стер-
жня. Начало локальной нумерации в начале координат. Глобальная система — еди-
Пример 12. Динамический расчет балки матричным методом перемещений 353
ная для всей стержневой системы. Выбор начала координат и направления осей
произволен. Связь между этими системами координат описывается матрицей на-
правляющих косинусов.
Положение плоского стержневого элемента характеризуется шестью независимы-
ми узловыми перемещениями (6-ю степенями свободы — по 3 в каждом узле). Связь
между узловыми перемещениями элемента в локальной и глобальной системах
координат задается формулой Д = L • Д, где Д и Д — вектор перемещений элемен-
та в локальной и глобальной системах координат соответственно, L — матрица
направляющих косинусов.
Поскольку каждому узловому перемещению соответствует своя узловая сила, то
такая же связь между узловыми силами Р и Р в локальных и глобальных осях
координат Р = L-P .
Основное уравнение матричного метода: Р = К • Д в локальной системе коорди-
нат и Р = К • Д в глобальной системе координат.
Связь между матрицами жесткости: К в локальной и К в глобальной системах
координат, К = I/ К • L.
В плоской задаче для задания матрицы направляющих косинусов, приведенной
на рис. П12.3, достаточно задать угол а между осями х (локальной и глобальной).
12 Зак 882
354 Пример 12. Динамический расчет балки матричным методом перемещений
В нашем примере балка разбита на 7 элементов. У каждого элемента по 6 узловых
перемещений. Значит, в 7 матричных уравнениях содержится 7x6=42 перемеще-
ния. Как показано на рис. П12.1, рассматриваемая балка имеет 21 узловое переме-
щение (по 3 в каждом узле, в заделке перемещений нет). Чтобы их найти, надо
систему из 42 уравнений с 42 неизвестными превратить в систему из 21 уравнения
с 21 перемещением. Эта задача выполняется с помощью матрицы соответствия ин-
дексов (см. рис. П12.1).
Матрица индексов показывает, какому номеру перемещения всей стержневой си-
стемы соответствует номер перемещения каждого элемента в глобальной системе
координат.
С помощью матрицы индексов формируется матрица жесткости системы путем
суммирования соответствующих коэффициентов жесткости.
Коэффициент жесткости системы KtJ равен сумме коэффициентов жесткости эле-
ментов, которым в матрице индексов одновременно принадлежат индексы i и j.
Выражение для суммирования коэффициентов жесткости приведено на рис. П12.4
внизу.
При расчете в Mathcad возникает неожиданная трудность. Для удобства работы
с матрицами системная переменная ORIGIN задана равной 1, но в таком случае в мат-
рицах не может быть элементов с номером 0. Чтобы выйти из этого тупика, в матри-
це индексов 0 заменен на n + 1, где п — максимальный номер перемещения системы.
При этом вместо матрицы размерностью п х п получается матрица размерностью
(п +1) х (п + 1). После формирования матрицы жесткости лишние строка и стол-
бец удаляются с помощью функции submatrix.
Обнуление матрицы жесткости системы
k := 1.. N i := 1.. n + 1 j := 1.. n + 1 К. . := 0
J bj
При ORIGIN=1 не может быть индексов, равных нулю
i := 1.. 6 j := 1.. б ML. := iffML . = 0,n + 1 ,ML -* 1
J k,i \ k,i кд
При этом размер матрицы увеличился на 1
Матрица жесткости системы
К := submatm(K,l ,п,1 ,п)
Press Fl for.help.,
Матрица жесткости элемента
глобальных осях координат
Рис. П12.4. Формирование матрицы жесткости системы
ПРИМЕЧАНИЕ
Нуль в матрице индексов означает отсутствие перемещения системы по данному на-
правлению.
Пример 12. Динамический расчет балки матричным методом перемещений 355
После формирования матрицы жесткости системы выполняется решение систе-
мы линейных алгебраических уравнений путем обращения матрицы жесткости
системы (рис. П12.5). В результате решения получается вектор узловых переме-
щений системы в глобальных осях координат.
Решение системы уравнений
статические перемещения системы
перемещения элементов в локальных
осях
N
О
О
О
О
О
О
О
0.028
М
-0.3
-0.2
-0.1
-0.4
-0.6
Р1 =
0
0
0
о
Л ,<к>
Л el
узловые нагрузки в локальных осях
,<к>
(к) г 1
Pl :=^KFk’Jk)Ael
•
МЛМЙММММШМААААММАЛЛАЛМ
Press Fl for help,
Рис. П12.5. Определение перемещений и усилий в балке
перемещения элементов в глобальных осях
Aej,k:= Д
прогибы балки
11 := 2,5..21
Дц =
0.003
0.013
0.047
0.069
0.093
0.3
0.2
0.1
-0
0.118
0
Перемещения элементов в глобальных осях определяются с помощью матрицы
индексов путем присвоения перемещениям элементов соответствующих переме-
щений системы.
Далее определяются перемещения элементов в локальных осях координат с помо-
щью матрицы направляющих косинусов, затем узловые силы, действующие на
элементы, в локальных осях координат из основного уравнения матричного мето-
да, записанного для элемента в локальных осях координат Ре = Ке • . Результа-
ты статического расчета перемещений и усилий, действующих на балку, приведе-
ны на рис. П12.5.
Поскольку внешние силы не участвуют в определении собственных частот, вектор
внешних сил можно не задавать, то есть ввести Pt = 0 . Значения собственных час-
тот останутся верными при любых значения внешних сил, но смотреть на резуль-
тат статического расчета будет скучно: в таблицах окажутся одни нули. Для ожив-
ления картины приложена одна вертикальная сила на правом конце балки Р20 = 1.
В этом случае таблица внутренних усилий наглядна (см. рис. П12.5), как эпюры
внутренних сил.
356 Пример 12. Динамический расчет балки матричным методом перемещений
Динамический расчет балки
При динамическом нагружении зависимость перемещений упругой системы от
времени описывается дифференциальным уравнением движения:
М-Д' + Н-Д'+К-Д = Р(Г)
(П12.1)
Здесь:
О P(t) — вектор внешних сил, переменных во времени;
О Д, Д', Д' — узловые перемещения упругой системы и их первая и вторая про-
изводные по времени;
О М,Н,К — матрицы масс, диссипации (рассеивания) и жесткости соответственно.
Определение собственных частот колебаний балки
Для определения собственных частот колебаний рассматриваются свободные неза-
тухающие колебания, то есть Н = 0 и P(t) = 0. Тогда уравнение движения имеет вид
М-Д' + Х-Д = 0.
Предполагается, что колебание всех точек происходит по синусоидальному зако-
ну Д = /lsin(o£ + е) , тогда решение уравнения движения сводится к решению не-
стандартной задачи на собственные числа (К - со2 • М) • А = 0, где со — собствен-
ная частота (собственное число), А — форма колебания (собственный вектор).
Для решения такой задачи Mathcad содержит две встроенные функции:
О genvals — вычисление собственных чисел;
О genvecs — вычисление собственных векторов.
Применение этих функций к решению нашей задачи иллюстрирует рис. П12.6.
Динамический расчет
k:=l..N i:=l..n+l i
MM. . := 0
матрица масс системы
i:= 1..6
1..6
(Mlk.i.MIjJ +
MM := submatir<(MM, 1 ,n, 1 ,n)
учет сосредоточенных масс MM^ у := ММц ц + mo
mg и i1 - заданы глобально около результатов расчета
... определение, собственных.частот, колебаний.балки.. .п..
AUTO " г hw 3
Q := genvals(K,MM) Q := sort(o) Орад:= y/Q ^герц:= —~
2 л
определение собственных векторов (форм колебаний)
Л := genvecs(K,MM)
।
Press Fl to help. < >
Рис. П12.6. Определение собственных частот и форм колебаний балки
Пример 12. Динамический расчет балки матричным методом перемещений 357
Необходимая для расчета матрица масс стержневого элемента — стандартная
(см. рис. П12.3).
Рассматривается балка из оргстекла. Плотность материала и модуль Юнга
заданы на рис. П12.1. Практически это длинная и тонкая пластмассовая ли-
нейка.
Матрица масс стержневой системы формируется аналогично матрице жестко-
сти путем суммирования коэффициентов с помощью матрицы индексов Срав-
ните выражения на рис. П12.4 и П12.6 для формирования матрицы жесткости
системы и матрицы масс системы. Они аналогичны.
Если в упругой системе есть сосредоточенные массы, то их учет производится
путем добавления в уже сформированную матрицу масс системы сосредото-
ченной массы, приложенной в заданном узле.
Обратите внимание, что рассматриваемая балка колеблется в вертикальном на-
правлении. Массу груза, приложенного на конце балки, надо добавить к трем
значениям матрицы масс ММ1д19, ММ2О2О и ММ2121. Перемещения 19 и 21 — гори-
зонтальное и угловое — не влияют на собственные частоты балки (они равны
нулю в расчете), и только поэтому (и только в данном примере) можно до-
бавить сосредоточенную массу к значению ММ20 2С по вертикальному направ-
лению.
Для удобства наблюдений сосредоточенная масса и направление ее приложе-
ния заданы глобально под таблицей собственных частот. Поменяйте заданные
значения и наблюдайте изменение вектора собственных частот балки и форм
колебаний.
Функция genvals возвращает вектор собственных чисел симметричной матри-
цы. В нашем примере балка имеет 21 независимое перемещение. Соответствен-
но вектор собственных чисел содержит 21 число, но из них только 4-5 являют-
ся собственными частотами колебаний.
В силу сделанных при выводе уравнения допущений, чем больше порядковый
номер собственного числа, тем больше накопленная ошибка вычислений.
Функция genvecs выдает спектр собственных векторов, каждый из которых пред-
ставляет собой форму колебания в момент резонанса на заданной частоте.
Алгоритм решения задачи не позволяет найти перемещения балки в процессе
колебательного движения из-за нехватки одного уравнения. Функция genvecs
возвращает числа, представляющие собой перемещения балки в некотором про-
извольном масштабе. Выведенные перемещения нормируются и после норми-
ровки определятся численные значения для всех собственных векторов одного
порядка (рис. П12.7).
В действительности для рассмотренной в примере балки амплитуда колебаний
в момент резонанса (с учетом затухания колебаний) составляет на первой соб-
ственной частоте порядка 25 мм, на второй частоте — порядка 5 мм, на третьей —
порядка 1 мм, на четвертой — амплитуд^ Колебаний мала, практически исче-
зает.
358 Пример 12. Динамический расчет балки матричным методом перемещений
Выбираем вертикальные перемещения балки
(2,5,8,И ,14,17,20) и строим график форм колебаний
1
2
~3
~4
~5
"б
~7
~~8
~9
То
77
12
П
77
15
7ё
герц.-
18.039
110.845
318.861
619.509
1.022 103
1.578-103
2.127-103
3.237-103
4.127-103
4 743103
5.539-103
7.107-103
9 215-103
1.154-104
1.447 104
1.529-104
11 = И
то 5 0 .005| поменяйте сосредоточенную массу
и направление ее действия
Рис. П12.7. Собственные частоты и формы колебаний балки
Вынужденные колебания балки
Вынужденные колебания системы с одной степенью свободы рассмотрены в при-
мере И. Перемещение точки приведения массы определялось с помощью интег-
рала Дюамеля. Для системы с Nстепенями свободы необходимо решить уравнение
движения системы (П12.1). Это уравнение лучше всего решать одним из методов
прямого интегрирования. При прямом интегрировании уравнение движения ре-
шается с помощью пошаговой численной процедуры, использующей метод конеч-
ных разностей. Никаких предварительных преобразований уравнения движения
не производится.
На каждом шаге интегрирования, по существу, решается статическая задача. Рав-
новесие с учетом сил демпфирования и инерции рассматривается в выбранных
точках временного интервала.
Таким образом, для конкретного момента времени т решается уравнение:
X-<7(t) = Q.
(П12.2)
Здесь К и Q — так называемые эффективные матрица жесткости и вектор на-
грузок.
Из этого уравнения определяется вектор обобщенных перемещений q в рассмат-
риваемый момент времени т.
Пример 12. Динамический расчет балки матричным методом перемещений 359
Методы прямого интегрирования различаются способами интерполяции или эк-
страполяции перемещений на каждом достаточно малом временном интервале.
В данном примере для решения выбран метод Ньюмарка, называемый также ме-
тодом обобщенного ускорения. Этот метод использует следующие конечно-разно-
стные соотношения:
q(t + Af) = q(t) + [(1 - d{) • q"(t) + d{ • q'(c + A0] • A£ ;
q(t + A£) = q(t) + q'(t) • At + [(1/2 - d2) • q"(t) + d2 • q"(t + A£)] • At2 .
Здесь dx и d2 — параметры интегрирования. При d{ = 0,5 и d2 = 0,25 приведен-
ные соотношения будут отвечать предположению о постоянном характере уско-
рения на временном интервале (t\t + At) , при d{ =0,5 и d2 = 1/6 — о линейном
изменении ускорения, что аналогично методу Вилсона, при d2 = 0 получим цент-
рально-разностную схему вычислений, соответствующую двойной пульсации ус-
корения в начале и в конце каждого временного интервала. Таким образом, d2
определяет закон изменения ускорения в пределах шага счета.
Параметр d{ характеризует схемное (численное) демпфирование: при 0 < d{ < 0,5 —
отрицательное, при dx > 0,5 — положительное, при dx = 0 схемное затухание от-
сутствует.
При решении конечномерных задач большой размерности рекомендуется прини-
мать dx > 0,5 и d2 > 0,25.
Исходные данные для расчета приведены на рис. П12.8.
Вынужденные колебания. Прямое интегрирование методом Ньюмарка
At := 0.01 tk := 2
Пилообразная нагрузка tl := 0.5
f f t 1
Q(t) := Qq I t - flood — I tl
v tl J
Синусоидальная нагрузка Q(t) := Qo-sin(lOt)
Прямоугольная импульсная нагрузка
tl := 0.05 t2 := 0.5 Т := tl + t2
{ t
nl(t) := floor —
М := ММ
1.. п
Н:=2£йМ
0 vl. = 0
al.:=0 QV.:=0
fo; help
ДигО
Рис. П12.8. Исходные данные для расчета вынужденных колебаний балки
Эффективные матрица жесткости К и вектор нагрузок Q, входящие в уравнение
(П12.2), включены в подпрограмму ZZ (см. далее). Приведенный алгоритм реали-
зует неявную двухслойную схему интегрирования.
Кроме коэффициентов сП := 0.5 и d2 := 0.25, в исходных данных указаны: относи-
тельный коэффициент затухания колебаний £ := 0.05 (на первой собственной ча-
360 Пример 12. Динамический расчет балки матричным методом перемещений
стоте), амплитуда вынуждающей силы Qo := 0.5, временной шаг интегрирования
At := 0.01 с, конец интервала интегрирования tk := 2 с.
Заданы три выражения для вынуждающей силы (синусоидальной, прямоуголь-
ной, пилообразной). Работая с примером, поменяйте местами выражения для на-
грузок, так как в расчет идет нижнее выражение, и пронаблюдайте эффект измене-
ния перемещении при изменении вынуждающей силы.
Последние 2 строчки на рис. П12.8 — подготовка рассчитанных ранее массивов
и обнуление новых массивов для передачи их в программу 12. (рис. П12.9 и П12.10).
"начальные условия"
QV <—QV
t«-0
ql <- ql
vl <— vl
al <— al
n <— 0
"пошаговое решение уравнени^'движения"
P^ess ci foMielo AUTO [Page 5 4
Рис. П12.9. Программа расчета вынужденных колебаний, реализующая метод Ньюмарка
Поскольку расчет повторяется многократно, он оформлен в виде программы. В на-
чале программы присваиваются значения переменным и массивам, которые долж-
ны изменяться в процессе расчета. Далее пошаговый расчет оформлен в виде цик-
ла while, расчет продолжается до нарушения критерия t < tk.
В данном расчете действует одна вынуждающая сила по направлению пп. Она вво-
дится в ранее обнуленный массив QV в виде QVnn <— Q(t).
Далее определяются эффективные матрица жесткости К К и вектор нагрузок QQ,
учитывающие также матрицу масс М и матрицу диссипации (рассеивания) Н.
Пример 12. Динамический расчет балки матричным методом перемещений 361
Из решения матричного уравнения QQ = КК • q2 определяется вектор переме-
щении q2. Далее в процессе численного дифференцирования определяются век-
тор скоростей v2 и вектор ускорений а2. Цифра 2 означает конец шага.
Рис. П12.10. Программа расчета вынужденных колебаний, реализующая
метод Ньюмарка (продолжение)
Для перехода к следующему шагу найденные значения q2, v2 и а2 присваиваются
величинам ql, vl и al, соответствующим началу следующего шага.
Для последующего вывода результатов расчета найденные значения перемещений,
скоростей и ускорений записываются в массивы qq, vv и аа, столбец п которых со-
ответствует шагу п расчета.
Составной массив вывода результатов расчета для экономии места в программе
записан в виде строки.
Результаты расчета приведены на рис. П12.11. Пунктиром на графике показана
зависимость силы Р от времени t. Для примера выбрана прямоугольная нагрузка.
Перемещения q взяты из составного массива вывода данных программы ZZ. На гра-
фике показаны перемещения конца балки (пт = 20). Поменяйте значение пт (но-
мер перемещения) и значение пп (номер направления, по которому действует вы-
нуждающая сила Р). Поменяйте саму вынуждающую силу, передвигая вверх-вниз
выражения для нее (см. рис. П12.8).
На рисунке П12.11 приведены два графика перемещения. Один (точки обозначе-
ны крестиками) построен по значениям выходного массива ZZV Второй — с исполь-
зованием функции сглаживания данных supsmooth (сплошная жирная линия).
362 Пример 12. Динамический расчет балки матричным методом перемещений
Графики изменения скорости и ускорения на рисунке отсутствуют, чтобы не зате-
нять график перемещения.
Рис. П12.11. Зависимость перемещения q конца балки (nm=20) от времени t под действием вынуждающей силы Р
Анимация колебаний балки
На примере колебаний балки удобно показать создание движущихся объектов (ани-
мацию). Для создания анимации в расчетные формулы надо ввести переменную
FRAME — номер кадра.
В нашем примере движущийся объект — это балка в процессе колебаний. Надо по-
казать на графике упругую линию изогнутой балки в различные моменты времени.
Для построения упругой линии используем вертикальные перемещения семи уз-
лов балки. Номера этих перемещений заданы массивом ii (рис. П12.12). В массиве
выходных данных 1LX каждый столбец представляет собой 21 перемещение, соот-
ветствующие определенному моменту времени t.
Переменная FRAME должна задавать номер столбца перемещений. Чтобы ограни-
чить число кадров анимации (один кадр — один график) берем не все столбцы под-
ряд, а, в нашем примере, через 3 столбца.
Для создания анимации надо построить график, соответствующий одному (перво-
му) кадру, при FRAME == 0. Поскольку FRAME — номер кадра, можно ввести какое-
либо значение FRAME, чтобы посмотреть неподвижную картинку будущей анима-
ции. Но не забудьте удалить значение FRAME перед созданием анимации.
Пример 12. Динамический расчет балки матричным методом перемещений 363
Рис. П12.12. Подготовка к анимации колебаний балки
Рассмотрим процедуру создания анимации.
1. В главном меню Mathcad выберите команду View ► Animate (Вид ► Анимировать).
2. В появившемся окне введите значения переменной FRAME в поля From и То
(О и 12 для нашего примера).
3. Задайте скорость движения кадров в поле At — лучше 3-5 кадров в секунду.
4. При нажатой левой кнопке мыши обведите пунктирной рамкой границы графика.
5. Щелкните на кнопке Animate (Анимировать) и наблюдайте за созданием кадров.
После завершения этого процесса на экране появится окно проигрывателя.
Щелкните на кнопке пуска и посмотрите, устраивает ли вас созданная анима-
ция. Если устраивает, надо сохранить анимацию как AVI-файл.
6. В окне создания анимации щелкните на кнопке Save as (Сохранить как), в по-
явившемся окне выберите нужный каталог, задайте имя файла и щелкните на
кнопке Save (Сохранить).
7. В главном меню Mathcad выберите команду Insert ► Object (Вставка ► Объект).
8. В появившемся окне Insert Object (Вставка объекта), установите переключатель
Создать из файла, с помощью кнопки Обзор найдите нужный файл, установите
флажок Связь и щелкните на кнопке ОК.
Появившийся объект «оживляется» двойным щелчком мыши. Щелкните на нем
правой кнопкой мыши и в появившемся контекстном меню выберите команду Свя-
занный объект: видеозапись ► Изменить. Откроется окно проигрывателя. Выберите
команду Правка ► Параметры, в появившемся окне установите флажок Автоповтор и
щелкните на кнопке ОК. Теперь при двойном щелчке мышью на объекте вы будете
видеть непрерывное колебательное движение балки. В меню видеопроигрывателя
есть и другие команды. Поэкспериментируйте с ними самостоятельно, если хотите.
Расчет
пространственной
стержневой системы
Пространственную стержневую систему рассчитываем матричным методом пере-
мещений, аналогично плоской задаче из примера 12. Рассматриваемая система (ри-
c. П 13.1) разбита на 6 элементов-стержней. Элемент 1 с одной стороны жестко заде-
лан, с другой приварен к подвижной втулке, скользящей и поворачивающейся по
стержню 2-3. Левый конец элемента 2 приварен к подвижной оси, допускающей
поворот и скольжение вдоль оси Z. Элемент 6 прикреплен к оси, допускающей толь-
ко вращение (без скольжения). Элемент 4 прикреплен внизу к сферической шар-
нирной опоре, допускающей вращение вокруг трех осей.
Рис. П13.1. Схема пространственной стержневой системы
Пример 13. Расчет пространственной стержневой системы 365
Всего заданная система имеет 20 независимых перемещений. Чтобы не загромож-
дать чертеж, номера перемещений указаны в рамках в виде диапазона номеров пе-
ремещений в каждом узле.
Применяемый пространственный элемент имеет 12 степеней свободы (рис. П13.2).
Соответствие 12 перемещений пространственного элемента 20 перемещениям за-
данной стержневой системы указано в матрице индексов.
Рис. П13.2. Пространственный стержневой элемент
Часть исходных данных введена непосредственно с клавиатуры: модуль Юнга Е, мо-
дуль сдвига G, плотность материала р. Вектор сил, геометрические характеристики
сечений стержней и матрицу индексов можно было также ввести с клавиатуры, но
они считаны из файлов p.prn, s.prn и mi.prn с помощью функции READPRN. Считанные
из файлов величины с присвоенными им именами приведены на рис. П 13.3 и П 13.4.
11
ORIGIN >1 Е:=210 G:=0.4 E р := 7800 плотность
ввод вектора сил Р ввод геометрических характеристик
Р := READPRN( ” р ,pm“) S := READPRN(" s ,рт") р [
ввод матрицы индексов
V* Г
MI := READPRN("tni.pm")
. _<1> _ „<2> , „<3> т „<4> , „<5>
L := S F := S Jx := 5 Jy := S Jz := S
N := rows(MI) n := max(Ml)
N = 6 число элементов n = 20 число перемещений gj
i < Д ±1 1
Рис. П13.3. Ввод исходных данных для расчета
В пространственной задаче каждая локальная ось элемента образует 3 угла с гло-
бальными осями координат стержневой системы, поэтому для каждого элемента
задается сТРО1<а из 9 углов (рис. П13.5). Косинусы этих углов входят в матрицу
направляющих косинусов. Для вычисления косинусов используется оператор век-
торизации, так как аргумент косинуса — матрица, а не число или вектор.
Збб Пример 13. Расчет пространственной стержневой системы
Рис. П13.4. Исходные данные для расчета
м^мй1А^млм^ММми<!ммыммй|>
90
45
90
90
135
90
45
сс :=
34
90
^90
90
90
90
90
90
90
90
90
90
90
90
90
56
90
90
45
45
124
180
90
34
90
90
90
90
90
90
90
135
45
90
Углы ос и косинусы I для
матрицы направляющих
косинусов
. - -
:доти
1 71
1 := cos-----а
1180
Неде 2
0
0
0
О
0
0
0
0
О
О
О
Рис. П13.5. Углы между локальными и глобальными осями координат
Три стандартные матрицы, в том числе и матрица направляющих косинусов, спря-
таны от глаз в закрытой зоне (рис. П13.6). По виду и содержанию они такие же,
как в примере 12, но занимают гораздо больше места, поскольку в плоской задаче
эти матрицы имеют размерность 6x6, в пространственной — 12x12.
Чтобы создать закрытую зону, выберите в главном меню команду Insert ► Area
(Вставка ► Зона) — появятся две горизонтальные линии. Перетащите их в начало и
в конец будущей зоны. Теперь щелкните на одной из них правой кнопкой мыши и
в открывшемся контекстном меню выберите команду Collapse (Закрыть). Содержи-
мое зоны исчезнет из виду, но останется в программе расчета.
Чтобы открыть закрытую зону, дважды щелкните мышью на линии.
Пример 13. Расчет пространственной стержневой системы 367
Рис. П13.6. Статический расчет стержневой системы
Как уже упоминалось, скрытые матрицы размерностью 12x12 содержат по 144 эле-
мента. Mathcad позволяет набрать с клавиатуры матрицу, содержащую не более
100 элементов. Поэтому набраны отдельно две половинки матрицы, которые за-
тем объединены функцией augment
Порядок статического расчета пространственно1! стержневой системы такой же,
как и плоской. Он описан в примере 12. Также формируется матрица жесткости
системы, решается система уравнений, определяются перемещения и узловые уси-
лия в стержнях. Расчетные формулы приведены на рис. П13.6.
Зная узловые перемещения Д, с помощью функций формы ?7(х) можно найти пе-
ремещение произвольного сечения U(x) каждого элемента-стержня по формуле
U(x) = N(x) • Д , где N(x) ~ матрица функций формы размерностью 2x6 для плос-
кой задачи, 3x12 — для пространственной задачи. Функции формы (функции Эрми-
та) приведены на рис. П13.7. Там же имеются графики перемещений по трем осям X, Y, Z.
Поменяйте номер элемента те, чтобы посмотреть вид упругой линии других элементов.
Динамический расчет пространственной стержневой системы ведется так же, как
и плоской системы в примере 12. Сформировав матрицу масс системы, с помощью
функций genvals и genvecs определяем вектор собственных частот Q и спектр соб-
ственных векторов Л. Результаты расчета приведены на рис. П13.8.
368 Пример 13. Расчет пространственной стержневой системы
Построение упругой линии элементов с помощью функций формы Nff(x,L)
Nl(x,L) := 1 - - N2(x,L)
Li*
3 2
N4(x,L) := -— 2 — + x
L2 L
(Nl(x,L) 0
3 2
N3fx,L) := 2 — - 3 +1
I3 L2
3 2
X X
N5(x,L) := -2 — + 3 — N6(x,L)
0 N2(x,L)
Nff(x,L) := 0 N3(x,L) 0 0 0 N4(x,L) 0
VO 0 N3(x,L) 0 -N4(x,L) 0 0
2
x
' Г
о
N5(x,L)
0
0
0
N5(x,L)
0
о
-N6(x,L)
° ) *
N6(x,L) |
О
поменяйте номер
элемента
U(x,i) ;= 1000 NffjxL.L) Ae^ x:= 0,0.01.. 1
(
0
. 1«м.
пег Г • i &ge 3
Рис. П13.7. Упругая линия деформированного стержневого элемента
ДИНАМИЧЕСКИЙ РАСЧЕТ k.= l„ N i:=l..n+l i.= l..n+l ММ- . := 0 l’J \ i>l-12 j := 1.. 12 ... c=MM/..T MM := submatrix(MM, 1, n, 1, n) Вектор собственных частот Q > genvals(K,MM) Спектр собственных векторов Л := genvecs(K,MM) РЕЗУЛЬТАТЫ РАСЧЕТА [!„.;) +ММВД Q :• -fa Qr i := 1.. n Ai = i.j epu:= i = □ 2 л ^repu. = 71 v.-
<-517 316 316 530 1005 1024 Nx 147 754 -2099 96 621 10 Qy -517 1000 269 -47 47 -81 Qz -30 -1 -1 0 -21 -27 Мх 5 120 -236 -7 0 -7 15 Му 54 100 -243 -0 83 0 Mz Pl = 517 -316 -316 -530 -1005 -1024 Nx -147 -754 2099 -96 -621 -10 Qy 517 -1000 -269 47 -47 81 Qz 30 1 1 0 21 27 Mx 171 -164 -46 34 -12 31 My 4 30 202 -176 70 166 5 J Mz ’iEJ p: Ьф. 0.00067 О 1 180.8
-0.00064 2 214 6
-0 3 235.7
-0.00025 4 319.6
0.00016 5 39P 5
0.00004 6 531.4
0.00089 7 800.8
0.00061 8 1184.5
-0.00016 9 1258.6
0.0012 10 1442.3
-0 11 1951.4
-0 12 2425.5
-0 13
0.00006 14 1 1 ’ -Page's
0.00065 15
'□00103 7); 16
Рис. П13.8. Результаты расчета пространственной стержневой системы
ПРИМЕР
Расчет кольца
методом конечных
элементов
Метод конечных элементов предназначен для приближенного решения практи-
чески любых систем уравнений: алгебраических, дифференциальных, интеграль-
ных. Он широко распространен в различных областях знаний: в механике, термо-
динамике, гидродинамике, газодинамике и т. д., то есть везде, где невозможно найти
аналитическое решение.
Однако предварительно произвольная система уравнений должна быть преобра-
зована в систему линейных алгебраических уравнений, имеющих матричный вид
Р = К-А. Здесь Р — вектор правых частей уравнений, А — вектор неизвестных,
К — симметричная матрица коэффициентов при неизвестных. Получение такой
системы уравнений — очень непростая задача, но она уже решена практически во
всех важных прикладных сферах.
В упругой задаче теории упругости уравнение Р = К • А представляет собой запись
закона Гука в обобщенной форме.
Поясним сущность метода.
1. Упругое тело разбивается на элементы. Объемное тело на тетраэдры или па-
раллелепипеды. Плоское тело — на треугольники и прямоугольники.
2. Для каждого элемента составляется матрица жесткости К с использованием
функции формы. Функция формы представляет собой способ аппроксимации
неизвестной функции перемещений А.
3. Матрицы жесткости элементов объединяются в единую матрицу жесткости для
всего тела.
4. Решая систему уравнений Р = К • А, находят узловые перемещения А.
5. С помощью уравнений теории упругости определяются деформации и напря-
жения в узловых точках тела.
В данном примере решается плоская задача теории упругости. Кольцо, нагружен-
ное двумя силами (рис. П14.1, справа), имеет две оси симметрии, поэтому для по-
вышения точности расчета рассмотрим одну четвертую часть кольца (рис. П14.2).
На осях симметрии должны выполняться граничные условия равенства нулю пе-
ремещений, перпендикулярных ос#м симметрии.
370 Пример 14. Расчет кольца методом конечных элементов
Рис. П14.1. Схема нагружения и треугольный конечный элемент
Рис. П14.2. Расчетная схема и координаты узлов
Рассматриваемую четверть кольца разбиваем на треугольные конечные элементы
(см. рис. П14.1). Треугольный элемент имеет 6 степеней свободы (независимых
узловых перемещений). Нумерация узловых перемещений в элементе начинается
в нижнем левом узле треугольника и продолжается против часовой стрелки. Гори-
зонтальные перемещения — нечетные, вертикальные — четные. Нумерация узлов
всего тела и конечных элементов — по столбцам сверху вниз, слева направо.
Размеры элементов могут быть разными (чем меньше элемент, тем выше точность
расчетов). В нашем примере всего 66 узлов и 100 конечных элементов.
Расчет координат узлов приведен на рис. П14.3. Положение рассчитанных узлов
показано на рис. П14.2 справа.
Координаты узлов можно определить, скажем, по миллиметровке и ввести с кла-
виатуры. Это кропотливый труд, и при большом количестве узлов лучше автома-
Пример 14. Расчет кольца методом конечных элементов 371
тизировать эту работу. На рисунке П14.4 приводится расчет полярных координат
узлов и их преобразование в прямоугольные (декартовы) координаты. Здесь rl и
г2 — наружный и внутренний радиусы кольца, t — толщина кольца, ф1 и ф2 — на-
чальное и конечное значения угловой координаты, Z0 и Y0 — декартовы координа-
ты полюса (начала полярных координат), nr и пф — число узлов в столбце (вдоль
радиуса) и в ряду (по углу охвата рассматриваемой части тела).
ORIGIN = 1
nt := И
Размерности, производные от стандартных
Н:= N
м := m град := deg
см := 0.01-т
мм := 0.001 -т
ввод координат узлов Y и Z
г2 := 15 мм t := 5.7 мм ф1 := 90-град
rl := 30-мм
Y0 := 0-мм
Z0 := 0-мм
1.. nr
Дф :=
r.-cos
В мм
Для самостоятельной работы,
программы включите эти выражения
и поменяйте их величины
Дг :=------
nr - 1
кН := 1000-N
МПа := 10б- —
2
m
г - sin
Z
pre«s Fl for help.
Рис. П14.3. Расчет координат узлов элементов
Кропотливой и трудоемкой является также задача составления матрицы индек-
сов. На рисунке П14.4 приведена используемая в примере программа составления
матрицы индексов. Здесь же приведен автоматический расчет граничных условий
и, в зависимости от числа узлов, номеров перемещений, в которых перемещение
на осях симметрии равно нулю.
Автоматизация расчетов координат узлов, матрицы индексов и граничных усло-
вий позволяет для данной схемы менять количество узлов. Поменяйте количество
узлов в ряду nr и в строке пф.
В данном примере продемонстрирована возможность объединения нескольких
документов Mathcad в один с помощью ссылки. Расчеты координат узлов, матри-
цы индексов и граничных условий объединены в один документ под названием
Matr-indl.mcd. В основном документе делается ссылка на Matr-indl.mcd. В результа-
те оба документа объединяются в один и работают совместно, хотя документа Matr-
indl.mcd и не видно на экране.
Для создания ссылки надо в главном меню Mathcad выбрать команду Insert ►
Reference (Вставка ► Ссылка), в открывшемся окне, щелкнув на кнопке Browse (Обзор),
указать путь к документу, который хотите включить в расчет, и щелкнуть на кнопке
ОК. В основном документе появится строка с именем подключенного документа
(рис. П14.5).
372 Пример 14. Расчет кольца методом конечных элементов
Число элементов NN := 2(пг- 1)-(пф- 1) NN = = 100 li
MIU = iel <- -1
£.•<.< NE := rowsCMIU) for 1€1..Пф-1 VTTT J NU := max(MIU) for i e 1.. nr NE = 100 NU = 66
i iel <— 2 (nr - l)-(j - 1) + 2-i - 1 ivZ* .- 1 2
ie2 <- 2-(nr - 1) (j - 1) + 2-i у 13 12 1
MIU. . . <— nr-j + i + 1 lei ,1 J MIU- * - <- nr j + i iel ,2 J 2 2 13 1
14 13 2
4 | 3 14 2
MIU- . ~ <- nr (j - 1) + i iel ,3 ' MIU. n . <-nr(j- 1) + i + 1 ie2,1 4J ' 5 f 15 14 3
6 4 15 3
> iii 16 15 4
MIU. п n <- nr -j + i + 1 MIU = ie2,2 J MIU. n Q nr-(j - 1) 4- i ie2,3 ' 5 16 4
•9 17 16 5
is 6 17 5 •.
break if iel = NN - 1 ii 18 17 6
MIU 12 7 18 6
к условий в перемещениях 13 19 18 7
ввод граничны) щ 8 19 7 t Л
g := 0 ii := 1.. nr g^:=2-ii-l Agu.-O-WM 15 20 19 8
i+nr ~ J iiVFW- Press Fifor help nr- (nt )- l)-2 + 2-ii Agii+rir:=0-MM -. :/ ' ’ .< fc , • У 16 9 20 8
Ч1Ю ST' :/-h bage >] 1 4
Рис. П14.4. Программа расчета матрицы индексов
? i ORIGIN1 nr:=ll пф:=5 поменяйте эти величины \ Q НеГегепсе:О:\КгшпЛУчебнь1Йкурс\Имженерные расчеты в Mathacd^Mcr\Primerl-17\Primerl4\Mata-indljttcd(R) Й1: \ число узлов NU = 55 число узлов в ряду ПГ =11 ; число рядов б столбце пЛ = 5 И ; число элементов ЫЕ = 80 «г
MIUT - - ::2 у 4 ь 'sif ; а 10 • 11 <•
1... 13 2 14 3 15 4 16 5 17 6 18 7
и 12 13 13 14 14 15 15 16 16 17 17 18
11 1 1 2 2 3 3 4 4 5 5 6 6
'' ‘ -j
т z = 2 , 'Т ::7^- м
0 0 0 0 0 0 0 0
т У - ;'' .2 4 4 5 ^Я2 м
0.03 0.029 0 027 0.026 0.024 0.023 0.021 0.02
номера заданных перемещений
gT = (l 3 5 7 9 11 13 15 17 19 21 90 92 94 96 98 100 102 104 106 108 110)
заданные перемещения
AgT = (0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)м rows(ig) - 22
ДП.............. ~
PressPlJorW г;,,, , < Л;.. . . ...
’’****,*,"*,й*****'*’в,*»'*|****в‘'*Л**«'"Л*>*<**,в*>*Л"********Л*Л*«"******^*АА**Л*ЛААААЛ<ММ»ЛААЛА*>*А***|*****АЛЛ*Лв*йЛ*Л*ЛЛ*Л*Л*ЛЛА«М^М»АА<М.^^
Рис. П14.5. Подключение к расчету другого документа с помощью ссылки
Пример 14. Расчет кольца методом конечных элементов 373
При каких-либо изменениях в том или ином документе автоматический пересчет
происходит только после сохранения изменений в документах.
В данном примере число узлов в ряду nr и число узлов в строке пф заданы в глав-
ном документе. Программа из фах-ла Matr-indl.mcd принимает эти значения, вы-
числяет координаты узлов и матрицу индексов, передает их в главный документ,
где эти данные участвуют в последующих расчетах.
Программа Matr-indl.mcd может работать и без подключения другой программы.
Надо включить пересчет значений nr и пф (см. рис. П14.3), выбрав в контекстном
меню команду Enable Evaluation (Включить вычисление).
Координаты узлов, матрицу индексов и граничные условия можно записать в от-
дельные файлы, как это сделано в конце программы Matr-indl.mcd (рис. П14.6).
В дальнейшем эти файлы можно считать с помощью функции READPRN и исполь-
зовать в другом документе.
Рис. П14.6. Запись координат, матрицы индексов и граничных условий во внешние файлы
Данный расчет проведен с учетом размерностей, поэтому в начале документа,
на который имеется ссылка, введены производные размерностей на русском
языке (см. рис. П14.3). Учет размерностей вносит дополнительные трудности
в достаточно сложный расчет, особенно при вводе матриц от размерных вели-
чин (рис. П14.7).
Рис. П14.7* Вектор сил и матрица индексов перемещений
374 Пример 14. Расчет кольца методом конечных элементов
В последующих примерах (см. примеры 15-17) размерности в расчет не включе-
ны, а указаны в качестве примечания к вычислениям.
СОВЕТ
Вообще при создании сложных программ избегайте учета размерностей. Большое ко-
личество дискретных переменных и матриц вызывает много сложностей с применени-
ем размерностей. Некоторые встроенные функции вообще не могут работать с раз-
мерными величинами. Исчезает главное достоинство Mathcad — удобство и простота
использования. Кроме того, не всегда целесообразно составление одного документа
из двух с помощью ссылки. Если вставляемый документ простой, его лучше вставить
копированием и, при желании, спрятать в закрытой зоне. Если документ сложный, то
из-за его взаимодействия с основным документом возможно повторное присваива-
ние переменных, наложение массивов друг на друга и т. д. Данные удобно передавать
из одной программы в другую, записывая их в файл и считывая из файла, однако имейте
в виду, что функции READPRN и WRITEPRN не могут работать с размерными перемен-
ными.
У каждого треугольного элемента 3 узла и 6 узловых перемещений. Матрица ин-
дексов перемещений (матрица связи глобальных номеров узловых перемещений
тела с локальными номерами узловых перемещений элементов) получена путем
удвоения матрицы, представленной на рис. П14.7.
Матрица жесткости элемента рассчитывается по формуле:
Здесь:
О A = DTN;
О С — матрица внутренней жесткости, содержащая упругие постоянные матери-
ала Б, ц, G (рис. П14.8);
О D — матричный дифференциальный оператор, означающий определенную пос-
ледовательность присвоения знака дифференцирования;
ON — матрица функций формы.
Для треугольного элемента функция формы — уравнение плоскости:
2F
Здесь:
О a, - Zj - zk ; bi = -(уJ - yk); c{ = yj -zk-yk-Zj\F — площадь элемента;
О у, г — координаты точки тела, i,j, k=l, 2,3 — номер узла (по правилу круговой
перестановки).
гт 3N
Производные----= а и
ЭД-
az
= b, поэтому матрица А =* DTN содержит константы,
которые зависят только от координат узлов (см. рис. П14.8).
Пример 14. Расчет кольца методом конечных элементов 375
а:= О b := О F > 0 обнуление массивов после предыдущих расчетов
формирование матрицы жесткости
элемента
<k) -
Zi
z(Miuk ,j) z(MIUkil)
b(k)
y(MIUk,2) y(MIUki3)
y(MIUk,3) у(мик11)
z.
_y(Miukil) " y(MIUk,j)_
y(Miukil)1
<
i
J
площади
элементов
k’
<k). b(k)
Z,
y(MIUki2)
Z,
b(k)2
b(k)3
<k)2
<k)2
b(k)2
<k)3
P^^FiforW
.. /// z. гл-.-... у.-.-.
0
<k)3
b(k)3
:
I
X;.
M
M
M
k •”
о
м
M
M
M
1
0
0
0
0
Рис. П14.8. Коэффициенты для формирования матрицы жесткости элемента
Матрица внутренней жесткости С приведена на рис. П14.9 и записана в виде ус-
ловного оператора — разные матрицы для плоского напряженного NDS = 0 и плос-
кого деформированного состояния NDS = 1.
Р-
О
Р-
if NDS = О
О
О
К
2
Р*
р.
if NDS = 1
1 - н
о
Press И for help
матрица внутренней
жесткости элемента
2
- Р-
МММ
имшалnh’ninnn ruff -nn nr-—r -
Рис. П14.9. Матрица внутренней жесткости элемента
IHIIIHHHi
О
376 Пример 14. Расчет кольца методом конечных элементов
Для треугольного элемента интеграл по объему равен произведению подынтехраль-
ного выражения на объем. Формула для расчета матрицы жесткости элемента при-
ведена на рис. П14.10, вверху.
Рис. П14.10. Формирование матрицы жесткости системы и учет граничных условий
Матрица жесткости системы (всего тела) формируется с помощью матрицы ин-
дексов по той же формуле, что и в матричном методе (см. примеры 12 и 13).
Учет граничных условий сопровождается перестройкой матрицы жесткости сис-
темы и вектора сил (см. рис. П14.10, внизу).
Узловые перемещения системы определяются путем обращения матрицы жестко-
сти (рис. П 14.11). При большом количестве уравнений этот способ требует доста-
точно длительного счета.
СОВЕТ Для разреженных ленточных матриц, как в нашем случае, целесообразно использо-
вать метод Холесского, реализованный в программе МСНВ из примера 16.
Определение узловых перемещений
1
Локальные перемещения
элементов по столбцам 1 =
Определение деформаций и
напряжений в центре элемента
AUTO 1... : Д -,.. < (раде 4 ;
Рис. П14.11. Определение перемещений узлов, деформаций и напряжений в центре элемента
Узловые перемещения элементов определяются путем повторного присваивания
значений перемещений системы по матрице индексов.
Пример 14. Расчет кольца методом конечных элементов 377
По уравнениям теории упругости деформации Е = DTи, где и — вектор перемеще-
ний. По уравнению связи узловых перемещений Д и перемещений и произволь-
ной точки и = ЛГ • Д. Отсюда деформация элемента е = (DTN) • Д .
По физическим уравнениям теории упругости (закон Гука) напряжения о = С • Е.
Сложность расчета состоит в аккуратном использовании индексов элементов,
узлов, столбцов, строк, присвоении индексам значений, взятых из матрицы ин-
дексов.
Для треугольного элемента функция формы линейна, поэтому производные от
функции формы, а следовательно, и деформации, и напряжения, найденные на
рис. П14.11 — постоянны по всей площади элемента.
Напряжения в узлах тела определяются как среднее арифметическое напряжений
или деформаций во всех элементах, сходящихся в узле. Расчет напряжений и де-
формаций в узлах тела приведен на рис. П14.12.
Рис. П14.12. Определение перемещений узлов тела, напряжений
и деформаций в центре каждого элемента
На рисунке показано определение 4-го значения деформации и напряжения
в каждом элементе, не учитываемых в матрице внутренней жесткости С. Это ех
и ох.
При плоском напряженном состоянии (NDS = 0) =0 и ех = -ц-(оу + oz).
При плоском деформированном состоянии (NDS = 1) ех = 0 и 0Х = ц(оу + oz).
Работая с документом Mathcad, опустите выражение NDS = 1 ниже выражения
N DS = 0 и посмотрите на результаты расчета уже не при плоском напряженном со-
стоянии, а при плоской деформации.
378 Пример 14. Расчет кольца методом конечных элементов
Результаты расчета, приведенные на рис. П14.13, практически совпадают с резуль-
татами расчета кольца методом сил с использованием формулы для напряжений в
кривом брусе. Максимальные напряжения возникают на внутренней поверхности
кольца в 11-м и 66-м узлах.
Определение интенсивности напряжений и деформаций в узлах
maxoi := max(oi)
maxni = 51.9 МП а
в горизонтальном сечении
в вертикальном сечении
55 54 53 52 5150 49 48 47 46 45
номер узла
Press Fl for Help.
maxsi := max
maxEi = 0.00022
gl,i
МПа
->•.=f :: wto (
Рис. П 14.13. Результаты расчета
Решение уравнения
Пуассона
при кручении
стержня
Для решения уравнения Пуассона Mathcad предлагает функции multigrid и relax.
Эти функции решают уравнение Пуассона методом сеток и только для квадратной
области.
В данном примере рассматривается решение уравнения Пуассона методом ко-
нечных элементов для областей произвольной формы и произвольной разбивки
на элементы.
Распределение касательных напряжений при кручении стержня произвольного
сечения подчиняется уравнению Пуассона:
Э2<р э2ф
ду2 dz2
+ 2G6 = 0 .
Здесь:
О G — модуль сдвига;
GJk
— относительный угол закручивания стержня;
О (р — функция напряжений, такая что
т т
* dz’ ду
(П15.1)
(П15.2)
О Mk — крутящий момент;
О Jk “ момент инерции при кручении.
Форма сечения закрученного стержня может быть любой. Для примера взят стер-
жень прямоугольного сечения. Размер сечения 40x80 мм. Используя симметрию,
вводим координаты узлов и граничные условия (равенство нулю функции напря-
жений на контуре) только для половины сечения стержня. Исходные данные для
380 Пример 15. Решение уравнения Пуассона при кручении стержня
расчета считаны из внешних файлов с помощью функции READPRN (рис. П15.1).
Вместо крутящего момента задаемся относительным углом поворота 0 = 1 град.
Ввод координат узлов Y и Z в мм z:=READPRl
Матрица индексов МШ := READPRN(“Miu")
^исло узлов NU:=ma<MIU) NU = 25
Число элементов NE:= rows(MIU) NE=32
Граничные условия (узлы на контуре, где Ф=0)
g := READPRNC'gran") Ng := rows(g) Ng = 13
10
е:=1— G?
180
Перевод мм в м
у:= READPRNC'Y")
60
50
z
у 30
••• 20
10
°-10 0 10 20 30 40 50
Г . '-'i
?
у := у-0.001
z := z 0.001
Для прямоугольного сечения
размером 40x80 мм
рассматриваем половину
•Л.;'::?-?$ х<-':* S? < у
Press Fl for help.
MM
дито
•f
MMMMMMMMMM^MMMMiMMM^MM^MMi^ji^Mu
:
w
Рис. П15.1. Исходные данные для расчета
Разбиение сечения на треугольные элементы и формирование матрицы индексов
полностью аналогично примеру 14. Координаты узлов (вершин треугольных эле-
ментов) показаны на рис. П15.1. Данный пример решаем без учета размерностей.
Для решения методом конечных элементов исходное уравнение Пуассона (П15.1)
сводится к системе линейных алгебраических уравнений:
Р = К Ф.
(П15.3)
Здесь:
О Р — вектор правых частей уравнения Пуассона;
О К — матрица жесткости;
О Ф — неизвестный пока вектор узловых значений функции напряжений ср.
В отличие от плоской задачи теории упругости, где в каждом узле было два
неизвестных перемещения, при решении уравнения Пуассона в каждом узле
одно неизвестное значение функции напряжений. Соответственно, матрица
индексов в предыдущей задаче содержала 6 столбцов, а в нашем примере — толь-
ко 3 столбца.
Матрицу жесткости треугольного элемента определяем по формуле
Klj =+W
(П15.4)
Здесь:
О Fe — площадь элемента, а и b — функции координат узлов у и z;
О a, = Zj - zk и Z? = -(уj -ук}, i,j,k = 1,2,3 — локальные номера узлов треуголь-
ного элемента.
Пример 15. Решение уравнения Пуассона при кручении стержня 381
Процесс формирования матрицы жесткости треугольного элемента иллюстриру-
ет рис. П15.2.
Рис. П15.2. Формирование матрицы жесткости треугольного элемента
Матрица жесткости всего сечения получается, как и в примерах 12-14, путем сум-
мирования коэффициентов жесткости элементов по матрице индексов.
Граничные условия, в отличие от примера 14, введены простейшим способом —
используя принцип Пиано. Чтобы приравнять нулю значение функции напряже-
ний на границе контура сечения стержня в узле], надо в матрице жесткости систе-
мы соответствующий коэффициент жесткости, стоящий на главной диагонали
матрицы Кц, умножить на большое число (в нашем примере — на 106).
Вектор правых частей уравнения Пуассона Р формируется по матрице индексов,
как сумма правых частей уравнения Пуассона для отдельных элементов, которые
одинаковы для всех элементов (рис. П15.3):
Найдя матрицу жесткости К и вектор правых частей Р, путем обращения мат-
рицы жесткости находим вектор узловых значений функции напряжений Ф
(рис. П15.4).
382 Пример 15. Решение уравнения Пуассона при кручении стержня
j
:•
Матрица жесткости системы
k:-l..NE i:=l.. NU j:=l.. NU К- • := 0 обнуление матрицы К
J
Суммирование коэффициентов жесткости по матрице индексов
i:=1..3 j:=1..3 K(MIUk 4>MUk j K(MIUk . j + КВД)Ц
Учет граничных
il > 1.. Ng
ввод вектора
правых частей
1>1..NU Р.
условий (принцип Пиано) на контуре Ф=0
%
К/ V :=К( ч ю6
(gilj >Sil (Sil)
k := 1.. NE РЕ-
3
о
Смените условие задачи: действие точечного заряда,
включите следующие 4 выражения
Р.:=ОТ
' > 1001 ‘ ' f:= 22 .. 24T C
о ---------- j<
.10й
|<1 • J
Press Fl for help.
bAAAAAiAAAAAAA
?•• • I
-V
r
Рис. П15.3. Формирование матрицы жесткости сечения К и вектора правых частей уравнения Р
Определение узловых значений функции напряжений Ф •= к- 1 р
То же для элемента к
i:=1..3 ФЕ1Л>Ф(М1и^
Касательные напряжения средние по площади элемента
(ь(к)ФЕ^)
Определение касательных напряжений в узлах
к := 1.. NE j := 1.. 3 i := 1.. NU т™ := 0 := О
>i i
Счетчик элементов, сходящихся в узлах gei := О
Касательные напряжения в узлах
Рис. П15.4. Определение узловых значений функции напряжений Ф и расчет касательных напряжений т
в узлах сечения стержня
Пример 15. Решение уравнения Пуассона при кручении стержня 383
Используя зависимость (П15.2), определяем касательные напряжения средние по
площади элементов. Касательные напряжения в узлах сечения стержня определя-
ем как среднее арифметическое касательных напряжений во всех элементах, схо-
дящихся в рассматриваемом узле (см. рис. П15.4). Относительные касательные
т
напряжения в узлах определяются как отношение у =--.
т
max
Крутящий момент в сечении стержня, вызванный относительным углом поворота
0 = 1 град, определяется как удвоенный объем, охватываемый поверхностью функ-
ции напряжений Ф:
Mk = Jq>dF.
F
Расчетная формула для Мк приведена на рис. П15.5. Там же, исходя из обычных
формул сопротивления материалов, определены геометрические характеристи-
ки сечения: момент инерции при кручении Jk и момент сопротивления при кру-
чении Wk.
.-«•АЧ. . » i '•.•.-да .у.-. а у-%.-y,fry.y.<w Ау^ууд
NE
Крутящий момент
к = 1
Если рассматриваем
половину сечения, Mk=2*Mk
Mk:=2-Mk Mk= 1458.5
Момент инерции j^;=
Jk = 104 см
Момент сопротивления
Wk:=
Мк
Wk = 38.6 CM3
: • •• •;. • « ;. Ki-
.Press Fl for help, •
Tmax
»••z.-.-
I
<
АААААЛАЛЛААААААААЛААЛАААламЛаАЛЛЛаХМ
Рис. П15.5. Определение крутящего момента и геометрических характеристик сечения стержня
Для графического отображения функции напряжений Ф1 вектор узловых значе-
ний Ф преобразован в матрицу, для которой построены линии уровня, столбчатый
график типа гистограммы (рис. П15.6) и обычный трехмерный график поверхно-
сти (рис. П 15.7). На всех графиках показана только рассматриваемая половина се-
чения стержня.
Для сглаживания функции напряжений Ф1 применена двухмерная интерполяция,
(см. рис. П15.7). Полученная в результате интерполяции функция ФФ(х, у) может
быть продифференцирована для определения касательных напряжений. Для по-
строения графика поверхности функции напряжений и касательных напряжений
использована функция CreateMech, преобразующая функцию в массив ее значений
(рис. П15.8).
384 Пример 15. Решение уравнения Пуассона при кручении стержня
Построение поверхности функции напряжений
i:- 1..5 j:- 1-5 r0 0 0 222282 0 322912 0 366082 0 378078
♦»i,j > * Ф1 = 0 286962 424031 484086 500895 у :
0 222282 322912 366082 378078
<0 0 0 0 0 ;
Рис. П15.6. Графическое отображение функции напряжений
Рис. П15.7. Использование двухмерной интерполяции для сглаживания функции напряжений
Пример 15. Решение уравнения Пуассона при кручении стержня
V
385
( ^ПРИМЕЧАНИЕ
Двухмерная интерполяция применима только к квадратным матрицам. Неквадратную
матрицу можно преобразовать в квадратную путем предварительного обнуления квад-
ратной матрицы больших размеров, как показано в главе 7.
На рисунке П15.7 поверхность функции напряжений представлена в двух проек-
циях, для чего в месте ввода графика дважды задано одно и то же имя. В окне
форматирования графика на вкладке General (Общие) первый график (Plot 1) отме-
чен как график поверхности (Surface Plot), второй — как контурный график (Contour
Plot). Каждый график форматируется отдельно.
Чтобы лучше был виден контурный график, график поверхности сделан полупроз-
рачным. Для установки степени прозрачности в окне форматирования графика на
вкладке Advanced (Дополнительно) выберите необходимую степень прозрачности
(Transparency). В нашем примере прозрачность составляет 70 %.
Результаты расчета представлены на рис. П 15.8 в виде контурного графика. Ли-
нии равного уровня касательных напряжений соответствуют теоретическому рас-
пределению напряжений при кручении в стержне прямоугольного сечения.
Рис. П15.8. График линий уровня касательных напряжений в сечении стержня
На рисунке П15.9 показан поток касательных напряжений т для половины прямо-
угольного сечения. Для всего сечения поток т замкнутый.
13 Зак. 882
386 Пример 15. Решение уравнения Пуассона при кручении стержня
Рис. П15.9. Поток касательных напряжений для половины прямоугольного сечения
Кроме задачи кручения стержня произвольного сечения, метод конечных элемен-
тов применяется для решения уравнения Пуассона в других областях.
Рассмотренная программа может использоваться и при иных значениях правых
частей уравнения Пуассона и других граничных условиях.
В нашем примере значения вектора правых частей были одинаковы для всех узло-
вых точек. Измените условие задачи, положив значения Р = 0 для всех узлов, кро-
ме одного (любого) или нескольких. Сечение закройте, положив на всех сторонах
сечения Ф = 0.
Необходимые для этого выражения уже введены в документ (см. рис. П15.3 вни-
зу), но возможность их вычисления отключена. Чтобы включить их в вычисления,
выделите одновременно все 4 выражения, щелкните правой кнопкой мыши и в
открывшемся контекстном меню выберите команду Enable Evaluation (Разрешить
вычисление). Будет выполнен расчет для новых условий задачи.
Решение плоской
упругопластической
задачи методом
конечных элементов
Данный пример иллюстрирует возможности программирования в Mathcad любой
сколь угодно сложной задачи. В качестве примера для расчета взято кольцо, сжимае-
мое двумя силами, которое в примере 14 было рассчитано при упругой деформации.
Исходные данные для расчета были подготовлены и записаны во внешние файлы,
откуда считаны с помощью функции READPRN (рис. П16.1).
Рис. П16.1. Ввод исходных данных для расчета
В примере 14 для ввода данных и их корректировки программа Matr-indl.mcd была
включена в основной документ с помощью ссылки. В этом примере для корректи-
ровки данных используется гиперссылка.
Гиперссылка позволяет открыть файл, с которым создана связь, в той оболочке,
в которой он создан. Рассмотрим процедуру создания гиперссылки.
1. Выделите слово, с которым будет связан интересуюШПй вас файл, причем же-
лательно черным цветом. Тогда после установлений связи выделенное слово
окажется выделенным жирным шрифтом.
388 Пример 16. Решение плоской упругопластической задачи
2. В главном меню Mathcad выберите команду Insert ► Hyperlink (Вставка ► Гиперс-
сылка), в открывшемся окне щелкните на кнопке Browse (Обзор), укажите путь
к файлу, с которым надо связать выделенное слово и щелкните на кнопке ОК.
Двойной щелчок мышью на выделенном слове открывает файл, с которым уста-
новлена связь. Затем этот файл можно отредактировать и сохранить. Для переда-
чи данных в документ Mathcad их внутри связанного файла надо записать в виде
прямоугольной матрицы или вектора в отдельный внешний файл, откуда затем
считать функцией READPRN.
Те же данные были получены автором в процессе решения несколько иной задачи
на языке FORTRAN-90 и записаны во внешний файл. Программа на языке FORTRAN
среди файлов, прилагаемых к книге, отсутствует, и данная запись — всего лишь
иллюстрация возможностей Mathcad.
Рассмотренная задача состоит как бы из двух частей. Вначале решается упругая
задача и определяются нагрузки, перемещения, напряжения и деформации, соот-
ветствующие предельному упругому состоянию системы, то есть появлению теку-
чести в самом нагруженном элементе. На этом этапе каждое выражение использу-
ется только один раз, поэтому в данной части документа нет подпрограмм.
Первая часть документа (упругий расчет) полностью аналогична примеру 14. На
рисунке П16.2 приведена схема кольца под нагрузкой; схема разбивки на треуголь-
ные конечные элементы и положение узлов аналогичны примеру 14.
Рассматриваем 1/4 кольца
11 узлов в ряду i-1 NU Я
Рис. П16.2. Расчетная схема кольца под нагрузкой
На рисунке П16.3 вводятся характеристики материала: модуль Юнга Е, коэффици-
ент Пуассона ц, предел текучести сгт и соответствующая ему упругая деформация ег
Далее вводится вектор сил и граничные условия (равенство нулю перемещения на
осях симметрии). По матрице индексов узлов формируется матрица индексов пе-
ремещений.
Введен код NDS для расчета тонких колец (плоское напряженное состояние NDS = 0)
и толстых колец (плоская деформация NDS = 1).
Пример 16. Решение плоской упругопластической задачи 389
11 6
Характеристики материала Е:= 210 ц,:=0.3 ст- 300-10 ет = —
Е
NDS := 1 плоское NDS := 0 плоское
деформированное напряженное
состояние состояние
Ввод вектора сил k:=1..2-NU Р, := 0 Р~ := -1000
К
Формирование матрицы индексов перемещений
по матрице индексов узлов k:=l.. NE i:=1..3
к,21-1 к,1 к,2-1 к,1
Ввод граничных условий в перемещениях
g2 := READPRN("gu.pm")
Номера заданных перемещений
Заданные перемещения
;<2>
\<з>
g =(1 3 5 7 9 11 13 15 17
19 21 112 114 116
118 120 122
Ag =(0 000000000
00000000
0 0 0 0)
4 Г |
Press Fl for help....
124 126 128 130 132)
Рис. П16.3. Продолжение подготовки исходных данных для расчета
Рисунки П16.4-П 16.6 иллюстрируют процесс формирования матрицы жесткости
системы. Этот расчет практически аналогичен приведенному в примере 14. Под-
программа учета граничных условий показана на рис. П16.7.
Рис. П16.4. Подготовка к расчету матрицы жесткости
390 Пример 16. Решение плоской упругопластической задачи
Рис. П16.5. Матрица внутренней жесткости элемента
Матрица жесткости элемента КЕ, := А, -С(Е,р.)-А, F. t
К К к к
Матрица жесткости системы i> 1..2 NU j := 1..2-NU К. . := О
1..6 j>1..6 k:=l..NE
(MIk|i,MIkJ)K(MIkii,MIkij) + (кЦ j
Press Fl ForhM
Ммммыдмй
. " . v • . • > J'
Page 3 z
Рис. П16.6. Формирование матрицы жесткости
Рис. П16.7. Подпрограмма учета граничных условий
Пример 16. Решение плоской упругопластической задачи 391
Матрица внутренней жесткости элемента для экономии места в последующих под-
программах также оформлена в виде подпрограммы (см. рис. П16.5).
Вторая часть документа — упругопластический расчет — выполняется итерацион-
ным методом, повторяется многократно, состоит из ряда подпрограмм и головной
программы, определяющей порядок расчета.
Основное уравнение метода конечных элементов имеет вид
Р = К Д.
Здесь Р — вектор сил, К — матрица жесткости, Д — неизвестные перемещения
системы.
Существуют два основных подхода к решению упругопластических задач:
О на каждой итерации перестраивается матрица жесткости (метод переменных
параметров упругости);
О на каждой итерации перестраивается вектор сил.
Каждому подходу соответствуют свои методы решения.
Метод переменных параметров упругости
Метод переменных параметров упругости основан на перестроении матрицы жес-
ткости на каждой итерации. Многократно решается упругая задача, но параметры
упругости в каждом элементе на каждой итерации различные.
Физические уравнения деформационной теории пластичности:
1 z 2 &j &k \
ем = Т (°< " ) + - Ж- " v -
п о z 2
Y; j = — + 2Хт- •
Здесь:
О i,j, k=x, у, z (по правилу круговой перестановки);
— функция пластичности;
О Е — модуль Юнга;
О Ес = — — секущий модуль упругости;
о
О ё и б — интенсивности деформаций и напряжений.
В методе переменных параметров упругости физические уравнения теории плас-
тичности заменяются физическими уравнениями теории упругости:
392 Пример 16. Решение плоской упругопластической задачи
1
*
Е
(о, - - ц‘о4)
Здесь Е*, р*, G* — переменные параметры упругости.
Рассмотрим, как выполняется метод переменных параметров упругости.
1. При заданной нагрузке Р методом конечных элементов определяются упругие
перемещения А, деформации и напряжения е и о , их интенсивности гид.
2. Для элементов, в которых появляются пластические деформации е > ет, где
е6 — деформация начала текучести, определяют новые параметры упругости
Е*, ц*, G*, с их учетом пересчитывают матрицу внутренней жесткости эле-
мента С и матрицу жесткости элемента К, а также матрицу жесткости всей сис-
темы по матрице индексов.
3. Вновь решается основное уравнения Р = К • А, определяются новые значения
е, А, о, е, ст второго приближения и вновь уточняются упругие константы Е*,
ц*, G* ит. д. Процесс повторяется до удовлетворения критерию сходимости.
Программа решения
упругопластической задачи
Рассмотрим представленную программу расчета.
Начало программы представляет собой почти копию примера 14 — упругий рас-
чет кольца методом конечных элементов. Заканчивается он определением напря-
жений и деформаций при заданной нагрузке. Здесь же с помощью поправочного
коэффициента определяются нагрузки, перемещения, напряжения и деформации,
соответствующие появлению текучести в кольце.
Расчеты в пластической области, выполняемые многократно, оформлены в виде
головной программы, описывающей порядок расчета и вызывающей в нужный мо-
мент необходимую подпрограмму.
В начале главной программы повторно присваиваются значения переменных. Если
имя переменной уже было использовано в основном документе выше программы,
без повторного присваивания значения эта переменная становится константой.
В процессе разработки программы на всякий случай заново присвойте значения
большинству переменных. Затем методом проб вырезайте по одному присвоен-
ные значения и смотрите, изменятся ли результаты расчета. В противном случае
будет очень трудно отыскать ошибку. Вроде бы все просто и все правильно, а ре-
зультат не тот, который должен быть.
Опорная конструкция программы — цикл while — означает повторение итераций
до удовлетворения критерию сходимости.
Пример 16. Решение плоской упругопластической задачи 393
Определение узловых перемещений системы выполняется с использованием под-
программы МСНВ. Это подпрограмма решения системы линейных алгебраических
уравнений с ленточной матрицей коэффициентов. Чтобы не загромождать доку-
мент, эта подпрограмма спрятана в закрытой зоне. Двойной щелчок мышью на
линии, за которой спрятана подпрограмма, вызывает ее на экран.
Подпрограмма МСН В требует задания ширины ленты JH матрицы коэффициентов.
Ширина ленты определена с помощью программы JH (рис. П16.8), хотя в данном
случае необходимости в составлении программы нет. Ведь значение JH определя-
ется-один раз и входящие в программу выражения можно просто записать в строку
с использованием дискретной переменной.
Рис. П16.8. Ввод уравнения диаграммы деформирования и определение ширины ленты
матрицы жесткости системы
На рис. П16. 8 записано также уравнение диаграммы деформирования. Выбрана
степенная аппроксимация диаграммы деформирования, приведенной в примере 4.
Затем происходит определение напряжений и деформаций, средних по площади
элемента на данной итерации с помощью подпрограммы Z1 (рис. П16.9). Подпрог-
рамма начинается с присваивания узловым перемещениям треугольного элемента
ДЕ значений узловых перемещений системы Д с помощью матрицы индексов. Да-
лее определяются деформации элементов е и напряжения о. На первой итерации
все напряжения считаются упругими. Для всех элементов признак пластичности
kl = 0. Используется упругая матрица внутренней жесткости элемента, содержа-
щая исходные модуль Юнга Е и коэффициент Пуассона р материала кольца (в при-
мере стального).
При последующих итерациях для пластически деформированных элементов (kl = 1)
вызывается подпрограмма СС перестроения матрицы внутренней жесткости элемен-
та, внутри которой вызывается подпрограмма Ер определения переменных парамет-
ров упругости и функция С(Е, р) создания матрицы внутренней жесткости. Матри-
394 Пример 16. Решение плоской упругопластической задачи
ца внутренней жесткости связывает напряжения и деформации в законе Гука:
о = С-е .
Рис. П16.9. Расчет напряжений и деформаций в элементах
Подпрограмма Z1 заканчивается определением напряжений и деформаций вдоль
оси Z.
О При плоском напряженном состоянии NDS = 0:
о = 0
z ।
И/ X
О При плоской деформации NDS = 1:
О2 р(ох 4" (Уу )
Е2 = О
Пример 16. Решение плоской упругопластической задачи 395
Обратите внимание, что передача данных в подпрограммы происходит через пара-
метры имени функции, как принято во всех языках программирования, а вывод
результатов расчета, через составной массив (столбец, строку или прямоугольную
матрицу). Если выводимых параметров мало, можно использовать и столбец, а если
много — лучше строку для экономии места в документе.
В головной программе подпрограмма Z1 вызывается один раз для экономии вре-
мени расчета, а затем найденные значения Z1 присваиваются напряжениям а <— Zl2
и деформациям е <— Zlv
Далее определяются интенсивности напряжений и деформаций с помощью функ-
ций into и inte (рис. П16.10).
Рис. П16.10. Функции расчета интенсивностей напряжений и деформаций
1. По интенсивности напряжений элементам присваивается признак пластично-
сти kl « 0, если б < от и kl = 1, если б > от.
2. Для пластически деформированных элементов пересчитывается матрица жес-
ткости К с помощью подпрограммы Кр, внутри которой пересчитывается матри-
ца внутренней жесткости С (подпрограмма СС), для чего в свою очередь пере-
считываются параметры упругости (подпрограмма Ер). Подпрограммы СС и Ер
представлены на рис. П16.11, подпрограмма Кр — на рис. П16.12.
3. Перед переходом к следующей итерации оценивается критерий завершения
расчета Eps, представляющий собой отношение усредненных перемещений
в предыдущего итерации Д1 и в текущей итерации Д (рис. П16.13, внизу).
Если Eps больше заданной расчетчиком величины, происходит переход к следую-
щей итерации.
С учетом граничных условий уточняются матрица жесткости К и вектор сил Р
с помощью подпрограммы GU (см. рис. П16.7). Полученные в ходе итерации ре-
зультаты записываются в выходные массивы. Каждая итерация создает в каж-
дом выходном массиве один столбец (перемещений, деформаций, напряжений
ит. д.).
396 Пример 16. Решение плоской упругопластической задачи
Рис. П16.11. Расчет переменных параметров упругости
Перестроение матрицы жесткости системы Jt
с учетом пластичности элемента
Kp(si,kl) :=
for k € 1.. NE
continue if kl, = 0
k
sil <— eifc
Cp<-CC(al)i
for i € 1.. 6
Silk.i.MIkj
Рис. П16.12. Перестроение матрицы жесткости системы
В конце головной программы поставлен ограничитель длительности расчета. Опе-
ратор break — выход из программы, если выполняется условие (в нашем случае п > 7).
Данные передаются из программы через последний оператор, поэтому последним
оператором является составной массив, в который включается все, что может пред-
Пример 16. Решение плоской упругопластической задачи 397
ставлять интерес по результатам расчета. Размеры массива и включенные в него
данные можно менять по своему усмотрению.
Здесь спрятана программа МСНВ
Расчет до первой текучести
?
г = 5.19
Д = г Д
вычисление выражений
Критерий завершения
итерационного процесса
= -5190
Включите
и поменяйте ос
г :=------
maxed
maxcn := max
о = Z2~
Рэ := -8000
лл
e := 8-r cr := or
ei:=8ir 01 := oir
ak := 10 ° kl. := 0 A := MCHB(K,P,2 NU,JH)
Z2 := Z1(A ,d,kl) e := Z2
1..2NU k:= 1..NE aj k:=0 slk:=0
Раде 6
For Help, press Fl
....................... z,-,
Рис. П16.13. Расчет параметров состояния системы в момент появления текучести
Обратите внимание на запись комментариев в программе. Для их выделения надо
использовать кавычки. В отмеченном месте ввода появляются две пары кавычек,
между которыми и вводится текст.
Головная программа длинная и узкая, занимает много места в документе, поэтому
правый столбец на рисунке П16.14 в реальности является продолжением левого.
Для экономии места рядом с головной и другими программами можно вводить
следующие за программой выражения. Важно лишь, чтобы эти выражения были
правее или ниже имени программы.
Много места в программе занимает присваивание значений переменным. Их мож-
но убрать из программы и включить туда в виде параметров. Но при этом програм-
ма становится очень «широкой» и занимает еще больше места в документе. Ведь
Mathcad отводит под любое выражение (в том числе и под программу) прямо-
угольную область.
В результате работы головной программы ZZ определяются деформации и напряже-
ния в каждом элементе. При использовании треугольных конечных элементов функ-
ция формы — уравнение плоскости и ее производные по координатам у и z — константы.
Поэтому деформации и напряжения для каждого элемента тоже Являются посто-
янными по площади элемента. Это обстоятельство вынуждает разбивать тело на
достаточно мелкие элементы, чтобы повысить точность расчетов- Такого недостатка
нет У прямоугольных элементов, рассмотренных в примере 17.
398 Пример 16. Решение плоской упругопластической задачи
Рис. П16.14. Головная программа расчета
ZZ^ZZjlO 6 ZZ3:=ZZ3-10 6 перевод напряжений в МПа
ZZ- := ZZn 106 ZZ, > ZZ.-106 перевод деформаций в ЕОД
•“ . • . ч . ..... . Л .......
Определение средних напряжений и деформаций в узлах
cd := ZZ3
k := 1.. NE
ge£ := 0
jl.MIUbj
si := ZZ4
ge-
iPage 8
j:=1..3 i:=l..NU jl:=1..4 сгцд:=0
ge(MIUP|j):= ge(MIUk,j)
Press Fl rot help
Bjl.MIUkJ:=ejl,MIUkij
Напряжения в узлах
az4 =al,i oy.:=Q2,i
. . ..............
Рис. П16.15. Определение напряжений и деформаций в узлах системы
Пример 16. Решение плоской упругопластической задачи 399
Деформации и напряжения в узловых точках тела определяются как средние ариф-
метические величины деформаций или напряжений во всех элементах, сходящих-
ся в узле (рис. П16.15).
Для выполнения этой операции организован счетчик де элементов, сходящихся
в узле, и сумматор деформаций и напряжений, суммирующий значения напряже-
ний о и деформаций е, которым в матрице индексов принадлежит одно и то же
число.
Для удобства наблюдений величины напряжений и деформаций умножены на ко-
эффициент перевода значений в МПа и ЕОД (1 ЕОД = 10‘6 — единица относитель-
ной деформации).
На рисунке П16.16 показаны результаты итерационного процесса в программе ZZ:
изменение критерия сходимости Eps в процессе 7 итераций (слева от графика),
содержание составного массива выходных данных ZZ. (справа от графика), значе-
ния интенсивностей деформаций и напряжений после первой и последней итера-
ций в вертикальном сечении (где приложена сила Р).
Отметим, что напряжения в сечении кольца меняют знак (рис. П16.17). Однако
интенсивности деформаций и напряжений ei и of вычисляются как корень квад-
ратный и поэтому всегда положительны. Опасные точки в сечении, где напряже-
ния ся наибольшие, в крайних волокнах внутри кольца.
Рис. П16.16. Напряжения и деформации в вертикальн0м сечении кольца после первой
и последней итераций
400 Пример 16. Решение плоской упругопластической задачи
Рис. П16.17. Сравнение результатов расчета при упругой и упругопластической деформации
На рисунке Ш6.17 сравнивается распределение напряжений в опасных сечениях
при упругой и упругопластической деформации. Упругие напряжения в кольце
подсчитаны в примере 14. Как видно из этого рисунка, характер распределения
напряжений при переходе от упругой к упругопластической деформации не меня-
ется. В точках, где упругие напряжения превышают предел текучести (вблизи край-
них волокон), упругопластические напряжения срезаны до величины предела те-
кучести.
_____________________ Расчет
7' :Л:ЙЙ^^1:^:*“*“^?^РВИИ1ИИИИ^и^и^^^^—^ИИИИИ|ИвииИ|||||||И
Ji-У ПРИМЕР толстостенной трубы
под давлением
В примерах 14,15,16 при решении задачи методом конечных элементов использовал-
ся треугольный элемент. Это простейший вид конечного элемента. Его функция фор-
мы линейная, представляющая собой уравнение плоскости. Другими словами, иско-
мая поверхность перемещений аппроксимируется набором плоских треугольников.
Следовательно, для получения удовлетворительной аппроксимации необходимо раз-
бивать плоское тело на большое количество сравнительно мелких треугольников.
При использовании четырехугольных элементов функция формы описывается
полиномом, число элементов которого равно числу узлов элемента.
Для повышения точности расчетов в нашем примере использован изопараметри-
ческий элемент с 8 узлами. Кроме 4 угловых точек, взяты еще узлы посередине
сторон прямоугольника. В таком случае количество элементов, на которые разби-
вается тело, может быть небольшим и зависит от конфигурации тела.
Трубу, нагруженную внутренним давлением, можно рассматривать как осесимме-
тричную задачу и для расчета использовать всего один конечный элемент, пред-
ставленный на рис. П17Л.
Труба находится в условиях плоской деформации, то есть осевая деформация ez = 0.
Граничными условиями для такой задачи является равенство нулю осевых пере-
мещений всех узловых точек.
Давление на внутреннюю поверхность трубы заменено эквивалентными узловы-
ми силами.
Исходные данные для расчета (координаты узлов, матрица индексов, граничные
условия и вектор нагрузок) приведены на рис. П17.2. Расчет выполнен в килограм-
мах и миллиметрах. Заданные нагрузки соответствуют давлению внутри трубы
порядка 700 атмосфер.
функции формы прямоугольного элемента с 8 узлами приведены на рис. П17.3.
Они записаны в безразмерных координатах £ вдоль оси Z и Г| вдоль оси R. Переход
от координат и Г) к координатам Z и R осуществляется с помощью якобиана:
rOZ/Э^ dR/d^
dZ/dr\ dR/дх]
402 Пример 17. Расчет толстостенной трубы под давлением
Рис. П17.1. Схема расчета трубы под давлением
4
Е:= 2-10
Один элемент
R:=(90 70 50 90 50 90 70 50)
Z := (0 0 0 10 10 20 20 20)
Т
граничные условия g:= g Ng:= rows(£)
число узлов NU := ma<MIU) NU = 8
число элементов NE := rows(MIU) NE=1
ввод вектора сил P>0 k:=1..2-NU Рк>0
., := 10000
lo
Р, := 10000
о
10 := 20000
£
|1 := 0.3
MIU := (3
i:= 1.. Ng
11 13
Л&:=0
. U .. : ’r
'W
.................
>
•
У .
Раде 2
—и
Press Fl For help. .
АММММАММММММ^^
Рис. П17.2. Исходные данные для расчета трубы под давлением
Рис. П17.3. Функции формы
Пример 17. Расчет толстостенной трубы под давлением 40;
По углам четырехуголь: ника координаты £ и rj принимают значения +1 и -1. Дл;
последующего численнсюго интегрирования выбраны 9 точек внутри элемента, пока
занныенарис. П17.1. Значения координат £> и Т| этих точек приведены на рис. П17.3
Там же представлены в»есовые коэффициенты, используемые при численном ин
тегрировании.
Квадратичный четырехугольный элемент соде ржит 8 узлов (по 3 на каждой сторо
не). Его интерполяционный полином является квадратичной функцией вдоль ли
ний £, = const и т| = consrt и записывается в виде
ср = + сх2£ + ОС3Т| + ОС4^Т] + ОС5£2 + СС6Г]2 + ОС7^2Г| + ОС8^Т|2 .
Эти функции для двухмерных элементов равны нулю во всех узлах, за исключени
ем узла, номер которого совпадает с номером соответствующей функции формы
Кроме того, они принимают нулевые значения вдоль всех границ элемента, кото
рые не содержат указанного узла. Например, функция формы N: для квадратично
го элемента обращается в нуль во всех узлах, за исключением первого узла. Кром<
того, она принимает нулевые значения вдоль сторон четырехугольника £ = 1 i
ц = 1.
Вычисление производных от функций формы по безразмерным координатам £ и т
приведено на рис. П17.4=. Оно выполнено программированием, так как встроенньй
оператор дифференцирования Mathcad вычисляет производную только от одной
выражения, но не от массива функций.
Рис. П17.4. Производные от функций формы по безразмерным координатам и в
После ввода функций ф-ормы и их производных начинается традиционный расчег
методом конечных элементов. На рисунке ПГ7.5 показано формирование матри
цы индексов перемещений по заданной в исходных данных (см. рис. П17.2) мат
рице индексов узлов и мгатрице внутренней жесткости для осесимметричной зада
чи. Модуль Юнга Е и к оэффициент Пуассона ц для стали заданы на рис. П17.2
Матрица жесткости эле: мента вычисляется по формуле:
Ке = -C-A-dV
V
Здесь А = DT (N) — матрица производных от функций формы, D — матричньп
дифференциальный оператор, означающий присвоение в заданном порядке one
рации дифФеРенЦирова1НИя каждой из функций формы, выполняемое по прави
лам перемЦ°жения матриц.
404 Пример 17. Расчет толстостенной трубы под давлением
Рис. П17.5. Формирование матрицы индексов перемещений
Интегрирование выполняется численно по квадратурным формулам Гаусса путем
суммирования выражений по 9 точкам с учетом весовых коэффициентов w, при-
веденных на рис. П17.3. При этом вместо интеграла вычисляется приближенно
равная ему сумма:
П п 1
ке = Е £ 2nR&, T]j) • Ат • С • А • det [ J] • .
i=\
Вычисление матрицы жесткости элемента организовано в виде двух подпрограмм-
функций и показано на рис. П17.6.
Матрица А производных от функций формы имеет размерность 4x16. Каждый ряд
этой матрицы формируется отдельно в подпрограмме А(к, г|), а затем они объе-
диняются с помощью функции stack в выражении АА.
В подпрограмме А вначале координаты узлов Z и R объединяются для удобства
вычислений в один массив. Затем вычисляется якобиан Эйс его помощью произ-
водные от функций формы по координатам Z и R. Далее вызывается функция АА и
формируется массив А.
В конце подпрограммы происходит перенумерация элементов массива А, чтобы
удовлетворить условию: горизонтальные перемещения — нечетные, вертикаль-
ные — четные.
Составной массив вывода результатов содержит нужные для дальнейших расчетов
матрицу производных от функций формы А и якобиан J. Остальные элементы при-
ведены для возможного анализа результатов и могут быть удалены из программы.
В подпрограмме КЕ формируется матрица жесткости элемента по приведенной
выше формуле с двойной суммой, суммирующей вклад в результат всех 9 точек
интегрирования. В этой формуле используются радиусы R всех точек интегриро-
вания, которые рассчитываются чуть выше матрицы жесткости.
Пример 17. Расчет толстостенной трубы под давлением 405
В конце подпрограммы определяется площадь элемента F. В этом выражении реализу-
ется проверка правильности вычисления якобиана и производных от функций формы.
for i-e 1..3
for j e 1.. 3
j K(Miuki8)
AA «- A(k,J,n)
for k € 1.. NE
Kf-KK
•Радё2
AA(dNdx,dNdy,aO,ar) := augment(stack(dNdx,aD),stack(aO,dNdy),stack(aD,ai),stack(dNdy,dNdx))
а(М.п) ••=
for i e 1.. 8
i,2
dNd&.n)
JJ<2> <- dNdnfc.f])
(Al J A dNdx dNdy)
Press Fl for he)p.
JJ
dNdx <— a^
....
dNdy<— a
( Nfc.n)
X2>
A <— AA(dNdx,dNdy,aO,ar)
for j € 1.. 16
[2 (j - 8)] otherwise
for i € 1.. 4
(KE FE)
: ...........................................................................................................................................................................................................
Рис. П17.6. Формирование матрицы жесткости элемента
Матрица жесткости системы определяется так же, как и в примерах 11-16 — пу-
тем суммирования коэффициентов жесткости элементов с помощью матрицы ин-
дексов (рис. П17.7).
Рис. П17.7. Формирование матрицы жесткости системы
406 Пример 17. Расчет толстостенной трубы под давлением
На рисунке П17.8 показано определение узловых перемещений системы и элемен-
тов. На этом же рисунке определяются безразмерные координаты точек, в кото-
рых надо определить напряжения и деформации. Количество этих точек можно
выбрать произвольно. В данном примере п — число точек вдоль оси Z, ш — число
точек вдоль оси R. Работая с примером, поменяйте значения пит.
Напряжения и деформации элементов в их локальной нумерации определяются
в подпрограмме ос по тем же формулам, что в примерах 12-16, для безразмерных
координат, введенных на рис. П17.8. Для экономии места на рисунке и в докумен-
те из подпрограммы ое в отдельную подпрограмму о выделена процедура перену-
мерации напряжений по столбцам, позволяющая упростить построение графиков
(рис. П17.9).
Рис. П17.8. Определение узловых перемещений
Рис. П17.9. Определение напряжений и деформаций в выбранных точках
Пример 17. Расчет толстостенной трубы под давлением 407
Результаты расчета напряжений в трубе под давлением приведены на рис. П17.10.
Рис. П17.10. Результаты расчета напряжений в трубе под давлением
Рис. П17.11. Исходные данные для решения задачи с 3 элементами
Для построения графика безразмерные координаты т] точек, в которых определе-
ны напряжения, переведены в размерные R (в миллиметрах).
408 Пример 17. Расчет толстостенной трубы под давлением
Расчеты показывают, что даже использование всего одного элемента позволяет
получить хорошие результаты.
На рисунке П 17.11 приведены исходные данные для решения этой же задачи с тре-
мя элементами. Замените в расчетах исходные данные для одного элемента, при-
веденные на рис. П17.2, данными для 3 элементов.
В расчетной схеме 3 элемента расположены друг над другом, а в матрице о напря-
жения в них находятся в разных столбцах, поэтому перед построением графика
массив а для 3 элементов трансформируется в вектор с помощью функции stack.
Клавиши
ПРИЛОЖЕНИЕ быстрого
доступа
Ниже перечислены некоторые клавиши, позволяющие ускорить ввод данных:
О Ctrl+R — уборка «мусора» с экрана;
О Enter — вставка новой (пустой) строки;
О Delete — удаление пустой строки;
О *,/,+,---умножение, деление, сложение, вычитание;
О л — возведение в степень;
О \ — извлечение квадратного корня;
О | — модуль числа, длина вектора или определитель матрицы, если значение,
указанное в появл яющемся месте ввода (|_|), это число, вектор или матрица;
О [ — нижний индекс у элемента вектора или матрицы; можно использовать ниж-
ний индекс-комментарий, для этого надо ввести имя переменной, нажать кла-
вишу . (точка) и набрать комментарий: Мх или Мглавное;
О Ctrl+G — ввод перечисленных далее греческих букв с помощью их латинских
эквивалентов, которые указаны в скобках (надо ввести латинскую букву, выде-
лить ее и нажать клавиши быстрого доступа): а (а), ₽ (Ь), % (с), 8 (d), е (е), т] (h),
Y (g). (О, И (m), V (n), со (w), ф (f), л (р), у (у), р (г), о (s), т (t), 6 (q), £ (х),; (z);
О Е — основание натурального логарифма;
О Ctrl+ Enter — сложение с переносом (перенос части длинной строки);
О : — локальный оператор присваивания (:=), действует направо и вниз от места
присваивания, отм еняет глобальное присваивание (?);
О-----глобальный оператор присваивания (?), действует по всему документу
(обычно его помещают вблизи графика или таблицы);
О Ctrl+= — жирный знак равенства (=), это логическое равенство, а не оператор
присваивания, используется после ключевого слова Given и в символьных вы-
числениях;
О ; — задание диапазона чисел дискретной (ранжированной) переменной (..),
например х := 1..п илих :=* 1,1.1..п,где 1 — первое значение, 1.1 — второе значе-
410 Приложение А. Клавиши быстрого доступа
ние, п — последнее значение, х — дискретная переменная (разность первого
и второго значений определяет шаг выбираемых значений х);
О CTRL+M — вставка матрицы;
О = — вывод результата численного расчета;
О Ctrl+. — вывод результата символьного расчета (оператор —>);
О { — локальное присваивание в программах (оператор «—);
О ] — вертикальная черта (эквивалент щелчку на кнопке Add Program Line панели
программирования);
О Пробел, «— или —» — выделение уголком курсора выражения (или его части).
Для выделения объекта его надо «перечеркнуть» указателем мыши при нажатой
левой кнопке. Далее выделенный объект можно:
О перетащить при нажатой левой кнопке мыши;
О удалить, нажав клавишу Del;
О переместить в буфер обмена, щелкнув на кнопке Cut (Вырезать) стандартной
панели инструментов;
О скопировать в буфер обмена, щелкнув на кнопке Сору (Копировать) стандартной
панели инструментов;
О вставить из буфера обмена, щелкнув на кнопке Paste (Вставить) стандартной
панели инструментов.
Те же действия можно выполнить, щелкнув на выделенном объекте правой кноп-
кой мыши и выбрав в контекстном меню команду Cut, Сору или Paste соответ-
ственно.
ПРИЛОЖЕНИЕ
Системные
переменные
Mathcad
Ниже перечислены системные (встроенные) переменные Mathcad.
р = 3.14159
Число 71. В численных расчетах Mathcad использует значение л с учетом 15 знача-
щих цифр. В символьных вычислениях л выводится как символ. Для ввода л ис-
пользуется комбинация клавиш Shift+Ctrl+P, или, как для всех греческих букв, вво-
дится буква р, выделяется и затем нажимаются клавиши Ctrl+G.
е = 2.71828
Основание натурального логарифма. В численных расчетах Mathcad использует
значение е с учетом 15 значащих цифр. В символьных вычислениях е выводится
как символ.
оо
Бесконечность. В численных расчетах это предельно большое число (Ю307). В сим-
вольных вычислениях выводится как знак бесконечности Для ввода использу-
ется сочетание клавиш Shift+Ctrl+Z.
% = 0.01
Процент — величина, равная 0.01.
i. 1
Множитель для мнимой части комплексного числа, равный корню квадратному
из минус единицы.
TOL = 10 3
Допустимая погрешность для различных численных алгоритмов (интегрирования,
решения уравнений и т. д.)
CTOL = 10'3
Погрешность для условий ограничения при решении оптимизационных задач
с применением функций Maximize, Minimize, Find и Minerr.
ORIGIN = 0
Начало массива. Определяет индекс первого элемента массива.
PRNCOLWIDTH = 8
412 Приложение Б. Системные переменные Mathcad
Ширина столбца, используемая при записи файлов с помощью функции WRITEPRN.
PRNPRECISION = 4
Число значащих цифр, используемых при записи файлов с помощью функции
WRITEPRN.
FRAME = О
Номер кадра. Используется в качестве счетчика при создании анимации.
CWD
Полное имя открытого файла (с путем к нему).
ПРИЛОЖЕНИЕ
Встроенные
функции
и ключевые
слова Mathcad
Далее перечислены функции и ключевые слова Mathcad с описанием параметров
вызова и возвращаемых значений функций.
acos(z)
Арккосинус.
acosh(z)
Гиперболический арккосинус.
acot(x)
Арккотангенс.
acoth(x)
Гиперболический арккотангенс.
acsc(x)
Арккосеканс.
acsch(x)
Гиперболический арккосеканс.
А1(х)
Функция Эйри первого рода.
angle(x. у)
Угол между положительным направлением оси х и радиус-вектором точки (х, у),
antisymmetric tensor(i. j, k)
Полностью асимметричный тензор размерности 3. Значения i, j и к должны быть
целыми числами от 0 до 2 (или между ORIGIN и ORIGIN + 2, если ORIGIN отлично
от 0). Результат равен либо 0, если любые два аргумента равны, либо 1, если три
аргумента являются четной перестановкой (0,1, 2), либо -1, если три аргумента
являются перестановкой (0, 1, 2), кратной 2 и не кратной 4. При обращении к фун-
кции вместо antisymmetric tensor можно писать е.
APPENDPRN(flle) : = М
Добавляет матрицу М к существующему на диске файлу file.
arg(z)
Аргумент комплексного числа z (в радианах).
414 Приложение В. Встроенные функции и ключевые слова Mathcad
asec(x)
Арксеканс.
asech(x)
Гиперболический арксеканс.
asin(z)
Арксинус.
aslnh(z)
Гиперболический арксинус.
assume
Ключевое слово режима автоматических символьных преобразований, указываю-
щее на отмену присваивания значений переменным.
atan(z)
Арктангенс.
atan2(x. у)
Угол между осью х и отрезком прямой с конечными точками: (0, 0) и (х, у), причем
х и у должны быть действительными значениями.
atanh(z)
Обратный гиперболический тангенс.
augment(А. В)
Объединение двух матриц с одинаковым числом строк (объединение идет «бок о
бок»).
Ье1(п. х)
Мнимая часть функции Бесселя-Кельвина порядка п.
ber(n, х)
Действительная часть функции Бесселя-Кельвина порядка п.
В1(х)
Функция Эйри второго рода.
bspline(vx. vy. u. n)
Вектор коэффициентов В-сплайна степени п = 1, 2, 3 для данных, представленных
векторами vx и vy, и вектора и, имеющего п - 1 элементов.
bulstoer(v, xl. х2. асе, D. k. s)
Матрица решения системы обыкновенных дифференциальных уравнений на ин-
тервале от xl до х2 методом Булирша-Штера (используется метод решения с пе-
ременным шагом), правая часть которых записана в символьном векторе D с задан-
ными в векторе v начальными условиями. Параметры к и s задают максимальное
число промежуточных точек, на которых ищется решение, и минимально допусти-
мый интервал между ними.
Bulstoer(v. xl. х2. n, D)
Матрица решения системы обыкновенных дифференциальных уравнений мето-
дом Булирша-Штера (используется метод решения с постоянным шагом), правая
часть которых (в виде первых производных неизвестных функций) записана в век-
торе D, а начальные условия — в векторе v, и при решении на интервале от xl до х2
для п точек решения, не считая начальной точки.
bvalfit(vl. v2. xl. х2. xf. D. LI. |_2. s)
Начальные условия для краевой задачи, заданной в векторах F, vl и v2 на интерва-
ле от xl до х2, где решение известно в некоторой промежуточной точке xf. L1 —
Приложение В. Встроенные функции и ключевые слова Mathcad 415
вектор, п элементов которого соответствуют величинам п неизвестных функций в
xl. Некоторые из этих величин могут быть константами, определенными из на-
чальных условий. L2, как и L1, — вектор, п элементов которого соответствуют вели-
чинам п неизвестных функций в х2.
ceil(х)
Наименьшее целое, превышающее х.
cfft(A)
Быстрое преобразование Фурье для массива комплексных чисел А (возвращает
массив такого же размера, что и А).
CFFT(A)
То же, что и предыдущее, но в иной норме.
cholesky(M)
Создание треугольной матрицы L для треугольного разложения симметричной мат-
рицы М методом Холесского, то есть М = L • LT
cnorm(х)
Интеграл от -©о до х от функции стандартного нормального распределения.
cols(A)
Число столбцов в матрице А.
combiп(п, к)
Число сочетаний к из п, где п > к.
complex
Ключевое слово режима автоматических символьных преобразований, указываю-
щее на необходимость выполнения операций в комплексной форме.
concat(Sl, S2. ...)
Строковая переменная, полученная объединением строковых переменных или кон-
стант SI, S2,...
condl(М)
Число обусловленности для матрицы М, вычисленное в норме L1.
cond2(M)
Число обусловленности для матрицы М, вычисленное в норме L2.
conde(М)
Число обусловленности для матрицы М, вычисленное в норме евклидова простран-
ства.
condl(М)
Число обусловленности матрицы, основанное на равномерной норме.
corr(vx. vy)
Коэффициент корреляции двух векторов — vx и vy.
cos(z)
Косинус.
cosh(z)
Гиперболический косинус.
cot(z)
Котангенс.
coth(z)
Гиперболический котангенс.
416 Приложение В. Встроенные функции и ключевые слова Mathcad
CreateMesh(F. sO, si, tO. tl.sgrld.tgrid.fmap)
Создание вложенного массива, представляющего координаты х, у, z параметриче-
ски заданной поверхности функции F.
CreateSpace(F.tO, tl, tgrid.fmap)
Создание вложенного массива, представляющего координаты х, у, z параметриче-
ски заданной пространственной кривой, определяемой функцией F.
csc(z)
Косеканс.
csch(z)
Гиперболический косеканс.
csgn(z)
Функция знака комплексного числа (возвращает либо 0, если z = 0, либо 1, если
Re(z) > 0 или Re(z) = 0 и Im(z) > 0, либо -1 в остальных случаях).
csort(A, г)
Перестановка строк матрицы А таким образом, чтобы отсортированным в порядке
возрастания значений элементов оказался n-й столбец.
csplIneCvx, vy)
Вектор коэффициентов (вторых производных) кубического сплайна, построенно-
го по векторам vx и vy.
cvar(X, У)
Коэффициент ковариации X и Y.
cy!2xyz(r, t, z)
Преобразование цилиндрических координат точки в прямоугольные координаты.
dbeta(x, si. s2)
Плотность вероятности для P-распределения (si, s2 > 0 — параметры формы, 0 < х < 1).
db1nom(k. п. р)
Биномиальное распределение, возвращает значение вероятности Р(х = к), где п и к —
целые числа, причем О = к = пиО = р=1,к — случайная величина для биномиаль-
ного распределения.
dcauchy(x. 1. s)
Плотность вероятности для распределения Коши (I — параметр разложения, s > 0 —
параметр масштаба).
dch1sq(x. d)
Плотность вероятности для хи-квадрат-распределения (х, d > 0, где d — число сте-
пеней свободы).
dexp(x, г)
Плотность вероятности для экспоненциального распределения (г, х > 0).
dF(x, dl. d2)
Плотность вероятности для распределения Фишера (dl, d2 > 0 — числа степеней
свободы, х > 0).
dgamma(x. s)
Плотность вероятности для гамма-распределения.
dgeom(k. р)
Вероятность Р(х = к), где к — случайная величина, для геометрического распреде-
ления (к — целое неотрицательное число), 0 < р < 1 — вероятность успеха в отдель-
ном испытании.
Приложение В. Встроенные функции и ключевые слова Mathcad 417
dhypergeom(n. а. b. р)
Гипергеометрическая функция.
diag(v)
Диагональная матрица, элементы главной диагонали которой равны элементам
вектора v.
dlnorm(x. ц, о)
Плотность вероятности для логарифмического нормального распределения, Ц —
натуральный логарифм среднего значения, о > 0 — натуральный логарифм сред-
неквадратичного отклонения (х > 0).
dlog1s(x, 1. s)
Плотность вероятности для логистического распределения (I — параметр разло-
жения, s > 0 — параметр масштаба).
dnb1nom(k. п. р)
Вероятность Р(х = к), где к — случайная величина, для отрицательного биномиаль-
ного распределения (п>0ик>0 — целые числа, 0 < р < 1).
dnorm(x, ц. о)
Плотность вероятности для нормального распределения (р — среднее значение,
о > 0 — среднеквадратичное отклонение).
dpois(k, Л)
Вероятность Р(х = к), где к — случайная величина для распределения Пуассона
(X > 0, к — целое неотрицательное число).
dt(x. d)
Плотность вероятности для распределения Стьюдента (d > 0 — число степеней сво-
боды, х — вещественное число).
dunlfCx. а. Ь)
Плотность вероятности для равномерного распределения (а и b — граничные точ-
ки интервала, причем а < Ь и а = х = Ь).
Dweibull (х, s)
Плотность вероятности для распределения Вейбулла (s > 0 — параметр формы).
elgenvals(M)
Собственные значения матрицы М.
eigenvec(M. z)
Нормированный собственный вектор матрицы М, соответствующий ее собствен-
ному значению z.
eigenvecs(M)
Матрица, столбцами которой являются собственные векторы матрицы М, при этом
порядок расположения собственных векторов соответствует порядку собственных
значений, возвращаемых функцией eigenvals.
erf(x)
Функция ошибок.
erfc(x)
Дополнительная функция ошибок erfc(x) = 1 - erf(x).
errors(S)
Задание сообщения об ошибке S. Используется в программных модулях.
14 Зак 882
418 Приложение В. Встроенные функции и ключевые слова Mathcad
exp(z)
Значение е (основание натурального логарифма) в степени z.
expand
Ключевое слово режима автоматических символьных преобразований, задающее
разложение выражений.
expfitCvx. vy, vg)
Вектор, содержащий коэффициенты (а, Ь и с) аппроксимирующего выражения вида
а • еь х+с, которое наилучшим образом приближается к точкам, координаты ко-
торых хранятся в векторах vx и vy, а вектор vg содержит первое приближение к
решению.
factor
Ключевое слово режима автоматических символьных преобразований, задающее
разложение на множители выражений.
fft(v)
Быстрое преобразование Фурье для данных, представленных в виде веществен-
ных чисел в векторе v с 2П элементами, где п — целое число (возвращает вектор
размера 2nl + 1).
FFT(v)
То же, что и fft(v), но с иной нормировкой.
fhyper(a, b, с. х)
Гипергеометрическая функция Гаусса в точке х с параметрами а, Ь и с.
F1nd(varl. var2, ...)
Значения varl, var2,..., дающие точные решения системы уравнений в блоке, объяв-
ленном директивой Given (число возвращаемых значений равно числу аргумен-
тов), который, помимо решаемой системы уравнений, может содержать условия
ограничения.
float
Ключевое слово режима автоматических символьных преобразований, задающее
вывод результатов в виде чисел с плавающей точкой.
floor(x)
Наибольшее целое число, меньшее действительного х или равное ему.
gcd(v)
Целое число, которое является наибольшим общим делителем для всех элементов
вектора v, содержащего не менее двух элементов типа real или двух целых неотри-
цательных чисел.
genfitCvx, vy. vg, F)
Вектор, содержащий параметры, которые делают функцию от х и п, заданную в век-
торе F и имеющую параметры u0,u1,...un_1, наилучшим образом приближающей дан-
ные в векторах vx и vy (F является функцией, которая возвращает вектор из n + 1
элемента, содержащий F и ее частные производные по всем п параметрам, vx и vy
должны быть одинакового размера, vg — вектор п элементов, содержащий началь-
ные приближения для п параметров).
geninv(A)
Левая матрица, обратная к матрице A, L • А = Е, где Е — единичная матрица размер-
ности nxn, L — прямоугольная матрица размерности nxm, А — прямоугольная мат-
рица размерности mxn.
Приложение В. Встроенные функции и ключевые слова Mathcad 419
genvals(M. N)
Вектор обобщенных собственных значений v матрицы М, соответствующий реше-
нию уравнения M-x = vN-x(MhN — матрицы с действительными элементами).
genvecs(M. N)
Матрица, содержащая нормированные собственные векторы, принадлежащие соб-
ственным значениям вектора v, возвращаемого genvals, причем n-й столбец этой
матрицы является собственным вектором х, удовлетворяющим собственному зна-
чению уравнения М • х = v • N • х, причем матрицы М и N содержат действительные
значения.
GETWAVINFO(flle)
Функция, создающая 4-элементный вектор с параметрами WAV-файла.
Given
Ключевое слово, открывающее блок решения систем уравнений (в котором обыч-
но используются функции Find, Minerr, Maximize и Minimize).
gmean(M)
Среднее геометрическое элементов матрицы М (элементы матрицы М должны иметь
значения, большие нуля).
Нег(п. х)
Полином Эрмита степени п с аргументом х.
heavislde step(x)
Функция Хевисайда, возвращающая 1, если х>0, и 0 — в остальных случаях.
При обращении к функции вместо heaviside step можно писать Ф.
hlstdntervals. data)
Вектор с числом точек из data, попавших в соответствующий интервал с граница-
ми, заданными вектором intervals (служит для построения гистограмм).
h1stogram(n. А)
Новая функция, возвращающая матрицу с двумя столбцами для построения гис-
тограмм.
hlookup(z. А. г)
Просмотр верхней строки матрицы А на предмет поиска z с возвратом значения,
содержащегося в строке г найденного столбца.
hmean(M)
Среднее гармоническое элементов матрицы М, элементы которой должны иметь
значения больше нуля.
10(х)
Модифицированная функция Бесселя первого рода нулевого порядка.
11(х)
Модифицированная функция Бесселя первого рода первого порядка.
ibeta(a. х. у)
Неполная бета-функция для х и у с параметром а.
icfft(А)
Обратное преобразование Фурье, соответствующее cfft (возвращается массив та-
кого же размера, как и аргумент А).
ICFFT(A)
Быстрое обратное преобразование Фурье, соответствующее CFFT.
420 Приложение В. Встроенные функции и ключевые слова Mathcad
Identity(n)
Создается единичная квадратная матрица размерности пхп.
if(cond. х. у)
Условное выражение, которое возвращает выражение х, если условие cond больше
О, и выражение у в остальных случаях.
ifft(v)
Обратное преобразование Фурье, соответствующее fft (вектор v имеет размерность
1 + 2П, где п — целое число, возвращается вектор с размерности 2П).
IFFT(v)
Быстрое обратное преобразование Фурье, соответствующее FFT.
Im(z)
Мнимая часть комплексного числа z.
In(m. х)
Модифицированная функция Бесселя первого рода m-го порядка.
Intercept(vx. vy)
Коэффициент а линейной регрессии у = а + b • х векторов vx и vy.
interp(vs, vx. vy. x)
Интерполированное значение функции в точке х по исходным векторам vx и vy
и коэффициентам (вторым производным) сплайна vs.
IsArray(х)
Возвращает 1 если х — матрица или вектор, иначе возвращает 0.
IsScalar(x)
Возвращает 1 если х — вещественный или комплексный скаляр, иначе возвращает 0.
iwave(v)
Обратное вейвлет-преобразование относительно преобразования wave; v — вектор
размерности 2П.
JO(x)
Функция Бесселя первого рода нулевого порядка.
Л(х)
Функция Бесселя первого рода первого порядка.
Jac(n. а. Ь. х)
Полином Якоби степени п в точке х с параметрами а и Ь.
Jn(m. х)
Функция Бесселя m-ro порядка (0 < m < 100).
js(n. X)
Сферическая функция Бесселя первого рода порядка п (п > -200) в точке х (х > 0).
Kronecker delta(x. у)
Символ Кронекера, равный 1, если х = у, и 0 в противном случае (х и у целые). При
обращении к функции вместо Kronecker delta можно писать 8.
К0(х)
Модифицированная функция Бесселя второго рода нулевого порядка.
Приложение В. Встроенные функции и ключевые слова Mathcad 421
К1(х)
Модифицированная функция Бесселя второго рода первого порядка,
с
Kn(m. х)
Модифицированная функция Бесселя второго рода m-го порядка (0 < т < 100).
ksmoothCvx. vy. b)
n-мерный вектор возвращенных средних vx, вычисленных на основе распределе-
ния Гаусса; vx и vy — п-мерные векторы действительных чисел; параметр b задает
ширину окна сглаживания.
kurt(A)
Коэффициент эксцесса выборки случайных данных х.
Lag(n. х)
Полином Лагерра степени п в точке х.
last(v)
Индекс последнего элемента вектора v.
lcm(v)
Целое положительное число, которое является наименьшим общим кратным для
всех элементов вектора v, имеющего не менее двух элементов типа real или двух
целых неотрицательных чисел.
Leg(n. х)
Полином Лежандра степени п в точке х.
lgsfit(vx. vy. vg)
Вектор, содержащий коэффициенты (а, Ь и с) для аппроксимирующего выраже-
ния а/(1 + Ь - ехр(-с • х)), наилучшим образом приближающегося к точкам, коор-
динаты которых хранятся в векторах vx и vy, а вектор vg содержит первое прибли-
жение к решению.
length(v)
Число элементов в векторе v.
line(vx, vy)
Функция линейной регрессии возвращает коэффициенты а и b для аппроксими-
рующего выражения а + b • х.
11nfit(vx. vy. F)
Вектор коэффициентов линейной аппроксимации методом наименьших квадра-
тов по функциям, хранящимся в символьном векторе F, при котором среднеквад-
ратичная погрешность приближения исходных точек, координаты которых хра-
нятся в векторах vx и vy, оказывается минимальной.
11nterp(vx. vy. х)
Значение в точке х, вычисленное при линейной интерполяции данных с точками,
координаты которых хранятся в векторах vx и vy.
literally
Ключевое слово режима символьной оптимизации.
ln(z)
Натуральный логарифм.
422 Приложение В. Встроенные функции и ключевые слова Mathcad
InfitCvs. vy)
Функция для логарифмической регрессии вида а ? ln(x) + b возвращает вектор с па-
раметрами а и Ь.
LoadColormaptfl 1е)
Массив цветовых подмассивов для файла file (файл рисунка).
loess(vx. vy. span)
Вектор, используемый функцией interp для определения набора многочленов вто-
рой степени, которые наилучшим образом аппроксимируют часть данных из век-
торов vx и vy, причем параметр span определяет размер части аппроксимируемых
данных.
log(z. b)
Логарифм z по основанию Ь.
logfit(vx. vy)
Вектор, содержащий коэффициенты (а, Ь и с) аппроксимирующего выра-
жения а • 1п(х + Ь) + с, наилучшим образом приближающегося к точкам, коорди-
наты которых хранятся в векторах vx и vy, причем начального приближения не
требуется.
lookuptz. А. В)
Ищет величину z в массиве А и возвращает величины, стоящие в тех же позициях
в массиве В, начиная с левого верхнего угла.
IsclveCM. v)
Вектор неизвестных, дающих решение системы линейных алгебраических урав-
нений вида М • х = v.
lspline(vx, vy)
Вектор коэффициентов (вторых производных) кубического сплайна, построенно-
го по векторам vx и vy. Соединение отрезков кривых по прямой линии.
1и(М)
Треугольное разложение матрицы М, соответствующее Р • М = L • U, где L и II — ниж-
няя и верхняя треугольные матрицы соответственно, причем все четыре матрицы
квадратные и одного порядка.
matchtz. А)
Функция поиска z в матрице А, возвращающая индекс позиции z в матрице.
matrixtm, n. f)
Создается матрица, в которой элемент с индексами i и j равен f(i, J), где i = 0,1,...» m
и j = 0,1,..., n, a f(i, j) — некоторая функция.
тах(А)
Наибольший по значению элемент матрицы А.
maxinrizetf. varl. var2. ...)
Значения переменных varl, var2,... с ограничительными условиями, при которых
функция этих переменных f имеет максимум (используется в вычислительном
блоке Given).
meantv)
Среднее значение элементов вектора v.
Приложение В. Встроенные функции и ключевые слова Mathcad 423
median(vx)
Медиана элементов вектора vx.
medfit(vx. vy)
Вектор, содержащий коэффициенты (а и Ь) аппроксимирующего выражения вида
а + Ь • х, наилучшим образом приближающегося к точкам, координаты которых
хранятся в векторах vx и vy (медиан-медианная регрессия).
medsmooth(vy. n)
Сглаживает вектор vy методом скользящих медиан; параметр п задает ширину окна
сглаживания.
mhyper(a. b. х)
Конфлюэнтная гипергеометрическая функция в точке х с параметрами а и Ь.
mln(A)
Наименьший элемент в матрице А.
Minerr(xl. х2. ...)
Значения xl, х2,..., дающие приближенные решения системы уравнений и приво-
дящие к минимальной ошибке (используется в вычислительном блоке Given).
Minimize(f. varl. var2. ...)
Значения переменных varl, var2,... с условиями ограничений, при которых функ-
ция этих переменных f имеет наименьшее значение.
mod(x. у)
Остаток от деления х на у (аргументы должны быть действительными, результат
имеет тот же знак, что и х).
mcde(A)
Наиболее часто встречающиеся значения из вектора или матрицы А.
multigrid(M. п)
Матрица решения уравнения Пуассона, у которого решение равно нулю на границах.
norml(М)
Норма L1 матрицы М.
norm2(M)
Норма L2 матрицы М.
norme(M)
Евклидова норма матрицы М.
normi(М)
Неопределенная норма матрицы М.
num2str(z)
Строковое представление числа z.
odesolve(x. b. [.steps])
Решение дифференциальных уравнений, описанных в блоке Given, при заданных
начальных условиях и конце интервала интегрирования Ь.
optimize
К ночевое слово, включающее режим символьной оптимизации.
424 Приложение В. Встроенные функции и ключевые слова Mathcad
pbeta(x. si. s2)
Значение в точке х функции бета-распределения.
pbinom(k. п. р)
Значение функции распределения биномиального закона для к успехов в серии из
п испытаний.
pcauchy(x. 1. s)
Значение в точке х функции распределения Коши со шкалой параметров I и s.
pchisq(x. d)
Значение в точке х функции хи-квадрат-распределения, в котором d — степень сво-
боды.
permut(n. к)
Число размещений из п элементов по к, причем пик должны быть целыми неотри-
цательными числами.
рехр(х. г)
Значение в точке х функции экспоненциального распределения.
pF(x. dl. d2)
Значение в точке х функции распределения Фишера.
pgamma(x, s)
Значение в точке х функции гамма-распределения.
pgeom(k, р)
Значение в точке х функции геометрического распределения.
phypergeom(m. n. М. N)
Значение функции гипергеометрического распределения
plnorm(x. ц. а)
Значение в точке х функции логарифмического нормального распределения, в кото-
ром ц — логарифм среднего значения, а > 0 — логарифм стандартного отклонения;
plog1s(x. 1. s)
Значение в точке х функции логистического распределения, где I — параметр по-
ложения, s > 0 — параметр масштаба.
pnbinom(k. п. р)
Значение в точке х функции отрицательного биномиального распределения, в ко-
тором п > 0 и 0 < р < 1.
pnorm(x. ц, о)
Значение в точке х функции нормального распределения со средним значением ц
и стандартным отклонением а.
Polyhedron(S)
Функция построения многогранника по спецификации S.
PolyLookup(n)
Функция, возвращающая спецификацию многогранника с номером п.
polyroots(v)
Корни многочлена степени п, коэффициенты которого находятся в векторе V, име-
ющем длину, равную n + 1.
Приложение В. Встроенные функции и ключевые слова Mathcad 425
pol2xy(r. t)
Функция преобразования полярных двухмерных координат в прямоугольные.
ppols(k. X)
Значение для выборки к чисел функции распределения Пуассона; X — параметр.
predicts, m. n)
Вектор, содержащий равноотстоящие предсказанные (в ходе экстраполяции) зна-
чения п точек, вычисленные по m заданным в массиве v данным.
psp!1ne(vx. vy)
Вектор коэффициентов (вторые производные) параболического сплайна, постро-
енного по векторам vx и vy.
pspline(Mxy. Mz)
Вектор вторых производных для данных Мху и Mz, который является параметром
функции interp, используемый для двухмерной интерполяции массива Mz, размер-
ностью пхп; вместо вектора аргументов используется массив аргументов х и у из 2
столбцов по п чисел, то есть аргументом служат координаты диагональных точек
квадратной области.
pt(x. d)
Значение в точке х функции распределения Стьюдента (d — степень свободы, х > О
и d > 0).
punif(x. а. b)
Значение в точке х функции равномерного распределения (Ь и а — границы интер-
вала, а < Ь).
pweibull(х, s)
Значение в точке х функции распределения Вейбулла (s > 0).
pwrfit(vx. vy. vg)
Вектор, содержащий коэффициенты (а, b и с) аппроксимирующего выражения
вида а • хь + с , наилучшим образом приближающегося к точкам, координаты ко-
торых хранятся в векторах vx и vy (вектор vg содержит первое приближение к ре-
шению).
qbeta(p. si. s2)
Квантили бета-распределения с параметрами формы si и s2 (0 < р < 1 и si и s2 > 0).
qbinom(p. n. q)
Квантиль биномиального распределения для вероятности р выборки из п чисел
с вероятностью успеха q.
qcauchy(p. 1. q)
Квантили распределения Коши со шкалой параметров L и s (s > 0 и 0 < р < 1).
qchisq(p, d)
Квантили хи-квадрат-распределения, при котором d > 0 является характеристи-
кой степеней свободы (0 < р < 1).
qexp(p, г)
Квантили экспоненциального распределения (0 < р < 1, г > 0).
qF(p. dl. d2)
Квантили распределения Фишера, в котором dl и d2 — степени свободы (0 < р < 1)/
426 Приложение В. Встроенные функции и ключевые слова Mathcad
qgamma(p. s)
Квантили гамма-распределения, при котором s > 0 — параметр формы (0 < р < 1)/
qgeom(p, q)
Квантили геометрического распределения, где q определяет вероятность успеха
однократного испытания (0 < р < 1 и 0 < q < 1).
qhypergeom(p. n. М. N)
Квантиль гипергеометрического распределения, при котором 0<р<1ип — целое
число.
qlnorm(p, ц. о)
Квантили логарифмического нормального распределения, при котором ц — лога-
рифм среднего числа, о > 0 — логарифм стандартного отклонения (0 < р < 1).
qlogis(p. 1. s)
Квантили логистического распределения (L — параметр положения, s > 0 — пара-
метр масштаба, 0 < р < 1).
qnbinom(p. n. q)
Квантили отрицательного биномиального распределения с размером п и вероят-
ностью ошибки q
qnorm(p. ц. о)
Квантили нормального распределения со средним значением ц и стандартным от-
клонением а (0 < р < 1 и о > 0).
qpois(p. X)
Квантили распределения Пуассона (Х>0и0<р<1).
qr(A)
Разложение матрицы А, А = Q • R, где Q — ортонормированная матрица, a R — верх-
няя треугольная матрица.
qt(p. d)
Квантили распределения Стьюдента, где d степень свободы (d > 0 и 0 < р < 1).
qunif(p. а, Ь)
Квантили равномерного распределения, где Ь и а — конечные значения интервала
(а < b и 0 < р < 1).
qweibull(р. s)
Квантили распределения Вейбулла (s > 0 и 0 < р < 1).
Radau(y. xl. х2. n. D)
Матрица решения жесткого дифференциального уравнения (или системы уравне-
ний), производные которого заданы вектором D и начальные условия вектором у
на интервале х 1, х2, использующие метод RADAU5; параметр п определяет число
столбцов в выходной матрице.
radau(y. xl, х2. асе. D. kmax. s)
То же, что Radau, но для определения решения только в двух точках (в начале и
в конце интервала интегрирования); kmax и s управляют шагом интегрирования
и точностью решения.
rank(A)
Ранг квадратной матрицы А.
Приложение В. Встроенные функции и ключевые слова Mathcad 427
rbeta(m, si, s2)
Вектор m случайных чисел, имеющих бета-распределение (si, s2 > 0 — параметры
формы).
rblnomCr. п, р)
Вектор m случайных чисел, имеющих биномиальное распределение (п >0 — целое
число).
rcauchy(m. 1. s)
Вектор m случайных чисел, имеющих распределение Коши (L, s > 0 — параметры
масштаба).
rchisq(m, d)
Вектор m случайных чисел, имеющих хи-квадрат-распределение (d > 0 число сте-
пеней свободы).
Re(z)
Действительная часть комплексного числа z.
READ_BLUE(fHe)
Массив, соответствующий синему компоненту изображения, содержащегося в фай-
ле file.
READBMP(file)
Массив, соответствующий черно-белому компоненту изображения, содержащего-
ся в файле file.
READ_GREEN(f11e)
Массив, соответствующий зеленому компоненту изображения, содержащегося
в файле file.
READ_HLS(file)
Массив, представляющий данные о цвете объекта в файле file (оттенки цвета, на-
сыщенность и интенсивность).
READ_HLS_HUE(f11e)
Массив, представляющий данные об оттенках цвета для объекта, содержащегося
в файле file.
READ_HLS_LIGHT(file)
Массив, представляющий данные о яркости цвета для объекта, содержащегося
в файле file.
READ_HLS_SAT(f11e)
Массив, представляющий данные о насыщенности цвета для объекта, содержаще-
гося в файле file.
READ_HSV(f11e)
Массив, представляющий значения оттенков цвета, яркости и насыщенности для
объекта, содержащегося в файле file.
READ_HSV_HUE(file)
Массив, представляющий значение оттенка цвета компонента в файле file.
READ_HSV_SAT(file)
Массив, представляющий значение насыщенности цвета компонента в файле file.
428 Приложение В. Встроенные функции и ключевые слова Mathcad
READ_HSV_VALUE(f11e)
Массив, представляющий значения интенсивности цвета для компонента в файле file.
READJMAGE(flle)
Матрица изображения из файла file, представляющая это изображение в черно-
белом цвете с полутонами.
READPRN(file)
Присваивание матрице значений из файла с именем file.
READ_RED(fHe)
Массив, соответствующий красному цвету компонента в файле file.
READRGB(flle)
Массив, состоящий из трех подмассивов, которые представляют красный, зеле-
ный и синий компоненты цветного изображения, находящегося в файле file.
READWAV(flle)
Функция считывания звукового файла и создания его матричного представления.
regress(Mx, vy, n)
Вектор, запрашиваемый функцией interp для вычисления многочлена n-й степени,
который наилучшим образом приближает массив точек с координатами, храня-
щимися в Мх и vy.
relax(Ml. М2. М3. М4. М5. A. U. х)
Квадратная матрица решения уравнения Пуассона для спектрального радиуса х.
reverse(v)
Вектор с обратным (начиная с конца) расположением элементов исходного вектора.
rexp(m. г)
Вектор m случайных чисел, имеющих экспоненциальное распределение (г > 0).
rF(m. dl. d2)
Вектор m случайных чисел, имеющих распределение Фишера (dl, d2 > 0 — число
степеней свободы).
rgamma(m. s)
Вектор m случайных чисел, имеющих гамма-распределение (s > 0 — параметр формы).
rgeom(m. р)
Вектор m случайных чисел, имеющих геометрическое распределение (0 < р < 1).
rhypergeom(m. n. М, N)
Вектор m случайных чисел с гипергеометрическим распределением.
Rkadapt(y. xl. х2. n, D)
Матрица решения дифференциального уравнения (или системы уравнений), про-
изводные которого заданы вектором D и начальные условия вектором у на интер-
вале xl, х2, использующие метод Рунге-Кутта с переменным шагом; параметр п
определяет число столбцов в выходной матрице.
rkadapt(y. xl. х2. асе. n. D. k. s)
То же, что Rkadapt, но для определения решения только в двух точках (в начале и
в конце интервала интегрирования); kmax и s управляют шагом интегрирования,
а асе — точностью решения.
Приложение В. Встроенные функции и ключевые слова Mathcad 429
rkfixedCy, xl. х2. n, D)
Матрица решения дифференциального уравнения (или системы уравнений), про-
изводные которого заданы вектором D и начальные условия вектором у на интер-
вале xl, х2, использующего метод Рунге-Кутта с постоянным шагом; параметр п
определяет число столбцов в выходной матрице.
rlnorm(n. ц. о)
Вектор m случайных чисел, имеющих логарифмическое нормальное распределе-
ние (ц — логарифм среднего значения, ст — логарифм стандартного отклонения).
rlogis(m. 1. s)
Вектор m случайных чисел, имеющих логистическое распределение (I — матема-
тическое ожидание, s > 0 — параметр масштаба).
rnbinom(m. п. р)
Вектор m случайных чисел, имеющих отрицательное биномиальное распределе-
ние (0 < р < 1, п>0 — целое число).
rnd(x)
Генератор случайных чисел с равномерным распределением в интервале [0, х].
rnorm(m. ц. о)
Вектор m случайных чисел с нормальным распределением (ц‘— среднее значение,
о — стандартное отклонение).
root(f(x). х. [а. Ь])
Значение переменной х (в пределах точности TOL), при котором выражение f(x)
равно нулю; необязательный параметр [а, Ь] задает интервал поиска корней урав-
нения.
round(x. п)
При п > 0 возвращает округленное значение х с точностью до п знаков после деся-
тичной точки. При п < 0 возвращает округленное значение х с п цифрами слева от
десятичной точки. При п = 0 возвращает округленное до ближайшего целого зна-
чение х (х — скаляр типа real или целое число).
rows(А)
Число строк матрицы А.
rpois(m. s)
Вектор m случайных чисел, имеющих распределение Пуассона (s > 0).
rref(A)
Ступенчатый вид матрицы А.
rsort(A. п)
Матрица А, отсортированная по строке п (перестановка столбцов матрицы А таким
образом, чтобы отсортированной по возрастанию значений элементов оказалась
n-я строка).
rt(m, d)
Вектор m случайных чисел, имеющих распределение Стьюдента (d > 0).
runif(m. а. b)
Вектор m случайных чисел, имеющих равномерное распределение (Ь и а — грани-
цы интервала, а < Ь).
430 Приложение В. Встроенные функции и ключевые слова Mathcad
rweibulKm, s)
Вектор m случайных чисел, имеющих распределение Вейбулла (s > 0 — параметр
формы).
SaveColormap(f11е. М)
Создает файл (с именем file) цветовой карты для значений матрицы М и возвраща-
ет число строк записанного файла.
sbval(v. xl. х2. D. L. S)
Вычисление начальных условий при решении системы дифференциальных
уравнений с граничными условиями, определенной в символьном векторе D;
вектор v — начальные условия на интервале [xl, х2], L — векторозначная функ-
ция load(xl, v) с вектором v, содержащим п начальных условий в точке xl, и S —
векторозначная функция score(x2, у) с вектором из п элементов, представляю-
щих разности между начальными условиями в точке х2 и значениями искомого
решения в этих точках.
searches. Subs, m)
Стартовая позиция подстроки Subs в строке S при поиске, начиная с позиции т.
Возвращает -1, если подстрока не найдена.
sec(z)
Секанс.
sech(z)
Гиперболический секанс.
series
Ключевое слово режима автоматических символьных преобразований, задающее
разложение в ряд.
sign(x)
Функция знака (возвращает 0, если х = 0; 1, если значение х положительно; либо -
1, если значение х отрицательно).
slgnum(z)
Возвращает 0, если z = 0, и z/|z| — в остальных случаях.
simplify
Ключевое слово режима автоматических символьных преобразований, задающее
упрощение выражения.
sin(z)
Синус.
s1nf1t(vx. vy. vg)
Вектор, содержащий коэффициенты (а, b и с) аппроксимирующего выражения вида
а • sin(х + Ь) + с, наилучшим образом приближающегося к точкам, координаты ко-
торых хранятся в векторах vx и vy (вектор vg содержит первое приближение к ре-
шению).
slnh(z)
Гиперболический синус.
skew(A. В. С. ...)
Возвращает асимметрию из множества значений (А, В, С,...).
Приложение В. Встроенные функции и ключевые слова Mathcad 431
slope(vx, vy)
Значение параметра Ь (угловой коэффициент линии регрессии) линейной регрес-
сии у = а + b • х для данных, заданных векторами vx и vy (устаревшая функция).
sort(v)
Вектор v, отсортированный по убыванию.
sph2xyz(r, t. <р)
Функция преобразования сферических координат точки в прямоугольные.
stack(A, В)
Объединяет две матрицы А и В путем размещения А над В (матрицы А и В должны
иметь одинаковое число столбцов).
stderr(vx. vy)
Стандартная ошибка линейной регрессии для точек, данные о которых содержат-
ся в векторах vx и vy.
stdev(A)
Стандартное отклонение элементов матрицы А.
Stdev(A)
Стандартное отклонение элементов матрицы А в иной нормировке.
Stiffb(y, xl. х2. n, D. J)
Матрица решения жесткого дифференциального уравнения или системы уравне-
ний, производные которого заданы вектором D и начальные условия вектором у на
интервале xl, х2, использующие метод Булирша-Штера; параметр п определяет
число столбцов в выходной матрице, J — якобиан.
stiffb(v. xl. х2. асе. n. D. J. k. s)
То же, что Stiffb, но для определения решения только в двух точках (в начале и
в конце интервала интегрирования); kmax и s управляют шагом интегрирования
и точностью решения.
Stiffr(y. xl. х2. n. D. J)
Матрица решения жесткого дифференциального уравнения или системы уравне-
ний, производные которого заданы вектором D и начальные условия вектором у на
интервале xl, х2, использующие метод Розенброка с постоянным шагом; параметр
п определяет число столбцов в выходной матрице, J — якобиан.
stiffr(v. xl. х2. асе. n. D. J, k. s)
То же, что Stiffr, но для определения решения только в двух точках (в начале и
в конце интервала интегрирования); kmax и s управляют шагом интегрирования
и точностью решения.
str2num(S)
Преобразование строкового представления числа (в любой форме) в реальное
число.
str2vec(S)
Преобразование в реальный вектор строки S с записями чисел в строковом
формате.
strlen(S)
Количество знаков в строке S.
432 Приложение В. Встроенные функции и ключевые слова Mathcad
submatrix(A. ir, jr. 1c. jc)
Блок матрицы А, состоящий из всех элементов, содержащихся в строках от ir до jr
и столбцах от ic до jc.
substr(S. m. n)
Подстрока, полученная из строки S выделением п знаков, начиная с позиции m
в строке S.
supsmooth(vx. vy)
n-мерный вектор, сглаживающий зависимость у от х, представленную точками с ко-
ординатами, хранящимися в векторах vy и vx.
svd(A)
Сингулярное разложение матрицы А размерности nxm: А = U • S • VT, где U и V — ор-
тогональные матрицы размерности mxm и пхп соответственно, S — диагональная
матрица, на диагонали которой расположены сингулярные числа матрицы А.
svds(A)
Вектор, содержащий сингулярные числа матрицы А размерности mxn.
tan(z)
Тангенс.
tanh(z)
Гиперболический тангенс.
Tcheb(n, х)
Полином Чебышева первого рода степени п в точке х.
tr(M)
След (сумма диагональных элементов) квадратной матрицы М.
trunc(x)
Целая часть от действительного числа х.
UchebCn. х)
Полином Чебышева второго рода степени п в точке х.
UnitsOf(x)
Возвращает размерность х, если х — размерная переменная, иначе возвращает 1.
var(A)
Дисперсия элементов матрицы А.
Var(A)
Дисперсия элементов матрицы А в иной норме, чем var.
vec2str(v)
Строковое представление вектора v.
vlookup(z. А. с)
Функция поиска z в первом столбце матрицы с возвратом величины s в строке
row(s) и столбце, заданном параметром с.
wave(v)
Дискретное одномерное волновое преобразование действительных чисел с исполь-
зованием 4-коэффициентного волнового фильтра Даубечи, причем вектор v дол-
жен содержать 2П действительных значений, где п — целое число.
Приложение В. Встроенные функции и ключевые слова Mathcad 43 3
WRITEBMP(file)
Создает файл file формата BMP из оттенков серого.
WRITE_HLS(f11e)
Создает матрицу, в которой представлена цветовая информация о форматах фай-
лов BMP, GIF, JPG или TGA величинах оттенка, освещенности и насыщенности
(HLS).
WRITE_HSV(file)
Создает матрицу, в которой представлена цветовая информация о форматах фай-
лов BMP, GIF, JPG или TGA оттенках, насыщенности (HSV).
WRITEPRN(flle)
Запись матрицы в файл file.
WRITERGB(flle)
Создает цветной файл формата BMP из матрицы, в которой изображение храниться
в формате RGB.
WRITEWAVCflle. s. b)
Запись в формате WAV-файла данных матрицы М := WRITEWAV(file, s, b) с частотой
дискретизации s и разрядностью b.
xyz2cyl(x, у. z)
Новая функция преобразования прямоугольных трехмерных координат точки в ци-
линдрические координаты.
xyz2pol(x, у. z)
Новая функция преобразования прямоугольных двумерных координат точки в по-
лярные координаты.
xyz2sph (х. у. z)
Новая функция преобразования прямоугольных трехмерных координат точки
в сферические координаты.
У0(х)
Функция Бесселя второго рода нулевого порядка (х — действительное и положи-
тельное значение).
Yl(x)
Функция Бесселя второго рода первого порядка (х — действительное и положи-
тельное значение).
Yn(m, х)
Функция Бесселя второго рода m-го порядка (х — действительное и положитель-
ное значение, m — от 0 до 100).
ys(n. х)
Сферическая функция Бесселя второго рода порядка п (п > 200) в точке х 0.
E(z)
Гамма-функция.
ПРИЛОЖЕНИЕ
Сообщения
об ошибках
Приведенная далее информация об ошибках организована по следующей схеме:
текст сообщения об ошибке
Перевод сообщения. Если нужно, вероятная причина ошибки и возможные пути
устранения ошибки.
Сообщения об ошибках
з численных вычислениях
A "Find" or "Minerr" must be preceded by a matching "Given"
Функции Find или Minerr должно предшествовать ключевое слово Gwen. Эта ошиб-
ка выделяет функцию Find или Minerr при их несогласованности с блоком Given.
Каждый вычислительный блок, который заканчивается функцией Find или Minerr,
должен начинаться с ключевого слова Given.
All evaluations resulted in either an error or a complex result
Вычисления приводят к ошибке или к комплексному результату. Mathcad не может
начертить некоторые точки, потому что не существует действительных значений
для их нанесения на график. Это сообщение может появиться, если имеется ошиб-
ка или все значения — комплексные.
Arguments in function definitions must be names
Аргументы в определениях функции должны быть именами. Выделенное опре-
деление функции содержит неправильный перечень аргументов. В списке аргу-
ментов должны быть правильно поименованы переменные, или имена в списке
необходимо отделить запятыми.
All the elements in the vector cannot be the same
Все элементы вектора не могут быть одинаковыми. Если используется встроен-
ная функция, возможно, неправильно указаны ее имя или параметры. Проверьте
правильность ввода встроенной функции, установив курсор на имени функции
и нажав клавишу F1.
Приложение Г. Сообщения об ошибках 435
At least one limit must be infinity
По крайней мере один предел должен быть бесконечным. Если для интегрирования
выбран алгоритм бесконечного предела, то минимум один из пределов интеграла
должен быть бесконечным. Символ бесконечности вводится нажатием сочетания
клавиш Ctrl+Shift+Z. Для изменения алгоритма, использующего бесконечный предел,
или для вычисления какого-либо другого интеграла, щелкните на интеграле правой
кнопкой мыши и выберите другой алгоритм с помощью одной из команд контекстно-
го меню.
Can only evaluate an nth order derivative when n=0,1..5
Можно вычислить п-й порядок производной, только когда п=0, 1,2, ....,5. Порядок
производной должен быть целым числом от 0 до 5. Если нужно посчитать производ-
ную более высокого порядка, сделайте это путем символьного дифференцирования.
Can only plot positive values when log axes are used
Только положительные величины могут быть на графике, если используются лога-
рифмические координаты. Двухмерный график в декартовых или полярных коор-
динатах строится в логарифмических координатах, в которых не может быть вели-
чин отрицательных или равных нулю.
Can't converge to a solution. Encountered too many integrator steps
Невозможно найти решение. Сделано слишком много шагов интегрирования. Алго-
ритм решения дифференциального уравнения не позволяет найти решение этого
уравнения. Попробуйте изменить начальные или граничные условия. Возможно,
решения просто не существует.
Can't converge to a solution. The integrand may have a singularity or the integral may not
be finite
Невозможно найти решение. Подынтегральное выражение может иметь точку син-
гулярности или интеграл может быть бесконечным. Вычисление интегралов, про-
изводных, функций root, Find, Minerr осуществляется итерационными методами. Вы
увидите это"сообщение, если после большого числа итераций не получен ответ с
требуемой точностью. Попробуйте изменить значение системной переменной TOL.
При работе с функциями root, Find, Minerr попробуйте различные значения началь-
ных приближений.
Can't define the same variable more than once in the same expression
Нельзя определять ту же самую переменную более одного раза в одном и том же
выражении. Вы пытаетесь вычислить одну и ту же переменную дважды в одном
выражении. Например, если вы создаете вектор с именем а и используете это же
имя справа от оператора присваивания, то получите это сообщение.
Can't determine what units the result of this operation should have
Невозможно определить, в каких единицах должен быть представлен результат
операции. Вы возвели выражение, содержащее единицы измерения, в степень, яв-
ляющуюся переменной или вектором. В итоге невозможно определить размерность
результата. Если выражение имеет размерность, то его можно возводить только
в действительную фиксированную степень.
Can’t evaluate this expression. It may have resulted in an overflow or an infinite loop
Невозможно вычислить это выражение, что может быть результатом переполне-
ния или бесконечного числа циклов. Это выражение может содержать слишком мно-
436 Приложение Г. Сообщения об ошибках
го вложенных функций или функция может быть константой в бесконечных цик-
лах. Проверьте несколько итераций цикла.
Can't evaluate this expression because it's either too complicated or It’s defined In terms
of Itself
Невозможно вычислить это выражение, потому что оно слишком сложное или оп-
ределяет само себя. Эта ошибка возникает, если функция определена в терминах
самой себя, что ведет к рекурсии, когда условие окончания процесса не опреде-
лено. Например, запись f(x) := f(x) + 5 ведет к переполнению стека. Необходимо
изменить имя функции. Как правило, имена функций слева и справа от операто-
ра присваивания должны быть разными, если, конечно, это не рекурсивная функ-
ция.
Can't evaluate this function when Its argument Is zero
Невозможно вычислить эту функцию, если ее аргумент равен нулю. Функция не
определена, если аргумент равен нулю. Такое сообщение появляется при вычис-
лении логарифма от нуля.
Can't divide by zero
Деление на нуль невозможно. Где-либо в программе или внутри численного метода
возникло деление на ноль. Найдите место деления на ноль и устраните его. Попро-
буйте поменять параметры численного метода, константы точности или сам чис-
ленный алгоритм.
Can’t find a solution. Encountered too many Iterations
Невозможно найти решение. Слишком много итераций. Это сообщение появляется
при использовании функции polyroot, если степень полинома слишком велика.
Попробуйте найти корни полинома символьным методом.
Can't find a solution to this system of equations
Невозможно найти решение системы уравнений. Попробуйте изменить начальные
приближения. Что делать, если функция Find не может найти решение, описано
в главе 3.
Can't find the data file you’re trying to use
Невозможно найти файл, который вы пытаетесь использовать. Удостоверьтесь,
что такой файл существует в указанном месте.
Can't have anything with units or dimensions here
Здесь не должно быть единиц измерений или размерностей. В выражении исполь-
зуются единицы измерений где-либо, где они не разрешены. Единицы измерений
не разрешены:
в аргументах большинства функций;
в экспонентах;
в верхних и нижних индексах.
Для того чтобы использовать выражения с единицами измерений, вначале переве-
дите это выражение в форму ипйзОДвыражение).
Can't have more than one array In a contour plot
He может быть более одного массива в контурном графике. Вы вводите более од-
ного массива в место ввода контурного графика или графика поверхности. Разре-
Приложение Г. Сообщения об ошибках 437
шается иметь только один массив в данном месте ввода, так как на контурном гра-
фике может быть изображена только одна поверхность.
Can't plot this many points
Невозможно начертить график с таким большим количеством точек. Попытка по-
строения графика с числом точек, превосходящим возможное. Попробуйте сде-
лать число точек меньшим, чем 150 000.
Can't perform this operation on the entire array at once. Try using "vectorize" to perform
it element by element
Невозможно выполнить эту операцию во всем массиве сразу. Попытайтесь исполь-
зовать векторизацию, чтобы преобразовать элемент за элементом. Это сообще-
ние можно увидеть, например, при попытке разделить один вектор на другой. Для
того чтобы применить функцию или оператор к каждому элементу вектора или
матрицы, используйте оператор векторизации.
Can't raise an expression having units to a complex power
Нельзя возводить в комплексную степень выражение, имеющее единицы измерения.
Выражение с единицами измерения можно возводить только в действительную
степень. Для того чтобы возвести в комплексную степень выражение с единицами
измерения, вначале переведите это выражение в форму 11пк$01(выражение) — еди-
ницы измерения будут отменены.
Can’t solve a system having this many equations
Невозможно решить систему, имеющую так много уравнений. Mathcad может ре-
шать системы уравнений, содержащие не больше 200 нелинейных уравнений и не
больше 500 линейных уравнений.
Can't understand something in this data file. If this file came from a spreadsheet, make
sure you saved it as ASCII text only
Невозможно что-либо понять в этом файле данных. Если этот файл взят откуда-
либо из готовых материалов, убедитесь, что он сохранен в формате ASCII. При
считывании файла функцией READPRN файл должен быть записан в формате ASCII.
Все строки в файле должны иметь одинаковое число величин. Строки, не содержа-
щие численных величин игнорируются. Если файл имеет требуемый формат, а вы
видите это сообщение об ошибке, удалите из файла любой текст.
Can't understand the name of this function. If you're trying to multiply, use
Невозможно понять имя этой функции. Если вам нужно умножить, используйте
знак умножения. Такое сообщение появляется, если выражение, не являющееся
функцией, используется как функция, или имя функции записано неверно.
Can't understand'the way this range variable is defined
Невозможно понять определение дискретной (ранжированной) переменной. Невер-
ное определение дискретной переменной. Дискретная переменная может быть опре-
делена двумя способами:
var := nl..п2;
var := nl. п2..пЗ;
Can't understand this number
Невозможно понять это число. Выражение содержит символ или десятичную точ-
ку там, где это непозволительно. Например, вы увидите этой сообщение об ошиб-
ке, если случайно запишите число как .452.
438 Приложение Г. Сообщения об ошибках
Can't use a range variable In a solve block
Невозможно использовать дискретную переменную в вычислительном блоке. Это
сообщение об ошибке появляется, если использовать дискретную переменную в
неподходящем месте, например в вычислительном блоке. Исключите дискретную
переменную из вычислительного блока. Попробуйте создать функцию, включаю-
щую в себя вычислительный блок.
Cannot evaluate this accurately at one or more of the values you specified
Невозможно точно вычислить выражение в одной или нескольких точках. Эта ошиб-
ка указывает, что вы пытаетесь вычислить функцию для аргумента, находящегося
за пределами области определения функции.
Cannot perform this operation on a string
Нельзя выполнить эту операцию над строкой. Нельзя выполнить математические
операции со строковой переменной.
Could not find a solution
Невозможно найти решение. Численный метод расходится (не может найти реше-
ния). Возможно, что решения не существует. Подробнее об этом написано в главе 3.
Could not find a solution because the root finder failed
Невозможно найти решение. Сбой при нахождении корней. При решении дифферен-
циального уравнения с граничными условиями функция sbvaI не может вычислить
недостающие начальные условия. Попробуйте изменить начальные приближения.
Cross product Is defined only for vectors having exactly three elements
Векторное произведение определяется только для векторов, имеющих ровно три
элемента.
Degree of the polynomial must be between 1 and 99
Степень полинома должна быть от 1 до 99. Вектор коэффициентов полинома, ис-
пользуемый функцией polyroot, должен содержать от 2 до 99 элементов.
Encountered a floating point error
В заданной точке функция не может иметь такого значения.
End of File
Конец файла. Вы пытаетесь с помощью функции READ прочитать больше данных,
чем есть в файле.
End points cannot be the same
Конечная и начальная точки не могут быть одинаковыми. При решении дифференци-
альных уравнений конечные точки интервала интегрирования должны быть разными.
Found a number with a magnitude greater than 1СГ307 while trying to evaluate this expression
Найдено число, превышающее 10307. Попробуйте поменять параметры численного
алгоритма или сам алгоритм.
Found a singularity while evaluating this expression. You may be dividing by zero
Обнаружена сингулярность при вычислении этого выражения. Возможно деление
на нуль. Проверьте численные значения величин в выражении.
Illegal context. Press Fl for Help
Недопустимый контекст. Нажмите клавишу F1, чтобы получить помощь. Трудно
диагностируемая ошибка. Часто вызывается синтаксическими ошибками при на-
Приложение Г. Сообщения об ошибках 439
боре выражений. При использовании в правой части выражения переменных с ин-
дексами или дискретных переменных все индексы и все дискретные переменные
обязательно должны появиться и в левой части выражения в качестве индексов
или параметров функции.
Illegal dimensions
Недопустимые размеры массива. Массив не имеет столько строк и столбцов сколь-
ко требуется. Введите имя массива и нажмите клавишу = (равно), чтобы прове-
рить истинные размеры массива.
Invalid expansion point
Невозможно разложить выражение в ряд в окрестности указанной точки. Проверьте
правильность использования ключевого слова series при символьном вычислении
выражения.
Invalid matrix dimension. The number of rows is less than the number of columns
Неправильный размер матрицы. Число строк меньше, чем число столбцов. Функ-
ция svd требует, чтобы число строк было больше или равно числу столбцов.
Live symbolics not available
Символьные вычисления невыполнимы. Это сообщение появляется при использо-
вании символьного знака равенства, если в данной версии Mathcad символьные
вычисления не поддерживаются.
Loess cannot extrapolate
Функция loess не может экстраполировать выражение. Точки для интерполяции
выражения должны лежать между минимальным и максимальным значениями
заданных точек.
Matrix is singular. Cannot compute its inverse
Матрица сингулярная. Невозможно вычислить обратную матрицу. Матрица вы-
рожденная или почти вырожденная. Ее определитель равен нулю или число обус-
ловленности очень велико.
Matrix must be positive definite
Матрица должна быть положительно определенной. Это сообщение появляется,
когда матричный аргумент функции не является положительно определенным.
Матрица является положительно определенной, если ее собственные числа дей-
ствительные и положительные.
Must be 1 complex matrix or 2 real matrices
Должна быть 1 матрица комплексных чисел или 2 матрицы действительных чи-
сел. Это условие необходимо при построении графика векторного поля.
Must be a vector with real elements
Должен быть вектор действительных чисел. Вектор не должен иметь мнимых чи-
сел и должен быть столбцом, а не строкой.
Must be between two lock regions
Курсор должен быть между границами запираемой зоны. При создании закрытой
области с помощью команды Format ► Area ► Lock (Формат ► Зона ► Запереть) необхо-
димо вначале щелкнуть мыщью между границами запираемой зоны.
440 Приложение Г. Сообщения об ошибках
Must be less than the number of data points
Аргумент должен быть меньше, чем число точек в массиве данных. Для дополни-
тельной информации установите курсор на названии встроенной функции и на-
жмите клавишу F1.
Must be a real scalar
Должно быть действительным числом.
Must have more than four rows
Матрица должна иметь больше 4 рядов.
Must have 1 or 2 columns
Матрица должна иметь 1 или 2 столбца. Первый матричный аргумент в функци-
ях кубической сплайн-интерполяции должен иметь 1 столбец для одномерной
сплайн-интерполяции и 2 столбца — для двухмерной.
Must have three vectors or one matrix
Должно быть три вектора или одна матрица. При построении графика поверхности
в место ввода надо вписать или 3 вектора, разделенных запятыми, или одну матрицу.
No bitmaps were found in the worksheet
В документе нет графических объектов. Это сообщение появляется при выборе
команды Format ► Color ► Optimize Palette (Формат ► Цвет ► Оптимизировать палитру).
Not enough memory for this operation
Для этой операции недостаточно памяти.
Only positive values are allowed here
Здесь можно использовать только положительные величины.
ORIGIN should be an Integer whose magnitude is less than 16 million
Значение ORIGIN должно быть целым числом, меньшим 16 млн.
(Rows - 1) must be power of 2
Матрица должна иметь 2п рядов.
Something is wrong with the solve block used to define this function. It may need a guess value
Что-то неверно в блоке решения. Возможно, необходимо начальное приближение.
Такое сообщение появляется при использовании блока решения внутри функции
пользователя. Попробуйте оценить непосредственно сам блок решения вне функ-
ции пользователя. Вы получите другое, более подробное сообщение об ошибке.
String contains the wrong number of characters or the wrong kind of characters
Строка содержит неверное число символов или неверный вид символов. При исполь-
зовании смешанных программ необходим ввод символов в строке аргументов: I —
для целых чисел, В — для бинарных чисел, С — для любого вещественного числа.
The elements in this vector must be in Increasing order
Элементы этого вектора должны быть расположены в порядке возрастания. Та-
кое требование предъявляется к вектору аргументов при работе с массивами дан-
ных, например при интерполяции или построении гистограмм.
The expression to the left of the equal sign cannot be defined
Выражение слева от знака равенства не может быть определено. Возможна син-
таксическая ошибка. Слева от оператора присваивания могут находиться имена
переменных, векторов, матриц и функций (с аргументами в скобках).
Приложение Г. Сообщения об ошибках 441
The format of this vector is invalid. Press Fl for help
Неверный размер вектора. Нажмите клавишу F1 для вызова помощи. Некоторые
функции требуют в качестве аргумента вектор, созданный другой функцией. Этот
вектор имеет специальный формат, создаваемый другой функцией, например
cspline, regress и другими.
The function values on the two bracket end points must be of opposite signs
Величины функции в двух крайних точках интервала должны быть разного знака.
При задании интервала поиска корней функцией root величины функции в двух
крайних точках интервала должны быть разного знака. Выбирайте границы ин-
тервала поиска корней после построения графика функции.
The number of rows must be a power of 2
Число элементов вектора должно быть равно 2п. Ошибка возникает при неверном
числе данных для волнового преобразования функцией wave.
The number of rows or columns do not match
Число строк и столбцов в этих матрицах не согласовано. Подобное сообщение об
ошибке часто появляется при неправильном перемножении матриц. Нажмите кла-
виши Shift+Fl и щелкните мышью на имени функции, чтобы узнать необходимые
размеры матриц.
The unit placeholder can only have real, non-zero scalars put into it
В место ввода размерности при выводе результатов вычислений можно вводить,
кроме размерностей, только действительные, не равные нулю скалярные величины.
The units in this expression do not match
Размерности в этом выражении не согласованы. Несогласованные вычисления с
размерными и безразмерными величинами. При вычислениях без учета размерно-
стей, видимо, осталась незаданной какая-либо величина, обозначенная буквами т,
s, N и т. д., которые по умолчанию встроены в Mathcad как стандартные размерно-
сти длины, времени, силы.
There is an extra comma in this expression
В этом выражении есть лишняя запятая. Проверьте синтаксис. Видимо, запятая
использована вместо точки.
There must be more data points than parameters
В массиве данных должно быть больше точек, чем параметров функции. Такое тре-
бование предъявляют, например, функции regress, genfit.
There must be more than three data points
Эта функция требует вектор, содержащий по крайней мере 4 элемента.
This array must have more than one row or column
Этот массив должен иметь больше, чем одну строку или столбец. Например, при
построении графиков поверхности требуется матрица значений. Некоторые фун-
кции требуют матричных аргументов.
This expression has а "(" without a matching .
Число открывающих и закрывающих скобок в выражении не соответствует друг
другу. Проверьте выражение.
This expression is incomplete. You must fill in the placeholders
Выражение неполное. Вы должны заполнить места ввода.
442 Приложение Г. Сообщения об ошибках
This expression is Incomplete. You must provide an operator
Выражение неполное. Вы должны ввести оператор.
This expression is too complicated. Try defining it in smaller pieces
Выражение слишком сложное. Постарайтесь определить его по частям.
This file could not be opened. Make sure it exists
Этот файл не может быть открыт. Убедитесь, что он существует. При считывании
внешнего файла с помощью функции READPRN, возможно, оказалось, что файл имеет
статус «только для чтения». Если считываемый файл не находится в том же каталоге,
что и файл, используемый Mathcad, необходимо указать полный путь к нему.
This function has too many arguments
Функция имеет слишком много аргументов. Для встроенных функций щелкните мы-
шью на имени функции и нажмите клавишу F1. Проверьтещравильность использова-
ния функции. Для функции пользователя проверьте определение функции.
This function is undefined at one or more of the points you specified
Функция не определена в одной или нескольких точках. Вы используете оператор
или функцию для неприемлемых значений аргумента, например, 1g (0) или -3! (фак-
ториал отрицательного числа не определен).
This image format is not supported
Этот формат изображения не поддерживается Mathcad.
This Integer is too large
Величина слишком большая для работы с ней.
This Integer is too small
Величина слишком мала для работы с ней.
This is invalid. If you are using conditional statements in a Mathcad program, make sure all
cases are accounted for
Это неверно. Если вы используете условие в Mathcad-прогромме, убедитесь, что все
возможные случаи учтены. В условный оператор программирования добавьте еще
одно место ввода и впишите еще одно значение с ключевым словом otherwise (иначе).
This is not a valid interval
Неправильно указан интервал. Начальное значение интервала должно быть мень-
ше конечного.
This is not allowed inside a solve block. For example, definitions are not allowed in a
solve block
Это не разрешено внутри вычислительного блока. Например, определения не могут
находиться внутри вычислительного блока. Внутри вычислительного блока могут
находиться только решаемые уравнения и ограничения к ним.
This list contains too many items
Список содержит слишком много имен. Вы ввели в список слишком много имен,
разделенных запятыми. Чаще всего это случается с графиками.
This matrix must be square. It should have the same number of rows as columns
Матрица должна быть квадратной. Число строк должно быть равно числу столбцов.
This must be an integer. The expression you used appears to have a fractional part
Здесь должно быть целое число. Похоже, что выражение содержшп дробную часть.
Проверьте верхние и нижние индексы. Они должны быть целыми числами.
Приложение Г. Сообщения об ошибках 443
Некоторые функции, такие как identity и submatrix, требуют целочисленных ар-
гументов.
This must be the name of a function or variable
Здесь должно быть имя функции или переменной.
This must be the name of a mapping function
Здесь должно быть имя функции преобразования координат. Такой аргумент тре-
буется функциям CreateMech и CreateSpace.
This operation can only be performed on a function
Эту операцию можно производить только над функцией. Аргумент функции сам
должен быть функцией.
This operation can only be performed on an array. It can’t be performed on a number
Эту операцию можно выполнить только над массивом, но не над числом. Напри-
мер, если вы пишете имя с верхним индексом, то это должен быть вектор.
This operation can only be performed on a number or an array
Эту операцию можно выполнить только над числом или массивом.
This operation can only be performed on a string
Эту операцию можно выполнить только над строкой. Например, строковые фун-
кции требуют хотя бы одного строкового аргумента.
This subscript is too large
Индекс слишком велик. Верхний или нижний индекс превышает предельное значе-
ние 8 млн.
This system of equations has more unknowns than there are equations
Система уравнений имеет больше неизвестных, чем уравнений. Эта сообщение
иногда появляется в вычислительных блоках, имеющих меньше ограничений, чем
уравнений. В таких случаях можно добавить фиктивное ограничение типа 1 = 1
или уменьшить число неизвестных, которые надо определить.
This value must be a matrix
Эта величина должна быть матрицей. Вы пытаетесь выполнить матричную опе-
рацию с использованием скалярной величины.
This value must be a vector. It can be neither a matrix nor a scalar
Эта величина должна быть вектором, но не скаляром и не матрицей. Некоторые
операции совершаются только над векторами, например оператор векторной суммы.
This value must be an Integer greater than 1
Эта величина должна быть целым числом больше единицы.
This value must be an odd Integer
Эта величина должна быть целым нечетным числом.
This value must be greater than or equal to 10.0^-16
Эта величина должна быть больше или равна 10'16.
This value must be less than or equal to 10000
Эта величина должна быть меньше или равна 10000.
This value must be real. Its Imaginary part must be zero
Эта величина должна быть действительным числом. Ее мнимая часть должна
быть равна нулю. Такими величинами должны быть, например, верхние или
444 Приложение Г. Сообщения об ошибках
нижние индексы, блоки решения дифференциальных уравнений, функции mod,
angle.
This variable must be a range variable
Эта переменная должна быть дискретной. В операторах суммирования, в итера-
ционных процессах индексы должны определяться дискретной переменной. Убе-
дитесь в том, что дискретная переменная определена выше выражения с ошибкой.
This variable or function Is not defined above
Эта переменная или функция не определена выше. Проверьте значения всех вели-
чин в выражении с ошибкой. Часто это сообщение появляется, если есть ошибки в
предыдущих выражениях, где определяется нужная величина.
This vector has the wrong number of elements
Этот вектор имеет неверное число элементов. Это сообщение часто появляется
при использовании для преобразования Фурье функции fft, аргумент которой дол-
жен быть вектором, содержащим 2П элементов.
This vector must have fewer than five columns
Этот вектор должен иметь не более 4 столбцов. Первый аргумент функции loess
должен иметь не более 4 столбцов.
This vector should have more elements
Этот вектор должен иметь больше элементов. Аргументы функций интерполяции
должны иметь не менее 2-х элементов, аргументы функций преобразования Фу-
рье — не менее 4-х элементов.
Туре "Т01_=" to see what the Tolerance Is set to
Введите TOL, чтобы увидеть установку допустимой точности. Значение систем-
ной переменной TOL должно быть больше 0 и меньше 1. Переопределите значение
TOL, если нужно.
Underflow
Недопустимо малое число. Иногда при сложных расчетах промежуточный резуль-
тат может быть слишком мал, чтобы представить его.
Value of subscript or superscript Is too big (or too small) for this array
Величина нижнего или верхнего индекса слишком велика или слишком мала для это-
го массива. При вычислении выражения затребован несуществующий элемент мас-
сива. Индекс не может быть меньше, чем значение системной переменной ORIGIN.
You are trying to use an array or a range as a scalar. Press Fl for help
Вы пытаетесь использовать массив или дискретную переменную как скаляр. На-
жмите F1 для вызова помощи.
You must evaluate this operator symbolically. Press [Ctrl] [Period]
Вы должны оценить этот оператор символьно. Нажмите Ctrl+. (точка). При ис-
пользовании некоторых операторов, таких как неопределенный интеграл или вы-
числение предела, численная оценка невозможна. Надо выделить выражение и
выбрать команду Simplify (Упростить) в меню Symbolics (Символьные вычисления).
You Interrupted calculation. То resume, click here and choose Calculate from the Math menu
Вы прервали вычисления. Чтобы завершить процесс, щелкните здесь и выберите
Calculate в меню Math. Если вы редактируете свой документ, во избежание дли-
тельных вычислений выключите автоматический режим вычислений.
Приложение Г. Сообщения об ошибках 445
Сообщения об ошибках
в символьных вычислениях
Argument too Large
Аргумент слишком велик. Обычно это результат вычислений с плавающей точкой
со значением больше, чем 107.
Discarding Large Result
Сброс большого результата. Ответ слишком велик для отображения в математи-
ческой области. Можно поместить ответ в буфер обмена.
Expecting Array or List
Ожидается массив или список. Операторы в упрощаемом выражении требуют век-
торных или матричных операндов.
Expression contains Nonsymbol 1с Operators
Выражение содержит несимволъные операторы. Применена символьная операция
к выражению, содержащему незаполненные места ввода оператора или переменной.
Floats not Handled
С плавающей точкой не поддерживается. Команда Factor была применена к выра-
жению с десятичным числом.
Illegal Function Syntax
Недопустимый синтаксис функции. Символьный процессор не может интерпре-
тировать выражение типа (f)(x).
Invalid Arguments
Недопустимые аргументы. Символьный процессор не может выполнить требуе-
мую операцию для данных аргументов.
Invalid Range
Недопустимый интервал. Для поиска численного решения уравнения символьный
процессор пытается вычислить одну из своих встроенных функций за пределами
области ее определения.
No Answer Found: Stack Limit Reached
Ответа не найдено. Достигнут предел стека. Символьный процессор достиг пре-
дела в своих внутренних выражениях и не может произвести оценку выражения.
No Answer Found
Ответ не найден. Символьный процессор не смог найти решение уравнения.
No Closed Form Found
Не найдено замкнутой формы решения. Символьный процессор не смог найти ин-
теграл, сумму или произведение в символьном виде.
Syntax Error
Синтаксическая ошибка.
Алфавитный указатель
А
абзац, 257
анимационные клипы, 211
анимация, 207, 362
редактирование AVI-файла, 209
создание, 207
сохранение, 208
Б
булевы операторы, 134, 151, 298
В
волновое преобразование, 177
вставка объектов, 252
встроенная переменная
FRAME, 207
ORIGIN, 48, 89
TOL, 71, 80
встроенные функции, 24
доступ к файлам, 224
вывод результатов из программы, 200
выделение объектов, 23
вычислительные комплексы, 249
Г
генераторы случайных чисел, 185
гиперссылка, 259
гистограммы, 185, 343
главное меню Mathcad, 16
график
векторного поля, 282
двухмерный, 30
плоский, 262
полярный, 267
трехмерный, 34, 268
д
двухмерная
интерполяция, 162
регрессия, 166
двухмерное преобразование Фурье 176
дискретная переменная, 27
дифференциально-алгебраические
уравнения, 136
дифференциальные уравнения, 52
в частных производных, 153
доверительный интервал, 187
Е
единицы измерения,
295, 304, 308, 313, 345, 374
графики, 219
масштаб результатов, 216
пользовательские, 215
стандартные, 213
элементов массива, 219
ж
жесткие системы дифференциальных
уравнений, 145
3
закрытые зоны, 247
запрет редактирования, 244
знак равенства символьный, 42, 122
И
имена переменных и функций, 21, 240
интеграл
Дюамеля, 348
Мора, 300, 324, 326
Интернет, 290
Алфавитный указатель 447
К
квантиль вероятности, 182
ключевое слово
Given. 76
комментарии в программе, 199
комплексные числа, 104, 222, 335
коэффициент корреляции, 182
м
масштаб графика, 267
математическая область, 25
матрицы
вывод, 103
норма, 99
нумерация, 89
обусловленность, 99
основные действия, 48
разложение, 100
символьные операции, 50, 119
собственные
векторы, 97
числа, 97
создание, 48, 87
сортировка элементов, 93
умножение, 95
Якоби, 145
матричные
операторы, 94
уравнения, 50
меню SymboLcs, 108
метки на графике, 85
мнимая единица, 71, 105, 223
многогранники, 279
н
наложение объектов, 34, 192, 199
неопределенный интеграл, 42
О
обобщенная регрессия, 168
оператор
if, 193
векторизации, 51, 96, 336
логический, 40
условия, 39
цикла, 194
оптимизация решений, 107
отладка программ, 202
ошибки, исправление, 65
п
панель инструментов, 18
математическая, 19
символьная, 122
стандартная, 18
форматирования, 19
перевод справки, 285
перемещение объектов, 33
подпрограмма-функция, 202
помощь в Mathcad, 65, 120, 283
преобразование
матрицы в функцию, 227
функции в матрицу, 227
Фурье, 173, 331
присвоение значения
глобальное, 40
локальное, 22, 192
программа
МСНВ, 393
создание, 191
Р
рабочее окно Mathcad, 16
регрессия, 58
редактирование выражений, 22
рекурсивные вычисления, 85
решение уравнений
дифференциальных, 132
символьное, 43, 116, 124
численное, 44, 70
С
системы дифференциальных
уравнений, 55, 136, 339
скрытая зона, 347
собственные числа, 357, 367
собственный вектор, 357, 367
совместная работа, 291
составной массив, 104, 201
сплайн-интерполяция, 158
справочные таблицы, 289
ссылка
Hyperlink, 387
Reference, 371
ступенчатая функция, 38, 83, 194, 310
т
текстовая область, 25
У
управление работой циклов, 199
ускорение работы Mathcad, 205
условие в Mathcad, 38
установка шрифта, 26, 255
Ф
формат чисел, 29, 241
форматирование графика, 35, 263, 271
функция
CreateMech, 76, 272, 383
CreateSpace, 277
Find, 46, 76
448 Алфавитный указатель
функция (продолжение)
if, 38, 297
interp, 58, 330
loess, 59
Maximize, 83, 299
Minerr, 46, 80, 297, 311
minerr, 348
Minimize, 83, 299
Odesolve, 52, 133, 339
poly roots, 75
Radau, 145
READPRN, 224, 251, 365, 374, 387
root, 44, 70, 295, 307, 309
WRITEPRN, 224, 374
Бесселя, 236
интерполяции, 57, 156
математической статистики, 63, 179, 341
неактивные, 238
обмена данными, 64
округления чисел, 234
параметров матрицы, 90
поиск значений, 225
пользователя, 26, 74
функция (продолжение)
предсказания, 160
проеобразования координат, 230
распределения вероятности, 182
регрессии, 59, 165, 316
сглаживания, 171, 361
специальные, 238
строковые, 239
тип выражения, 224
условия, 232
X
характеристики выборки данных, 179
ц
центр ресурсов, 286
цепкие операторы, 22
ч
числа мнимые, 44
э
экстремум функции, 45, 81
Е. Макаров
dYo
Инженерные расчеты
в Mathcad
Рекомендуем
книги:
Если вы хотите освоить новый
программный продукт, серия
ТЮРГТИЧК КИ[
<х новы
JAfKIPCJTFXHHKH
в продаже
базовый курс
по цифровой
обработке сигналов
это то, что вам нужно для быстрого
обучения и продуктивной работы!
ЦИФРОВАЯ
©БРМБОТКД СИГНАЛ»!
учебник
по теоретическим
основам
электротехники
Эта книга посвящена практическим аспектам
применения популярного математического пакета
в инженерных и научных расчетах. Автор — опытный
преподаватель, давно и активно использующий
Mathcad в своей работе, — делится с читателями
накопленными хитростями и тонкостями. Краткая
вводная часть поможет познакомиться с основными
возможностями Mathcad и быстро перейти
непосредственно к расчетам. Особое внимание
уделено программированию в Mathcad. Приведены
примеры решения инженерных задач, включая расчеты
по сопротивлению материалов, электротехнике,
математической статистике, динамике и прочности
конструкций
Книга рассчитана как на только начинающих
осваивать Mathcad. т ак и на опытных пользователей,
применяющих этот пакет в своей каждодневной '
работе. Она будет полезна студентам, обучающимся
по различным инженерным специальностям, а также
•^1 janaiyi
в продаже
Решение
математических задач
средствам» €xcel
в продаже
в продаже
ПРАКТИКУМ
о программах
для всего никла
математического
исследования
для быстрой
математической
обработки данных
Начинающий/ Опытный
tegПИТЕР
WWW PITER COM
Интегрированные приложения
Посетите наш web-магазин: http://www.pitef.com