Пакет MathCad: теория и практика. Ч. I

Изложены основные подходы к построению математических моделей и этапы математического моделирования. Подробно рассмотрен

773 52 2MB

Russian Pages 57

Report DMCA / Copyright

DOWNLOAD FILE

Polecaj historie

Пакет MathCad: теория и практика. Ч. I

  • Commentary
  • decrypted from F252174B8E32C265AB42505B843C10B0 source file
Citation preview

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Академия Наук Республики Татарстан Казанский национальный исследовательский технологический университет

А.М. Гумеров, В.А. Холоднов

пакет mathcad Теория и практика Часть I

Академия наук РТ Казань 2013

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

УДК ББК Г Подготовлено на кафедре химической кибернетики Печатается по решению экспертного совета по информатизации

Введение

Р е ц е н з е н т ы: доктор технических наук, академик АН РТ , профессор Ш.М. Чабдаров; доктор технических наук, член-корреспондент АН РТ , профессор Ф.Г. Ахмадеев

Гумеров А.М., Холоднов В.А. Г Пакет Mathcad: теория и практика: учеб. пособие, часть I / Казан ский национальный исследовательский технологический универси тет. — Казань: Изд-во «Фн» АН РТ, 2013. — 112 с. ISBN 978-5-7882-1485-6

Изложены основные подходы к построению математических моделей и этапы математического моделирования. Подробно рассмотрены математические модели структуры потоков в химических аппаратах, тепло- и массообмена, а также кинетики химических реакций. В качестве примера приведено построение моделей химического реактора. Изложен вероятностный подход к математическому моделированию, рассмотрены различные уравнения регрессии, а также методы планирования эксперимента. Большинство теоретических вопросов сопровождается решением конкретных примеров с использованием современных средств. Предназначено для студентов технологических специальностей, может быть полезно аспирантам и преподавателям.

ISBN 978-5-7882-1485-6

© Академия наук РТ, 2013 © Издательство «Фн» АН РТ, 2013 © А.М. Гумеров, В.А. Холоднов, 2013

Развитие научно-технического прогресса в значительной степени связано с появлением кибернетики — науки об управлении и связи в живых организмах и машинах. Одним из прикладных направлений кибернетики является химическая кибернетика, использующая методы кибернетики для исследования химико-технологических процессов. Основной метод исследования — метод математического моделирования, а основное средство исследования — электронная вычислительная машина или компьютер. В качестве средства для успешного исследования моделей и их решения широко применяется интегрированный пакет MathCad. Данный пакет является незаменимым инструментом для оформления работ, содержащих математические формулы и иллюстрируемых графиками. В первой части пособия подробно описывается работа в MathCad, во второй части рассмотрены методы программирования различных вычислительных процессов и приведены примеры решения различных задач. Каждый раздел завершается рассмотрением конкретного примера и решением его с помощью пакета MathCad. Что такое MathCad? Само по себе появление компьютеров не упрощало математические расчеты, а лишь позволяло резко повысить скорость их выполнения и сложность решаемых задач. Однако пользователям компьютера, прежде чем начинать такие расчеты, нужно было изучить сами компьютеры, языки программи3

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

рования, методы вычислений, применять и подстраивать под свои цели программы для решения расчетных задач на языках программирования. С появлением интегрированных математических программных средств для научно-технических расчетов такая практика стала исчезать. К этим средствам можно отнести такие системы, как Eurtrf, PC MatLAB, MathCad, Maple V, Derive и т. д. Широкую известность еще в середине 1980-х годов приобрели интегрированные системы для автоматизации математических расчетов класса MathCad, разработанные фирмой MathSoft Inc. Они остаются единственными математическими системами, в которых описание решения математических задач задается с помощью привычных математических формул и знаков. Такой же вид имеют результаты вычислений. MathCad — это интегрированная математическая система, позволяющая наглядно вводить исходные данные, проводить традиционное математическое описание решения задачи и получать результаты вычислений как в аналитическом, так и в численном виде с использованием при необходимости их графического представления. В MathCad реализована возможность символьной (аналитической) математики. Для этого в систему включено ядро символьной математики от одной из лучших систем компьютерной алгебры Maple V. В MathCad предусмотрен импорт любых графических изображений — от простых и специальных графиков функций до многокрасочных репродукций художественных произведений. Введены средства анимации рисунков и проигрывания видеофайлов со звуковым стереофоническим сопровождением. Эта система имеет встроенные текстовый, формульный и графический редакторы. Они снабжены удобным пользовательским интерфейсом, обладают разнообразными возможностями и ориентированы на нужды большинства пользователей — от школьников до научных сотрудников. 4

Г л а в а I 1. Структура и запуск MathCad

MathCad — это интегрированная среда для решения самых разнообразных математических задач. Она включает следующие функциональные компоненты: – систему меню различных уровней вложенности; – набор панелей инструментов; – текстовый редактор; – редактор формул. 2. Загрузка системы MathCad

Процесс загрузки MathCad стандартный: либо через меню , либо с рабочего стола окна (если на него выведен соответствующий ярлык). После запуска MathCad на некоторое время появляется заставка системы. Она вскоре сменится основным окном системы. Последний представляет собой некий гибрид интерфейса Windows. Внешний вид экрана MathСad является типовым для пакетов, работающих в среде Windows, здесь находится: строка заголовка; строка меню; стандартная панель; панель форматирования; рабочее поле программы; строка состояния; математические панели инструментов. Под интерфейсом пользователя подразумевается совокупность средств графической оболочки MathCad, обеспечивающих легкое управление системой как с клавиатуры, так и мышью. Интерфейс системы создан таким образом, что пользователь, имеющий элемен5

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

тарные навыки работы с Windows-приложениями, может сразу начать работу с MathCad, и внешне очень напоминает интерфейс широко известных текстовых процессоров Word. Начинающему изучать MathCad читателю очень полезно знакомство с интерфейсом этой системы. Хотя он сделан интуитивно понятным и типовым, опыт показывает, что интерфейс лучше изучить заранее, перед непосредственной работой с системой. Основной экран MathСad. Внешний вид экрана MathСad является типовым для пакетов, работающих в среде Windows, здесь находится: строка заголовка; строка меню; стандартная панель; панель форматирования; рабочее поле программы; строка состояния; математические панели инструментов. 3. Интерфейс пользователя

3.1. Общий обзор деталей интерфейса

Рис. 1. Основные элементы интерфейса системы MathCad

В верхней части окна системы MathCad видны шесть характерных элементов интерфейса: строка заголовка — строка с именем системы и текущего документа, а также с кнопками управления окном системы; строка меню — строка, открывающая доступ к пунктам меню с различными командами; панель инструментов — панель с кнопками (значками), обеспечивающими быстрое исполнение наиболее важных команд при работе с системой; панель форматирования — панель с кнопками (значками), обеспечивающими быстрое форматирование текстовых и формульных блоков в документах; панель вывода палитр математических знаков — панель с кнопками (значками), выводящими палитры специальных математических знаков и греческих букв; координатная линейка — линейка с делениями, позволяющая (если это нужно) точно располагать блоки по горизонтали.

На каждой из трех описанных выше панелей имеется характерная вешка перемещения в виде выпуклой вертикальной черты в начале каждой панели. Уцепившись за нее указателем мыши и удерживая левую кнопку, можно перетащить ту или иную панель в любое место окна редактирования или «прилепить» ее к любой стороне окна. Это иллюстрирует рис. 1, на котором панель вывода математических знаков «приклеена» к левой стороне окна редактирования, а панели инструментов и форматирования выведены в центре окна редактирования. Рис. 1 дает хорошее представление обо всех деталях интерфейса системы MathCad и поясняет их назначение. Более подробно эти детали интерфейса описаны ниже.

6

3.2. Курсор ввода и линия раздела страниц В окне редактирования можно увидеть два важных объекта — курсор ввода и вертикальную линию, отделяющую текущую страни7

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

цу от соседней страницы (справа). Положение линии определяется заданными по умолчанию параметрами страницы документа. Курсор ввода (крестик красного цвета) указывает место рабочей области, где в данный момент могут вводиться или создаваться объекты информации: формулы, текст, графики или данные. Положение курсора устанавливается в рабочем поле с помощью мыши или клавишами управления курсора на клавиатуре, что позволяет размещать объекты строго на одной строке или друг под другом. В рабочей области экрана могут находиться математические выражения, таблицы, графики, а также области текстов. В текстовой области помещается информация, с помощью которой можно отображать ход и результаты решения задачи —  комментарии. Если при вводе текста русские буквы отображаются неправильно, то необходимо установить кириллическую гарнитуру с помощью панели Форматирование (Formatting). Любой объект в рабочей области MathCad часто называют областью. Одинарный щелчок мыши позволяет выделить область прямоугольной рамкой. Выделенную область можно масштабировать (с помощью специальных маркеров на рамке) или перемещать (указатель мыши, установленный на рамке, приобретает форму ладони). 3.3. Строка заголовка На рис. 1 показано несколько типичных для Windows-приложений строк. Верхняя строка — строка заголовка. Она отображает название загруженного или вводимого с клавиатуры документа Untitled: N, где N — порядковый номер документа. В левой части строки имеется стандартная кнопка управления окном, а в правой части — три маленькие кнопки для свертывания окна, развертывания его во весь экран и закрытия. Уцепившись указателем мыши за строку заголовка и удерживая левую кнопку мыши, можно с ее помощью перемещать окно (если оно не раскрыто на весь экран) по рабочему столу Windows.

8

3.4. Меню управления окном активного документа Каждое окно активного в данный момент документа также имеет подобное меню, инициализируемое щелчком на значке в левом верхнем углу раскрытого окна. Если окно раскрыто полностью, то указанный значок располагается в самом начале строки меню. Система MathCad может работать с несколькими окнами, то есть одновременно с рядом задач. Окно каждой задачи образуется после загрузки текста ее документа. Операции с окнами будут описаны более подробно позже. 3.5. Строка меню В строке меню системы MathCad представлены следующие позиции: File — работа с файлами, сетью Интернет и электронной почтой; Edit — редактирование документов; View — изменение способов представления документа и скрытие/отображение элементов интерфейса; Insert — вставка объектов и их шаблонов (включая графику); Format — изменение формата объектов; Math — управление процессом вычислений; Graphics — работа с графическим редактором; Symbolics — выбор операций символьного процессора; Window — управление окнами системы; Help — работа со справочной базой данных о системе с центром ресурсов и электронными книгами. Меню MathCad — контекстные. Это значит, что число позиций в них и их назначение зависят от состояния системы. Указанные выше меню характерны для рабочего состояния, когда идет редактирование документа. Для активизации строки меню без применения мыши достаточно нажать клавишу Alt. После этого, нажимая клавиши перемещения курсора, можно перемещать световое выделение по позициям меню. Выбрав нужное меню, для его раскрытия достаточно нажать клавишу Enter. 9

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Еще один быстрый путь открытия нужного меню — нажатие клавиши Alt и одновременно клавиши с буквой, которая подчеркнута в названии нужного меню. Для всех пунктов строки меню это заглавная буква их имени. Важно не путать регистры смены языков и пользоваться только латинскими буквами. В раскрытом меню представлен список доступных и недоступных в данный момент (но возможных в дальнейшем) команд. Доступные команды выведены четким шрифтом, а недоступные — «блеклым» шрифтом, позволяющим все же прочесть их названия. Перемещение в меню и выбор нужной команды производятся аналогично тому, как это описано для строки меню, с той лишь разницей, что при управлении с клавиатуры используются клавиши перемещения курсора по вертикали.

Соответственно файловые операции представлены на панели инструментов первой группой из трех кнопок: New (1 — создать) — создание нового документа с очисткой окна редактирования; Open (2 — открыть) — загрузка ранее созданного документа с выбором его файла из диалогового окна; Save (3 — сохранить) — запись текущего документа с его текущим именем. Кнопка New по существу загружает шаблон пустого документа со стилем normal. На рис. 2 показано окно MathCad с пустым окном редактирования, полученным после щелчка на кнопке New.

4. Панель инструментов

Третью строку окна системы занимает панель инструментов (Toolbox). Она содержит несколько групп кнопок управления, каждая из которых дублирует наиболее важные команды меню. Глядя на эти кнопки (см. рис. 1), можно легко уяснить их функции. Стоит только остановить указатель мыши на любой из них, как появится подсказка с именем этой кнопки. Панель инструментов можно переместить в любое место экрана, сделав «плавающей». Плавающую панель можно закрыть с помощью кнопки с жирным красным крестиком. Таким образом, интерфейс системы можно модифицировать, и пользователь может подстроить его под свой вкус. Рассмотрим назначение кнопок на панели инструментов. 4.1. Кнопки операций с файлами Документы системы MathCad являются файлами, содержащимися на различных носителях информации. Файлы можно создавать, загружать (открывать), записывать и распечатывать на принтере. 10

Рис. 2. Окно системы MathCad после щелчка по кнопке New

Кнопка Open открывает стандартное окно открытия (загрузки) файла. Оно показано на рис. 3. В окне загрузки файла имеется панель с древовидной структурой файловой системы компьютера. С его помощью можно «путешествовать» по файловой системе, добираясь до самых удаленных ее уголков. Выбрав нужный файл, для его загрузки достаточно щелкнуть на кнопке Открыть.

Рис. 3. Окно системы Mathcаd с окном открытия файла

11

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Щелчок на кнопке Save внешне никак не проявляется. Происходит запись открытого документа со всеми внесенными вами изменениями под его текущим именем. 4.2. Печать и контроль документов Эта группа представлена тремя кнопками: Print (4 — печать) — распечатка документа на принтере; Print Preview (5 — просмотр) — предварительный просмотр документа; Check Speling (6 — проверка) — проверка орфографии в документе. Назначение кнопок тоже довольно очевидно. Отметим лишь, что проверка орфографии действует только для англо-язычных документов. Так что для русскоязычных пользователей эта кнопка по существу бесполезна. 4.3. Кнопки операций редактирования Во время подготовки документов их приходится видоизменять и дополнять — редактировать. Следующие три кнопки служат для выполнения операций редактирования документов: Cut (7 — вырезать) — перенос выделенной части документа в буфер обмена (clipboard) с очисткой этой части документа; Copy (8 — копировать) — перенос выделенной части документа в буфер обмена с сохранением выделенной части документа; Paste (9 — вставить) — перенос содержимого буфера обмена в окно редактирования на место, в котором находится курсор ввода. Возможности и назначение буфера обмена хорошо известны пользователям Windows. Он предназначен для временного хранения данных и их переноса из одной части документа в другую либо для организации обмена данными между различными приложениями. Команда Cut вырезает выделенную часть документа (в виде отдельного объекта или группы объектов) и помещает его в буфер. Одновременно эта часть документа из него удаляется. Команда Copy 12

копирует выделенную часть документа в буфер и сохраняет ее в документе. А команда Paste помещает содержимое буфера по месту расположения курсора ввода. Для выполнения операций редактирования предназначены еще две кнопки: Undo (10 — отменить) — отмена предшествующей операции редактирования; Redo (11 — повторить) — повторение ранее отмененной операции. 4.4. Кнопки размещения блоков Здесь уместно отметить, что документы состоят из различных блоков: текстовых, формульных, графических и т. д. Блоки просматриваются системой, интерпретируются и исполняются. Просмотр идет слева направо и сверху вниз. Две операции размещения блоков представлены кнопками следующей группы: Align Across (12 — выровнять по горизонтали) — блоки выравниваются по горизонтали; Align Down (13 — выровнять вниз) — блоки выравниваются по вертикали, располагаясь сверху вниз. Значки на этих кнопках изображают блоки и указанные варианты их размещения. Определенное размещение блоков в некоторых случаях имеет значение. Например, нередко результат операции желательно разместить в одной строке с заданием. Размещение блоков по вертикали характерно для больших документов. 4.5. Кнопки операций с выражениями Формульные блоки часто являются вычисляемыми выражениями или выражениями, входящими в состав заданных пользователем новых функций. Для работы с выражениями служат следующие кнопки: Insert Function (14 — вставить функцию) — вставить функцию из списка, появляющегося в диалоговом окне; Insert Utit (15 — вставить единицу) — вставка размерных единиц; 13

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Calculate (16 — пересчитать) — вычисление выделенного выражения. MathCad имеет множество встроенных функций — от элементарных функций до сложных статистических и специальных математических функций. Синтаксис их записи порой легко забывается, поэтому возможность вставки функции с помощью кнопки Insert Function очень удобна. Другая кнопка, Insert Unit, позволяет вставить нужную размерную величину. Позже назначение этих кнопок мы рассмотрим более подробно. Если документы большие, то при их изменениях не всегда выгодно запускать вычисления с самого начала. Кнопка Calculate позволяет инициировать вычисления только для выделенных блоков, что может сократить время вычислений. Insert Hyperlink (17 — вставка гиперссылки) — обеспечивает создание гиперссылки; Component Wizard (18 — мастер компонентов) — открывает окно мастера, дающего удобный доступ ко всем компонентам системы; Run MathConnex (19 — запуск системы MathConnex) — запуск системы для симулирования блочно заданных устройств. Для оперативного изменения масштаба отображения символов в текущем документе на панели инструментов имеется раскрывающийся список Zoom (масштаб). В поле раскрывающегося списка отображается значение выбранного масштаба, а кнопка с направленной вниз стрелкой раскрывает список доступных значений (см. рис. 1). Масштаб задается в процентах — за 100% принят масштаб по умолчанию. Задав масштаб 200%, можно увеличить изображение вдвое, задав масштаб 50%, изображение можно уменьшить вдвое. 4.6. Кнопки управления ресурсами Заключительная группа из двух кнопок позволяет обратиться к центру ресурсов и встроенной справочной базе данных системы: Resource Center (22 — центр ресурсов) — обеспечивает доступ к центру ресурсов; 14

Help (23 — справка) — обеспечивает доступ к ресурсам справочной базы данных системы. Для закрытия панели инструментов и ее удаления с экрана (если панель плавающая) служит кнопка закрытия в правой верхней части панели. Указанных инструментов обычно вполне достаточно для работы с документами без обращения к командам меню. 5. Панель форматирования

Панель форматирования (см. рис. 1) содержит типовые средства управления шрифтами: набор стилей и размеров шрифта, три кнопки для изменения начертания шрифта (полужирный, наклонный и подчеркнутый), а также три кнопки для выравнивания текста в абзацах (по левому краю, по центру и по правому краю). Все эти средства позволяют форматировать документы, придавая им нужный пользователю вид. Для выбора различных вариантов отображения текстовых блоков и символов служат три раскрывающихся списка: Style (1 — стиль) — выбор стиля отображения текстовых блоков; Font (3 — шрифт) — выбор шрифта для символов; Font Size (5 — размер шрифта) — выбор размера символов. Для изменения начертания символов предназначены три кнопки: Bold (7 — полужирный) — полужирное начертание; Italic (8 — курсив) — наклонное (курсивное) начертание; Underline (9 — подчеркнутый) — подчеркнутое начертание. Возможна произвольная комбинация начертаний символов. Например, Bold и Italic дают полужирные наклонные символы. Три следующие кнопки задают режим выравнивания текста: Align Left (10 — по левому краю) — выравнивание текстов по левой границе; Align Center (11 — по центру) — выравнивание текстов по центру; Align Right (12 — по правому краю) — выравнивание текстов по правой границе. 15

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Две последние кнопки предназначены для создания списков: Bullets (13 — маркированный) — создание маркированного списка; Numbering (14 — нумерованный) — создание нумерованного списка. Для закрытия панели форматирования и ее удаления с экрана служит кнопка закрытия в правой верхней части панели. Все эти кнопки хорошо известны каждому пользователю текстовым процессором Word. 6. Строка состояния

В нижней части окна системы имеется строка состояния. Она является элементом контекстной оперативной помощи по работе с системой, поскольку отображает ее текущее состояние. Если система не выполняет действий, то в этой панели будет надпись Press Fl for help (нажмите клавишу F1 для получения помощи). Если это сделать, то будет выведено окно справочной системы. 7. Палитры математических знаков

Специфическими для MathСad являются математические панели. Имеется главная математическая панель Math (Математика). Она содержит кнопки для открытия математических панелей более низкого уровня: Calculator (калькулятор); Graph (графика); Matrix (векторные и матричные операции); Evaluation (операторы управления вычислениями); Calculus (математический анализ (операторы дифференцирования, интегрирования, суммирования и др.)); Boolean (булево (логические операторы)); Programming (программирование); 16

Greek (греческие символы); Symbolic (символика). Если панель Математика отсутствует на экране, то ее можно открыть с помощью команды меню Вид — Панели инструментов (View — Toolbars). Этой же командой открываются и закрываются и другие панели. Палитры служат для вывода заготовок (шаблонов) математических операторов (цифр, знаков арифметических операций, матриц, интегралов, производных и т.д.), функций системы и отдельных символов, например, греческих букв. Кнопки вывода палитр занимают пятую сверху панель окна системы. На рис. 1 показано назначение этих кнопок при перемещении панели для их вывода в левую часть экрана. Палитры появляются в окне редактирования документов при щелчке по соответствующим кнопкам этой панели. На рис. 4 представлены панель вывода палитр математических знаков, расположенная под панелью форматирования, и все палитры. С их помощью можно вводить в документы практически все известные математические символы и операторы. К сожалению, их так много, что вывод всех палитр (как это показано на рисунке) обычно бесполезен, так как в окне редактирования не остается места для подготовки документов. Поэтому рекомендуется неиспользуемые в данное время палитры закрывать. Палитры можно располагать в удобном месте окна редактирования, причем пользоваться сразу несколькими. С помощью общей панели (или «панели палитр») можно вывести все палитры сразу или только нужные для работы. Для установки с их помощью необходимого шаблона (объекта) достаточно поместить курсор ввода в желаемое место окна редактирования (красный крестик на цветном дисплее) и затем щелкнуть на значке нужного шаблона. Применение палитр для вывода шаблонов математических знаков очень удобно, поскольку не надо запоминать разнообразные сочетания клавиш, используемые для ввода специальных математических символов. Впрочем, и эта возможность сохранена, так что привыкшие к работе с клавиатурой пользователи, имевшие дело 17

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

8. Полосы прокрутки

Полосы прокрутки вдоль нижней и правой границы текущего окна предназначены для прокрутки изображения на экране по горизонтали и вертикали. Для этого достаточно установить указатель мыши на кнопке со стрелкой, указывающей направление перемещения, и нажать левую кнопку мыши. При этом будет обеспечена плавная, но медленная прокрутка изображения в окне. Можно прокручивать изображение намного быстрее, поместив указатель мыши внутрь полосы и также нажав кнопку мыши. При этом длина всей полосы соответствует (в некотором масштабе) полной длине документа, так что мышью можно сразу приблизительно указать на ту часть документа, которую требуется вывести в окно. Еще один способ прокрутки обеспечивает бегунок (квадратик на полосе, расположенный между стрелками), уцепившись за который можно прокручивать документ с максимальной скоростью. Применение полосы прокрутки позволяет сместиться из начала документа в его середину и увидеть другую часть документа. Рис. 4. Окно MathСаd со всеми палитрами математических знаков

с более ранними версиями системы MathCad (в том числе под MSDOS), могут воспользоваться навыками виртуозного набора формул и при работе с новой версией системы. Любую палитру можно переместить в удобное место экрана, уцепившись за строку заголовка указателем мыши. Перемещая палитру, левую кнопку мыши нужно держать нажатой. В верхнем правом углу каждой палитры помещена единственная маленькая кнопка с жирным наклонным крестиком, служащая для удаления палитры с экрана, как только она становится ненужной. Большинство кнопок на палитрах выводят общепринятые и специальные математические знаки и операторы, помещая их шаблоны в месте расположения курсора в документе.

18

9. Всплывающие подсказки

MathCad имеет систему оперативной помощи. Одним из ее элементов являются всплывающие подсказки — небольшие текстовые поля, появляющиеся при наведении указателя мыши на многие (но не все) элементы интерфейса и блоки в окне редактирования. Подсказки появляются в прямоугольнике желтого цвета. Данная возможность обеспечивается операционной системой Windows 95/98. Поэтому текст подсказки может быть на русском языке, если он относится к типовой детали интерфейса русифицированной версии Windows. Для деталей интерфейса MathCad он будет, естественно, на английском языке. Пройдясь указателем мыши по всем кнопкам, можно ознакомиться с их названиями. Они будут рассмотрены далее по мере описания. 19

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

10. Контекстное меню

11.1. Константы

Щелчок правой кнопкой мыши вызывает появление контекстного меню. Команды этого меню могут отличаться в зависимости от того, в каком режиме работает система и в каком месте был установлен указатель мыши перед щелчком. Заметим, что данное меню характерно для всех приложений Windows.

К важнейшим типам данных в системе MathCad относятся константы, обычные и системные переменные, массивы (векторы и матрицы) и данные файлового типа. Константы — имеющие уникальные имена объекты, хранящие некоторые значения, которые определяются в процессе загрузки системы. MathCad поддерживает следующие типы констант: – целочисленные константы (0, 1, 23, — 45 и т.д.); – вещественные числа с мантиссой и порядком (например, 12.3 · 105 — (мантисса равна 12,3, а порядок равен 5); – восьмеричные числа; – шестнадцатеричные числа; – комплексные числа; – системные константы, хранящие определенные параметры системы; – строковые константы — любые цепочки символов, заключенные в кавычки, например, “string”, “2+3” (арифметические выражения в строковых константах рассматриваются как текст и не вычисляются); – единицы измерения физических величин. Уместно сразу отметить, что оператор умножения * при выводе на экран меняется на привычную точку в середине строки, а операция возведения в степень (с применением оператора/\) отображается путем представления порядка в виде надстрочного элемента. Оператор деления / заменяется горизонтальной чертой. Десятичные числа имеют основание 10. Диапазон их возможных значений лежит в пределах от 10307 до 10-307 (это машинная бесконечность и машинный ноль).

11. Алфавит входного языка системы MathCad

Общение с пользователем системы MathCad осуществляется с помощью математически ориентированного входного языка общения с системой. Благодаря этому большинство расчетов в MathCad не требует программирования в общепринятом смысле этого слова. Однако и обычные программные средства в MathCad есть. Алфавит входного языка — это совокупность символов и слов, которые используются при задании команд и функций, необходимых для решения интересующего пользователя класса задач. Алфавит системы MathCad содержит: – малые и большие латинские буквы; – малые и большие греческие буквы; – арабские цифры от 0 до 9; – системные переменные; – математические операторы; – имена встроенных функций; – спецзнаки; – малые и большие буквы кириллицы (при работе с русифицированными документами). К укрупненным элементам языка относятся типы данных, операторы, встроенные функции, функции пользователя, процедуры и управляющие структуры. Все эти элементы присущи входному языку системы MathCad, как и любому другому языку программирования. Кроме того, все, что находится в палитрах математических знаков, также относится к алфавиту MathCad. 20

11.2. Операторы Операторы — элементы языка, предназначенные для создания математических выражений совместно с данными, именуемыми операндами. Это знаки арифметических операций, вычисления 21

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

11.5. Математические выражения

сумм, произведений, производной, интеграла и т. д. После указания операндов (аргументов соответствующих операторов) операторы становятся исполняемыми программными блоками. MathCad позволяет задавать пользовательские операторы. Операторы в MathCad вводятся с помощью шаблонов, которые, в свою очередь, имеют места ввода для операндов.

Функции, наряду с операторами, могут быть составной частью математических выражений. Например, рассмотрим выражение:

11.3. Встроенные функции

В этом выражении Y — переменная, 1 и 5 — числовые константы, * и + — операторы, ln(х) — встроенная функция.

МathСad поддерживает множество встроенных функций, то есть функций, определенных в самой системе и готовых к немедленному использованию. Функции обладают свойством возвращать некоторое значение в ответ на обращение к ним по имени, с указанием аргумента (или списка аргументов). Они возвращают символьное или числовое значение, вектор или матрицу. В систему встроен ряд функций, например, функция вычисления синуса sin(х), натурального логарифма ln(х) и т.д. Функции вводятся своими именами, принятыми для системы MathCad. Иногда эти имена несколько отличаются от стандартных обозначений — в основном некоторым сокращением. К примеру, arctg(x) в MathCad обозначается как atan(x). При вводе функции при помощи палитры функций появляется шаблон для ввода параметров. В этом случае в поле палитры выводится синтаксическая форма записи функций. Если на имени функции установлен курсор ввода, то нажатие клавиши F1 открывает страницу справки по указанной функции. 11.4. Функции пользователя Возможно также задание функций пользователя, которые создаются самим пользователем. Благодаря функциям пользователя обеспечивается расширение входного языка MathCad и его адаптация к специфическим задачам пользователя.

22

Y := 5 * ln(х) + 1.

12. Переменные

Назначение переменных в MathCad соответствует назначению переменных в математике. Уже само их название говорит о том, что значения переменных могут меняться. Они используются для обобщенного представления данных определенного типа. К примеру, вычисление значения выражения (2 + 3), равного 5, носит весьма частный характер. Наиболее общим является вычисление значения выражения (х + у) как суммы значений двух переменных: х и у. В частности, при х = 1 и у = 3 получим значение 4, но при х = 3 и у = 5 вычисление (х + у) даст уже 8. Переменные имеют имена — идентификаторы. В приведенном примере это х и у. Однако MathCad позволяет задавать и более сложные имена, например X, coordinate, Vcut и т.д. Длина имени не ограничена. Внутри имен переменных надо избегать знаков, которые могут трактоваться как операторы (например, пробел, *, /, +, — и т.д.). Имена должны начинаться с буквы (допустимо а2, но не 2а и т.д.). Задание переменным значений называется присваиванием. В отличие от классической записи операции присваивания в математике, в MathCad знак равенства = можно использовать как оператор присваивания только один раз, при первом присваивании значения новой переменной любого типа. Основное назначение этого оператора — вывод значения переменной или выражения, после которых и ставится знак равенства. До первого присваивания переменная не 23

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

определена (не имеет значения), и поэтому знак = воспринимается как оператор присваивания, например: x = 2; у = 3; х + у = 5. В последнем случае переменные уже определены, поэтому, как только будет введен знак =, так тут же появится результат сложения х и у — число 5. MathCad «знает», что поскольку переменные х и у уже определены, то знак = надо использовать для вывода результата. Основным оператором присваивания является составной знак : =, вводимый двоеточием. Его можно применять как при первом присваивании значения переменной, так и при любой следующей по порядку операции присваивания: x := 3; у := 2; х + у = 5. Существует также «жирный» знак равенства, который используется в логических операциях сравнения. Попытка использования неопределенной переменной ведет к выводу сообщения об ошибке, при этом переменная окрашивается в ярко-красный цвет.

Рис. 5. Особенности локального и глобального присваивания переменным их численных значений

12.1. Локальное и глобальное присваивание Если переменной присваивается значение с помощью оператора : = (или =), то такое присваивание является локальным. Однако с помощью знака ≡ (три горизонтальные черточки) можно обеспечить глобальное присваивание, то есть независимо от того, в каком месте документа стоит оператор глобального присваивания, переменная получает это значение. К примеру, если переменной присвоено таким образом некоторое значение в самом конце документа, то она будет иметь это же значение и в начале документа. Разумеется, в дальнейшем значение переменной можно изменить и с помощью оператора локального присваивания (рис. 5). 12.2. Размерные переменные Данные и переменные могут быть размерными, то есть характеризоваться не только своим значением, но и указанием физической величины, значение которой они хранят (рис. 6). Для присваивания 24

Рис. 6. Примеры задания и применения размерных переменных

25

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

таким переменным значений используются обычные знаки присваивания, но после численного значения со знаком умножения или через пробел указывается единица измерения. Ее удобно выбирать из окна размерных величин, которое появляется при щелчке на стандартной панели инструментов на кнопке с изображением мерной кружки. Это окно можно также вызвать, выбрав команду Units (единицы) меню Insert (вставка). Проведение расчетов с размерными величинами и переменными особенно удобно при решении различных физических задач. При этом правильная размерность результата является дополнительным фактом, свидетельствующим о корректности таких расчетов. 12.3. Ранжированные переменные В математике часто возникает необходимость в задании некоторого ряда значений — чаще всего упорядоченного. Например, для вычисления факториала N! = 1 · 2 · ... · N нужно сформировать ряд чисел от 1 до N шагом 1 и перемножить их. Также упорядоченный ряд значений какой-то переменной (например, абсциссы х) нужен для построения графика функции — MathCad строит графики функций по точкам, соединяя их отрезками прямой. Ранжированные переменные широко применяются для представления функций в виде таблиц, а также для построения их графиков. Если после некоторого выражения с ранжированной переменной поставить знак равенства, то после щелчка мыши на экран будет выведена таблица значений этого выражения. Несколько таких таблиц показано на рис. 7. Для создания таких рядов в MathCad используются так называемые ранжированные переменные. Иногда они заменяют управляющие структуры — циклы, однако полноценной такая замена все же не является. В частности, потому что не предусмотрен выбор любого значения ранжированной переменной. В самом простом случае для создания ранжированной переменной используется выражение: Name := N begin .. N end. 26

Рис. 7. Примеры применения ранжированных переменных

Здесь Name — имя переменной, N begin — ее начальное значение, N end — конечное значение, .. — символ, указывающий на изменение переменной в заданных пределах (он вводится знаком точки с запятой ;). Если N begin < N end, то шаг изменения переменной будет равен +1, в противном случае –1. Для создания ранжированной переменной общего вида используется выражение: Name := N begin, (N begin + Step)..N end. Здесь Step — заданный шаг изменения переменной (он должен быть положительным, если N begin < N end, или отрицательным в противном случае). Рассмотрим некоторые правила построения таблиц вывода. Если количество значений переменной (выражения, вектора и т.п.) и, соответственно, строк в таблице вывода больше 16, то выводятся первые 16 строк. Если указатель мыши находится в пределах таблицы, то щелчок приводит к появлению вертикальной полосы прокрутки, позволяющей просмотреть все строки таблицы. 27

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Числа в таблицах можно задавать в требуемом формате с помощью операций задания формата чисел. В MathCad таблицы значений размерных переменных выводятся в длинных квадратных скобках, а векторы — в длинных круглых скобках. 12.4. Применение ранжированных переменных Задание ранжированных переменных (range variable) эквивалентно заданию конечных циклов. Явно задаются начальное значение, шаг изменения и конечное значение, неявно — обращение к оператору цикла, вычисляющему все промежуточные значения ранжированной переменной при каждом обращении к ней. Ранжированные переменные удобно использовать при определении индексированных переменных и векторов, а также при построении графиков. Ранжированная переменная Ранжированная переменная (Range Variable): Дискретная переменная, переменная интервального типа, диапазон значений, множество упорядоченных равноотстоящих значений. Соответствует математической записи типа k = 1,2,3 … 10 b = 2,3; 2,4; 2,5 … 3,1 Переменная задается следующим образом: x := первое значение[,второе значение] .. конечное значение [ ] — необязательный параметр; второе значение — это первое значение + шаг, если не задано, то шаг = 1 .. — знак диапазона, используется кнопка m..n панели «Матрицы» или с клавиатуры «;», нельзя набирать точки с клавиатуры x:= 3,4 .. 8 или x:= 3 .. 8 reg:=1.1, 1.2 .. 1.9

28

При определении ранжированной переменной могут использоваться не только непосредственные значения, но и переменные или выражения, заданные ранее: X0:= 3.7 Xh:= 0.05 Xend:= 4 rx:= X0, X0+Xh .. Xend Задать переменную, принимающую 5 равноотстоящих значений от 10 до 100 (между первым и пятым значениями — 4 шага):

h = 22.5 H:= 10, 10+h .. 100 Ранжированная может использоваться как аргумент функции, результат — табл. значений функции.

Можно вычислить сумму/произведение всех значений ранжированной переменной, а также сумму/произведение всех значений выражения или функции с ранжированной переменной. Используются соотв. кнопки панели «Математический анализ». 29

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

пространенными являются операторы арифметических действий (+, –, * и /), возведения в степень ^, извлечения квадратного корня и др. На рис. 8 показаны примеры использования арифметических операторов.

i:= 1, 1.2 .. 6 m:= 2,7 .. 32

Если для суммы/произведения используется шаблон с верхним и нижним пределами, то переменную, по которой ведется суммирование, заранее определять не надо, она будет принимать значения в заданных пределах с шагом 1. i:= 1, 2 .. 6

или

Переменная заданная непосредственно в шаблоне вне этого региона не определена (not defined).

Любые действия с ранжированной переменной используют все ее значения, нельзя отдельно получить только некоторые из этих значений. Работать с отдельными элементами позволяют переменные матричного типа. 13. Выполнение арифметических операций

13.1. Арифметические операторы

Рис. 8. Примеры применения арифметических операторов

13.2. Расширенные операторы Система MathCad содержит ряд расширенных арифметических операторов: производной (клавиша ?) и определенного интеграла (клавиша &). Нажатие указанных клавиш приводит к выводу на экран шаблона соответствующего оператора. Шаблон содержит места ввода, подлежащие заполнению операндами — числовыми или символьными значениями. Для вызова шаблона можно использовать и соответствующую палитру математических спецсимволов. На рис. 9 показано применение этих операторов. Выражения с расширенными операторами возвращают вычисленные значения, поэтому их можно использовать в составе сложных математических выражений, представленных в наглядном виде.

Арифметические операторы предназначены для выполнения арифметических действий над численными величинами (операндами) и конструирования математических выражений. Самыми рас30

31

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Гиперболические функции: sinh(z), cosh(z), tanh(z), sech(z), csch(z), coth(z). Обратные гиперболические функции: аsinh(z), асоsh(z), аtanh(z), аsесh(z), асsсh(z), acoth(z). Большинство элементарных функций имеет один параметр. Особо стоит отметить две функции: log(z, b) — вычисляет логарифм z по основанию b (если b опущено, вычисляется логарифм по основанию 10), angle(х, у) — возвращает угол (от 0 до 2π) радиус-вектора, имеющего начало в точке (0,0) и конец в точке (х, у).Функции комплексного аргумента arg(z) — вычисление аргумента; Im(z) — выделение мнимой части комплексного числа z; Re(z) — выделение действительной части комплексного числа z; csgn(z) — возвращает либо 0, если z = 0, либо 1, если Re(z) > 0 или если Re(z) = 0 и Im(z) > 0, либо –1 в остальных случаях; signum(z) — возвращает 0, если z = 0, и z / |z| в ином случае. Рис. 10 иллюстрирует работу с элементарными функциями как при действительном, так и при комплексном аргументе z. Рис. 9. Примеры применения расширенных операторов

14. Элементарные функции

MathCad содержит широкий набор встроенных элементарных функций. Функции задаются своим именем и значением аргумента, который записывается в круглых скобках. В ответ на обращение к ним функция возвращает вычисленное значение. Аргумент и значение функции могут быть действительными или комплексными числами. Типовые элементарные функции Показательные и логарифмические функции: exp(z), ln(z), log(z, [b]). Тригонометрические функции: аnglе(х,у), sin(z), соs(z), tаn(z), sес(z), сsс(z), соt(z). Обратные тригонометрические функции: asin(z), acos(z), atan(z), asec(z), acsc(z), acot(z). 32

Рис. 10. Примеры вычисления значений элементарных функций

33

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

15. Специальные математические функции

Наряду с элементарными функциями в системе MathCad содержится ряд встроенныx специальных математических функций. Их применение расширяет возможности системы в решении сложных математических задач. 16. Функции пользователя

Задание функций пользователя Несмотря на довольно широкий набор встроенных функций, очень часто возникает необходимость расширить систему новыми функциями, представляющими интерес для пользователя. Функции пользователя вводятся с применением следующего формата: Имя функции (Список аргументов) := Выражение. Имя функции задается как любой идентификатор, например имя переменной. В скобках указывается список аргументов функции — это перечень используемых в выражении переменных, записанный через запятую. Выражение — любое выражение, содержащее доступные системе операторы и функции с операндами и аргументами, указанными в списке параметров. Примеры задания функций одной и двух переменных: fun(x) := 5(1 — ехр(х))

module(x, у) := х2 + y2

По умолчанию действует режим автоматического вычисления. В этом режиме при любом изменении программы или данных автоматически производится пересчет решения задачи. Для включения (или отмены) режима автоматического вычисления используется флажок команды Автоматическое вычисление (меню Tool — Calculation — Automatic Calculation). Если режим автоматического вычисления отменен, то для каждого запуска программы нужно выбрать команду Выполнить (Calculate Now) (та же цепочка команд) или нажать кнопку « = » на стандартной панели инструментов. 34

Для редактирования формул, созданных с помощью редактора формул MathСad, требуется определенный навык работы. Для внесения исправлений применяются следующие рекомендации: 1) для вставки курсора в место изменения нужно щелкнуть в этом месте кнопкой мыши, перемещать курсор в формуле можно с помощью клавиш управления курсором на клавиатуре; 2) для удаления ненужных скобок нужно поместить курсор справа от левой удаляемой скобки и нажать клавишу Backspase; 3)  иногда проще удалить часть формулы или весь регион и набрать заново. Заметим, что если горизонтальная сторона уголка подчеркивает все выражение, включая символ «:=» и левую часть формулы, то ввод символов в формулу не производится. Необходимо с помощью мыши вернуть уголок к размеру, не превышающему ширины правой части выражения. Для копирования и перемещения формул или фрагментов формул используются команды Вырезать (Cut), Копировать (Copy), Вставить (Paste) меню Правка (Edit) или соответствующие кнопки стандартной панели. Для применения команд к нескольким областям их следует выделить рамкой выделения (появятся пунктирные рамки). Для выделения разрозненных регионов можно щелкнуть мышью на каждом из них при нажатой клавише Shift. В MathCad нет явного понятия строчек, и иногда бывает трудно установить мышью курсор ввода точно в нужном месте. Если, к примеру, сначала переменной присвоено значение, а затем набирается формула с использованием этой переменной  —  регионы желательно набрать друг за другом. Если второй регион расположен правее, но хоть немного выше —  он будет читаться MathCad раньше. Можно выровнять группу выделенных регионов по горизонтали или вертикали с помощью команд меню Формат — Выровнять регионы (Format — Align Regions) или с помощью специальных кнопок стандартной панели, которые становятся активными при выделении нескольких регионов. 35

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Результат расчетов может быть представлен в различных форматах. Десятичный формат (Decimal) — это обычная форма записи дробного числа, только вместо десятичной запятой используется десятичная точка. Научный формат (Scientific) обычно применяется для очень больших и очень малых чисел и включает число в десятичном формате (мантисса), умноженное на число 10 в определенной степени (порядок). По умолчанию MathCad сам выбирает наиболее подходящую форму представления результата —  формат Общий (General). Изменить тип формата, увеличить число выводимых после десятичной точки цифр и изменить другие параметры представления результата можно с помощью команды меню Формат — Результат (Format — Result). Изменения будут относиться к выделенным формулам или ко всему документу, если выделений нет. В процессе работы с редактором формул на экране часто появляются лишние символы («мусор»), которые на самом деле в программе отсутствуют. Если нажать клавиши Ctrl + R или меню Вид — Обновить (View — Refresh), то все лишние символы исчезнут.

вом блоке. Например, сочетания клавиш +Srnft позволяют перемещать курсор ввода не по отдельным символам, а по целым словам. Пока ограничимся простейшими правилами ввода текста. 1. Введите знак двойной кавычки» на английском регистре — появится прямоугольник с курсором ввода. 2. С помощью раскрывающегося списка выбора шрифта на панели форматирования (см. рис. 11) установите нужный шрифт, например кириллический при вводе русскоязычного текста. 3. Начните посимвольно набирать текст, используя типовые средства текстового редактора (клавиши Пробел, Del, Backspace и т.д.). 4. Нажимайте клавишу Enter для перехода на новую строку (если этого не делать, переход на новую строку будет осуществляться автоматически). 5. Для завершения ввода текста отведите указатель мыши в сторону от текстового блока и щелкните левой кнопкой мыши.

17. Работа с текстовым редактором

В простейшем случае для ввода текстового комментария достаточно ввести символ « (одна двойная кавычка). В появившемся прямоугольнике можно начинать вводить текст (рис. 3.1). В текстовом блоке курсор имеет вид красной вертикальной черты и отмечает место ввода. Текст редактируется общепринятыми средствами — перемещением курсора ввода клавишами управления курсором, установкой режима вставки или замещения символов (клавиша Insert), стиранием (клавиши Del и Backspace), выделением, копированием в буфер, вставкой из буфера и т.д. В текстовом блоке есть также возможность выровнять текст по левой его границе, правой границе или по центру. Клавиши перемещения курсора можно использовать с нажатой клавишей Shift, что обеспечивает ускоренное перемещение в тексто36

Рис. 11. Пример ввода текстового комментария

37

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Текстовой блок в ходе набора текста расширяется (см. рис. 11, на котором этот блок виден в окне документа). Блок имеет маркеры изменения размера в виде маленьких черных прямоугольников, уцепившись за которые блок можно растягивать в том или ином направлении. Это иллюстрирует рис. 12, на котором показан растянутый блок. Размер символов текстового комментария при растяжении (или сжатии) блока не меняется — меняется только размер блока. В блок большего размера можно ввести больше надписей. Как только длина строки текста достигает правой границы текстового блока, происходит перенос вводимого текста на новую строку внутри блока.

Рис. 12. Растяжение текстового блока и его копирование

Выделенные рамкой текстовые блоки можно переносить на другое место, уцепившись за рамку указателем мыши — он при этом превращается в изображение черной ладошки. Если в начале перемещения нажать клавишу Ctrl, то будет выполняться перенос блока с его сохранением на первоначальном месте. Именно так получен второй текстовой блок, показанный на рис. 12. 38

Для завершения создания текстового блока достаточно отвести указатель мыши в сторону от блока и щелкнуть левой кнопкой. Можно также нажать одновременно клавиши Ctrl + Enter. Для коррекции текста надо подвести указатель мыши к месту коррекции и щелкнуть левой кнопкой мыши. Появится рамка текстового блока, а на месте указателя мыши — курсор ввода. Теперь можно корректировать текст, дописывать его, вставлять новые символы между прежними символами (режим Insert), удалять символы и т. д. Текстовые комментарии могут форматироваться. 18. Работа с формульным редактором

Для запуска формульного редактора достаточно установить указатель мыши в любом свободном месте окна редактирования и щелкнуть левой кнопкой. Курсор ввода в виде маленького красного крестика окажется перенесенным на это место. Его можно перемещать клавишами перемещения курсора. Курсор ввода не надо путать с указателем мыши, он имеет вид жирной наклонной стрелки. Курсор ввода указывает место, с которого можно начинать набор формул — вычислительных блоков. В зависимости от места расположения курсор ввода может менять свою форму. Так, в области формул он превращается в синий уголок, указывающий направление и место ввода. Его также можно перемещать клавишами перемещения курсора. Для расширения охваченной уголком области (вплоть до полного охвата выражения) можно пользоваться клавишей Пробел. Редактирование математических выражений во многом напоминает редактирование текстовых комментариев. Можно использовать режим вставки (клавиша Insert, меняющая направление охвата курсором ввода того или иного объекта), режимы стирания (клавиши Backspace и Del) объекта с той или иной стороны относительно вертикальной черты курсора ввода, удаление объекта командой Gut (клавиша F3) и его ввод на указанное место командой Paste (клавиша F4) и др. 39

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

8.1. Примеры вычисления арифметических выражений и их редактирования Рассмотрим пример вычисления отношения суммы 2 + 3 к корню квадратному из числа 5. Вначале введем подряд символы 2 + 3. Вид формульного блока при этом показан на рис. 13. Обратите внимание, что при таком последовательном вводе уголок охватывает последний оператор. Рис. 13. Создание формульного блока и ввод в него суммы

Теперь нам надо ввести знак деления. Однако если сделать это сразу, то данный знак будет относиться не ко всей сумме, а только к последнему операнду — числу 3. Чтобы знак деления относился ко всей сумме, надо выделить все выражение 2 + 3. Для этого достаточно нажать клавишу пробела. Результат будет иметь вид, представленный на рис. 14. Теперь можно ввести знак деления, нажав клавишу с соответствующим знаком. Формульный блок приобретает вид, показанный на рис. 15. Знак деления в виде наклонной черты автоматически приобретает вид длинной горизонтальной черты под суммой, а под ним появилось место для ввода знаменателя дроби в виде черного квадрата, охваченного курсором ввода. Рис. 14. Выделение всей суммы курсором ввода

Рис. 15. Формульный блок после ввода знака деления

Следующий этап — ввод знака квадратного корня. Можно ввести этот знак, используя палитру математических знаков для арифметических операций. Для такого ввода достаточно щелкнуть мышью на знаке квадратного корня. Это также можно сделать нажатием клавиши со знаком обратной косой черты \. Формульный блок приобретет 40

вид, представленный на рис. 16. Обратите внимание на естественность записи оператора квадратного корня и наличие в нем места для ввода подкоренного выражения. Рис. 16. Формульный блок после ввода знака квадратного корня

Следующий этап конструирования выражения — ввод подкоренного выражения в виде числа 5. Для этого достаточно нажать клавишу на цифровой части клавиатуры. Формульный блок предстанет в виде, показанном на рис. 17. Рис. 17. Формульный блок с заданным выражением

Теперь выражение по существу введено полностью, и нам осталось увидеть результат его вычисления. Для этого в конце выражения нужно поставить оператор вывода –знак равенства =. Однако сразу его вводить нельзя, поскольку маркер вывода установлен на последнем операторе. Надо выделить все выражение. Для этого надо нажать клавишу — будет выделен весь числитель, а затем нажмите клавишу еще раз — будет выделено все выражение (рис. 18). Рис. 18. Выделение всего выражения

Далее вводят оператор вывода =. MathCad автоматически отобразит результат вычислений. Вид формульного блока при этом представлен на рис. 19. Рис. 19. Формульный блок после ввода оператора вывода =

MathCad можно легко использовать для различных экспериментов вычислительного характера. Допустим, необходимо вычислить 41

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

результат, когда покоренным выражением в знаменателе должно быть число 5 в степени 1,25. Для этого достаточно модернизировать уже введенное (см. рис. 19) выражение. Необходимо поместить указатель мыши после числа 5 и щелкнуть левой кнопкой. Курсор ввода выделит это число (рис. 20). Рис. 20. Изменение одного из операндов в формульном блоке

Нетрудно догадаться, что теперь надо ввести знак возведения в степень. Ее можно ввести из палитры арифметических операторов или просто нажать клавишу со знаком ^. Рис. 21. Вид формульного блока после ввода оператора возведения в степень

При этом в формульном блоке появится запись возведения числа 5 в некую степень (рис. 21). Место ввода служит для ввода значения нужной степени. Далее необходимо ввести показатель степени числа 5, то есть число 1,25. Это иллюстрирует рис. 22. Обратите внимание на естественность записи числа 5 в степени 1.25. Рис. 22. Вид формульного блока после ввода показателя степени 1.25

Итак, выражение создано, но пока курсор ввода (уголок) выделяет число 1.25. Для вычисления достаточно отвести указатель мыши от формульного блока (например, вниз) и щелкнуть левой кнопкой. Сконструированное выражение тут же будет вычислено (рис. 23). Для вычисления любого выражения достаточно установить после оператор вывода (знак =). Покажем это на нескольких примерах простых вычислений. Для ввода десятичных чисел в качестве разделителя целой и дробной частей используется точка, а не запятая. 42

Рис. 23. Вычисление скорректированного выражения

В математике для придания вычислениям общности часто используются переменные в виде некоторых обобщенных обозначений данных определенного типа. Для переменных (идентификаторов) характерна операция присваивания значений. В MathCad оператор = можно использовать как оператор первого присваивания. Еcли теперь попытаться присвоить переменным а и b новые значения, то ничего из этого не выйдет. Как только после имени переменной мы попытаемся поставить знак =, появится старое значение переменной. Чтобы все же присвоить переменным новые значения, придется использовать стандартный оператор присваивания :=, который вводится своим первым символом : (двоеточие). Из этих примеров можно заметить некоторые особенности работы Mulhcad при выполнении простых вычислений: – некоторые комбинированные операторы (например, := ) вводятся одним символом : ; – MathCad вставляет пробелы до и после арифметических операторов; – оператор умножения вводится как звездочка, но представляется точкой по середине строки; – оператор деления вводится как косая черта, но заменяется горизонтальной чертой; – оператор возведения в степень вводится знаком ^, но число в степени представляется в обычном виде (степень как верхний индекс); – по умолчанию десятичные числа имеют представление с тремя знаками после разделительной точки; – MathCad идентифицирует наиболее распространенные константы, например е — основание натурального логарифма; – математические выражения могут редактироваться внутри формульного блока с использованием для этого курсора ввода и типовых приемов редактирования. 43

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Таким образом, даже без вмешательства пользователя MathCad старается придать математическим выражениям обычный вид. На рис. 24 представлен документ, в котором выполнены приведенные выше простые вычисления.

Рис. 24. Окно MathCad с простейшими вычислениями

Рисунок дает представление и о некоторых дополнительных приемах работы с системой MathCad. Для представления десятичных чисел с большим числом знаков, чем с тремя, после точки надо использовать форматирование чисел. Подведите указатель мыши к числу (на рис.24 — это значение е) и дважды щелкните левой кнопкой. Появится окно форматирования чисел. Введите в поле Number of decimal places число 15 вместо 3 и увидите на экране результат с 15 знаками после десятичной точки. MathCad переводит в категорию простых вычислений даже сложные математические расчеты, требующие применения специальных численных методов (см. рис.24). Для MathCad все равно, что вычисляется — будь то квадратный корень или определенный интеграл. Столь же просто, воспользовавшись шаблоном суммы или произведения, можно вычислить сумму или произведение членов ряда. 18.2. Использование шаблонов математических операторов и символов

MathCad служат палитры математических знаков и шаблонов операторов и функций. Например, оператор суммы (просто знак плюс +) выводит на самом деле шаблон вида, в котором черные квадратики — это места под операнды. Например, если требуется составить выражение 2 + 3, то в места ввода достаточно вставить числа 2 и 3. Чтобы вычислить уже упомянутый определенный интеграл, необходимо вначале вывести на экран палитру операторов математического анализа. Щелкнуть по кнопке с изображением знака интеграла и производной, и палитра появится в окне программы. Затем следует установить курсор в то место экрана, куда выводится шаблон, и на палитре щелкнуть по значку с изображением определенного интеграла. В составе сложных шаблонов часто встречаются меньшие шаблоны для ввода отдельных данных. Это места ввода. В шаблоне интеграла их четыре: для ввода верхнего предела интегрирования, для ввода нижнего предела интегрирования, для задания подынтегральной функции и для указания имени переменной, по которой идет интегрирование. На рис.24 заполненный шаблон интеграла и результат вычисления интеграла показаны в нижней части документа. Вычисления произойдут после охвата выражения (интеграла) синим уголком и установки оператора вывода — знака =. Рассмотрим процесс работы с шаблонами подробнее. После вывода шаблона он появляется с пустыми местами ввода. Для ввода данных нужно установить указатель мыши на нужный шаблон данных, щелкнуть ее левой кнопкой для фиксации места ввода и ввести данные. На рис. 25 показано последовательное заполнение (слева направо) мест ввода в шаблоне вычисления определенного интеграла и в ряде других шаблонов. Также на рисунке отражен момент ввода выражения под знаком квадратного корня для задания подынтегральной функции. Вводить шаблоны можно с помощью определенных клавиш и их комбинаций.

Подготовка вычислительных блоков облегчается благодаря выводу шаблона при задании того или иного оператора. Для этого в 44

45

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Рис. 25. Примеры последовательного заполнения шаблонов

18.3. Вычисление математических функций Сложные математические выражения наряду с операторами содержат математические функции. MathCad имеет множество встроенных элементарных специальных и статистических функций. Наиболее известные из них — элементарные — могут вводиться прямо их обозначениями, например, sin(l), cos(0.5), asin (0.5), sinh(l), ln (2) и т.д. Для облегчения ввода математических функций служит кнопка f(x), которая выводит окно с полным перечнем функций, разбитым на тематические разделы. Выбранная выделением функция может быть перенесена в окно документа щелчком по кнопке внизу окна с перечнем функций. Рис. 26 иллюстрирует выбор и использование функции Бесселя — In(m, х). Функции имеют параметры (аргументы), которые записываются в круглых скобках после имени функции. Функции могут иметь один параметр (например, sin(x) или cos(0,5)), два параметра (например, ln(m, х)) или даже несколько параметров. Параметры могут иметь 46

Рис. 26. Пример вычисления функции Бесселя с выбором ее из перечня функций

численное значение, быть константой, определенной ранее переменной или математическим выражением, возвращающим численное значение. Функции имеют свойство возвращать результат, поэтому их можно использовать в сложных математических выражениях, например (2 + 3 i) * sin(3 *). 18.4. Работа с матрицами и векторами Матрицу можно представить как таблицу, имеющую m строк (rows) и n столбцов (columns). Если m = n, то матрицу именуют квадратной. Число элементов или размер матрицы есть m × n. Вектор с длиной m рассматривается как одномерная матрица размера m × l. Для операций с матрицами, включая их ввод, служит палитра матричных операций Matrix. В ней имеется шаблон для ввода мат47

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

риц — он имеет вид удлиненных скобок с местами для ввода элементов матриц. При вводе шаблона появляется окно, запрашивающее число строк и столбцов матрицы. На рис. 27 показаны ввод матрицы и использование простейших векторных и матричных операций. С матрицами можно проделать все допустимые операции: вычислить обратную матрицу, транспонировать матрицу, складывать и вычитать матрицы. Можно вычислить определитель матрицы, скалярное и векторное произведение. Доступ к элементу матрицы прозводится по индексу, отсчитываему от 0. Вектор-столбец имеет один индекс, для перехода к нижнему индексу надо нажать кнопку Xn , или с клавиатуры — [. Двумерный массив имеет уже два индекса, также отсчитываемые от 0, первый из них нумерует строки, второй — столбцы, индексы разделяются запятыми. Можно вычислить сумму элементов вектора, используя кнопку с панели «матрицы», например: Рис. 27. Примеры простейших операций с матрицами

Элементы матриц являются индексированными переменными и характеризуются двумя индексами — номером элемента в строке и номером элемента в столбце. Например, Mi,j означает элемент матрицы, расположенный в строке i и столбца j. Матрицы одного размера можно складывать и вычитать. Возможна замена строк на столбцы — операция транспонирования (значок MT в палитре). Переменной может быть присвоено значение матрицы или вектора (вектор-столбец). Для этого используем панель «Матрицы», задав нужное число строк и столбцов, получим шаблон для заполнения конкретными значениями. Для получения шаблона вектора число столбцов задать равным 1. 48

Для вычисления произведения элементов вектора или суммы/ произведения эл-ов матрицы используются кнопки панели «мат. анализ»: Эти же операции могут выполняться не для всех эл-ов, например, для первых двух строк и последних двух столбцов

49

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Аналогичные действия можно выполнить и с помощью других шаблонов, где индексы — это целочисленные ранжированные переменные

Вектор х можно задать несколькими способами: способ 1

способ 2

способ 3

результат

Индексы могут изменяться и с шагом больше 1. Например, просуммируем элементы 0-го и 2-го столбцов Вектора и матрицы можно также задавать поэлементно или используя общую формулу для всех элементов с заданным диапазоном номеров. Незаданные значения = 0. Например: Пример: Задать матрицу 5 на 4, каждый элемент которой равен сумме его номера строки и столбца: m:= 0 .. 4 n:=0 .. 3

Вектор у можно задать двумя способами: сразу у := sin (x) или поэлементно Если нумерация с 1: ORIGIN:=1

Ранжированная переменная, задающая номера элементов матрицы, может изменяться и с шагом больше 1 (только целым). N1 := 0, 2 .. 4 Чтобы поменять начальный номер элементов матриц, используется команда ORIGIN:=первый номер ORIGIN:=1 теперь для той же матрицы М3,2 = 3. Пример. Определим вектор х из 10 равноотстоящих элементов от 0.2 до π, вектор у — соответствующие значения функции sin. Сначала вычислим шаг 50

Операции над матрицами Основные операции, выполняемые над матрицами, приведены на рис. 9. 51

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Среди них (рис. 9): вычисление определителя квадратной матрицы (кнопка палитры «Векторы и матрицы»), умножение, сложение, вычитание. Аналогично, как и с векторами, производится операция векторизации матрицы, поиск максимального и минимального элементов матрицы, транспонирования. Кнопка предназначена для вывода на экран определенного столбца, а обращению матрицы соответствует ее возведение в степень «-1». Кроме того, в MathCAD имеются следующие встроенные функции: − submatrix (M, ir, jr, ic, jc) — возвращает субматрицу, состоящую из всех элементов матрицы M, содержащихся в строках от ir до jr и в столбцах с ic по jc; − Re (M) — возвращает матрицу действительных частей матрицы M с комплексными элементами; − Im (M) — возвращает матрицу мнимых частей матрицы M с комплексными элементами; − cols (M) — возвращает число столбцов матрицы M; − rows (M) — возвращает число строк матрицы M; − rank (M) — возвращает ранг матрицы M; − tr (M) — возвращает след (сумму диагональных элементов) квадратной матрицы M; − mean (M) — возвращает среднее значение элементов матрицы M; − median (M) — возвращает медиану матрицы M. 19. Начало работы с графикой

График функции позволяет в наглядной форме представить результаты решения задачи, найти начальные данные для некоторого вида задач, исследовать поведение функции и т. д. До построения графика следует задать вид функции. Затем установить курсор в том месте экрана, где должен быть левый верхний угол графика, и нажать кнопку Декартов график (x-Y Plot) панели Графики (Graph) или использовать соответствующую команду меню Вставка — График (Insert — Graph). Появится регион, внутри которого расположена прямоугольная область собственно для 52

графика, в шаблоне под ней нужно ввести имя аргумента, в шаблоне слева —  имя функции с тем же аргументом, затем следует щелкнуть мышью вне региона графика или нажать клавишу Enter. Если аргумент не был задан заранее, то график будет построен в пределах, определенных MathCad (по умолчанию). Чаще всего это отрезок [–10; 10]; для функции с положительной областью определения —  [0; 10] и т. д. Форматирование графиков осуществляется с помощью диалогового окна, вызываемого двойным щелчком мыши по графику или меню Формат — График — Декартов график (Format — Graph — X-Y Plot). Окно форматирования имеет четыре вкладки, содержащие параметры: X-Y Axes (Оси X-Y) — отображение осей; Traces (Графики) — отображение линии графика; Labels (Надписи) — отображение надписей на графике; Defaults (по умолчанию). На вкладке X-Y Axes представлены основные параметры, относящиеся к осям абсцисс и ординат декартова графика. Область Axis Style (Стиль осей) содержит переключатели, позволяющие задавать стиль координатных осей: Boxed (Рамка) — в виде прямоугольника; Crossed (Крест) — в форме креста; None (Нет) — оси отсутствуют. Выбор параметра Equal scales (Равный масштаб) приведет к заданию одинакового масштаба осей. Параметры областей Axis X и Axis Y позволяют модифицировать оси X и Y и устанавливать: Log scale — логарифмический масштаб; Grid lines — линии сетки; Numbered — цифровые данные по осям; Auto scale — автоматическое масштабирование графика; Show markers  — маркеры на осях; Auto grid — автоматический вывод линий сетки; Number of grids — задание вручную числа линий сетки (опция недоступна, если включен параметр Auto grid). Вкладка Traces содержит список параметров всех линий, построенных в данной графической области. Чтобы модифицировать ли53

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

нию, достаточно выделить ее в списке и настроить соответствующие установки: Legend Lable  — имя выбранной линии (по умолчанию trace  1, trace 2 и т. д.); Symbol — символ, которым обозначаются отдельные точки данных; Line  — стиль линии: solid (сплошная), dot (пунктирная), dash (штриховая), dadot (штрихпунктирная); Color — цвет линии и точек данных: red (красный), blu (синий), grn (зеленый), cya (голубой), brn (коричневый), blk (черный), wht (белый). Type — тип линии: lines (линии), points (точки), error (ошибка), bar (столбец), step (шаг), draw (рисунок), stem (стержень), solid bar (гистограмма); Weight — толщина линии и точек данных. При помощи вкладки Labels осуществляется создание надписей на графике (вводится заголовок графика, подписей под осями). Если переменная, указанная на графике как аргумент (внизу по центру), ранее в документе не была задана, график будет построен для аргумента от -10 до 10 (или от 0 до 10 для положительно определенных ф-ций …). При этом аргумент автоматически изменяется с таким мелким шагом, чтобы график выглядел плавной линией (если задать тип линии — точки, они сольются в сплошную линию). Поменять пределы изменения аргумента можно непосредственно на графике (числа слева и справа внизу области графика). Аналогичные изменения границ для оси У не приводят к построению нового графика (может измениться только масштаб), если границы расширить, то над/под графиком останется пустое пространство, если уменьшить, то рисунок будет «обрезан». При построении графика, как и при вычислении значений функции, переменная-аргумент не обязана совпадать с переменной, которая использовалась для определения ф-ции. Например, задавали f(x) := x – cos(x) (здесь х не определяет никаких значений, а только задает вид функции, т.е. является формальным аргументом), а график можно строить от ха1, тогда и по оси У указать f(ха1) (ха1 — фактический аргумент с конкретными значениями). 54

Если перед графиком аргумент был задан как ранжированная переменная, график будет построен в соответствующих пределах. При этом значения функции определяются только в точках, задаваемых ранжированной переменной, которые на графике соединяются участками прямой. Так, если шаг крупный, график будет ломаной линией, для исправления такой картины нужно уменьшить шаг. Если задать тип линии — точки (для лучшего отображения увеличить толщину или выбрать символы), то на графике будут видны только точки, соответствующие ранжированной переменной. Если теперь непосредственно на графике расширить границы аргумента, то слева и справа останется свободное место (новые значения не появятся). Сузить границы можно на графике или изменив ранжированную переменную. Аргумент может быть задан и как вектор, тогда график можно строить как и с ранжир. переменной (для всех значений вектора), или поэлементно: указывается диапазон изменения индексов вектора и в качестве аргумента переменная с индексом (например, k:=2..7, а на графике zk и f(zk)). Если и значение функции — вектор (функция задана таблично), то по оси У указывается имя этого вектора, если аргумент задан с индексом, то и по оси У — переменная с индексом. Для одного графика переменная по оси Х должна точно совпадать с аргументом функции, записываемой по оси У. Нельзя смешивать переменные с индексом и целый вектор, нельзя по одной оси указывать ранжированную переменную, а по другой — вектор. 19.1. Построение двумерного графика одной функции Простые вычисления в MathCad выполняются почти мгновенно. Столь же просто можно построить графики функций самого различного вида. Нередко к ним сводятся нужные результаты вычислений. Начнем с построения графика функции sin(x)3. Для этого достаточно выполнить следующие простые действия. 1. Введите функцию, набрав выражение sin(x)3. 2. На панели математических знаков щелкните на кнопке с изображением графика — на экране появится палитра графиков. 55

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

3. В палитре графиков щелкните на кнопке с изображением двумерного графика — на экране появится шаблон графика (рис. 28) с уже введенной по оси Y функцией. 4. Введите в место ввода шаблона по оси Х имя независимого аргумента — х. 5. Щелкните вне пределов графика левой кнопкой мыши — график построен (рис. 29). Обратите внимание, что в данном случае не требуется даже полного выделения выражения для функции, но курсор ввода должен быть в блоке с этим выражением.

Рис. 28. Подготовка к построению двумерного графика

Рис. 29. Результат построения графика функции sin(x)3

19.2. Изменение размеров и перемещение графика Для увеличения графика и смещения необходимо выполнить следующее. 1. Поместите указатель мыши в область графика и щелкните левой кнопкой мыши — вокруг графика появится рамка из черных линий, обрамляющая блок графика. 2. Подведите указатель мыши к черному квадратику (маркеру изменения размера) в правом нижнем углу рамки, при этом указатель мыши должен превратиться в двухстороннюю диагональную стрелку. 3. Нажав левую кнопку мыши, растяните график по диагонали. 4. Завершив расширение (или сужение) графика, отпустите кнопку мыши. 56

5. Наведите указатель мыши на любую сторону рамки (кроме черных квадратиков), при этом указатель должен превратиться в черную ладошку. 6. Нажав левую кнопку мыши, передвиньте весь блок графика в желаемое место экрана. 7. Завершив перемещение, отпустите кнопку мыши. В результате этих действий произойдет увеличение и перемещение в другое место экрана графика с обрамляющей его рамкой (рис. 30). Убрать рамку можно, отведя указатель мыши в сторону от графика и щелкнув левой кнопкой мыши.

Рис. 30. График одной функции после изменения размеров и смещения

Обратите внимание: когда график находится в рамке, на нем в характерных черных уголках появляются числа, указывающие масштаб графика по оси Y и по оси X. По умолчанию по оси Х график строится на отрезке изменения аргумента х от –10 до+10. Масштаб по оси Y MathCad устанавливает автоматически. Изменив эти числа, можно задать свой масштаб графика. 19.3. Построение графиков ряда функций На одних осях может быть построено несколько графиков (функции записывают через запятую, при этом они автоматически располагаются друг под другом вдоль оси У). Если аргументы разные, их тоже записывают через запятую. Порядок записи аргументов должен 57

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

строго соответствовать порядку записи функций. Если количество аргументов меньше, то последний аргумент относится ко всем последующим функциям. Например, по оси У указано f(а), g(a), yj, по оси Х соответственно а, а, хj; если поменять порядок функций: yj, f(а), g(a), то по оси Х можно записать хj, а , что равнозначно записи хj, а, а. Границы изменения аргумента и функции на графике автоматически определятся по максимальным значениям (если для разных функций значения сильно отличаются, то лучше не строить их вместе, иначе какие-то графики могут быть очень маленькими). Рассмотрим, как в полученном графике отобразить еще две функции, например, sin(х)2 и cos(х). Для этого их надо перечислить после первой функции, отделяя выражения функций запятыми следующим образом. 1. Подведите указатель мыши точно в конец выражения sin(х)э. 2. Щелкните левой кнопкой мыши — появится синий уголок в конце выражения (или перед ним). 3. Клавишами перемещения курсора по горизонтали переместите уголок в конец выражения, и нажатием клавиши Пробел добейтесь, чтобы уголок охватил все выражение. 4. Введите знак запятой, при этом вы заметите, что первое выражение ушло вверх, а под ним появилось новое место ввода. 5. Введите выражение sin(х) 2. 6. Нажимая клавишу Пробел, добейтесь, чтобы это выражение тоже было полностью охвачено синим уголком. 7. Введите знак запятой, и вы заметите, что два первых выражения ушли вверх, а под ними появилось новое место ввода.

Рис. 31. Двумерный график с тремя кривыми

58

8. Введите в него выражение сos(x). 9. Отведите указатель мыши за пределы графика и щелкните левой кнопкой мыши — появится график с тремя кривыми (рис. 31). MathCad автоматически отображает каждую кривую своим стилем и своим цветом. 20. Создание и редактирование документов

20.1. Первичная подготовка документов Характерной особенностью документов в MathCad является сочетание текстовых комментариев, формульных блоков и иных средств вычислений с результатами последних, представленными в числовой или графической форме. Именно такое сочетание обеспечивает высокую степень визуализации всего процесса вычислений, его наглядность. Первичная подготовка документов выполняется посредством ввода текстов и математических выражений с клавиатуры и с применением (там, где это нужно) палитр математических знаков, операторов и функций. Используются также средства форматирования, в том числе панель форматирования.

Рис. 32. Пример простого документа

59

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Один из простейших документов, иллюстрирующих особенности их представления, показан на рис. 32. Документ содержит простейшие арифметические вычисления, задание и вывод ранжированной переменной n (переменной с рядом значений), вычисление интеграла, производной и суммы (в том числе аналитические с помощью оператора —>), вычисление специальных функций и квадратного корня от комплексного числа и, наконец, построение графика трех функций. 20.2. Основы редактирования формульных блоков MathCad использует типовые средства редактирования, которые применяются в различных прикладных программах, например, в текстовых редакторах Word. Редактирование текстовых блоков сводится к изменению шрифтов, размеров и стиля символов, установке того или иного выравнивания текста и т. д. Ввиду общеизвестности этих приемов редактирования мы не будем их рассматривать подробно. Отметим только специфические приемы редактирования уже введенных выражений в формульных блоках MathCad. Основные правила редактирования выражений в MathCad следующие: – включение/выключение режима вставки — достигается нажатием клавиши Ins; – изменение направления ввода — достигается нажатием клавиши Ins или клавиш ; – перемещение курсора ввода — достигается нажатием клавиш после задания изменения направления ввода; – расширение курсора ввода — достигается нажатием клавиши Пробел; – вставка оператора — достигается установкой курсора между операндами (например, если а и b — операнды, и между ними надо вставить оператор +, –, * или /) и вводом символа оператора (курсор ввода при этом имеет вид — L); 60

– вставка оператора после части выражения — достигается выделением курсором ввода части выражения и затем вводом оператора (обычно с последующим вводом операнда); – вставка квадратного корня — достигается выделением курсором ввода подкоренного выражения и затем вводом знака \ или знака + на цифровой части клавиатуры (не у всех видов клавиатур); – вставка унарного минуса — достигается выделением фрагмента выражения, перед которым ставится знак минус, и нажатием клавиши Insert, а затем клавиши — (минус); – удаление оператора — достигается установкой курсора ввода после оператора и нажатием клавиши Backspace; – вставка фрагмента выражения в скобки — достигается охватом выражения курсором ввода и набором символа одиночной кавычки ' (не путайте с апострофом); – освобождение выражения от скобок — достигается установкой курсора ввода справа от открывающей скобки и нажатием клавиши Del или установкой курсора ввода слева от закрывающей скобки и нажатием клавиши Backspace; – освобождение выражения от прямых скобок (оператора абсолютного значения) — достигается установкой курсора ввода справа от первого знака и нажатием клавиши Backspace или установкой курсора ввода слева от второго знака и нажатием клавиши Del; – задание выражения в качестве аргумента функции — достигается охватом курсором ввода выражения, вводом скобок, расширением курсора для охвата всего выражения (со скобками) и вводом имени функции — например, с применением кнопки f(x) на панели инструментов; – отказ от неверно проделанной операции — достигается выбором команды Undo в меню Edit или щелчком на кнопке Undo на панели инструментов; – повторение удаленной операции — достигается выбором команды Redo в меню Edit или щелчком на кнопке Redo на панели инструментов; – выход из формульного блока — достигается нажатием клавиши I, I или Enter. 61

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

20.3. Выделение фрагментов документа

ражений является умение выделять их целиком или в виде отдельных фрагментов. По существу, это означает замену одноматематических выражений Важным элементом редактирования мерного курсора в виде синей вертикальной черты на курсор является умение выделять их целиком или в виде отдельных фрагдвухмерный в виде синего уголка,замену выделяющего частькурсора выражементов. По существу, это означает одномерного в ния. виде синей вертикальной черты на курсор двухмерный в виде синего В выделяющего MathCad выделение с помощью мыши практически не уголка, часть выражения. отличается от выделение выделенияс текстовых выражений. Напомним, что помощью мыши практически не отличаВ MathCad для этого достаточно установить указатель мыши на начало выется от выделения текстовых выражений. Напомним, что для этоделяемого фрагмента, нажать левую кнопку и, удерживая ее, го достаточно установить указатель мыши на начало выделяемого двигать указатель к концу выделяемого фрагмента. Выделенный фрагмента, нажать левую кнопку и, удерживая ее, двигать указатель фрагмент помечаетсяфрагмента. темным фоном (см. рис.32, на котором так концу выделяемого помечается Выделенный фрагмент ким образом выражение + 1 под корнем функции темным фономвыделено (см. рис.32, на которомхтаким образом выделено выпользователя ражение х + 1 f(х)). под корнем функции пользователя f(х)). Выделение текста обычно производится с целью изменеобычно производится с целью изменения стиВыделение текста ния стиля надписи, начертания и т. д. ля надписи, шрифта,шрифта, начертания и т. д. рис.33 приведен пример, в котором выделенный фрагНаНарис. 33 приведен пример, в котором выделенный фрагмент был вначале стерт нажатием клавиши другим. Del, а затем мент был вначале стерт нажатием клавиши Del, азаменен затем заменен и другие объекты. 33 Одновременно были изменены другим. Одновременно были изменены и другиеСравните объекты.рис. Сравс рис.рис.33 32, и вы заметитеи множество изменений в числах, формулах и ните с рис.32, вы заметите множество изменений в чисграфиках. лах, формулах и графиках.

Выделение фрагментов математических выражений необходимо для изменения шрифтов, которыми набирается выражение. Например, для изменения шрифта в математических формулах достаточно выделить одну букву, установив выделение в виде жирной вертикальной черты сразу после буквы. Затем можно воспользоваться средствами модификации шрифтов. 21. Основные операции редактирования 12. Основные операции редактирования 21.1. Подготовка к вводу нового документа и выбор стиля документа Подготовка к вводу нового документа и выбор стиля документа с изображением чистого листалиста на панели Кнопка New (создать) Кнопка New (создать) с изображением чистого на инструментов или команда New в меню Fileв(файл) служат для слусоздапанели инструментов или команда New меню File (файл) нияжат нового документа. Как документа. отмечалось,Как щелчок на кнопке Newнаведля создания нового отмечалось, щелчок дет ккнопке открытию пустого окна и заданию normal (см. New ведет к открытию пустогостиля окна документа и заданию стиля дорис.кумента 1). А вотnormal команда меню Fileкоманда выводитNew окноменю для задания сти(см.New рис.1). А вот File вывоокно для задания стилей будущего документа (рис.34). лей дит будущего документа (рис. 34).

Рис.34. стилядокумента документа Рис. 34.Окно Окно выбора выбора стиля

Рис. 33. Документ, показанный на рис. 32, после редактирования

62

– 67 –

После выбора стиля будет создан новый документ, имя коПосле выбора стиля будет создан новый документ, имя которого торого Untitled: N, где N – порядковый номер документа. В каUntitled: N, где N — порядковый номер документа. В качестве примечестве примера на рис.35 показан шаблон документа в форме ра на рис. 35 показан документа в форме электронной книги электронной книгишаблон (стиль bookone). (стиль bookone). После создания шаблона документа можно начинать вводить его содержание с клавиатуры с применением (при необходимости) палитр математических знаков и функций. Примеры этого мы уже 63 рассматривали. Обратите внимание, что шаблон bookone (и другие шаблоны, кроме normal) вводят в документ различные текстовые бло-

работа идет в автоматическом режиме, так что в документе будут представлены не только задания, но и результаты вычислений.

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Рис.35. Документ электроннойкниги книги bookone Рис. 35. Документввстиле стиле электронной bookone

Затем, после щелчкадокумента на кнопке Открыть диалогового окна, доСохранение Для сохранения с текущим именем достаточно кумент будет загружен и документа с ним можно начинать работу, например, на панели инструментов щелкнуть напо кнопке Save (сохранить) с в умолчанию работа идет просматривая его содержание. Обычно изображением магнитного диска. Файл документа будет записан автоматическом режиме, так что в документе будут представлены не в тузадания, же папку, он былвычислений. вызван. Если документ ранее не только но откуда и результаты записывался, то появится диалоговое окно для его записи. Это же окно (рис.36) появляется при выборе команды Save As (со21.3.File. Сохранение документа хранить) как в меню Обратите внимание, что в окне сохранения файлов открыт Для сохранения документа текущим именем достаточно на параскрывающийся список длясвыбора типа сохраняемого файла. нели инструментов щелкнуть на кнопке Save (сохранить) с изобраПечать документа жением магнитного диска. Файл документа будет записан в ту же Для печати текущего документа достаточно на панели инпапку, откуда он был вызван. Если документ ранее не записывался, струментов щелкнуть на кнопке Print (печать) с изображением то появится окноокно для того его записи. Это же окноустанов(рис. 36) принтера.диалоговое Будет вызвано принтера, который появляется при выборе команды Save As (сохранить) как в меню лен в операционной системе. Вид окна зависит от примененного File.драйвера принтера.

После создания шаблона документа можно начинать вводить – 70 – его содержание с клавиатуры с применением (при необходимости) палитр математических знаков и функций. Примеры этого мы уже рассматривали. Обратите внимание, что шаблон bookone (и другие шаблоны, кроме normal) вводят в документ различные текстовые блоки в виде заголовков разделов, поясняющих надписей и др. Они задаются на английском языке, но их легко сделать русскоязычными. 21.2. Загрузка ранее созданных документов Наряду с вводом простых документов с клавиатуры возможна работа с ранее созданными документами. Для этого достаточно щелкнуть на второй кнопке панели инструментов (с изображением открывающейся папки) или воспользоваться командой Open (открыть) в меню File (файл). Появится диалоговое окно поиска файла загружаемого документа. Диалоговое окно поиска файлов — типичное для Windows-приложений. С его помощью можно установить накопитель, просмотреть файловую систему текущего диска, выбрать папку и найти файл. 64

Рис.36. Загруженный окно сохранения документа Рис. 36. Загруженный документ документ ииокно сохранения документа

Обратите внимание, что в окне сохранения файлов открыт раскрывающийся список для выбора– типа 71 – сохраняемого файла.

65

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

21.4. Печать документа Для печати текущего документа достаточно на панели инструментов щелкнуть на кнопке Print (печать) с изображением принтера. Будет вызвано окно того принтера, который установлен в операционной системе. Вид окна зависит от примененного драйвера принтера. 22. Основы работы с блоками документов

22.1. Выделение блоков Документ в MathCad состоит из отдельных блоков прямоугольной формы. Они могут быть различного типа: тексты (комментарии), формулы, графики, таблицы и т. д. Каждый блок занимает в текущем окне определенную по размерам область. Для конструирования блоков служат три встроенных в систему редактора: текстовый, формульный и графический. Для выделения нескольких блоков можно проделать следующий эксперимент. Поместите указатель мыши в нерабочую часть экрана и, удерживая левую кнопку, перемещайте указатель мыши по диагонали. Вы увидите, как на экране пунктирной черной линией выделится прямоугольник. Добейтесь, чтобы в него попало несколько объектов — формул, таблиц, графиков. Все они окажутся обведенными прямоугольниками из пунктирных линий (рис. 37). Как только левая кнопка мыши будет отпущена, прямоугольник, выделенный мышью, исчезнет, но выделенные блоки останутся. Эти прямоугольники являются границами блоков (обычно невидимыми). Несколько выделенных таким образом блоков образуют группу. Она ведет себя как единое целое — ее можно перемещать мышью, копировать в буфер обмена и стирать.

Рис.37. блоками Рис.Документ 37. Документссвыделенными выделенными блоками Копирование и вырезание блоков блоков 22.2. Копирование и вырезание Используя кнопки или клавиши вырезания (Cut, F3 или или клавиши вырезания (Cut, кнопки(Copy, F3 или перенести CtrL + X) CtrL Используя + X) и вставки F4 или Ctrl + V), можно и вставки (Copy, V), можно перенестиивыделенные F4 вили Ctrl +обмена выделенные блоки буфер (Clipboard) поместить блоих на ки в буфер обмена (Clipboard) и поместить их на новое место, указанновое место, указанное курсором. Это дает возможность быстное курсором. Это дает возможность быстрого наведения порядка в рого наведения порядка в расположении блоков. На рис.38 покарасположении блоков. На рис. 38 показан документ, представленный зан документ, представленный ранее на рис.37, после нажатия ранее на рис. 37, после нажатия клавиши F3. клавиши F3. заметить, что в данном случае все выделенные в докуНетрудно Нетрудно заметить, что в данном менте блоки исчезли, оказавшись в буфереслучае обмена.все выделенные в документе блоки исчезли, оказавшись в буфере обмена. 22.3.блоков Вставкаиз блоков из буфера в документ Вставка буфера в документ Если щелкнуть на кнопке Paste (вставить) или нажать клаЕсли на кнопке Paste (вставить) нажать клавишу F4 вишу F4 щелкнуть (не меняя положения курсора),илиисчезнувшие блоки (не меняя положения курсора), исчезнувшие блоки вновь появятся вновь появятся на своем месте, и документ вернется к своему на своем месте, и документ вернется к своему прежнему виду (см. прежнему виду (см. рис.38). Можно также переместить курсор рис. 38). Можно также переместить курсор ввода на новое место и, ввода новое F4место и, нажав клавишу F4 поместить (или щелкнув нажавна клавишу (или щелкнув на кнопке Paste), удален-на кнопке Paste), поместить ный блок в новом месте. удаленный блок в новом месте.

66

67

– 73 –

можно использовать для перемещения группы объектов MathCad из одного окна в другое окно, причем как MathCad, так и вообще другого приложения.

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Рис.39. Процесс перемещения группы из трех блоков из одной Рис. 39. перемещения Процесс перемещения группы трехблоков блоков из одной Рис.39. Процесс группы из из трех части документа в другую из однойдокумента части документа в другую части в другую Рис. 38. Виддокумента, документа, показанного на рис. после нажатия F3 Рис.38. Вид показанного на37,рис.37, послеклавиши нажатия клавиши F3

Поочередное применение клавиш F3 и F4 или кнопок Cut и Copy Поочередное применение клавиш F3 ипорядок F4 или скнопок Cut и на панели инструментов позволяет навести расположениCopy на панели инструментов позволяет навести порядок с расем блоков в документе.

положением блоков в документе.

22.4. Перетаскивание объектов вMathCad окне MathCad Рис.38. Вид документа,объектов показанного на рис.37, после нажатия Перетаскивание в окне клавиши F3 Зацепив указателем мыши любой из выделенных блоков и указателем любой из выделенных блоков и нажав нажавЗацепив ее левую кнопку,мыши можно перетаскивать блоки с одного Поочередное применение клавиш блоки F3 и F4 или кнопок Cut и ее левую кнопку, можно перетаскивать с одного места на друместа на другое. Рис.39 иллюстрирует процесс перемещения Copy панели инструментов позволяет навести порядок с расгое. на Рис. иллюстрирует перемещения группы из трех блогруппы из39трех блоков с процесс конца документа в правую часть его положением в документе. ков с концаблоков документа в правую часть его начала. начала. Отпустив левую кнопку мыши, можно увидеть обведенные пунПеретаскивание объектов в окне MathCad Отпустив левую кнопку мыши, можно увидеть обведенные ктирными прямоугольниками блоки в новом месте. Для снятия выЗацепив указателем мыши любой из выделенных и пунктирными прямоугольниками блоки в новом месте. блоков Для сняделения надо отвести указатель мыши в сторону и щелкнуть левой нажав ее левуюнадо кнопку, можно перетаскивать блоки сиодного тия выделения отвести указатель мыши в сторону щелккнопкой. Пунктирные прямоугольники тут же исчезнут, и мы увиместалевой на другое. Рис.39 иллюстрирует процесс тут перемещения нуть кнопкой. Пунктирные прямоугольники же исчездим документ в виде, представленном на рис. 40. группы из трех блоков с конца документа в правую часть его Этот метод перемещения объектов получил название Drag and начала. – 74 – Drop (тащи и отпускай) или перетаскивания. В данном случае он реОтпустив левую кнопку мыши, можно увидеть обведенные ализован в пределах одного окна документа. Его также можно испунктирными прямоугольниками блоки в новом месте. Для сняпользовать для перемещения группы объектов MathCad из одного тия выделения надо причем отвестикак указатель мыши сторону и щелкMathCad, так и ввообще окна в другое окно, другого принуть левой кнопкой. Пунктирные прямоугольники тут же исчезложения. 68

– 74 –

Рис.39. Процесс перемещения группы из трех блоков из одной части документа в другую Рис. 40. Документ, показанный на рис.39, после перемещения блоков

из одного места в другое после перемещения Рис.40. Документ, показанный на рис.39, Рис.40. Документ, показанный на рис.39, после перемещения блоков из одного места в другое блоков из одного места из в другое 22.5. Перетаскивание объектов окна MathCad

в окно объектов другого приложения Перетаскивание из окна MathCad в окно Перетаскивание объектов из окна MathCad в окно другого приложения Рис.40. Документ, показанный на рис.39, после перемещения другого приложения На рис. 41 представлен пример, когда группа из двух блоков пеблоков из одного в другое ремещается из окна МathСad в окноместа текстового редактора Word, раз75 – мещенное внутри окна MathCad–– (окна 75 – можно расположить и рядом). Перетаскивание объектов из окна MathCad окно Перетащив объекты описанным выше способом в окно вWord и другого приложения отпустив левую кнопку мыши, блоки появятся в окне Word. Иногда необходимо переместить блоки в новое окно, оставляя их – 75 – перетащить блоки при нажакопии в старом. Для этого необходимо той клавише Ctrl.

22.6. Расположение блоков в документе Расположение блоков в документе имеет большое значение. Их выполнение происходит слева направо и сверху вниз. Поэтому бло69

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

ков перемещается из окна МathСad в окно текстового редактора Word, размещенное внутри окна MathCad (окна можно расположить и рядом).

Так, при сложных расчетах их результаты могут оказаться гораздо ниже видимой части документа. 23. Ошибки в вычислениях и отладка вычислений

23.1. Ошибки и их виды

Рис.41. Завершение перемещения группы блоков с окна Рис. 41. Завершение перемещения группыиз из двух двух блоков в окно Word сMathCad окна MathCad в окно Word объекты описанным выше способом в окно ки не Перетащив должны взаимно перекрываться (хотя небольшое перекрытие Word и отпустив левую кнопку мыши, блоки появятся в окне обычно несущественно). Указанный порядок обработки блоков озWord. начает, что, например, при построении графика функции или таблипереместить блоки в новое окно,саму осцы ееИногда значенийнеобходимо вначале должны исполняться блоки, задающие тавляя их копии в старом. Для этого необходимо перетащить функцию и пределы изменения аргумента, а уж затем блок, задаюблоки при нажатой Ctrl. щий вывод таблицыклавише или построение графика функции. Все это — следствие работы системы в интерпретирующем режиме. Доступная область окна редактирования по горизонтали превышает видимую область на экране. При этом область окна делится длинной линией на две части, левую и правую. Горизонтальными линиями документ делится на страницы. Полосы прокрутки расположены снизу и справа в окне редактирования документа. Во всех случаях перемещение задается при нажатии и удержании левой кнопки мыши. Можно разместить некоторые вспомогательные вычисления в правой, невидимой части окна, а в левую, видимую, вынести задание исходных данных и вывод результатов расчетов. Этот прием очень – 76 – удобен и часто используется в учебно-демонстрационных программах. Создание документов с невидимой расчетной частью осложняется необходимостью выполнения блоков в строго заданном порядке. 70

Есть ошибки, в которых система MathCad неповинна. Прежде всего это ошибки в записях алгоритмов пользователем. Например, если в какой-то формуле пользователь вместо функции sin(х) запишет ln(х), то никакая система компьютерной математики такую ошибку не обнаружит, поскольку обе записи синтаксически абсолютно верные. Это типичная ошибка пользователя, не понявшего разницы между вычислением синуса х и логарифма х. Другой распространенный вид ошибок — синтаксические ошибки, или, попросту говоря, неправильные записи операторов и функций. Например, совершенно правильная с точки зрения математики запись arcsin(х), представляющая обратный тригонометрический синус, является грубейшей синтаксической ошибкой на входном языке системы MathCad, в котором эта функция обозначена проще — asin(х). Такого рода ошибки MathCad отлавливает. В сомнительных случаях стоит ввести шаблон функции, запись которой вызывает у вас неуверенность в ее правильности. Напоминаем, что список всех встроенных функций появляется при щелчке на кнопке f(x) панели инструментов. Часто в MathCad путается подстрочное написание символов в именах переменных с индексом массивов — векторов и матриц. Нередко пользователи путают векторы с ранжированными переменными и не следят за разницей между скалярными и векторными величинами. Несоответствие типов переменных — еще один повод для многочисленных ошибок. Например, нельзя применять арифметические операторы для переменных, имеющих строковые значения. 71

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

подсказку). Трассировка23.2. ошибок Индикация ошибок В системе MathCad применена программа трассировки Индикация ошибок MathCad задается двумя признаками:ошибки ошибок в документах, которая позволяет «вылавливать» выражение или его часть окрашиваются ошибочноешагах на –различных вычислений. Если установить ярко-красуказатель ным цветом; мыши в область ошибочного выражения и щелкнуть правой – при мыши, наведении на область ошибки указателя появляется кнопкой появится контекстное меню, в мыши котором имеется всплывающая подсказка с сообщением о сути ошибки. команда трассировки ошибок –Trace Еrrоr (см. рис.43). Выбрав рис. 42 показаны оба отмеченных вида индикации ошибок эту На команду, можно наблюдать появление удлиненного окна (из-за отсутствия цвета вы увидите только всплывающую подсказку). трассировки ошибок (рис.44).

Рис.42. индикации ошибки в документе Рис.Пример 42. Пример индикации ошибки в документе Полный перечень насчитывает 23.3. ошибок Трассировка ошибок многие десятки их видов (см. приложение). В системе MathCad применена программа трассировки ошибок в документах, которая позволяет «вылавливать» ошибки на различных шагах вычислений. Если установить указатель мыши в область ошибочного выражения и щелкнуть правой кнопкой мыши, появится контекстное меню, в котором имеется команда трассировки ошибок –Trace Еrrоr (см. рис. 43). Выбрав эту команду, можно наблюдать появление удлиненного окна трассировки ошибок (рис. 44). Полный перечень ошибок насчитывает многие десятки их видов (см. приложение). Окно трассировки имеет четыре кнопки для перемещения по трассе ошибок с очевидным назначением (перемещение вперед, к – 79 – 72

следующей или последней ошибке, либо назад, к предыдущей или первой ошибке). Пятая кнопка, Close, закрывает окно трассировки. В нашем случае щелчок на кнопке Previous ведет к обнаружению ошибки в Рис.43. заданииОкно функции пользователя — вTrace ней для вычислений трассировки ошибок Error использована переменная, которой было задано значение символьОкно трассировки ной переменной s (рис. 44).имеет четыре кнопки для перемещения

по трассе ошибок с очевидным назначением (перемещение вперед, к следующей или последней ошибке, либо назад, к предыдущей или первой ошибке). Пятая кнопка, Close, закрывает окно трассировки. В нашем случае щелчок на кнопке Previous ведет к обнаружению ошибки в задании функции пользователя – в ней для вычислений использована переменная, которой было задано значение символьной переменной s (рис.42). В целом подобная трассировка достаточно примитивна, но для начинающих пользователей, безусловно, полезна. Однако польза от нее будет только в том случае, если внимательно анализировать сообщения обтрассировки ошибкахошибок (к сожалению, все они ангРис.Окно 43. Окно Trace ErrorError Рис.43. трассировки ошибок Trace лоязычные). Окно трассировки имеет четыре кнопки для перемещения по трассе ошибок с очевидным назначением (перемещение вперед, к следующей или последней ошибке, либо назад, к предыдущей или первой ошибке). Пятая кнопка, Close, закрывает окно трассировки. В нашем случае щелчок на кнопке Previous ведет к обнаружению ошибки в задании функции пользователя – в ней для вычислений использована переменная, которой было задано значение символьной переменной s (рис.42). Рис.44. Программа обнаружила ошибку в предшествующем Рис. Программа обнаружила ошибку в достаточно предшествующем выражениивыВ 44. целом подобная трассировка примитивна, но ражении для начинающих пользователей, безусловно, полезна. Однако В целом подобная трассировка примитивна, но анадля польза от нее будет только в том достаточно случае, если внимательно начинающихсообщения пользователей, безусловно, Однако от – 80 – (к полезна. лизировать об ошибках сожалению, все польза они ангнее будет только в том случае, если внимательно анализировать солоязычные). общения об ошибках (к сожалению, все они англоязычные). В общем случае лучший способ отладки документов — тщательный контроль вычислений на каждом их этапе с учетом особенностей конкретного алгоритма решаемой задачи. 73

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Г л а в а II 1. Программирование в MATHCAD. Основные сведения

Для написания программ служит панель математических инструментов Programming, которая может быть вызвана щелчком на соответствующей кнопке панели инструментов Math. После щелчка на любой кнопке панели инструментов Programming в программу вставляется тот или иной оператор. Все операторы вставляются только щелчком на соответствующей кнопке и ни в коем случае не набираются с клавиатуры. 1.1. Создание программы Для того, чтобы превратить обычное однострочное выражение в многострочное (программу), достаточно щелкнуть на кнопке с надписью Add Line. Это приведет к тому, что в рабочей области документа появится вертикальная черта, а справа от нее 2 поля ввода, в которые можно ввести 2 строки программы. Если далее нужно будет добавить еще строки, то достаточно снова щелкнуть на кнопке Add Line. Внутри программы можно использовать глобальные переменные, но лучше использовать локальные (доступ к которым можно осуществить только из самой программы). Для присваивания значения локальной переменной используется символ ←. Любая программа должна возвращать некоторое значение как результат вычислений: это может быть как число, так и функция. 74

Возвращаемое значение записывается в последней строке программы, либо с помощью оператора return. Самый важный оператор при программировании — это присваивание значения переменной. Оператор присваивания изображается стрелкой, направленной справа налево, и находится также в верхнем ряду кнопок на панели инструментов Programming. Здесь же расположены кнопки if и otherwise, нужные для записи оператора условного перехода и кнопки for, while, break и continue — для создания циклов и управления ими. Кнопки return и onerror пригодятся при записи функций. Основные средства обычного программирования с использованием операторов сосредоточены в палитре Programming: AddLine

– создает и при необходимости расширяет жирную вертикальную линию, справа от которой в шаблонах задается запись программного блока; ← – локальное присваивание в теле модуля программы; if – создание условного выражения; for – задание цикла с фиксированным числом повторений; while – задание цикла типа «пока»; otherwise – иной выбор (обычно применяется с оператором if); break – прерывание; continue – продолжение; return – возврат; onerror – обработка ошибок.

Для проверки условий в MathCad служит оператор if. Этот оператор имеет 2 поля ввода (справа и слева от слова if). В правое поле ввода вводится условие, а в левое поле ввода вводится команда или последовательность команд, которые следует выполнить в случае истинности условия. Если невыполнение условия должно привести к выполнению какого-либо другого программного кода, можно в строке, следующей за оператором if, вставить оператор otherwise. В поле ввода слева от этого оператора необходимо ввести строку программы, которая будет выполняться только в том случае, если не выполнилось условие, заданное в операторе if. 75

Если в программе введено подряд несколько строк с оператором if, то выражение слева от otherwise будет выполнено только в том случае, если не выполняются условия, заданные во всех операторах if. Если в программе введено подряд несколько строк с оператором

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

if, то выражение слева от otherwise будет выполнено только в том слупалитру Programming можново одним из вариан-if. чае, Вызвать если не выполняются условия, заданные всех операторах тов, выполнив: Вызвать палитру Programming можно одним из вариантов, вы1. Один щелчок. ЛКМ (Один щелчок левой клавиши мыши) по полнив: кнопке1.ProgrammingToolbar на панели выбора Math. Один щелчок. ЛКМ (Один щелчок левойпалитр клавиши мыши) по 2. кнопке Последовательность команд из главного меню ProgrammingToolbar на панели выбора палитр Math. View⇒Toolbars⇒Programming. 2. Последовательность команд из главного меню View ⇒ Toolbars ⇒ Programming. результатевв поле поле рабочего рабочегодокумента документапоявляется появляетсяпалитра, паВВ результате литра, представленная на 1.рис. 1. представленная на рис.

ным нажатием кнопки AddLine соответствующее число раз (на рис. 2 –этап 1показан результат трехкратного нажатия). В появившиеся место заполнители введите желаемый программный код, используя программные операторы на панели Programming, введите выражение х>0 (рис. 2 — этапы 2, 3, 4). Для вставки программных операторов применять лишь сочетания После того как можно программный модуль полностью определен иклавиш, ни один котоместо заполнитель не остался пустым, функция может использоваться обычным образом, как в рые приведены в тексте всплывающей подсказки (рис. 2). численных, так и в символьных расчетах. Этап 1

Этап 2

Этап 3

Этап 4

Рис.2. Этап

Рис. 1. Вид панели Programming и Math

Рис.1. Вид панели Programming и Math

Чтобы создать программный модуль, введите часть выражения, которая будет находиться слева от знака присваивания и сам знак Чтобы создать программный модуль, введите часть выприсваивания. При необходимости вызовитеслева на экран панель инструментов ражения, которая будет находиться от знака присваивания Programming (рис. 1). Нажмите на этой панели кнопку AddLine (Добавить линию). – 84 – Если приблизительно известно, сколько строк кода будет содержать программа, можно создать нужное количество линий повтор76

Рис. 2. Этапы вставки программного оператора

После того как программный модуль полностью определен и ни один место заполнитель не остался пустым, функция может использоваться обычным образом, как в численных, так и в символьных расчетах. 1.2. Создание программных блоков Программный блок может быть использован при определении переменной или при задании функции пользователя. 77

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

В программном блоке количество операторов, используемых для получения результата, неограниченно. Более того, в блоке есть возможность использования 10 дополнительных операторов, которые находятся в палитре Programming. Вставить строку программного кода в уже созданную программу можно в любой момент с помощью той же самой кнопки AddLine. Для этого следует предварительно поместить на нужное место внутри программного модуля линии ввода. Основной принцип создания программных модулей заключается в правильном расположении строк кода, фрагменты кода одного уровня сгруппированы в программе с помощью вертикальных черт. Локальное присваивание обозначается символом ←. Оператор Локальные переменные "не видны" извне, из других час← выполняет функции внутреннего, локального присваивания. тей документа. Ни оператор оператор выво«неприсваивания:=, видны» извне, изни других частей докуЛокальные переменные да = в пределах программ не применяются. мента. Ни оператор присваивания :=, ни оператор вывода = в предеЛокальное присваивание и пример его применения для лах программ не применяются. задания программного модуля – функции пользователя иллюстЛокальное присваивание и пример его применения для задания прорируются рис. 3. граммного модуля — функции пользователя иллюстрируются рис. 3. Переменные и t существуют только внутри программы, Переменные b и t bсуществуют только внутри программы, выдевыделенной вертикальной чертой. Из других мест документа ленной вертикальной чертой. Из других мест документа получить их получитьневозможно. их значения невозможно. значения

кальные переменные, которые «не видны» извне, из других частей документа. Присваивание значений переменным в программе производится с помощью оператора локального присвоения, который вставляется нажатием кнопки с изображением стрелки ← на панели Programming (Программирование). Ни оператор присваивания :=, ни оператор вывода = в пределах программы не применяются. Оператор локального присваивания иллюстрируется MathCADдокументом, который приведен на рис. 4. В пределах программного модуля возможно локальное присваивание значений и встроенным переменным.

Рис. 4. Оператор локального присваивания

1.4. Программирование разветвляющихся вычислительных процессов 1.4.1. Условный оператор if Оператор if является оператором для создания условных выражений и может быть представлен в виде:

Рис. 3. Локальное присваивание в программе

Выражение if Условие

1.3. Программирование линейных вычислителных процессов 1.3. Программирование линейных вычислителных процессов Локальное присваивание 1.4. Программирование развевляющихся вычислителных Язык программированияпроцессов MathCAD не был бы эффективным, если бы не позволял создавать внутри программных модулей ло1.4.1. Условный оператор if

Действие условного оператора if состоит из двух частей. Сначала проверяется логическое выражение (условие) справа от него. Если оно истинно, выполняется выражение слева от оператора if. Если ложно, — ничего не происходит, а выполнение программы продолжается переходом к ее следующей строке. Вставить условный оператор в программу можно следующим образом (рис. 5):

Рис.3. Локальное присваивание в программе

78

Оператор if является оператором для создания условных выражений и может быть представлен в виде: Выражение if Условие

79

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Вставить условный оператор в программу можно следующим образом ( рис. 4):

Рис.5. Вставка условного оператора в программу

Совместно с этим оператором часто используются операторы

Совместно с этим оператором часто используются операпрерывания break и оператор иного otherwise. выбора otherwise. торы прерывания break и оператор иного выбора рис. 67рассмотрена рассмотрена последовательность НаНа рисунке последовательность создания создания програмпрограммного блока для определения функции f(x), много блока для определения функции f(x), 0, если х > 3



где f ( x ) =  где

Рис. 5. Вставкаусловного условного оператора Рис.4. Вставка оператораввпрограмму программу

Если необходимо, часть выражения и Если необходимо, введитевведите левую левую часть выражения и оператор оператор присваивания. присваивания. программного кода,нажав нажав на на паСоздайтеСоздайте новую новую строкустроку программного кода, панели нели Programming кнопку AddLine . Нажмите кнопку условного Programming кнопку AddLine . Нажмите кнопку условного оператора if. оператора if. Справа от оператора if введите условие. Пользуйтесь логическиСправа от оператора if введите условие. Пользуйтесь ломи операторами, вводя их с панели Boolean (Булевы операторы). гическими операторами, вводя их с панели Boolean (Булевы Выражение, операторы). которое должно выполняться, если условие истинно, Выражение, которое введите слева от оператора if. должно выполняться, если условие истинно, введите слева от оператора if. дополнительные условия, Если в программе предусматриваются Если в программе предусматриваются добавьте в программу еще одну строку нажатиемдополнительные кнопки AddLine и условия, добавьте в программу еще одну строку нажатием кнопвведите их таким же образом, используя оператор if или otherwise. ки AddLine и введите их таким же образом, используя оператор Оператор otherwise используется совместно с одним или нескольif или otherwise. кими условными операторами if и указывает на выражение, которое Оператор otherwise используется совместно с одним или будетнесколькими выполняться, если ни операторами одно из условий не оказалось истинным. условными if и указывает на выражение, Условие которое будет выполняться, если ни одно значение из условийВыражене Если выполняется, то возвращается оказалось истинным. ния. Пример: Если Условие выполняется, то возвращается значение Выражения. Пример: – 88 –

Рис.5. Вставкаусловного условного оператора оператора вв программу Рис. 6. Вставка программу

80

Совместно с этим оператором часто используются операторы прерывания break и оператор иного выбора otherwise. На рисунке 6 рассмотрена последовательность создания программного блока для определения функции f(x),

2

 9 − x в остальных случаях Последовательность операций, выполняемых при создании программного блока, приведенная на рис. 6, следующая: • Ввести левую часть определения функции и активизировать поле ввода; • Нажать кнопку для создания программного блока AddLine; • Перейти в верхнее поле и выполнить 1щ.ЛКМ по кнопке if ; Заполнить шаблоны верхнего поля блока. Слева 0, а справа поставить знак >. Заполнив появившийся шаблон, > , перейти в нижнее поле, нажать кнопку otherwise и заполнить нижнее поле. – 89 –

Рис. 7. Создание Создание программного Рис.6. программногоблока блока

На рис. 7 приведен пример определения при функции с ис- проПоследовательность операций, выполняемых создании пользованием программного блока и с использованием встрограммного блока, приведенная на рис. 7, следующая: енной функции if. Сопоставление результатов позволяет сделевую • Ввести определения и активизировать лать вывод, чточасть при двух вариантах функции возвращаемых значений поле ввода; удобно пользоваться как блоком, так и встроенной функцией if. • Нажать кнопку для создания AddLine; Если же число вариантовпрограммного больше двух, блока использование встроеннойвфункции затруднительным. • Перейти верхнеестановится поле и выполнить 1щ.ЛКМ по кнопке if ; Заполнить шаблоны верхнего поля блока. Слева 0, а справа поставить знак >. Заполнив появившийся шаблон, > перейти в нижнее поле, нажать кнопку otherwise и заполнить нижнее поле. На рис. 8 приведен пример определения функции с использованием программного блока и с использованием встроенной функции if. Сопоставление результатов позволяет сделать вывод, что при двух вариантах возвращаемых значений удобно пользоваться как блоком, так и встроенной функцией if. – 90 – 81

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Рис. Рис.7. 8. Использование программного блока и встроенной if Использование программного блока ифункции встроенной

функции if Если же число вариантов больше двух, использование встроенной функции становится программного затруднительным. Использование блока при создании функИспользование блока 8. при создании функции ции пользователя программного приведено на рисунке Рассматривается пользователя приведено назадача рис. 9.определения коэффициента треРассматривается задача определения (l) в ния ( λ ) в турбулентном потоке прикоэффициента перемещении трения жидкости или газа зависит от при значения критерияжидкости Рейнольдса( ) изависит отнотурбулентном потоке перемещении илиRe газа шероховатости труб ((Re) е ). иКоэффициент трения выотсительной значения критерия Рейнольдса относительной шероховачисляется дляКоэффициент новых чугунных труб и чугунных труб, бывших тости труб (е). трения вычисляется для новых чугунв эксплуатации. Эквивалентный труб de=38мм, абсоных труб и чугунных труб, бывших вдиаметр эксплуатации. Эквивалентный лютная шероховатость ( sh ) приняты равными 0.5 и 1.4 соотдиаметр труб de = 38 мм, абсолютная шероховатость (sh) приняты ветственно. равными 0.5 и 1.4 соответственно. На рис. 9 расчет коэффициента трения производится по одной из трех возможных формул в зависимости от значения абсолютной шероховатости. Приведены вычисления для конкретного значения критерия Рейнольдса и при задании критерия в виде ранжированной переменной для построения графиков зависимостей коэффициента трения от критерия Рейнольдса.

– 91 –

82

Рис. 9. Иллюстрация использования программного блока для расчета Рис.8. Иллюстрация использования программного блока коэффициента трения в турбулентном потоке

для расчета коэффициента трения в турбулентном потоке

1.5. Программирование циклических вычислителных На рис. 8 расчет коэффициента трения производится по процессов одной из трех возможных формул в зависимости от значения абсолютной шероховатости. вычисления 1.5.1. Организация цикловПриведены при помощи операторадля for конкретного значения критерия Рейнольдса и при задании критеВ языке MathСad для имеются два оператора рия в видепрограммирования ранжированной переменной построения графицикла: for и while. ков зависимостей коэффициента трения от критерия РейнольдПервый из них дает возможность организовать цикл по некотоса. рой переменной, заставляя ее пробегать некоторый диапазон значений. Второй создает цикл с выходом из него по некоторому логичес– 92 – кому условию. 83

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

логическому условию. Оператор цикла for с ранжированной переменной x :=

z← 0 for i ∈ 0 .. 5

x = 15 Оператор цикла for с вектором

while

z← z+ i

Оператор цикла

ражение, при нарушении которого должен осуществляться выход из цикла (листинг 6.8). В нижний место заполнитель введите тело цикла, т. е. выражения, которые должны выполняться циклически. Диапазон значений в условии for можно Припеременной необходимости дополнитецикла программу другимизастродать как с помощью ранжированной переменной, так и с ками и диапазона введите в них нужный код. помощью вектора. Диапазон значений переменной в условии цикла for можнослужит задать как помощью диапазона перемендлясорганизации цикловранжированной с заданным числом Оператор for ной, так и с помощью вектора. повторений выражений, помещаемых в шаблон: Оператор for служит для организации циклов с заданным forVar ∈ Nmin .. Nmax числом повторений выражений, помещаемых в шаблон:  forVar∈Nmin .. Nmax Цикл for используется тогда, когда известно число повторений  операций в цикле. Цикл for используется тогда, когда известно число повторенийвычисления операций в цикле. Ниже дан пример суммы n членов натурального Ниже дан пример вычисления суммы n членов натуряда чисел с применением оператора for: рального ряда чисел с применением оператора for: sum ( n) :=

s←0 for i ∈ 1 .. n s←s+i

sum ( 10) = 55 sum ( 20) = 210

1.5.2. Организация циклов при помощи оператора while Рис. 10. Вставка оператора оператора цикла Рис.9. Вставка цикла

Чтобы вставить в программный модуль оператор цикла, необходимо выполнить следующие действия: – 93 – 1. Создайте в программном модуле новую линию. 2. Вставьте один из операторов цикла for или while нажатием одноименной кнопки на панели Programming . Если выбран оператор for (рис. 10), то вставьте в соответствующие место заполнители имя переменной и диапазон ее значений (листинги 6.6 и 6.7), а если while — то логическое выражение, при нарушении которого должен осуществляться выход из цикла (листинг 6.8). В нижний место заполнитель введите тело цикла, т.е. выражения, которые должны выполняться циклически. При необходимости дополните программу другими строками и введите в них нужный код. 84

Оператор while служит для организации циклов, действующих 1.5.2. Организация циклов при помощи оператора – 94 – while до тех пор, пока выполняется некоторое условие: while УсловиеОператор while служит для организации циклов, дейст-

вующих до тех пор, пока выполняется некоторое условие: while Условие Ниже представлен пример на задание функции вычисления фак Ниже представлендвухступенчатого пример на задание функции вычислеториала F(n) с применением программного модуфакториала F(n) с применением двухступенчатого проля с цикломния while: граммного модуля с циклом while: 

F ( n) :=

f←n while 1 f ← f ⋅ ( n − 1) n←n−1 break f

if n

1

F ( 3) = 6 F ( 10) = 3.629 × 106

Если выполняемая программа «зациклилась», то ее можно остановить нажатиемЕсли клавиши [Esc]. выполняемая программа «зациклилась», то ее можно остановить нажатием клавиши [Esc]. На рис.16 приведен пример использования оператора while для решения задачи по поиску в массиве x первого элемента, превосходящего заданное значение a. Здесь же показано, как использовать оператор break, чтобы предотвратить возможность ошибки, если величина a слишком большая.

85

1.5.2. Примеры программирования оператора цикла

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

На рис. 11 приведен пример использования оператора while для решения задачи по поиску в массиве x первого элемента, превосходящего заданное значение a. Здесь же показано, как использовать оператор break, чтобы предотвратить возможность ошибки, если величина a слишком большая.

Пример 1. Построение фрактала «кукуруза».В качестве 1.5.3. Примеры программирования оператора цикла примера применения программного приведем качестве документ, начало Пример 1. Построение модуля фрактала «кукуруза».В примера применения программного модуля приведем документ, начало котокоторого представлено на рис. 10. Он демонстрирует построение рого представлено на рис. 11. Он демонстрирует построение «само«самоподобной» фигуры – фрактала «Кукуруза». подобной» фигуры — фрактала «Кукуруза».

Рис.10. Использование оператора цикла while в программном блоке

Рис. 11. Использование Использование оператора цикла while вwhile программном блоке Рис.10. оператора цикла в программном Результат решения блоке представлен вектором, содержащим Результат решения представлен вектором, содержащим номер номер элемента и его значение: элемента Результат и его значение: решения представлен вектором, содержащим Рис. 12. Программа построения фрактала «кукуруза» (начало документа) Рис.11. Программа построения фрактала «кукуруза» (начало номер элемента и его значение: 3 1   f ( x,1.56) =    f ( x,1) =   документа) Конец документа показан на рис. 13. Он и впрямь напоминает  − 1.99   − 0.46  3 1   ячеистую структуру кукурузного початка. x, который по абсолютной fРезультатом ( x,1.56) =  поискаэлемента  f ( x,1) массива =  46a=1.56, Конец документа показан на рис. 11. Он и впрямь напо − 1.99  − 0.элемента заданное значение  величине превосходит является элемент по абРезультатом поиска массива x, который Пример 2. Получение в блоке нескольких результатов одноврес номером три.солютной При задании a=0.4превосходит цикл прерывается, значение минаетменно ячеистую структуру кукурузного початка. величине заданное т.к. значение a=1.56, яв(рис. 14). первого элемента x=0 соответствует максимальному значению x и ляется элемент с номером три. При задании a=0.4 цикл прерыРезультатом поиска элемента массива x, который по абоно меньше a. вается, т.к. значение первого элемента x=0 соответствует максолютной величине превосходит заданное значение a=1.56, яв86 ляется элемент с номером три. При задании a=0.4 цикл преры87 – 96 – вается, т.к. значение первого элемента x=0 соответствует мак-

– 97 –

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Пример 3. Представление параметра цикла в виде скалярных величин, списка вектора и простой переменной.

Рис.11. 13. Фрактал построенный программным модулем Рис. Фрактал«кукуруза», «кукуруза», построенный программным модулем

Пример 2. Получение в блоке нескольких результатов одновременно.

– 98 –

Рис. 14. Получение в блоке нескольких результатов одновременно

Рис.12. Получение в блоке нескольких результатов одновременно 88 Пример 3. Представление параметра цикла в виде скалярных

Рис. 15. Представление параметра цикла в виде скалярных величин, Рис.13. Представление параметра цикла в виде скалярных весписка вектора и простой переменной личин, списка вектора и простой переменной Пример 4. Использование функции пользователя в виде программного блока. Пример 4. Использование функции пользователя в виде про-

граммного блока.

– 100 –

Рис. 16.Рис.14. Использование функциифункции пользователя в виде программного Использование пользователя в виде про- блока граммного блока

На рис. 12 вычисляются суммы и произведения элементов векторов Х и У. Результат решения задачи оформлен в виде

89

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

На рис. 14 вычисляются суммы и произведения элементов векторов Х и У. Результат решения задачи оформлен в виде одновременного определения. Представлены возможные варианты использования функции f(n,x,y). На рис. 15 вычисляется сумма скалярных величин. Параметр цикла задан в виде скалярных величин и в форме списка вектора и простой переменной. На рис. 16 представлено использование функции пользователя в виде программного блока. Рассмотрим вычисление значения p методом Монте-Карло (рис. 17).

Рис.Рис. 17. Вычисления значениязначения p методом Монте-Карло с использованием 15. Вычисления π методом Монте-Карло программного блока с использованием программного блока

1.6. Прерывание 1.6. Прерываниецикла циклапри припомощи помощиоператоров операторов Для управления ходомходом выполнения циклов используются два Для управления выполнения циклов используютоператора: оператороператор break и оператор continue. continue. ся два оператора: break и оператор Ниже Ниже приводится несколько вариантов их использования и соприводится несколько вариантов их использовапоставление их особенностей: ния и сопоставление их особенностей: Break Break — прерывает цикл и осуществляет переход к следующему – прерывает цикл и осуществляет переход к слеОператор break прерывает выполнение за дующему циклом оператору; за циклом оператору; Оператор break прерываетцикла, выи выполнение программы продолжается со строки, следующей со неполнение цикла, и выполнение программы продолжается посредственно за циклом. Ну а если такойзастроки нет,Ну то на этом таоно, строки, следующей непосредственно циклом. а если в общем-то, заканчивается. break можно применять не кой строкии нет, то на этомОператор оно, в общем-то, и заканчивается. Оператор break можно применять не только в цикле for, но и в 90 цикле while, хотя во втором из них он, конечно же, применяется реже; continue – оператор возврата, используемый для про-

только в цикле for, но и в цикле while, хотя во втором из них он, конечно же, применяется реже; continue — оператор возврата, используемый для продолжения работы программы после прерывания,прерывает выполнение только текущей итерации; return — оператор возврата, прерывающий вычисления в блоке и определяющий результат вычислений в блоке как значение операнда, стоящего следом; onerror — оператор обработки ошибок. Пример 5. Построить программный блок для реализации алгоритма метода касательных для вычисления корня функции: f(x)=sin(x)–1+x. На каждой итерации, на основе начального значения аргумента x вычисляется улучшенное значение x, которое размещает значение функции f(x) ближе к искомому нулю. Итерации выполняются, пока f(x) не станет меньше заданной точности. Желательно получить достаточную точность решения при не очень большом количестве итераций. На рис. 17 цикл прерывается оператором break, когда число итераций i ≥ 10. Проверка результатов выполнена с помощью функции rооt. Как подтверждает проверка, десяти итераций оказалось вполне достаточно: xns = 0,511 и root (f(x),x) = 0,511. Вариант алгоритма метода касательных, предложенный на рис. 17, можно улучшить. При выполнении вычислений целесообразно отслеживать ситуации, когда выполнено слишком много итераций, а также когда производная в знаменателе близка к нулю. Для таких случаев нужно предусмотреть прерывание цикла с выдачей соответствующих сообщений. С этой целью удобно использовать оператор return. С его помощью можно завершить вычисление в пределах программы в нужный момент и комментировать вычислительную ситуацию. На рис. 18 выполняется прерывание цикла, когда количество итераций i ≥ 10, при этом выводится сообщение о превышении заданного количества итераций, а также о близости к нулю производной в знаменателе формулы Ньютона, если наступает подобная ситуация. 91

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Рис.18. Прерыва Пример 6. Необходи Пример 6. Необходимо на отрезке [a, b] аргумента x нули выявить функции

нули функции

f(x) = (x – 0.5) · (x + 1) · (x – 2).

Составить про вии с алгоритмом: Составить программный блок поиска нулей в соответствии с ал1. Отрезок [a, b] де горитмом: b−a 1. Отрезок [a, b] делится на n равных интервалов (шагов h = ). n если знакдвижении не меняется 2. При по отрезку [a, b] на каждой, интервал итерации вычисля2. проПри движении п пускается, если знак меняется, то вычисляется координата сереются координаты точек начала и конца интервала и значение функляются координаты т дины интервала ). ции в этих точках: xn = a + h · i, f(xn) и xk = a + h · (i + 1), f(xkфункции в этих точка

4.

Рис.– 18. Прерывание цикла цикла иивыход из из программного блока блока Рис. 17 Прерывание выход программного с помощью оператора break с помощью оператора break

Рис. Прерывание 18. Прерываниецикла и return цикла операторами операторами break Рис.18. break и return. – 104 – Пример 6. Необходимо на отрезке [a, b] аргумента x выявить 92 нули функции

· Составить программный блок поиска нулей в соответст-

3. Выполняется проверка изменения знака функции на этом и это значение используется в качестве · f(xk) > 0), пропусинтервале: если знак не меняется (f(xn)значения 3. Выполняется пр начального приближения для поиска x, интервал при котором интервале: кается, если знак меняется, то вычисляется координата середины f ( x ) = 0 с помощью подпрограммы-функции newton( x, f , fx ) . интервалаРешение и это значение используется в качестве призадачи приведено на рис. 19. Дляначального пропуска итеближения для поиска значения при котором с помощью подпрорации используется оператор x, continue (он прерывает итерацию и передает управление на продолжение цикла). граммы-функции.

Рис. 19. Прерывание итераций оператором continue для пропуска интервалов, Рис.19. Прерывание итераций оператором continue для не содержащих содержащих нулей пропуска интервалов, не нулей – 106 –

93

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Решение задачи приведено на рис. 19. Для пропуска итерации используется оператор continue (он прерывает итерацию и передает управление на продолжение цикла). Пример тем,что чтоввпрограммном программномблоке блоке используетПример 77 интересен интересен используется Пример 7тем, интересен тем, что в программном блоке используется процедура-функция с запрограммированным алгоритмом процедура-функция с запрограммированным алгоритмом (еще прося процедура-функция с запрограммированным алгоритмом (еще программный блок и можноне использовать не один). Это граммный блок(еще и можно использовать удобно принепоспрограммный блок и один). можноЭто использовать один). Это удобносложных при построении сложных алгоритмов. троении алгоритмов. удобно при построении сложных алгоритмов. На20рис. 20 показан пример сигнализации Например рис. 20 показаниспользования пример сигнализации использования сигнализации На рис. показан использования ошибошибки с помощью оператора onerror при вычислении бино- бинос помощью оператора onerror биномиальных при вычислении ки с помощьюошибки оператора onerror при вычислении миальных коэффициентов. Начальное и конечное значение комиальных коэффициентов. Начальноекоэффициента и конечное значение кокоэффициентов. Начальное и конечное значение из эффициентаэффициента из n элементов по k равно 1 (для k=0 или из n элементов по k равно 1 (для k=0 или n элементов по k равно 1 (для k=0 или k=n).Остальные коэффициk=n).Остальные коэффициенты вычисляются непосредственно k=n).Остальные коэффициенты вычисляются непосредственно енты вычисляются непосредственно через факториалы. Особенность через факториалы. Особенность факториала быстро возрастать через факториалы. Особенность факториала быстро возрастать факториала возрастать приводит переполнению. Можно с приводит быстро к переполнению. Можно с кМожно помощью оператора onerприводит к переполнению. с помощью оператора onerпомощью оператора onerror фиксировать ошибку переполнения и в ror фиксировать ошибку переполнения и в этомислучае ror фиксировать ошибку переполнения в этом вычисслучае вычисэтом случае вычислять коэффициенты по формуле: лять коэффициенты по формуле: лять коэффициенты по формуле: .

Если аналитическая функция f(x) непрерывна на отрезке [a, b], то интегрирование в среде MathСad осуществляется достаточно просто — c помощью символьных вычислений. Надо вызвать на экран знак интеграла, указать значение подынтегральной функции, подставить пределы интегрирования и напечатать знак =. В том случае, если подынтегральная функция задана в виде таблицы, используют численные методы. На рис. 21 приведена программа интегрирования таблично заданной функции методом сплайнинтерполяции.

.

Рис. 20 – Переключение алгоритма оператором onerror Рис. 20. Переключение алгоритма оператором onerror на расчет Рис. 20по–другой Переключение алгоритма оператором onerror зависимости при переполнении 94

1.7. Численное интегрирование табличных данных

– 107 –

– 107 –

Рис. 21. Программа интегрирования таблично заданнойзаданной функции Рис.21. Программа интегрирования таблично методом сплайн-интерполяции функции методом сплайн-интерполяции

1.7. Глобальная интерполяция

95

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

1.8. Глобальная интерполяция Методом глобальной интерполяции получают интерполяционный многочлен единый для всей совокупности данных. в виде независимой переменной — х и заДанные представлены Для нахождения коэффициентов полинома решают систему висимой переменной — у. линейных уравнений. В среде MathСad решение системы лиДля нахождения линейных уравнений коэффициентов осуществляют в полинома матричнойрешают форме.систему При этом нейных уравнений. В среде MathСad решение системы линейных система принимает следующий вид: форме. При , откуда уравнений осуществляют в матричной этомследует система принимает следующий формальное решение вид: y = A · x,. откуда следует формальное ре22 приведена программа глобальной интер· y. шение x На = A-1рисунке поляции. На рис. 22 приведена программа глобальной интерполяции.

1.9. Программирование решения обыкновенных дифференциальных уравнений В этом разделе рассмотрим использование программирования для численного решения дифференциаль­ных уравнений без использования специальных программ MathСad для решения обыкновенных дифференциальных уравнений. Универсальным методом численного решения дифференциаль­ ных уравнений является конечно-разностный метод. При этом область непрерывного изменения аргумента аппроксимируют дискретным множеством точек, образующих конечно-разностную сетку. Исходное дифференциальное уравнение заменяют разностным, а искомую функцию — сеточной функцией. Таким образом, решение дифференциального уравнения сводят к вычислению значений сеточной функции в узлах конечно-разностной сетки. Обоснованность замены точного решения конечно-разностным приближением, его сходимость и устойчивость зависят от конкретных особенностей решаемых уравнений и выбранного метода численного решения. 1.9.1. Решение задачи Коши для дифференциального уравнения первого порядка Рассмотрим решение обыкновенного дифференциального уравнения первого порядка. В качестве примера выберем простейшее уравнение, аналитическое решение которого известно: у' = х + у у(0) = 1. На рис. 23 приведена программа конечно-разностного решения этой задачи. Сравнение результатов указывает на то, что метод Эйлера (первого порядка точности) может применяться в случае, когда не предъявляют высокие требования к точности решения.

Программа глобальной интерполяции Рис.Рис. 22.22. Программа глобальной интерполяции

96

97 – 110 –

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Модифицированный метод Эйлера (второго порядка точности) дает меньшую погрешность и сохраняет компактность, характерную для методов Эйлера. Метод Рунге-Кутта (четвертого порядка точности) практически обеспечивает совпадение численного и аналитического решений, но его прямое использование связано с громоздкими вычислительными процедурами. В приведенной программе использована встроенная функция rkfixed, в которой реализован метод Рунге-Кутта с фиксированным шагом интегрирования. Функция имеет пять аргументов: вектор начальных условий, координаты начальной и конечной точек интегрирования, число узлов и функция-вектор правых частей решаемых уравнений. Функция rkfixed возвращает матрицу с n+2 столбцами и п строками (n — число решаемых дифференциальных уравнений, n — число узлов сеточной функции). Нулевой столбец матрицы содержит значения независимой переменной, остальные — значения искомых функций и их производных в узлах конечно-разностной сетки. 1.9.2. Решение задачи Коши для системы дифференциальных уравнений первого порядка Рассмотрим задачу Коши для обыкновенного дифференциального уравнения второго порядка с заданными начальными условиями на отрезке [0,1]: у'' + у' – 2 · у = 0y(0) = 1, у'(0) = 3.

Для решения этой задачи необходимо перейти от уравнения второго порядка к системе также уравнений первого порядка, а также выбрать выбрать шаг конечно-разностной сетки и метод реш шаг конечно-разностной сеткиТаким и метод решения. образом, задачу Коши преобразовывают Кошивиду: преобразовывают к следующему Таким образом, задачу дующему виду:

Программа конечно-разностного решения Рис.Рис. 23.23.Программа конечно- разностного решения

98

– 112 –

На рисунке приведена программа 99 (с коммента решения поставленной задачи:

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

На рис. 24 приведена программа (с комментариями) решения поставленной задачи:

.

Рис. 24а. Программа решения Рис.24. Программа решениязадачи задачи

Сравнение результатов указывает на то, что Сравнение результатов указывает нарешения то, что модифицирешения рованным методом Эйлера и методом Рунге-Кутта практически совмодифицированным методом Эйлера и методом Рунге-Кутта падают. При этом модифицированный метод Эйлера является знапрактически совпадают. При этом модифицированный метод Эйлера более является значительно более компактным сравнению чительно компактным по сравнению с методомпо Рунге-Кутта. 100

Рис. 24б. Программа решения задачи

Рис.24. Программа решения задачи 101

– 115 –

– 117 –

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Метод Рунге-Кутта обеспечивает хорошие численные результаты, но его прямое использование приводит к необходимости оперировать громоздкими алгебраическими выражениями. 1.9.3. Решение краевой задач для дифференциального уравнения второго порядка Рассмотрим решение краевой задачи. В отличие от задачи Коши при постановке краевой задачи дополнительные условия задают в граничных точках области решения. Численное решение краевой задачи находят применением различных методов. Рассмотрим метод стрельбы решения краевой задачи для дифференциального уравнения второго порядка с заданными граничными условиями на отрезке [0,1]: у'' + 9 · у = x, y(0) = 1, y(1) = 2.

102

Приложение

Сообщения об ошибках Сообщение

Описание

array size mismatch Cannot be defined cannot take Subscript

Несоответствие размера массива He может быть определено He содержит верхних (нижних) индексов Переполнение стека определений definition Stack overflow did not find solution Решение не найдено dimension to non real power Размерность массива не целое число domain error Ошибка области определения Дублирование duplicate equation too large Слишком большое выражение error in constant Ошибка в константе error in list Ошибка в списке error in solve block Ошибка в блоке file error Ошибка в файле file not found Файл не найден illegal array operation Неверная операция с массивом illegal context Неверный контекст illegal factor Неверный множитель illegal function name Неверное имя функции illegal ORIGIN Неверное употребление ORIGIN illegal range Неправильный диапазон illegal tolerance Некорректная точность аппроксимации 103

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

incompatible units Index out Of bounds interrupted invalid order list too long misplased comma missing operand missing operator must be 3 vector must be array must be dimensionless must be increasing must be integer must be nonzero must be positive must be range must be real must be scalar must be vector Nested solve blok по matching Given no scalar value not a name not converging only one array allowed Overflow Significance lost Singularity stack overflow subscript too large too few arguments too few constraints too few elements too few Subscripts 104

Несовместимые единицы Индекс вне границ Прервано Неверный порядок Длинный входной список Неуместная запятая Пропущенный операнд Пропущенный оператор Должно быть трехмерным вектором Должно быть массивом Должно быть безразмерным Должно быть возрастающим Должно быть целым Должно быть ненулевым Должно быть положительным Должно быть диапазоном Должно быть вещественным Должно быть скаляром Должно быть вектором Вложенный блок решения Нет соответствующей директивы Given Не является скаляром He является именем Не конвертируется Допустим только один массив Переполнение Потеряны значащие цифры Деление на ноль Переполнение стека Слишком большой нижний индекс Слишком мало аргументов Слишком мало ограничений Слишком мало элементов Слишком мало нижних индексов

too large to display only one array allowed Overflow Significance lost Singularity stack overflow subscript too large too few arguments

Слишком велико, чтобы отобразить Слишком много аргументов Слишком много ограничений Слишком много точек Слишком много индексов He определено Дисбаланс скобок Неверный размер вектора

105

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Библиографический список

1. Дьяконов В. MathCad 2000: учебный курс. — СПб.: Питер, 2000. — 596 с.: ил. 2. Дьяконов В. MathCad 8/2000: специальный справочник. — СПб.: Питер, 2000. — 592 с.: ил. 3. Херхагер М., Партоль Х. MathCad 2000: полное руководство: Пер. с нем. — К.: Издательская группа ВНV, 2000. — 416 с. 4. Кудрявцев У.М. MathCad 8. — М.: ДМК, 2000. — 320 с.: ил. 5. Кирьянов Д.В. Самоучитель MathCad 2001. — СПб.: БХВ — Петербург, 2001. — 544 с.: ил. 6. Дьяконов В.П. MathСad 13/14. Энциклопедия. Серия: Наиболее полное руководство пользователя. — М.:СОЛОН-Пресс, 2007. — ... с. 7. Коробов В.И., Очков В.Ф. Химическая кинетика: введение с MathСad/Maple/MCS. — М.: Горячая линия — Телеком, 2009. — 384 с. 8. Холоднов В.А. Решение задач нелинейного программирования на основе градиентных методов с использованием системы компьютерной математики MathСad: методические указания / В.А.Холоднов, Е.С. Боровинская, В.П.Андреева, В.И. Черемисин. — СПб.: СПбГТИ (ТУ), 2010. — 69 с. 9. Холоднов В.А. Системный анализ и принятие решений. Математическое моделирование и оптимизация объектов химической технологии / В.А.Холоднов, Ас. М. Гумеров, Н.Н. Валеев, Гумеров Аз.М., В.М. Емельянов, В.Н. Чепикова, М.Ю. Лебедева // Учебное пособие. — СПб.: СПбГТИ (ТУ), 2006. — 340 с. 106

10. Володин В.М., Бутусов О.Б., Добролюбов Г.В. Алгоритмизация и программирование инженерных задач средствами Маткада: Учебное пособие. — М.: МГУИЭ, 2000. — 188 с. 11. Холоднов В.А. Математическое моделирование и оптимизация химико-технологических процессов / В.А. Холоднов, В.П. Дьяконов, Е.Н.Иванова, Л.С. Кирьянова // Практическое руководство. СПб.: АНО НПО «Профессионал», 2003. — 480 с. 12. Холоднов В.А. Математическое моделирование и методы реализации математических моделей / В.А. Холоднов, Е.Н. Иванова, Л.С. Кирьянова, В.М. Князьков, И.Н. Белоглазов// СПб.: Издательский дом. Руда и металлы, 2002. — 170 с. 13. Система MathCAD в инженерной практике: Лаб. работы / Сост.: А. Ю. Сенкевич, А. А. Чуриков. –Тамбов: Изд-во Тамб. гос. техн. ун-та, 2003. — 28 с.

107

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Содержание

Введение.......................................................................................................3 Глава I 1. Структура и запуск MathCad.............................................................5 2. Загрузка системы MathCad.................................................................5 3. Интерфейс пользователя....................................................................5 3.1. Общий обзор деталей интерфейса............................................6 3.2. Курсор ввода и линия раздела страниц...................................7 3.3. Строка заголовка...........................................................................8 3.4. Меню управления окном активного документа....................9 3.5. Строка меню...................................................................................9 4. Панель инструментов....................................................................... 10 4.1. Кнопки операций с файлами................................................... 10 4.2. Печать и контроль документов............................................... 12 4.3. Кнопки операций редактирования........................................ 12 4.4. Кнопки размещения блоков.................................................... 13 4.5. Кнопки операций с выражениями......................................... 13 4.6. Кнопки управления ресурсами............................................... 14 5. Панель форматирования................................................................. 15 6. Строка состояния.............................................................................. 16 7. Палитры математических знаков.................................................. 16 8. Полосы прокрутки............................................................................. 19 9. Всплывающие подсказки................................................................. 19 10. Контекстное меню........................................................................... 20

108

11. Алфавит входного языка системы MathCad............................. 20 11.1. Константы................................................................................ 21 11.2. Операторы................................................................................ 21 11.3. Встроенные функции............................................................. 22 11.4. Функции пользователя.......................................................... 22 11.5. Математические выражения............................................... 23 12. Переменные....................................................................................... 23 12.1. Локальное и глобальное присваивание............................ 24 12.2. Размерные переменные......................................................... 24 12.3. Ранжированные переменные.............................................. 26 12.4. Применение ранжированных переменных...................... 28 13. Выполнение арифметических операций.................................... 30 13.1. Арифметические операторы................................................ 30 13.2. Расширенные операторы...................................................... 31 14. Элементарные функции................................................................. 32 15. Специальные математические функции.................................... 34 16. Функции пользователя................................................................... 34 17. Работа с текстовым редактором................................................... 36 18. Работа с формульным редактором.............................................. 39 18.1. Примеры вычисления арифметических выражений и их редактирования....................................... 40 18.2. Использование шаблонов математических операторов и символов......................................................... 44 18.3. Вычисление математических функций............................. 46 18.4. Работа с матрицами и векторами....................................... 47 19. Начало работы с графикой............................................................ 52 19.1. Построение двумерного графика одной функции......... 55 19.2. Изменение размеров и перемещение графика................ 56 19.3. Построение графиков ряда функций................................ 57 20. Создание и редактирование документов................................... 59 20.1. Первичная подготовка документов................................... 59 20.2. Основы редактирования формульных блоков............... 60 20.3. Выделение фрагментов документа.................................... 62

109

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

21. Основные операции редактирования......................................... 63 21.1. Подготовка к вводу нового документа и выбор стиля документа..................................................... 63 21.2. Загрузка ранее созданных документов............................. 64 21.3. Сохранение документа.......................................................... 65 21.4. Печать документа................................................................... 66 22. Основы работы с блоками документов...................................... 66 22.1. Выделение блоков.................................................................. 66 22.2. Копирование и вырезание блоков..................................... 67 22.3. Вставка блоков из буфера в документ............................... 67 22.4. Перетаскивание объектов в окне MathCad...................... 68 22.5. Перетаскивание объектов из окна MathCad в окно другого приложения................................................ 69 22.6. Расположение блоков в документе.................................... 69 23. Ошибки в вычислениях и отладка вычислений....................... 71 23.1. Ошибки и их виды................................................................. 71 23.2. Индикация ошибок................................................................ 72 23.3. Трассировка ошибок............................................................. 72

1.6. Прерывание цикла при помощи операторов...................... 90 1.7. Численное интегрирование табличных данных................. 95 1.8. Глобальная интерполяция....................................................... 96 1.9. Программирование решения обыкновенных дифференциальных уравнений.............................................. 97 1.9.1. Решение задачи Коши для дифференциального уравнения первого порядка.......................................... 97 1.9.2. Решение задачи Коши для системы дифференциальных уравнений первого порядка............................................................................... 99 1.9.3. Решение краевой задач для дифференциального уравнения второго порядка........................................ 102 Приложение. Сообщения об ошибках............................................ 103 Библиографический список............................................................... 106

Глава II 1. Программирование в Mathcad. Основные сведения................ 74 1.1. Создание программы................................................................. 74 1.2. Создание программных блоков.............................................. 77 1.3. Программирование линейных вычислительных процессов...................................................................................... 78 1.4. Программирование разветвляющихся вычислительных процессов..................................................... 79 1.4.1. Условный оператор if..................................................... 79 1.5. Программирование циклических вычислительных процессов...................................................................................... 83 1.5.1. Организация циклов при помощи оператора for..................................................................... 83 1.5.2. Организация циклов при помощи оператора while................................................................ 85 1.5.3. Примеры программирования оператора цикла...... 87 110

111

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Учебное пособие

Гумеров Асхат Мухаметзянович Холоднов Владислав Алексеевич Пакет mathcad: теория и практика Часть I

Редактор В.П. Лащенова Технический редактор В.Н. Галкина Компьютерная верстка В. Калинин

Подписано в печать ... .08.2013. Формат 60x84 1/16. Бумага офсетная. Печать офсетная. Гарнитура «Minion Pro». Печ. л. ... Усл. печ. л. ... Тираж 500 экз. Заказ ... Издательство «Фн» Академии наук Республики Татарстан 420111, г. Казань, ул. Баумана, 20. Отпечатано