MathCAD 7.0
Активизация главного меню
Активизация главного менюКаждая позиция главного меню может быть сделана активной. Для этого достаточно указать на нее курсором — стрелкой мыши и нажать ее левую клавишу. Можно также нажать клавишу F10 и использовать клавиши перемещения курсора вправо и влево. Затем выбор фиксируется нажатием клавиши ввода Enter.
Для активизации главного меню без применения мыши достаточно нажать клавишу Alt. После этого, нажимая клавиши перемещения курсора, можно перемещать световое выделение по позициям меню. Выбрав нужную позицию для фиксации ввода ее операции, достаточно нажать клавишу Enter.
Еще один быстрый путь входа в нужное подменю — нажатие клавиши Alt и одновременно клавиши с буквой, которая на экране подчеркнута снизу в названии нужной позиции главного меню. Для всех позиций главного меню это прописная буква их имени. Важно не путать регистры смены языков и вводить соответствующую операцию латинскими буквами.
Если какая-либо позиция главного меню делается активной, она выводит ниспадающее подменю со списком доступных и недоступных (но возможных в дальнейшем) операций (команд). Доступные в данный момент операции даны четким шрифтом, а недоступные — шрифтом с характерным затенением, но позволяющим все же прочесть название операции. Перемещение по списку подменю и выбор нужной операции производятся аналогично тому, как это описано для главного меню, с той лишь разницей, что при управлении с клавиатуры используются клавиши перемещения курсора по вертикали.
Диалоговое окно поиска файла документа
15 Диалоговое окно поиска файла документа
Диалоговое окно поиска файлов — типичное для Windows-приложений. С его помощью можно установить дисковый накопитель, просмотреть файловую систему текущего диска, установить каталог и найти файл. Затем, после активизации кнопки ОК диалогового окна, документ будет загружен и с ним можно начинать работу, например просматривая его листинг. Обычно по умолчанию работа идет в автоматическом режиме, так что в документе будут представлены не только задание, но и результаты вычислений.
Вид документа в большом окне MathCAD при использовании обычных средств подготовки документов ничем не отличается от вида документа в более ранних версиях системы 2. 0—2. 50, ориентированных на MS-DOS. На рис. 1. 6 был показан вид основного окна MathCAD 7. 0 с загруженным в него документом.
Документ является одновременно и программой, задающей на специальном входном языке алгоритмы решения нужной задачи, и результатами этого решения, представленными в форме чисел, символов, таблиц или графиков. Благодаря этому документ скорее напоминает текст книги по математическим или инженерно-техническим расчетам, чем текст обычной программы. Столь важное достоинство всех версий системы MathCAD сохранилось в новых версиях лишь с той разницей, что текст, формулы и таблицы теперь выводятся разными цветами, шрифтами и размерами.
Документ с выделенными блоками
16 Документ с выделенными блоками
выделенных объектов. Он ведет себя как единое целое: его можно перемещать мышью, копировать в буфер обмена и стирать.
Сравнивая набор кнопок панели инструментов
Доступ к новым возможностям MathCAD 7. 0Сравнивая набор кнопок панели инструментов версий 7. 0 и 6. 0, можно отметить, что он имеет ряд заметных различий. Несколько изменилась группировка кнопок, ряд кнопок в версии 7. 0 исключен из панели инструментов, например для задания текстовых блоков. Однако в седьмой версии появились новые кнопки, дающие доступ к новым возможностям системы:
Insert Giperlink — обеспечивает создание гиперссылки;
(Включение гиперссылки)
Component Wizard — открывает окно Мастера, дающего удобный
(Мастер компонентов) доступ ко всем компонентам системы;
Run MathConnex — запуск системы для стимулирования блочно- (Запуск системы MathConnex) заданных устройств.
Экран системы MathCAD со всеми закрытыми окнами документов
Рис. 1. 6 Экран системы MathCAD со всеми закрытыми окнами документов
Позже будет описано, как модифицируется интерфейс системы. А пока стоит обратить внимание на некоторые типовые примеры вычислений в среде системы MathCAD. Первое, что бросается в глаза (см. рис. 1. 5), — естественность записи математических выражений и результатов их вычислений, что является главной отличительной чертой систем класса MathCAD.
Основную часть экрана занимает окно редактирования, первоначально пустое. Полосы прокрутки на нижней и правой кромке текущего окна (иногда называемые слайдеры) предназначены для перемещения изображения на экране по горизонтали и вертикали. Для этого достаточно установить курсор-стрелку мыши на строке прокрутки (квадратик со стрелкой, указывающей направление перемещения) и нажать левую клавишу мыши. При этом будет обеспечено плавное, но медленное перемещение изображения в окне. Можно перемещать изображение намного быстрее, установив курсор-стрелку в поле ползунка и также нажав клавишу мыши. При этом длина ползунка соответствует полной длине документа, так что курсором можно сразу приблизительно указать на часть документа, выводимую в окно.
Вверху окна на рис. 1. 4 видно несколько строк с типовыми элеменгами интерфейса. Верхняя строка — титульная. Она отображает название загруженного или вводимого с клавиатуры документа. В левой части строки помещена стандартная кнопка управления окном, а в правой части — три маленькие кнопки для свертывания окна, развертывания его во весь экран и закрытия. Уцепившись курсором мыши за титульную строку и держа нажатой левую клавишу мыши, можно с ее помощью передвигать окно (если оно не раскрыто на весь экран) по рабочему столу Windows 95.
Если используется русифицированная версия Windows, то левая кнопка титульной строки выведет на экран меню с русскими названиями позиций. Пользователям англоязычной версии MathCAD не стоит этому удивляться, как и названиям в меню, расположенной ниже кнопки. Дело в том, что эти кнопки типичны для всех Windows-приложений. Они относятся не к системе MathCAD как таковой, а ко всей системе Windows.
Полезно учесть, что нажатие правой клавиши мыши вызывает появление контекстно-зависимого меню. Позиции этого меню могут сильно отличаться от того, в каком режиме работает система и в каком месте был установлен курсор мыши перед нажатием правой ее клавиши. Заметим, что это также не свойство MathCAD — такая возможность предусмотрена в качестве элемента пользовательского интерфейса Windows.
Экран системы MathCAD с очищенным окном редактирования
Рис. 1. 4 Экран системы MathCAD с очищенным окном редактирования
Экран системы MathCAD с загруженным документом
5 Экран системы MathCAD с загруженным документом
Формульный редактор
Формульный редакторФактически система MathCAD интегрирует три редактора: формульный, текстовый и графический. Для запуска формульного редактора достаточно установить курсор мыши в любом свободном месте окна редактирования и щелкнуть левой клавишей. Появится визир в виде маленького красного крестика. Его можно перемещать клавишами перемещения курсора. Визир не надо путать с курсором мыши, он, как говорится, живет своей жизнью и имеет вид жирной наклонной стрелки.
Визир указывает место, с которого можно начинать набор формул — вычислительных блоков. Щелчок левой клавиши мыши устанавливает визир на место, указанное острием стрелки курсора мыши. В зависимости от места расположения визир может менять свою форму, к чему вы быстро привыкнете.
Так, в области формул визир превращается в синий уголок, указывающий направление и место ввода.
Главное меню
Главное менюВторая строка окна системы — главное меню. Оно будет описано в дальнейшем, пока же отметим, что работа с документами MathCAD обычно не требует обязательного использования возможностей главного меню, так как основные из них дублируются кнопками быстрого управления. Панели (строки) с ними находятся под строкой главного меню. Их можно выводить на экран или убирать с него с помощью соответствующих опций позиции View (Вид) главного меню Windows.
Обычно имеются две такие панели: панель инструментов (дублирующая ряд наиболее распространенных команд и операций) и панель форматирования для выбора типа и размера шрифтов и способа выравнивания текстовых комментарий. Эти панели видны на рис. 1. 3 и 1. 4.
в рабочем меню операционной системы
1 Группа значков MathCAD 7. 0 PRO в рабочем меню операционной системы Windows 95В прежних версиях MathCAD под Windows пиктограмма запуска имела вид калькулятора Некоторые пользователи поневоле из-за этого отождествляли MathCAD с микрокалькулятором в Windows Однако они отличаются примерно так же, как космический "челнок" отличается от бумажного голубка Видимо, учтя это, MathSoft изменила пиктограмму, изобразив ее в виде счетов, — вряд ли кто-либо заподозрит, что MathCAD 7 О PRO уподобляется этаким большим электронным счетам
Запустив MathCAD из Windows, вы на некоторое время (зависит от быстродействия ПК) увидите довольно скромное титульное окно (рис 1 2)
Оно вскоре сменится основным окном системы (рис 1 3) Последнее представляет собой некий гибрид типового окна Windows программ и диалогового окна, столь привычного для пользователей ранних версий MathCAD
Обычно при первой загрузке системы ее окно появляется не полностью открытым и вокруг него видны пиктограммы других приложений менеджера программ Windows 95 Однако на рис 1 3 основное окно MathCAD раскрыто на весь экран, пользователи Windows 95 знают, что для раскрытия окна надо активизировать среднюю из трех кнопок, расположенных в правом верхнем углу основного окна системы
При запуске системы в центре основного окна обычно появляется меньшее окно — Tip of the Day, — которое позволяет быстро ознакомиться с возможностями MathCAD Однако для наших пользователей польза от этого окна весьма сомнительна, поскольку описание дано на английском языке Для переключения тем служит кнопка Next Tip, а для перехода к работе с MathCAD — кнопка ОК Можно отключить появление этого окошка, удалив мышью птичку в прямоугольнике в нижнем левом углу окошка Tip of the Day
Инсталляция и запуск системы
1. 2. Инсталляция и запуск системыСистемы MathCAD 7. 0 PRO поставляются на CD-ROM (возможна поставка минимальных версий и на 3, 5-дюймовых дискетах). При этом полная инсталляционная версия MathCAD 7. 0 PRO с документацией и демонстрационной версией программы Axum 5. 0 (Техническая графика и анализ данных) занимает чуть более 100 Мб. Система ориентирована на операционные системы Windows 95 и Windows NT и имеет возможности подготовки документов в формате, принятом для глобальной сети Internet.
Для установки системы MathCAD 7. 0 PRO нужен ПК класса 486 и выше (желателен Pentium/Pentium MMX/Pentium Pro/Pentium II) с емкостью ОЗУ не менее 12 Мб (рекомендуется 16 Мб и выше). Инсталляция в минимальном объеме требует 18 Мб на жестком диске, а типовая — даже 55 Мб. Для полного использования системы должны быть проинсталлированы приложения, с которыми она может работать совместно: Microsoft Internet Explorer 3. 02, Excel, MatLAB 4. 02 и Axum 5. 0.
Как отмечалось, новые версии MathCAD дополнены возможностью вывода анимационных изображений, получивших название "живого" видео. Для реализации звукового сопровождения "живого" видео необходимо оснащение ПК аудиоадаптером, совместимым со звуковыми картами класса Sound Blaster, и звуковыми колонками.
Таким образом, полноценное использование MathCAD 7. 0 возможно только на самых современных 32-разрядных ПК, оснащенных новейшими средствами мультимедиа. Разумеется, отказавшись от мультимедийных средств, вы сможете использовать все основные возможности системы MathCAD.
С учетом отмеченных особенностей инсталляция системы не вызывает каких-либо проблем и проходит довольно гладко. Если возникают специфические трудности (как правило, при неудачной и нетиповой конфигурации ПК), следует ознакомиться с довольно детальной инструкцией по инсталляции, приведенной в файле readme.
После инсталляции в рабочем окне системы Windows вы обнаружите окно с пиктограммами системы. Пиктограмма с изображением счетов и надписью MathCAD PLUS 7. 0 служит для запуска системы. Однако это окно существует недолго и, закрывшись, более не появляется, переходя в рабочее меню операционной системы. На рис. 1. 1 показано раскрытое рабочее меню операционной системы Windows 95 с позициями, в которых видны значки и наименования их для приложения MathCAD 7. 0 PRO.
То, что система MathCAD 7. 0 PRO предназначена для профессионалов, вовсе не означает, что для обычных пользователей работа с системой будет в чем-то сложнее, чем с упрощенной версией MathCAD 7. 0 STANDARD. Эти версии имеют одинаковый пользовательский интерфейс и отличаются лишь полнотой набора встроенных операторов и функций и объемом сопроводительной документации Так что вопреки логике работа именно с версией PRO проще для любого пользователя, ведь именно эта версия содержит наиболее мощный справочно-информационный раздел и широчайшие возможности не медленного применения

Использование линеек прокрутки
Использование линеек прокруткиПолосы прокрутки расположены снизу и справа в окне редактирования документа С их помощью можно перемещать окно просмотра документа по горизонтали и по вертикали Плавно это делается с помощью концевых кнопок прокрутки Можно также задать перемещение окна просмотра с помощью передвигаемого ползунка или установкой курсора мыши на полосу. Во всех случаях перемещение задается при нажатии и удержании левой клавиши мыши.
Если, воспользовавшись полосами прокрутки, вывести в текущее окно обычно невидимую часть документа, на экране дисплея появится расчетная часть задачи (рис 1 19). Она содержит довольно специфические вычисления над данными с применением аппарата вычислений в комплексной форме, поэтому нет смысла объяснять их
Создание документов с невидимой расчетной частью осложняется необходимостью выполнения блоков в строго заданном порядке. Так, при сложных расчетах их результаты могут оказаться намного ниже видимого текста документа. Заглядывая вперед, скажем о двух приемах, облегчающих решение этой задачи. Первый — использование оператора глобального присваивания (знак в виде трех горизонтальных черточек =) В этом случае присваивание может находиться в любой точке документа (например, в его начале или в самом конце) Второй прием — расположение блоков по вертикали так, чтобы исполняемые в первую очередь блоки были чуть выше тех, которые будут исполняться позже
История создания и возможности системы
1. 1. История создания и возможности системыВскоре после окончания второй мировой войны потребность в автоматизации математических расчетов привела к созданию компьютеров (computer — в буквальном переводе "счетная машина"). Но широкого применения первые поколения таких машин на электронных лампах не получили. Они были дороги и громоздки, а потому доступны лишь специалистам.
С развитием микроэлектроники появились специализированные, предназначенные для математических расчетов миниатюрные компьютеры личного пользования — программируемые калькуляторы [I]. Они широко применяются и сейчас. Однако в последние годы массовое распространение получили куда более мощные, быстрые и универсальные персональные компьютеры (ПК), имеющие превосходные графические возможности и используемые практически во всех сферах науки, производства, бизнеса и образования.
Одной из основных областей применения ПК и поныне являются математические и научно-технические расчеты. Бесспорным лидером среди массовых ПК стали IBM-совместимые ПК 486DX/Pentium/Pentium MMX/Pen-tium Pro/Pentium II, называемые так по типу используемых в них микропроцессоров. На них и ориентированы современные математические системы и, в частности, описываемая в этой книге новейшая система MathCAD 7. 0 PRO, появившаяся в 1997 г.
Само по себе появление компьютеров не упрощало математические расчеты, а лишь позволяло резко повысить скорость их выполнения и сложность решаемых задач. Пользователям ПК, прежде чем начинать такие расчеты, нужно было изучать сами компьютеры, языки программирования и довольно сложные методы вычислений, применять и подстраивать под свои цели программы для решения расчетных задач на языках Бейсик [2] или Паскаль. Поневоле ученому и инженеру, физику, химику и математику приходилось становиться программистом, к сожалению, порою довольно посредственным.
Необходимость в этом отпала лишь после появления интегрированных математических программных систем для научно-технических расчетов: Eureka [З], PC MatLAB [4], MathCAD [5-7, II], Maple V [12], Mathematica 2 или 3 [13] и др. Большое число подобных разработок свидетельствует о значительном интересе к ним во всем мире и бурном развитии компьютерных математических систем.
Широкую известность и заслуженную популярность еще в середине 80-х годов приобрели интегрированные системы для автоматизации математических расчетов класса MathCAD, разработанные фирмой MathSoft (США). По сей день они остаются единственными математическими системами, в которых описание решения математических задач дается с помощью привычных математических формул и знаков. Такой же вид имеют и результаты вычислений. Так что системы MathCAD вполне оправдывают аббревиатуру CAD (Computer Aided Design), говорящую о принадлежности к наиболее сложным и продвинутым системам автоматического проектирования — САПР. Можно сказать, что MathCAD — своего рода САПР в математике [7, 8].
С момента своего появления системы класса MathCAD имели удобный пользовательский интерфейс — совокупность средств общения с пользователем в виде масштабируемых и перемещаемых окон, клавиш и иных элементов. У этой системы есть и эффективные средства типовой научной графики, они просты в применении и интуитивно понятны. Словом, системы MathCAD ориентированы на массового пользователя — от ученика начальных классов до академика.
MathCAD — математически ориентированные универсальные системы. Помимо собственно вычислений они позволяют с блеском решать задачи, которые с трудом поддаются популярным текстовым редакторам или электронным таблицам. С их помощью можно не только качественно подготовить тексты статей, книг, диссертаций, научных отчетов, дипломных и курсовых проектов, они, кроме того, облегчают набор самых сложных математических формул и дают возможность представления результатов, в изысканном графическом виде.
В последнее время особый интерес проявляется к системам компьютерной алгебры, способным выполнять не только числовые, но и аналитические вычисления. В 80-е годы школа советского академика В. М. Глушкова внесла большой вклад в разработку таких программных систем (язык Аналитик) и в создание инженерных мини-ЭВМ, аппаратно реализующих аналитические вычисления (серия «Мир»). К сожалению, эти ЭВМ были вытеснены вначале машинами класса ЕС-ЭВМ, а затем и персональными компьютерами, и теперь мы наблюдаем развитие нового поколения зарубежных систем компьютерной алгебры, ориентированных на современные массовые ПК.
Однако прошло много лет, прежде чем серьезные системы символьной математики (компьютерной алгебры) появились на массовых IBM-совместимых ПК. К ним и относится новое поколение систем MathCAD под Windows [8, 11] и ряд других математических систем, таких, как Derive [10], Maple V и Mathe-matica 2 и 3. Применение их облегчает самые сложные математические, статистические и финансово-экономические расчеты, для проведения которых раньше приходилось привлекать научную элиту — математиков-аналитиков.
Пользователи, работающие с математическими программами, особенно в области символьной математики, в недалеком прошлом не были избалованы удобными и красивыми интерфейсами этих программ. Все внимание было уделено математической корректности программ и богатству их функциональных возможностей.
Многие известные математические программы для ПК класса IBM PC — от некогда популярного языка символьных вычислений Reduce [18] до мощной, быстрой и легко развиваемой системы MatLAB под MS-DOS — имели примитивный интерфейс, заимствованный из опыта начинающих программистов и любителей «дедушки» Бейсика, в новых версиях почитаемого и поныне. А системы с более современным (в конце 80-х годов) многооконным интерфейсом, например Eureka фирмы Borland [3], серьезному математику казались примитивными.
К сожалению, нашим пользователям пока очень мало известны возможности систем символьной математики, поскольку соответствующей литературы до недавнего времени почти не было. Наконец, в 1996 г., спустя три года после объявления о предстоящем выходе, была издана книга автора [10] по системе символьной математики Derive под MS-DOS. Тем временем за рубежом каждой системе символьной математики уже посвящены десятки книг.
Неплохо бы соединить приятное с полезным! К такому выводу первой пришла фирма MathSoft (США), разработчик подлинного шедевра среди математических систем — MathCAD. Из обзоров автора [7, 8] и его справочной книги [5] многие читатели уже знают, что отличительной чертой интегрированных математических систем MathCAD является подготовка документов, которые объединяют задание исходных данных, математическое описание их обработки и результаты вычислений (в виде числовых данных, таблиц и графиков). Вид документа в MathCAD почти ничем не отличается от вида научной статьи. Удачно решена в MathCAD проблема передачи изменений числовых данных в формулах по всей цепочке вычислений.
В начале 90-х годов произошло давно ожидаемое событие: серьезная математика "в лице" интегрированной системы MathCAD 3. 0 прорвалась в окна системы Windows [11]! Триумфальное шествие последней началось с того, что корпорация Microsoft наводнила рынок графических операционных систем своей многооконной и многозадачной системой Windows 3. 0/3. 1 с ее прекрасной графикой и удобным пользовательским интерфейсом. После этого почти все фирмы — разработчики программных средств наперегонки бросились дорабатывать свои программы под Windows.
Ко времени выпуска MathCAD 3. 0 под Windows далеко не каждый наш пользователь имел под рукой ПК класса 386 или 486 с установленной на нем операционной системой Windows. Однако обзор западной литературы по информатике и тенденций развития вычислительной техники убедительно показывал, что система Windows стремительно выдвинулась на роль лидера среди современных операционных систем для персональных компьютеров. Большинство серьезных программных продуктов было переработано под Windows 3. 1/3. 11, а сейчас уже под 32-разрядную (в основном) операционную систему Windows 95. В то же время число программ под MS-DOS стремительно сокращается.
На Западе уже давно прекращен серийный выпуск ПК на микропроцессорах 286 и 386, сворачивается производство ПК на процессорах класса 486. В России ситуация также изменилась. Новое поколение ПК — это машины серии Pentium/ Pentiun MMX/Pentium Pro/Pentium II. Стоимость их постоянно снижается, и ПК этого класса становятся доступными не только для организаций, но и для домашних пользователей.
Сейчас наиболее часто приобретаемыми ПК уже становятся машины с микропроцессорами класса Pentium MMX 166/200, поддерживающими 57 новых команд для реализации средств мультимедиа. В последнее время парк ПК только в России ежегодно возрастает примерно на миллион машин, а общее число IBM-совместимых ПК превысило 200 миллионов.
Вероятно, уже в ближайшие год-два ПК с процессорами Pentium MMX и Pentium II (упрощенный вариант Pentium PRO с мультимедиа-командами) станут основным типом персональных компьютеров даже дома. Их производительность в сотни раз превышает производительность первых ПК IBM PC XT. Именно на машины этого класса и ориентированы версии MathCAD 7. 0 и PLUS 7. 0 PRO, хотя, в принципе, вполне возможна их работа и на ПК с микропроцессором 486 (с частотой работы не менее 66 МГц).
Все это создает предпосылки к массовому переходу на старшие версии системы MathCAD под Windows. Тем более что пользователи, работающие с системой MathCAD под MS-DOS, всегда ощущали определенный дискомфорт из-за присущих ей принципиальных пороков, унаследованных от операционной системы MS-DOS. К примеру, при альтернативной кодировке символов знакогенераторов дисплея и принтера пропадала большая часть греческих букв, широко используемых в математических формулах. Много недоразумений возникало при печати документов на принтерах, искажались некоторые математические спецзнаки, нарушались форматы таблиц и т. д. Качество печати также оставляло желать лучшего. Шрифты не имели сменных наборов стилей, их размеры были фиксированными.
Не только профессионалы-аналитики, но и просто любители и почитатели математики быстро теряли интерес к системе, как только возникала необходимость в выполнении даже простейших символьных вычислений: нужных для этого средств версии системы MathCAD под MS-DOS были попросту лишены. Да и набор математических формул (не говоря уже об их поиске в справочных книгах) был занятием далеко не самым легким и приятным, поскольку требовал знания десятков комбинаций различных клавиш.
Опыт работы автора даже с первой системой MathCAD под Windows (версия 3. 0) позволяет сделать вывод, что студенты, аспиранты, инженеры и ученые получили превосходный инструмент для повседневной работы. Теперь для написания научной статьи или диссертации они могут обойтись только системой MathCAD под Windows и встроенными в Windows средствами.
К средствам новых версий MathCAD относятся настройка под любой мало-мальски известный тип печатающего устройства, богатый набор шрифтов, возможность использования всех инструментов Windows, прекрасная графика и современный многооконный интерфейс. А в версию MathCAD 7. 0 PRO включены эффективные средства цветового оформления документов, создания анимационных (движущихся) графиков и звукового сопровождения. Тут же текстовый, формульный и графический редакторы, объединенные с мощным вычислительным потенциалом. Предусмотрена и возможность объединения с другими мощными математическими и графическими системами для решения особо сложных задач. Отсюда и название таких систем — интегрированные системы.
Математики, физики и ученые из других, смежных отраслей науки давно мечтали о математически ориентированном языке программирования для записи алгоритмов решения математических и научно-технических задач в наиболее удобной, компактной и доступной для понимания форме. Для этого они пытались приспособить различные языки программирования высокого уровня — Фортран, Алгол, Бейсик, Паскаль и др. Но их попытки так и не увенчались успехом: программы на этих языках, увы, ничем не напоминали привычные математические и физические символы и формулы, с которыми все привыкли работать и с помощью которых описываются решения математических задач.
Выпустив за какие-то три года целую серию систем MathCAD, ориентированных под Windows и имеющих некоторые средства для выполнения символьных операций компьютерной алгебры, фирма MathSoft наглядно показала свое несомненное лидерство в быстрой разработке популярных математических систем. Этому способствовало привлечение к разработкам систем MathCAD известной компании Waterloo Maple Software — создательницы одной из самых мощных и интеллектуальных систем компьютерной алгебры Maple V [12].
Совсем недавно лидером среди систем компьютерной алгебры признавалась система Mathematica 2 фирмы Wolfram [13]. Но сегодня ей на пятки уже наступает упомянутая система Maple V R3 с реализацией под Windows [12]. Появилась и новая версия этих систем — Maple V R4. Впрочем, уже есть и новая мощная версия системы Mathematica 3. Однако все эти системы имеют явный избыток средств символьной математики, что удобно для математиков высшей квалификации, но отнюдь не для массового пользователя.
Роль главной математической системы для большинства пользователей по-прежнему осталась за MathCAD. Системы этого класса отличает простота, удобный пользовательский интерфейс и тщательно продуманные, отобранные и ориентированные на нужды большинства пользователей математические возможности. К тому же системы ориентированы на ПК разных классов с различными аппаратными ресурсами — от обычных AT 386 с памятью 2 Мб до машин Pentium/Pentium MMX/Pentium PRO/Pentium II с ОЗУ не менее 12 Мб.
Оставаясь по-прежнему мощной системой для численных расчетов, MathCAD начиная с версии 3. 0 приобрела возможности выполнения некоторых символьных операций, т. е. стала системой компьютерной алгебры. Для этого по лицензии фирмы Maple в систему MathCAD было введено несколько урезанное ядро символьных операций от системы Maple V. Число таких операций, доступных пользователю из меню, тщательно оптимизировалось и было ограничено тем разумным минимумом, который необходим массовому пользователю. Тем не менее символьные возможности систем расширялись от версии к версии; наиболее полно они представлены в версии MathCAD 7. 0 PRO.
Начиная с версии 4. 0 система MathCAD стала 32-разрядной. Это означает, что для ее работы задействованы самые быстрые и эффективные команды современных микропроцессоров, прежде всего класса Pentium и Pentium Pro. В результате, несмотря на заметное увеличение математических возможностей и улучшение пользовательского интерфейса, скорость работы системы не только не уменьшилась, но и заметно возросла.
Объективности ради надо отметить, что мультимедийные команды новых процессоров класса ММХ в MathCAD 7. 0 PRO пока не задействованы, так что применение в ПК процессоров этого класса дает лишь незначительный выигрыш в производительности по сравнению с работой на ПК, оснащенных обычными процессорами Pentium. Этот выигрыш составляет порядка 7—10% и достигается за счет большей емкости кэш-памяти у процессоров класса ММХ и некоторых архитектурных улучшений.
Помимо ориентации на Windows 95 новые версии системы MathCAD содержат множество усовершенствований: удобное и простое управление мышью, более совершенный редактор документов, возможность выполнения наиболее распространенных символьных вычислений, объединенные в единый центр ресурсов встроенные электронные книги, мощная справочная система и многочисленные примеры применения — шпаргалки QuickSheets.
Системы реализуют типовые и весьма обширные возможности Windows, включая доступность множества шрифтов, поддержку всех типов принтеров, одновременное выполнение нескольких разнохарактерных задач и (в последних версиях) реализацию механизмов обмена объектами OLE2. В режиме редактирования возможна одновременная работа с восемью документами (точнее, с восемью окнами, из которых лишь одно является активным).
Предусмотрен импорт любых графических изображений — от простых и специальных графиков функций до многокрасочных репродукций художественных произведений. Введены средства анимации рисунков и проигрывания видеофайлов со звуковым стереофоническим сопровождением. Это значительно улучшает визуализацию самых сложных расчетов.
Справочная база данных о системе в MathCAD 7. 0 PRO гораздо полнее и изящнее, чем в ранних версиях. Она позволяет ознакомиться с основными возможностями MathCAD, разумеется, если пользователь хорошо владеет английским языком. Увы, в отличие от русифицированных версий MathCAD PLUS 6. 0 PRO справочная база данных в версии 7. 0 реализована на английском языке (как и вся прочая документация), что и явилось главным побудительным мотивом к подготовке данной книги. В систему встроены прекрасные справочники по математическим формулам и таблицы с физическими и химическими характеристиками различных веществ.
Особый интерес представляют встроенные в систему электронные книги, содержащие справки (математические формулы), иллюстрации и примеры применения системы по ряду разделов математики, механики, физики, электротехники и радиотехники, а также по интерфейсу системы. Можно выделить нужную справку — формулу или рисунок — и перенести ее в текст документа. В сочетании с возможностью импорта графических файлов из других графических систем (таких, как VISIO, AutoCAD, PCAD, TurboCAD и др.) это позволяет готовить документы, в которых наряду с расчетной частью будут и высококачественные иллюстрации.
Существенно улучшены графические возможности системы. В ранних версиях при построении графиков функций перечисление их функций шло в одну строчку. Это приводило к смещению графика от левой части экрана вправо. Кроме того, было неясно (особенно при монохромном дисплее и распечатке документов не цветным принтером), к какой функции относится та или иная кривая.
Эти недостатки в основном устранены в версии 6. 0 и практически полностью в версии 7. 0. Теперь имена перечисляемых функций располагаются друг под другом вместе с указаниями на тип линии, ее цвет (в виде короткого отрезка соответствующих цвета и типа) и наличие меток того или иного типа (кружки, крестики, квадратики и т. д.). Существенно упрощен процесс перемещения рисунков и изменения их размеров (с помощью мыши), повышена точность позиционирования рисунков. Новой в системах MathCAD под Windows является и возможность управления с помощью мыши, которая в версиях под MS-DOS попросту отсутствовала.
Пользователи будут приятно удивлены тем, что все версии MathCAD под Windows позволяют работать как с латинскими буквами, так и с кириллицей (буквами русского алфавита), греческим алфавитом и вообще с любыми символами, доступными Windows. Более того, благодаря применению масштабируемых TTF-шрифтов можно управлять как размером символов, так и их стилем (делая буквы прямыми или наклонными, тонкими или жирными). Все это дает возможность готовить документы и электронные книги высокого качества как на английском, так и на русском языках. При этом такая возможность есть и в русифицированных, и в англоязычных версиях MathCAD.
Впрочем, не стоит забывать, что это достоинство — результат работы системы в среде Windows, которая может быть русифицированной. Греческие символы и математические спецзнаки раньше были недоступны в текстовых комментариях, теперь же и этот недостаток полностью устранен.
Последние версии системы MathCAD дают новые средства для подготовки сложных документов. В них предусмотрено красочное выделение отдельных формул, многовариантный вызов одних документов из других, возможность закрытия "на замок" отдельных частей документов, гипертекстовые и гипермедиа-переходы и т. д. Это позволяет создавать превосходные обучающие программы и целые книги по любым курсам, базирующимся на математическом аппарате. Здесь же реализуется удобное и наглядное объектно-ориентированное программирование сложнейших задач, при котором программа составляется автоматически по заданию пользователя, а само задание формулируется на естественном математическом языке общения с системой.
1997 год порадовал почитателей системы MathCAD выходом новейшей версии 7. 0. Она не только вобрала в себя все возможности предшествующих версий, но и обогатилась рядом новых. И без того хороший интерфейс версии 6. 0 стал теперь превосходным. С первого взгляда он даже несколько проще, но эта простота явно обманчива. Возможности ввода сложных математических выражений и текстов с самыми разнообразными выделениями заметно расширились.
В эту версию MathCAD добавлена функция задания некоторых типов графиков без определения ранжированных (имеющих диапазон значений) переменных, что резко упростило построение таких графиков для начинающих пользователей. Намного улучшилась справочная система и общее управление ею. Организована связь с другими математическими системами и использование их возможностей. С системой поставляется полное (но англоязычное) описание в формате файлов популярного Internet-браузера Acrobat Reader. Введено и принципиально новое средство — MathConnex — для симулирования систем, представленных состоящей из блоков функциональной схемой.
Новейшая версия, как и предыдущая, выпущена в двух основных вариантах:
MathCAD 7. 0 STANDARD — упрощенная версия, удобная для большинства пользователей и применения в учебных целях;
MathCAD 7. 0 PRO — профессиональная версия, ориентированная на математиков и научно-педагогических работников, заинтересованных в автоматизации своих достаточно сложных и трудоемких расчетов.
При этом особо важно отметить, что MathCAD не только средство для решения математических задач. Это, по существу, мощная математическая САПР, позволяющая готовить на высочайшем полиграфическом уровне любые относящиеся к науке и технике материалы: документацию, научные отчеты, книги и статьи, диссертации, дипломные и курсовые проекты и т. д. При этом в них одновременно могут присутствовать тексты сложного вида, любые математические формулы, графики функций и различные иллюстративные материалы. Позволяет MathCAD 7. 0 готовить и высококачественные электронные книги с гипертекстовыми ссылками.
С выходом настоящей книги заинтересованный читатель получает достаточно полную информацию о MathCAD 7. 0 PRO — и о практике ее применения в массовых общетехнических и математических расчетах. Из книги исключены подробные сведения о ранних версиях систем класса MathCAD.
В дальнейшем сокращения ради мы будем употреблять краткое название системы MathCAD 7. 0 PRO просто как MathCAD (поскольку в данной книге описана только эта версия системы), а под Windows будем подразумевать операционные системы Windows 95 и Windows NT, имеющие практически идентичный интерфейс пользователя. С точки зрения работы в них системы MathCAD 7. 0 разницы между этими операционными системами нет.
Кнопки операций редактирования
Кнопки операций редактированияВо время подготовки документов их приходится видоизменять и дополнять — редактировать. Следующие четыре кнопки служат для выполнения операций редактирования документов:
Cut (Вырезать) — перенос выделенной части документа в буфер обмена (Clipboard) с очисткой этой части документа;
Copy (Копировать) — копирование выделенной части документа в буфер обмена с сохранением выделенной части документа;
Paste (Вставить) — перенос содержимого буфера обмена в окно редактирования на место, указанное курсором мыши;
Undo (Отменить) — отмена предшествующей операции редактирования.
Три последние операции связаны с применением буфера обмена. Его возможности и назначение хорошо известны пользователям Windows. Он предназначен для временного хранения данных и их переноса из одной части документа в другую либо для организации обмена данными между различными приложениями.
Кнопки операций с файлами
Кнопки операций с файламиДокументы системы MathCAD являются файлами, т. е. имеющими имена блоками хранения информации на магнитных дисках. Файлы можно создавать, загружать (открывать), записывать и распечатывать на принтере. Возможные операции с файлами представлены в панели инструментов первой группой из трех кнопок (см. рис. 1. 9):
New Worksheet (Создать) — создание нового документа с очисткой окна редактирования;
Open Worksheet (Открыть) — загрузка ранее созданного документа из диалогового окна;
Save Worksheet (Сохранить) — запись текущего документа с его именем. Ниже мы рассмотрим эти операции более подробно.
Кнопки операций с выражениями
Кнопки операций с выражениямиФормульные блоки часто являются вычисляемыми выражениями или выражениями, входящими в состав заданных пользователем новых функций. Для работы с выражениями служат пиктограммы:
Insert Function — вставка функции из списка, появляющегося (Вставить функции) в диалоговом окне;
Insert Utit (Вставить единицы) — вставка единиц измерения;
Calculate (Пересчитать) — вычисление выделенного выражения.
MathCAD имеет множество встроенных функций, от элементарных до сложных статистических и специальных математических. Синтаксис их записи порой легко забывается. Поэтому возможность вставки функции с помощью кнопки Insert Function очень удобна. Другая кнопка, Insert Unit, позволяет вставить нужную единицу измерения.
Если документы большие, то при их изменениях не всегда выгодно запускать вычисления с самого начала. Операция Calculate (Пересчитать) позволяет запускать вычисления для выделенных блоков, что может уменьшить время вычислений.
Кнопки размещения блоков
Кнопки размещения блоковДокументы состоят из различных блоков: текстовых, формульных, графических и т. д. Блоки просматриваются системой, интерпретируются и исполняются. Просмотр идет справа налево и снизу вверх. Две операции размещения блоков представлены кнопками следующей группы:
Align Across (Выровнять по горизонтали) — блоки выравниваются по горизонтали;
Align Down (Выровнять вниз) — блоки выравниваются по вертикали, располагаясь сверху вниз.
Пиктограммы этих кнопок изображают блоки и указанные варианты их размещения. Определенное размещение блоков в некоторых случаях имеет значение. Например, нередко результат операции желательно разместить в одной строке с заданием на операцию. А размещение блоков по вертикали характерно для больших документов.
Кнопки управления ресурсами
Кнопки управления ресурсамиЗаключительная группа из двух пиктограмм обеспечивает обращение к центру ресурсов системы и к встроенной справочной базе данных системы:
Resource Center (Центр ресурсов) — дает доступ к центру ресурсов;
Help (Справка) — дает доступ к ресурсам справочной базы данных системы.
Указанных операций обычно вполне достаточно для работы с документами без применения других возможностей главного меню. Кнопка 21 служит для закрытия панели инструментов, при этом она исчезает с экрана.
Копирование и вставка блоков в буфер обмена
Копирование и вставка блоков в буфер обменаИспользуя кнопки быстрого задания команд вырезки (Cut, F3 или Ctrl+ X) и вставки (Copy, F4 или Ctrl+ V), можно перенести выделенные блоки в буфер обмена и поместить их на новое место, указанное курсором мыши. Это дает возможность быстрого наведения порядка с блоками.
Меню для работы с окнами
20 Меню для работы с окнамиNext Ctrl-F6 (Следующий документ) — активизировать следующий документ
Если окно раскрыто полностью, то указанная кнопка располагается в самом начале строки с главным меню Система MathCAD может работать с многими окнами, т е одновременно с рядом задач Окно каждой задачи образуется после загрузки текста ее документа В дальнейшем операции с окнами будут описаны более подробно
Меню управления окном активного документа
Меню управления окном активного документаКаждое окно активного в данный момент документа также имеет подобное меню, инициализируемое кнопкой в левом верхнем углу раскрытого окна. Это меню имеет ранее указанные позиции и еще одну дополнительную:

Наборные панели
Наборные панелиВместо столбикового переключателя математических знаков, применяемого в ранних версиях MathCAD, в седьмой версии используются более удобные перемещаемые наборные панели (в оригинале Palletes — палитры) с такими знаками. Они служат для вывода заготовок — шаблонов математических знаков (цифр, знаков арифметических операций, матриц, знаков интегралов, производных и т. д.).
Кнопки вывода наборных панелей занимают пятую сверху строку окна системы. На рис. 1. 7 показано назначение этих кнопок. Наборные панели появляются в окне редактирования документов при активизации соответствующих пиктограмм — первая линия пиктограмм управления системой.
Как видно из рис. 1. 7, панель выбора математических символов и операторов, как и другие панели, может быть смещена со своего места и представлена не только в виде линейного, но и иного расположения кнопок. Для перемещения панелей надо уцепиться за промежутки между кнопками панелей и, нажав левую клавишу мыши, перетягивать их в нужное место.
На рис. 1. 8 представлены все наборные панели. С их помощью можно вводить в документы практически все известные математические символы и операторы. К сожалению, их так много, что вывод всех панелей (как это показано на рис. 1. 5) обычно бесполезен, так как в окне редактирования не остается места для подготовки документов. Поэтому рекомендуется неиспользуемые в данное время панели закрывать, активизируя кнопку в конце их титульной строки с названием панели.
Панели операторов и символов намного удобнее столбикового переключателя в ранних версиях системы, у которого был виден лишь один столбец с математическими знаками. Их можно располагать в удобном месте окна редактирования, причем пользоваться сразу несколькими панелями (столбиковый переключатель открывает доступ к одной своей панели).
Наборные панели и шаблоны
Наборные панели и шаблоныПодготовка вычислительных блоков облегчается благодаря выводу шаблона при задании того или иного оператора. Для этого в MathCAD служат наборные панели с шаблонами различных математических символов.
Допустим, требуется вычислить определенный интеграл. Для этого вначале надо вывести панель операторов математического анализа; ее пиктограмма в строке инструментов имеет знаки интеграла и производной. Затем следует установить визир в то место экрана, куда выводится шаблон, и на панели сделать активной пиктограмму с изображением знака определенного интеграла (рис. 1. 11).
Назначение кнопок панели инструментов
Рис. 1. 9 Назначение кнопок панели инструментов
Назначение кнопок панели с математическими знаками
7 Назначение кнопок панели с математическими знаками
Назначение объектов панели форматирования
Рис.1.10 Назначение объектов панели форматирования
До тех пор пока не начат набор элементов документа, часть описанных кнопок и иных объектов пользовательского интерфейса находится в пассивном состоянии. В частности, в окнах переключателей панели форматирования нет надписей. Пиктограммы и переключатели становятся активными, как только появляется необходимость в их использовании.
Внизу экрана кроме полосы горизонтальной прокрутки расположена еще одна строка — строка состояния. В ней выводится служебная информация, краткие комментарии, номер страницы документа и др. Эта информация полезна для оперативной оценки состояния системы в ходе работы с нею.
Указанные объекты интерфейса можно перемещать по экрану с помощью мыши. Например, можно поместить строку форматирования рядом с пиктограммами наборных панелей, вынести в любое место экрана панель инструментов и т. д. Таким образом, интерфейс несложно подстраивать под запросы пользователя.
Изложение всех возможностей управления системой MathCAD под Windows потребует описания большей части возможностей Windows. Этим, кстати, грешат фирменное описание предшествующей версии системы и его перевод [14], что отчасти обусловливает их большой объем.
Между тем с правилами работы в Windows можно ознакомиться по книгам [16, 17]. К счастью, большая часть этих правил одинакова для любого приложения, функционирующего в системе Windows, и интуитивно понятна. К примеру, для изменения размера окна достаточно установить курсор-стрелку мыши на пограничную линию окна. Вид курсора изменится: стрелка станет двусторонней. Если теперь нажать и удерживать левую клавишу мыши, то можно перемещать границу окна, меняя его размеры. Точно так же (установив стрелку-курсор на верхнюю титульную линию окна) можно плавно перемещать окно по всему экрану.
Учитывая сказанное, закончим рассмотрение возможностей пользовательского интерфейса MathCAD. И посоветуем читателю получше изучить общие правила работы с приложениями под Windows, прежде чем всерьез осваивать MathCAD.
Окно редактирования
Окно редактированияСразу после запуска система готова к созданию документа с необходимыми пользователю вычислениями. Первая же кнопка панели инструментов (с изображением чистого листка бумаги) New Worksheet позволяет начать подготовку нового документа. Соответствующее ему окно редактирования получает название Untitled: N, где N — порядковый номер документа, который начинается с цифры 1. Вначале окно редактирования очищено (рис. 1. 4). Задание различных стилей новых документов мы рассмотрим в следующей главе.
Если в систему с помощью второй кнопки (в виде открывающейся желтой папки) загружен файл документа, то последний появится в окне редактирования (рис. 1. 5). На этом рисунке экран системы показан со скрытыми панелями инструментов (Tool Bar), форматирования (Format) и задания палитр математических символов и операторов (Math Pallete). При этом вид экрана почти не отличается от того, который знаком пользователям старых версий системы MathCAD под MS-DOS Для устранений панелей служат опции в главном меню, находящиеся в подменю позиции View
Если все окна редактирования закрыты, то экран системы приобретает вид, показанный на рис 1 6 некоторые детали интерфейса (сравните с рис. 1. 4 и 1. 5) могут отсутствовать, даже когда панели инструментов, форматирования и математических символов и операторов выведены. Нерезкое изображение ряда элементов интерфейса показывает, что в данном случае их функции недоступны На это же указывает и исчезновение отдельных позиций главного меню. Само окно редактирования отсутствует, на его месте — просто серый фон.
Как известно, Windows 95 позволяет
Рис. 1. 3 Окно системы MathCAD PLUS 7. 0
Как известно, Windows 95 позволяет быстро переключаться с решения одной задачи на решение другой (в частности, путем одновременного нажатия клавиш Alt и Tab). Возможно также управление окнами различных приложений. Для этого в правом верхнем углу окна MathCAD помещены три кнопки в виде маленьких квадратов.
Левая кнопка сворачивает окно, сохраняя MathCAD активным. При этом в строке задач Windows 95 (внизу экрана) появляется кнопка с пиктограммой системы и ее названием. Если загружены и другие приложения Windows 95, то и их кнопки будут видны в строке задач; активизируя их, можно делать активным то или иное приложение.
Средняя кнопка, как отмечалось, выполняет функции переключения размеров окна: она раскрывает окно на весь экран или задает окно в уменьшенном размере. При этом окно можно растягивать в разных направлениях, уцепившись за его ограничительные линии или углы курсором мыши. В этом случае курсор приобретает вид тонких двухсторонних стрелок, указывающих на направление, в котором можно растягивать или сужать окно.
Третья кнопка (с жирным наклонным крестиком) служит для закрытия окна. При этом работа с приложением (MathCAD или другим) завершается в соответствии с определенными правилами. Обычно, если в приложение был загружен файл и он модифицировался, то при закрытии приложения появляется временное окно с предложением сохранить файл.
С помощью клавиш Alt и Tab (табуляция) в Windows можно быстро переключаться из одного приложения в другое, например из текстового редактора или программы AutoCAD в MathCAD. При этом (что является принципиальным отличием от работы в среде MS-DOS) работа каждого приложения временно прекращается в том состоянии, какое было перед переключением окон. С этого же состояния приложение начинает работать, как только его окно снова делается активным. Переключение приложений удобно осуществлять из строки задач операционной системы, обычно расположенной внизу экрана.
Основы пользовательского интерфейса
1. 3. Основы пользовательского интерфейсаПод интерфейсом пользователя подразумевается совокупность средств графической оболочки MathCAD, обеспечивающих легкое управление системой как с клавишного пульта, так и с помощью мыши. Под управлением понимается и просто набор необходимых символов, формул, текстовых комментариев и т. д., и возможность полной подготовки в среде MathCAD документов (Worksheets) и электронных книг с последующим их запуском в реальном времени.
Пользовательский интерфейс системы создан так, что пользователь, имеющий элементарные навыки работы с Windows-приложениями, может сразу начать работу с MathCAD. Интерфейс системы внешне очень напоминает интерфейс широко известных текстовых процессоров Word 7. 0/8. 0 под Windows 95. Это, в частности, позволило несколько сократить описание общепринятых для Windows-приложений деталей работы с ними.
Панели форматирования и статуса системы
Панели форматирования и статуса системыЧетвертая строка верхней части экрана содержит типовые средства управления шрифтами: переключатели типа символов, набора гарнитур и размеров шрифтов, три пиктограммы типа шрифтов (полужирный, наклонный, или курсивный, и подчеркнутый), а также три пиктограммы расположения букв в строке (рядом, надстрочное и подстрочное). Назначение объектов этой панели показано на рис. 1.10.
Панели математических символов и операторов системы MathCAD 7. 0 PRO
Рис. 1. 8 Панели математических символов и операторов системы MathCAD 7. 0 PRO
Используя общую наборную панель, можно вывести или все панели сра зу, или только те, что нужны для работы Для установки с их помощью необходимого шаблона (объекта) достаточно поместить курсор в желаемое место окна редактирования (красный крестик на цветном дисплее) и затем активизировать пиктограмму нужного шаблона, установив на него курсор мыши и нажав ее левую клавишу
Применение панелей для выбора шаблонов математических знаков очень удобно, поскольку не надо запоминать разнообразные сочетания клавиш, используемые для ввода специальных математических символов. Впрочем, и эта возможность сохранена, так что привыкшие к работе с клавиатурой пользователи, имевшие дело с более ранними версиями системы MathCAD (в том числе и под MS-DOS), могут воспользоваться навыками виртуозного набора формул и после перехода на новую версию системы.
Любую панель с математическими знаками можно переместить в удобное место экрана, уцепившись за ее верхнюю часть курсором мыши. Перемещая панель, левую клавишу мыши нужно держать нажатой. В верхнем левом углу каждой наборной панели помещена единственная маленькая кнопка с жирным знаком минуса, служащая для устранения панели с экрана, как только она становится ненужной.
Большинство кнопок на панелях выводят общепринятые и специальные математические знаки и операторы, помещая их шаблоны в место расположения курсора на документе. Позже мы последовательно рассмотрим все эти знаки, в том числе на первый взгляд не вполне очевидные.
Панель инструментов
Панель инструментовТретью строку окна системы занимает панель инструментов (Toolbox). Она содержит несколько групп кнопок управления с пиктограммами, каждая из которых дублирует одну из важнейших операций главного меню. Глядя на эти пиктограммы (см. рис. 1. 4), можно легко уяснить их функции. Стоит только остановить курсор мыши на любой из этих пиктограмм, как в желтом окошечке появится текст, объясняющий функции пиктограммы. На рис. 1. 9 представлены названия кнопок панели инструментов и их краткое назначение.
Надо отметить, что панель инструментов тоже можно мышью превратить в наборную панель и поместить в любое место экрана. Ее можно закрыть с помощью кнопки с жирным минусом. Так интерфейс системы модифицируется, и пользователь может подстроить его под свой вкус. Рассмотрим действие кнопок быстрого управления системой (номера их соответствуют приведенным на рис. 1. 9).
Печать документа
Печать документаДля печати текущего документа достаточно нажать кнопку Print Worksheet с изображением принтера. Будет вызвано окно того принтера, который установлен операционной системой Windows 95. Вид окна зависит от примененного драйвера принтера.
Печать и контроль документов
Печать и контроль документовЭта группа представлена тремя кнопками:
Print Worksheet (Печать) — распечатка документа на принтере;
Print Preview (Просмотр) — предварительный просмотр документа;
Check Speling (Проверка) — проверка орфографии документа.
Их назначение довольно очевидно. Отметим лишь, что проверка орфографии действует только для англоязычных документов.
Подменю управления главным окном
Подменю управления главным окномВ начале титульной строки имеется кнопка с изображением счетов на фоне буквы М. Она служит для ввода стандартных операций с главным окном системы, принятых в системе Windows 95. Если эта позиция активна, то появляется подменю со следующими операциями (см. рис. 1. 20):
Restore (Восстановить) — раскрыть окно приложения из пиктограммы;
Move (Переместить) — переместить окно приложения;
Size (Размер) — изменить размер окна приложения;
Minimize (Свернуть) — свернуть окно в пиктограмму;
Maximize (Развернуть) — перейти в полноэкранный режим;
Close Alt-F4 (Закрыть) — закрыть окно и закончить работу в приложении.
Названия опций даны на английском и русском языках, поскольку возможно применение как русскоязычной, так и оригинальной (англоязычной) операционной системы Windows. He все из этих операций всегда доступны. Названия недоступных операций, как отмечалось, даны нечеткими (затененными) надписями. К примеру, если окно имеет максимальный размер, то операции Move, Size и Maximize недоступны.
показывает вид документа после...
17 показывает вид документа после нажатия клавиши F3. Нетрудно заметить, что в данном случае все выделенные блоки исчезли — поступили в буфер обмена.Примеры выделения и редактирования надписей и организации гиперссылки
Рис. 1. 14 Примеры выделения и редактирования надписей и организации гиперссылки
Следует отметить, что изменение параметров и типов шрифтов для определенных объектов (например, переменных или констант) действует глобально. Так, если увеличить размеры обозначения какой-либо переменной, то все обозначения других переменных тоже будут увеличены.
Пример решения аэродинамической задачи (видимая часть решения)
Рис. 1. 18 Пример решения аэродинамической задачи (видимая часть решения)
Пример ввода и вычисления определенного интеграла и других выражений
13 Пример ввода и вычисления определенного интеграла и других выражений
Так же выполняются любые другие разовые вычисления, как простые, так и сложные. Разумеется, есть возможность задавать шаблоны для вычислительных блоков и с клавиатуры, о чем речь пойдет чуть ниже.
При задании сложных вычислений работа системы может быть долгой. Чтобы прервать ее, можно нажать клавишу Esc. MathCAD выведет надпись о прерывании вычислений и небольшое окно с двумя командами: OK — подтвердить прерывание и Cancel (Отмена) — отменить прерывание. После прерывания можно возобновить работу, нажав клавишу F9 или сделав активной пиктограмму с изображением жирного знака равенства.
Продолжение заполнения шаблона интеграла
Рис. 1. 12 Продолжение заполнения шаблона интеграла
рирование. Установив знак равенства после полученного выражения, можно сразу увидеть результаг вычисления интеграла (см. рис. 1. 13). На этом рисунке показаны примеры вычисления и других выражений (суммы, произведения и предела функции) с набором их с помощью палитр. Там же даны и примеры задания текстовых комментариев.
Простейшие приемы работы
1. 5. Простейшие приемы работыВ простейшем случае работа с системой MathCAD сводится к подготовке в окне редактирования задания на вычисления и к установке форматов для их результатов. Для этого используются различные приемы подготовки блоков. Пока мы рассмотрим лишь вычислительные блоки. В дальнейшем поговорим о вводе текстовых блоков с комментариями и блоков с графикой.
Расположение блоков в документе
Расположение блоков в документеРасположение блоков в документе имеет принципиально важное значение. Как уже отмечалось, их выполнение происходит справа налево и сверху вниз. Поэтому блоки не должны взаимно перекрываться (хотя небольшое перекрытие обычно не существенно). Указанный порядок исполнения блоков означает, что, например, при построении графика функции или таблицы ее значений вначале должны исполняться блоки, задающие саму функцию и пределы изменения аргумента, а уже затем блок, задающий вывод таблицы или построение графика функции. Все это — следствие работы системы в интерпретирующем режиме.
Доступная область окна редактирования по горизонтали превышает видимую на экране. При этом область окна делится длинной вертикальной линией на две части, левую и правую Горизонтальными линиями документ делится на страницы
Можно разместить некоторые вспомогательные вычисления в правой, невидимой, части окна, а в левую, видимую, вынести задание исходных данных и вывод результатов расчетов Этот прием часто используется в пакетах с примерами применения системы, а также в учебно-демонстрационных программах На рис 118 показан пример подобного решения довольно сложной аэродинамической задачи по построению профиля крыла самолета и линий обтекания его воздушным потоком
Сохранение документа
Сохранение документаДля сохранения документа с текущим именем достаточно нажать кнопку Save Worksheet с изображением магнитного диска. Файл документа будет записан в тот же каталог, откуда он был вызван. Если документ ранее не записывался, то появится диалоговое окно для его записи.
Состав главного меню
Состав главного менюВерхняя строка окна системы содержит указание на имя системы или текущего открытого окна Следующая строка содержит позиции главного меню Их назначение приведено ниже File (Файл) — работа с файлами, сетью Internet и электронной
почтой, Edit (Правка) — редактирование документов, View (Обзор) — изменение средств обзора, Insert (Вставка) установка вставок объектов шаблонов (включая
графику), Format (Формат) — изменение формата объектов, Math (Математика) — управление процессом вычислений, Graphics (Графика) — работа с графическим редактором, Symbolic (Символика) — выбор операций символьного процессора,
Window (Окно) — управление окнами системы;
Books (Книги) — работа с электронными книгами;
Help (?) — работа со справочной базой данных о системе.
Создание гиперссылок
Создание гиперссылокВыделение используется также для копирования в буфер обмена и организации гиперссылки. Гиперссылка в MathCAD 7. 0 дает связь выделенного текстового фрагмента с некоторым файлом. Для этого вначале фрагмент выделяется, а затем нажимается кнопка панели инструментов Insert Hyperlink. В появившемся простом окне надо указать полное (с путем) имя файла, который будет загружаться и отображаться в момент активизации фрагмента — гиперссылки. Можно также задать сообщение об ошибке, если файл не будет найден. На рис. 1. 14 показан случай, когда с гиперссылкой связан файл Demo с демонстрацией работы MathCAD, на рисунке виден угол окна с документом этого файла.
С помощью гиперссылок можно готовить в среде MathCAD 7. 0 электронные учебники и книги высокого качества, имеющие множество гиперссылок, качественные тексты с разнообразными выделениями, математические формулы и графики. Важно отметить, что такие учебники являются "живыми": все примеры в них работают и их можно использовать с различными исходными данными, задаваемыми учениками.
О конструировании и редактировании математических выражений можно говорить много и долго, в книге [14] этой теме посвящена целая глава. Однако в целом этот процесс интуитивный и учитывает тонкости конструирования математических выражений. Главное здесь практика! Мы еще вернемся к описанию некоторых правил конструирования математических выражений (формул).
Создание нового документа
Создание нового документаКнопка New Worksheet с изображением чистого листа служит для создания нового документа. Она очищает окно редактирования и задает имя документа Untitled N, где N — порядковый номер документа. После этого можно начинать вводить документ с клавишного пульта с применением (при необходимости) палитр математических знаков и функций.
Текстовый редактор
Текстовый редакторТекстовый редактор позволяет задавать текстовые комментарии. Они делают документ с формулами и графиками более понятным. В простейшем случае для открытия текстового редактора достаточно ввести символ " (одиночная кавычка). В появившийся прямоугольник можно начать вводить текст. В текстовом блоке визир имеет вид красной вертикальной черточки и отмечает место ввода. Текст редактируется общепринятыми средствами: перемещением места ввода клавишами управления курсором, установкой режимов вставки и замещения символов (клавиша Insert), стиранием (клавиши Del и Backspace), выделением, копированием в буфер обмена, вставкой из буфера и т. д.
Титульная заставка системы MathCAD PLUS 6. 0 PRO
2 Титульная заставка системы MathCAD PLUS 6. 0 PRO
Входной язык системы MathCAD
1. 4. Входной язык системы MathCADОтличительной чертой MathCAD является работа с документами. Документы объединяют описание математического алгоритма решения задачи (или ряда задач) с текстовыми комментариями и результатами вычислений, заданными в форме символов, чисел, таблиц или графиков. В оригинале документы системы MathCAD названы английским словом "Worksheets". В научном мире длинные листы бумаги с текстами, формулами и графиками шутливо называют рабочими "простынями" — так буквально переводится слово "Worksheets".
Уникальное свойство MathCAD — возможность описания математических алгоритмов в естественной математической форме с применением общепринятой символики для математических знаков, таких, например, как квадратный корень, знак деления в виде горизонтальной черты, знак интеграла и т. д. Это делает документ, видимый на экране дисплея (см. рис. 1. 5), чрезвычайно похожим на странички текста из математических книг и научных статей.
Такой подход значительно облегчает восприятие математической сущности задачи и избавляет пользователя от изучения некоторого промежуточного языка программирования (например, Фортрана, Бейсика, Паскаля и т. д.). Можно сказать, что в MathCAD идея решения математических задач без их программирования доведена до совершенства: подавляющее большинство задач требуют лишь корректного формульного описания и не нуждаются в подготовке программ в их общепринятом виде.
Разумеется, это не означает, что в системе нет своего языка программирования. В действительности он есть, но это математически ориентированный особый язык программирования сверхвысокого уровня, используемый в основном как входной язык для диалога с системой. В подавляющем большинстве расчетных задач этот язык позволяет задавать их решение в виде вводимых с помощью операторов и функций математических формул и указывать тип желаемых результатов (таблицы или графики). Специальные приемы введены лишь для задания циклического изменения переменных и создания так называемых ранжированных переменных — векторов.
Входной язык MathCAD относится к интерпретирующему типу. Это означает, что когда он опознает какой-либо объект системы, то тут же исполняет указанные в блоке операции. Языком реализации системы является язык Си++.
По существу, входной язык системы — это промежуточное звено между скрытым от пользователя языком связи документа с языком реализации системы. По мере того как пользователь создает (средствами текстового, формульного и графического редакторов) в окне редактирования объекты (тексты, формулы, таблицы и графики), система сама составляет программу на некотором промежуточном языке связи, которая хранится в ОЗУ до тех пор, пока не будет сохранена на диске в виде файла с расширением. mcd. Однако важно подчеркнуть, что от пользователя не требуется знать языки программирования (реализации и связи), достаточно освоить приближенный к естественному математическому языку входной язык системы.
В версии MathCAD 7. 0 резко снижены требования даже к знанию входного языка. Практически все операторы, имеющие вид привычных математических символов, можно вводить мышью, а большинство математических функций (например, sin, cos, exp и т. д.) имеют естественную форму задания, например, sin (x) так и вводится как sin (x). К тому же есть возможность выбора из списка, имеющегося в специальном окне, что резко уменьшает вероятность ошибок при вводе функций.
Благодаря всему этому работа с системой приобрела характер визуального и объектно-ориентированного программирования. При этом решающим является задание объектов (с выбором их из соответствующей палитры наглядных знаков), а программу составляет сама система. Более того, в MathCAD эффективно решена проблема сквозной передачи данных от одного объекта к другому, например от одного математического выражения к другому, от него — к таблицам, от таблиц — к графикам и т. д. Поэтому изменение в любой формуле или в задании входных данных тут же ведет к пересчету задачи по всей цепи взаимодействия объектов (это не относится, однако, к символьным операциям, реализуемым из главного меню).
Лучшее враг хорошего! Это в полной мере можно сказать о входном языке предшествующих версий MathCAD. Этот язык был доведен до такого "совершенства", что в нем напрочь исчезли многие основополагающие средства программирования, например циклы, условные выражения, процедуры и т. д., в их привычном для программистов виде. В результате пользователь, привыкший к обычному программированию, испытывал большие неудобства от замены этих средств непривычными средствами системы MathCAD. Тем более что иногда описание задачи в общепринятом на языках программирования виде оказывается предпочтительным и более коротким.
Некоторые критики системы MathCAD, как правило, даже не работающие с нею, говорят, что реализация решения математических задач в среде MathCAD отучает пользователя от познания фундаментальных основ реализации математических численных методов обычными средствами программирования. Это обвинение абсолютно абсурдно. MathCAD как раз и позволяет описать любые алгоритмы реализации численных методов привычным для математиков языком обычных формул.
Впрочем, версии MathCAD PLUS 6. 0 PRO и тем более MathCAD 7. 0 избавились и от этого "недостатка". В них включены важнейшие средства программирования и предусмотрена возможность задания программных блоков — процедур с общепринятыми операторами программирования. В совокупности с иными средствами входного языка это делает его необычайно гибким, мощным и наглядным.
Как отмечалось, входной язык системы MathCAD — интерпретирующий. В интерпретаторах, например в добром старом Бейсике, листинг программы пользователя просматривается сверху вниз (а в пределах строки — слева направо), и любые указания в программе тут же выполняются. Так же просматриваются и блоки в системе MathCAD. При опознании блока система автоматически запускает внутренние подпрограммы выполнения необходимых действий, например вычисления по формуле, вывод таблицы значений вектора, построение рисунка по его шаблону и т. д. В общем, это напоминает интерпретацию высшего уровня, при которой пользователь не опускается до таких мелочей, как составление необходимых подпрограмм, хотя, как уже было сказано, теперь и это вполне возможно.
Интерпретаторы действуют медленно, поэтому не случайно пользователи, имевшие дело со старыми версиями MathCAD, отмечали медлительность систем, особенно при сложных вычислениях и при построении графиков. Медлительность является и следствием работы системы в графическом режиме, когда малейшее изменение содержания экрана требует его полной перерисовки.
В ряде предшествующих версий (и в новой) была введена экспертная система SmartMath. Она старается использовать при численных вычислениях конечные формулы, полученные в результате символьных преобразований. Порой это дает резкое ускорение вычислений в сравнении с их реализацией численными методами. Операция SmartMath (Быстрая математика) вводится оператором® и словами-директивами. Их число в версии MathCAD 7. 0 PRO значительно увеличено, и для ввода операторов и директив символьной математики добавлена специальная палитра. Так что SmartMath превратилась в полноправного члена семьи MathCAD.
Начиная с версии MathCAD PLUS 5. 0 в систему введена возможность ее расширения функциями, которые задаются обычными программами на языке Си или Си++. Однако это не позволяет эффективно и просто решить проблему расширения возможностей системы. На Си или Си++ хорошо программируют системные программисты, но они весьма редко разбираются в сути математических задач. Обычные пользователи, освоив возможности MathCAD, не захотят вернуться к тому, от чего уже ушли, — к программированию на достаточно сложном языке. В общем, как в расхожей фразе: "За что боролись, на то и напоролись"!
В связи с этим в версиях MathCAD PLUS 6. 0/7. 0 PRO появилась весьма изящная функция записи встроенных в документ программных модулей, реализующих типовые управляющие структуры и записанных в столь милом для программистов виде обычных программ.
Вставка блоков из буфера обмена в документ
Вставка блоков из буфера обмена в документЕсли нажать кнопку Paste или клавишу F4 (не меняя положения курсора мыши), исчезнувшие блоки вновь появятся на своем месте и вид документа будет подобен показанному ранее на рис. 1. 13. Зацепив курсором мыши любой из выделенных блоков и нажав ее левую клавишу, можно (удерживая эту клавишу) перетаскивать блоки с одного места на другое.
в правой части документа, представленного
19 Вычисления в правой части документа, представленного на рис. 1. 18
Другой любопытный и полезный прием был использован в прежних версиях системы под MS-DOS — выделение вычисления в невидимой правой части окна надписью /equations В этом случае все вычисления после их ло1 иче-ского вызова выполняются сверху вниз с возвратом к месту их вызова в левой части экрана. Из новой версии этот полезный прием по не совсем понятным мотивам исключен Возможно, разработчики сочли, что вполне достаточно описанных выше приемов
Интересно отметить, что с версией MathCAD PLUS 7 0 можно использовать документы, подготовленные в среде предшествующей версии Это позволяет считать последние версии систем практически совместимыми
Выделение блоков
Выделение блоковКак уже отмечалось, документ состоит из отдельных блоков. Они могут быть различного типа: тексты (комментарии), формулы, графики, таблицы и т. д. Каждый блок занимает в текущем окне определенную область прямоугольной формы. Для конструирования блоков служат три встроенных в систему редактора: текстовый, формульный и графический.
Для выделения областей блоков можно проделать следующий эксперимент. Поместите курсор мыши в нерабочую часть экрана и нажмите ее левую клавишу. Перемещая мышь по диагонали при удержанной нажатой клавише мыши, вы увидите, как на экране пунктирными черными линиями выделяется прямоугольник. Добейтесь, чтобы в него попало несколько объектов — формул, таблиц, графиков. Все они тут же окажутся обведены прямоугольниками из пунктирных линий (см. рис. 1. 16).
Эти прямоугольники являются обычно невидимыми границами областей объектов. Несколько выделенных таким образом объектов образуют блок
Выделение и редактирование объектов
Выделение и редактирование объектовПри редактировании математических выражений важной возможностью является выделение их целиком или в виде отдельных фрагментов. По существу это означает замену одномерного маркера в виде синей вертикальной черты на двумерный в виде выделяющего часть выражения синего уголка (см. рис. 1. 12, на котором этот маркер выделяет введенное выражение).
В версии MathCAD 7. 0 выделение с помощью мыши заметно улучшено и практически не отличается от хорошо известного выделения текстовых выражений. Напомним, что для этого достаточно установить текстовый курсор мыши на начало выделяемого фрагмента, нажать левую клавишу мыши и, удерживая ее, двигать маркер к концу выделяемого фрагмента. Выделенный текст помещается на темном фоне (см. на рис. 1. 14 выделенное слово "Сразу" в правом нижнем углу экрана).
Выделение надписей обычно производится с целью изменения стиля, размера и типа шрифтов. Для этого достаточно выделить надпись и сменить шрифт или его параметр (рис. 1. 14).
Выделения в математических выражениях, хотя и напоминают выделения в тексте, все же более сложны и требуют для быстрого проведения определенных навыков. Обычно выделения в выражениях задаются синим уголком. Он указывает направление ввода.
Выделение фрагментов математических выражений необходимо для изменения шрифтов, которыми набирается выражение. Например, для изменения шрифта в математических формулах достаточно выделить одну букву, установив выделение в виде жирной вертикальной черты сразу после буквы. Затем можно воспользоваться средствами модификации шрифтов.
Задание шаблона определенного интеграла и начало его заполнения
11 Задание шаблона определенного интеграла и начало его заполнения
В составе сложных шаблонов часто встречаются шаблоны для ввода отдельных данных. Они имеют вид небольших черных квадратиков. В шаблоне интеграла их четыре: для ввода верхнего и нижнего пределов интегрирования, для задания подынтегральной функции и для указания имени переменной, по которой идет интегрирование. На рис. 1. 11 шаблон интеграла показан в верхнем левом углу окна редактирования документа.
Для ввода данных можно указать курсором мыши на нужный шаблон данных и, щелкнув левой ее клавишей для фиксации места ввода, ввести данные. На рис. 1. 12 отражен момент ввода под знаком квадратного корня выражения для задания подынтегральной функции.
Для ввода подынтегральной функции в приведенном примере требуется совершить следующие действия:
• установив курсор мыши в стороне от места ввода, вывести панель набора арифметических операторов;
• подвести курсор мыши под шаблон ввода функции и щелкнуть левой клавишей для фиксации начала ввода;
• активизировать (мышью) кнопку со знаком квадратного корня на палитре математических символов;
• провести ввод выражения под знаком квадратного корня (при этом возможно редактирование данных с помощью стандартных операций редактирования).
Затем таким же способом надо заполнить остальные шаблоны, т. е. ввести
пределы интегрирования и имя переменной, по которой производится интег-
Загрузка документа
Загрузка документаНаряду с вводом своих простых документов с клавиатуры бывает полезно опробовать в работе ранее созданные (в том числе демонстрационные) документы. Для этого достаточно активизировать вторую пиктограмму с изображением открывающейся папки или воспользоваться командой Open (Открыть) в позиции File (Файл) главного меню системы. Тогда появится диалоговое окно поиска файла загружаемого документа (см. рис. 1. 15).
MathCAD 7.0
Экран после выполнения операции Arrange Icon
7 Экран после выполнения операции Arrange Icon
Если в результате ваших действий пиктограммы оказались разбросанными по текущему окну, применение этой операции позволит собрать их вместе в левом нижнем углу текущего окна системы Такая операция типична для всех программных систем, работающих в среде операционной системы Windows Она избавляет нас от ручного перетаскивания пиктограмм и точной установки их в нужном месте
Экран,"захламленный" пиктограммами неактивных окон
6 Экран,"захламленный" пиктограммами неактивных окон
Каскадное расположение окон (Cascade)
9. 2. Каскадное расположение окон (Cascade)Операция Cascade (Каскад) задает каскадное расположение окон. При этом окна располагаются последовательно, частично закрывая друг друга. У закрытых окон обычно видна лишь титульная строка с именем окна, повторяющим имя загруженного на исполнение документа. Окно, расположенное поверх остальных, видно полностью.
Верхнее окно можно закрыть, указав курсором мыши на квадратик с треугольником, обращенным вершиной вниз. Окно при этом свертывается в пиктограмму, а следующее за ним выходит на передний план. Указание на квадратик с треугольником, обращенным вершиной вверх, развертывает окно почти во весь экран. На рис. 9. 2 показано каскадное расположение окон.
Переключение окон и управление ими
9. 6. Переключение окон и управление имиПомимо перечисленных операции в позиции Window главного меню предусмотрена возможность переключения текущего окна Все введенные в систему документы регистрируются в специальном каталоге, который помещается в нижней части подменю позиции Window. Из каталога можно легко выбрать любое нужное сейчас окно и переключиться в режим редактирования и исполнения содержащегося в нем документа.
Каждое окно системы MathCAD содержит характерный для приложений под Windows квадратик с жирной короткой чертой (такой квадратик, но с длинной чертой содержит главное окно системы). Если активизировать эту область, указав ее курсором мыши и нажав левую клавишу, то из квадратика выпадет Windows-меню, содержащее следующие операции:
Restore (Восстановить) — восстановление обычного вида окна;
Move (Переместить) — перемещение окна по экрану;
Size (Размер) — изменение размеров окна;
Minimize (Свернуть) — свертывание окна в пиктограмму;
Maximize (Развернуть) — развертывание окна;
Close [Ctrl+ F4] (Закрыть) — закрытие текущего окна;
Next [Ctrl+ F6] (Следующее) — переход к следующему окну.
Эти операции характерны почти для всех прикладных программ, работающих в среде Windows, и на них не стоит останавливаться. Русскоязычная система Windows имеет это окно, естественно, с надписями на русском языке.
Если окон оказалось слишком много (ограничение в виде восьми окон в новой версии снято), то система откажется от ввода дополнительных документов и сообщит то этом в информационном окне. Для продолжения работы нужно очистить текущее окно командой New (Создать) в позиции File (Файл) главного меню или закрыть часть ставших ненужными окон. Для этого используется команда Close (Закрыть) из Windows-меню каждого окна. Вообще говоря, держать открытыми слишком много окон не рекомендуется в любом случае, так как это загромождает экран и уменьшает ресурсы ПК (прежде всего объем доступной памяти).
Подменю для работы с окнами (Window)
9. 1. Подменю для работы с окнами (Window)Как и большинство программ, работающих в среде Windows, система MathCAD унаследовала от нее многооконный и удобный пользовательский интерфейс. Мы уже видели, что после загрузки системы появляется окно, содержащее полосы прокрутки для скроллинга изображения и средства управления для свертывания окна в пиктограмму и развертывания его на часть экрана или на весь экран. Окна появляются при выборе соответствующих опций меню или подменю, а также при выводе сообщений об ошибках. Традиционны для Windows и средства перемещения окон и плавного изменения их размеров.
Система MathCAD позволяет одновременно работать со многими задачами. Под каждую задачу она отводит свое окно. Одно из них обычно является активным — то, с которым происходит работа в настоящий момент. Состояние других документов "замораживается", но их можно пустить в работу в любое время без новой загрузки и без исполнения связанной с окном программы.
Основные операции с окнами сосредоточены в позиции Window (Окно) главного меню (см. рис. 9. 1).
Показывает вид экрана после выполнения...
3 показывает вид экрана после выполнения этой операции. В нашем случае использованы оба варианта разделения экрана — и по горизонтали, и по вертикали.Показывает вид экрана после выполнения этой операции
4 показывает вид экрана после выполнения этой операцииСтрого горизонтальное или вертикальное расположение окон получается, если окон немного, например два или три. При большем числе окон деление экрана происходит как по горизонтали, так и по вертикали (см рис 9 5)
Выбор оптимального расположения окон зависит от характера работы с MathCAD Система позволяет перетаскивать мышью объекты из одного окна в другое Для такого перетаскивания достаточно выделить объект (или группу объектов — блок) и, удерживая нажатой левую клавишу мыши, перетащить объект (или блок) в другое окно. Для этой операции, облегчающей компоновку сложных документов, удобное расположение окон имеет важное значение.
Приведение в порядок пиктограмм (Arrange Icon)
9. 5. Приведение в порядок пиктограмм (Arrange Icon)Если перевести часть окон в неактивное состояние, то они будут представлены на экране своими пиктограммами. Эти пиктограммы можно перемещать куда угодно, что нередко ведет к "захламлению" экрана (см. рис. 9. 6).
Операция Arrange Icon (Упорядочить значки) означает наведение порядка с пиктограммами. При ее выполнении пиктограммы размещаются строго в нижней части экрана, как показано на рис. 9. 7.
Расположение большого числа окон после выполнения операции Vertical
5 Расположение большого числа окон после выполнения операции Vertical
Расположение окон после выполнения операции Cascade
2 Расположение окон после выполнения операции Cascade
Каскадное расположение окон удобно для их переключения. Оно позволяет видеть имена сразу всех файлов, документы которых загружены в окна, и дает достаточно места для обзора активного окна. Однако при таком расположении окон затруднен перенос объектов из одного окна в другое.
Расположение окон после выполнения операции Gorizontal
3 Расположение окон после выполнения операции Gorizontal
Равномерное расположение окон может оказаться наиболее удобным, если требуется скопировать блок из одного окна в другое. Однако здесь есть некоторая трудность: в уменьшенном по размеру окне видны не все блоки Поэтому не следует увлекаться одновременным выводом большого числа окон. Практика показывает, что чаще всего достаточно работать с двумя-тремя окнами И наконец, надо помнить, что в каждом окне возможен свой скроллинг изображений, поэтому несложно найти нужный объект, даже если он вначале не попал в видимую область окна.
Расположение окон после выполнения операции Vertical
4 Расположение окон после выполнения операции Vertical
Расположение окон по горизонтали (Horizontal)
9. 3. Расположение окон по горизонтали (Horizontal)Операция Horizontal выводит на экран сразу все окна, причем они имеют одинаковый размер и расположены по горизонтали. Размер окон тем меньше, чем больше окон выведено. В каждом окне видна лишь часть загруженного в
нею документа
Расположение окон по вертикали (Vertical)
9. 4. Расположение окон по вертикали (Vertical)Операция Vertical выводит на экран сразу все окна, причем они имеют одинаковый размер и расположены вертикально Размер окон тем меньше, чем больше окон выведено. В каждом окне видна лишь часть загруженного в него документа.
Вид экрана MathCAD с подменю Window главного меню
1 Вид экрана MathCAD с подменю Window главного меню
Ниже указаны эти операции:
Cascade (Каскад) — расположить окна документов друг под дру гом так, чтобы были видны заголовки;
Horizontal (По горизонтали) расположить окна документов горизонтально;
Vertical (По вертикали) — расположить окна документов вертикально;
Arrange Icons — упорядочить размещение пиктограмм (Упорядочить пиктограммы) рабочих документов вдоль нижней границы окна приложения.
Кроме этих операций в подменю позиции Window имеется список окон, которые в данный момент открыты. Он позволяет быстро сделать активным указанное окно.
Рассмотрим действие основных команд управления окнами. Они позволяют пользователю подстроить графический интерфейс системы под свои вкусы и привычные возможности.
MathCAD 7.0
Экран системы MathCAD 7. 0 PRO с открытым подменю позиции Help главного меню
Рис. 10. 1 Экран системы MathCAD 7. 0 PRO с открытым подменю позиции Help главного меню
Как видно из рис. 10. 1, подменю Help имеет следующие позиции:
Mathcad Help [Fl] — вызов справочной системы MathCAD;
(Справка по MathCAD)
Resource Center (Центр ресурсов) — вызов центра информационных ресурсов;
Tip of the Day — вызов оперативной подсказки;
(Оперативная подсказка)
Open Book... (Открыть книгу) — вызов окна оперативной справки;
Using Help (Использование — вызов информации о справочной
справочной системы) системе;
About Matchcad... — краткая информация о системе
(О системе MathCAD) MathCAD.
Электронная подсказка (Tip of the Day)
10. 5. Электронная подсказка (Tip of the Day)Весьма полезной для начального освоения системы является электронная подсказка Tip of the Day. Она вводится соответствующей операцией в подменю позиции Help главного меню. Эта подсказка построена по принципу ответа на вопрос "А знаете ли вы, что...".
Окно электронной подсказки было показано на рис. 1. 3. Работа с подсказкой настолько проста, что не нуждается в более полном описании, чем то, что было дано выше.
Информационные ресурсы системы MathCAD 7. 0 PRO
10. 1. Информационные ресурсы системы MathCAD 7. 0 PROК информационным ресурсам системы MathCAD 7. 0 PRO относятся подсказка начального уровня Tip of the Day, электронный справочник по системе обучающая программа по ней, примеры применения (шпаргалки), электронные книги, справочные таблицы, доступ в Internet и др. Доступ ко всем этим ресурсам сосредоточен в подменю позиции Help (Справка) главного меню (рис. 10. 1).
Использование справочной системы (Using Help...)
10. 7. Использование справочной системы (Using Help...)Сама по себе справочная система MathCAD достаточно сложна, хотя работа с нею интуитивно предсказуема. Тем не менее благодаря операции Using Help... (Использование справки) можно получить справку об использовании самой справочной системы (рис. 10. 14).

Общие сведения о системе (About MathCAD)
10. 8. Общие сведения о системе (About MathCAD)Операция About MathCAD (0 программе MathCAD) мало что прибавляет к знаниям о системе MathCAD, она лишь выводит красочную заставку с указанием фирмы-разработчика и названия программного продукта (см. рис. 10. 15).
Окно центра ресурсов
Рис. 10. 7 Окно центра ресурсов
Окно одной из шпаргалок
Рис. 10. 9 Окно одной из шпаргалок

Окно поиска и загрузки файлов с электронными книгами
Рис. 10. 11 Окно поиска и загрузки файлов с электронными книгами
MathCAD позволяет пользователю создавать свои книги или использовать уже готовые В частности, с русифицированной версией системы MathCAD 6 0 поставляется набор из трех встроенных книг на русском языке Desktop Reference — справочник по математическим расчетам, Book Sampler — примеры применений системы, Tutorial — самоучитель по правилам работы с системой MathCAD
Указанные книги содержат обширный материал Так, книга Desktop Reference — довольно полный справочник по математическим формулам и таблицам, в том числе относящимся к физике, химии, механике, электротехнике, радиотехнике и т д Использование этой книги избавляет пользователя от необходимости часто обращаться к обычной справочной литературе
Книга Book Sampler содержит сотни примеров применения системы в практике математических расчетов А книга Tutorial является небольшим самоучителем по системе, использующим мультимедийные возможности MathCAD, она содержит элементы динамической графики, поясняющие в какой последовательности пользователь должен выполнять действия в ходе проведения математических расчетов В основном книга учит элементам пользовательского интерфейса системы
Все эти книги могут пригодиться и пользователям версии системы MathCAD 7 О PRO, поскольку на уровне файлов новая и прежняя версии системы совместимы Это наглядно демонстрирует рис 10 12, на котором показана титульная страница русскоязычной книги Book Sampler
Кроме указанных, имеются десятки книг по самым различным областям применения системы MathCAD
• математические вычисления общего характера,
• реализация численных методов,
• расчеты в физике, механике, оптике, электро- и радиотехнике,
• статистические и экономические вычисления и т д
После инсталляции (ее процедура ничем не отличается от инсталляции в среде Windows любых приложений) указанные книги пополняют набор книг,
Окно поиска темы профессиональной справочной базы данных
Рис. 10. 6 Окно поиска темы профессиональной справочной базы данных
Найденная тема отображается подобно тому, как показано на рис 103. К сожалению, выйдя на показ интересующей пользователя темы, справочное окно закрывается вместе с окном справочной базы данных.
Окно создания профессиональной справочной базы данных
Рис. 10. 5 Окно создания профессиональной справочной базы данных
Это окно является первым окном мастера подготовки профессиональной базы данных. Выбрав вид создаваемой базы и пройдя по этапам ее подготовки, можно получить окно поиска этой базы, показанное на рис 10. 6
Окно справочной системы
Рис. 10. 2 Окно справочной системы
русскоязычной версии операционной системы Windows 95 Само же содержание справок, естественно, дано на английском языке (см рис 10 3, например)
Окно с информацией о применении справочной системы
Рис. 10. 14 Окно с информацией о применении справочной системыУже говорилось, что кое-где надписи в окнах справочной системы англоязычных версий MathCAD появляются на русском языке. Окно, показанное на рис. 10. 14, вообще может озадачить: в нем абсолютно все надписи даны на русском языке, хотя использовалась оригинальная англоязычная версия системы MathCAD 7. 0 PRO.
Причина этого нового казуса тоже в том, что операция Using Help... запускает стандартную справочную систему Windows. В данном случае использовалась русифицированная версия Windows 95. Поэтому на рис. 10. 14 окно справочной системы MathCAD содержит все надписи на русском языке.
Открытие электронных книг (Open Book...)
10. 6. Открытие электронных книг (Open Book...)Отдельных электронных книг в типовом комплекте поставки системы MathCAD 7. 0 уже нет. Точнее, они вошли в центр ресурсов вместе с иными информационными средствами. Однако фирма MathSoft продолжает создавать электронные книги по самым различным вопросам. Поэтому возможность работы с электронными книгами сохранена и о них стоит упомянуть.
Электронными книгами в системе MathCAD называются взаимосвязанные наборы объединенных в тематические разделы документов, относящихся к самым различным сферам применения системы. Документы вызываются друг из друга, обеспечивая гипертекстовые перекрестные ссылки. Количество взаимосвязанных документов в одной книге может быть большим, до несколько сотен. В конечном счете оно определяется объемом дисковой памяти ПК.
Электронной книгой можно пользоваться, как обычной, для получения нужной информации. Конечно, для этого необходим компьютер с установленной на нем системой MathCAD. Однако преимущества электронных книг перед обычными весьма существенны:
• электронные книги имеют значительно улучшенное оформление материала по сравнению обычными (цветные графика и текст, различные приемы выделения математических выражений и т. д.);
• поиск информации в электронных книгах облегчен гипертекстовыми ссылками;
• электронные книги — действующие (работающие) объекты, т. е. вы можете изменить любые данные в них и примеры расчетов и тут же получить новые результаты;
• электронные книги допускают их модификацию пользователем (например, замену текстов, ввод новых комментариев и т. д.);
• статьи из электронных книг можно распечатать на принтере:
• электронные книги занимают мало места — на одном CD-ROM можно разместить информацию, эквивалентную размещенной в десятках обычных книг крупного формата;
• электронные книги могут посылаться по электронной почте и по сети Internet.
Для загрузки электронных книг служит операция Open Book (Открыть книгу). Она открывает окно загрузки и поиска файлов с электронными книгами, имеющих расширение. hbk. Это окно показано на рис. 10. 11.
Панель индексного указателя справочной системы
Рис. 10. 4 Панель индексного указателя справочной системы
Построение и применение профессиональной справочной базы данных
10. 3. Построение и применение профессиональной справочной базы данныхТретья панель, Поиск, позволяет создать профессиональную справочную базу данных но системе MathCAD 7. 0 PRO. Эта база данных дает возможность найти все разделы справочной системы, в которых упоминается заданное слово или хотя бы его начальная часть. Поскольку для базы данных нужна дополнительная память на диске, она при инсталляции обычно не создается. Открытие панели Поиск ведет к выводу окна установки профессиональной справочной базы данных о сисгеме, показанного на рис. 10. 5.
Пример получения справки
Рис. 10. 3 Пример получения справки
Вторая панель окна справки (рис 104) дает доступ к индексному указателю справочной системы Достаточно в поле 1 ввести хотя бы часть наименования темы справки, как в поле 2 появится перечень ближайших ее разделов
После выбора нужного раздела его просмотр выполняется так, как это было описано выше Индексный указатель — мощное средство поиска нужных сведений
Пример применения периодической системы элементов
Рис. 10. 10 Пример применения периодической системы элементовSolving — пособие по технике вычислений;
Practical Statistics — руководство по статистическим вычислениям;
Programming — руководство по программированию в среде
MathCAD 7. 0 PRO.
Следует отметить, что приведенные в данной книге многочисленные примеры в основном оригинальны. Так что примеры из упомянутых книг могут существенно расширить кругозор пользователя и лучше подготовить его к профессиональному применению системы. Хотя эти книги написаны (как и все в центре ресурсов) на английском языке, многие примеры достаточно понятны, тем более что комментарии к ним довольно кратки.
Тексты, формулы, графики (словом, любые объекты) можно легко перетаскивать из электронных таблиц и книг в документы MathCAD, что облегчает пользователю составление своих документов и обучающих программ.
Пример работы с русскоязычной книгой по экономическим расчетам
Рис. 10. 13 Пример работы с русскоязычной книгой по экономическим расчетам
К сожалению, с точки зрения наших пользователей, у большинства книг есть существенный недостаток — они подготовлены на английском языке Учитывая, что в книгах используются многие специальные термины, перевод и понимание их достаточно сложны Однако в русифицированной версии MathCAD встроенные электронные книги имеют тексты на русском языке
Даже беглый обзор встроенных электронных книг и пакетов применений систем MathCAD требует большого места и выходит за рамки настоящей книги. Поэтому тут описываются лишь основные приемы работы с такими книгами.
Иллюстрации в книгах и содержащиеся в них математические формулы и тексты можно перенести в текст документа. Для этого надо просто активизировать специальную метку (звездочка с двумя точками под ней) около рисунка или формулы. Рисунок или формула будут перенесены на место, соответствующее местоположению курсора (не забудьте передвинуть его при очередном сеансе переноса рисунка или формулы).
Поскольку книги, в сущности, представляют собою обычные документы MathCAD, они просматриваются в окне редактирования этой системы и их можно редактировать, пополнять и модифицировать. Например, не выходя из системы, можно перевести тексты книг на русский язык. При этом система сохранит как измененную книгу, так и исходную. Так что оригинал всегда можно восстановить после модернизации.
Работа со справочной системой (MathCAD Help)
10. 2. Работа со справочной системой (MathCAD Help)Справочная система MathCAD 7. 0 PRO — это большая база данных, объем которой намного превосходит объем данной книги (хотя она также является справочником). Однако назначение обычных справочных книг и назначение электронного справочника по системе принципиально различны.
Вначале в большинстве программных средств электронная справочная система была сокращенным вариантом обычного описания. Сейчас ситуация стала прямо противоположной — электронные справочные системы современных программных средств настолько разрослись, что публикация их содержания в обычном виде стала нецелесообразной.
Теперь обычный справочник является "выжимкой" наиболее важных сведений о системе, а электронный содержит детальную и полную информацию о ней.
Несмотря на удобство пользования обычной книгой электронная справочная система имеет свои явные достоинства:
• большой (и почти не ограниченный) объем информации;
• быстрый поиск информации;
• прекрасное оформление (в том числе цветовое);
• возможность немедленного исполнения примеров и их переноса в документы;
• естественное совмещение с системой.
Тем не менее такая система имеет и существенные недостатки:
• требует для применения компьютера;
• неудобна для систематического начального знакомства с системой;
• закрывает документ, с которым работает пользователь;
• требует обновления вызова после получения очередной справки;
• написана на языке оригинала (в нашем случае — на английском).
Последний недостаток особенно неудобен для русскоязычных пользователей. Многие считают, что это перечеркивает все достоинства электронной справочной системы и делает ее, по существу, бесполезной. К сожалению, это в основном так: большинство наших пользователей просто не пользуются электронным справочником системы MathCAD. Однако опытные пользователи, даже плохо владеющие английским языком, все же нередко обращаются к электронной справочной системе, поскольку она дает ответ на ряд редких и второстепенных вопросов, которые могут не попасть в обычные книги вследствие ограничения их объема (настоящая книга исключением не является)
Для вызова справочной системы можно:
• исполнить операцию Mathcad Help в подменю позиции Help главного меню;
• нажать клавишу F1;
• активизировать кнопку со знаком "?" в конце панели инструментов.
При этом появляется окно справочной системы, показанное на рис. 10. 2. Следует отметить, что справочная система является самостоятельным приложением и ее можно запускать независимо от собственно системы MathCAD.
Как видно из рис. 10. 2, окно справочной системы имеет три панели, которые вводят три вида справок: Содержание, Предметный указатель и Поиск. О причинах, по которым эти (и некоторые другие) надписи даны на русском языке, уже говорилось: окна справочной системы MathCAD заимствует из
Работа с центром информационных ресурсов (Resource Center)
10. 4. Работа с центром информационных ресурсов (Resource Center)Позиция Resource Center подменю Help открывает доступ к новой возможности системы MathCAD 7 О PRO центру информационных ресурсов. Центр ресурсов представляет собой мощную базу данных, объединяющую встроенные в систему введение, электронные книги, обучающую систему, быстрые примеры (шпаргалки), средства общения с фирмой — разработчиком системы и сетью Internet, средства регистрации и доступа к Web-библиотеке MathCAD и т. д.
При активизации позиции Resource Center открывается окно с перечнем (в виде красочных пиктограмм) входящих в центр ресурсов средств Это окно показано на рис. 10. 7.
Доступ к тому или иному средству центра ресурсов выполняется активизацией его пиктограммы курсором мыши и двойным щелчком левой ее клавиши В качестве примера на рис 10. 8 представлена титульная заставка раздела центра, относящегося к быстрым примерам — шпаргалкам Quicksheets Стоит выбрать нужный пример — и к вашим услугам появится документ с соответствующей шпаргалкой.
Окна со шпаргалками имеют обычный для Windows-приложений вид. На рис. 10. 9 показано полноэкранное окно одной из шпаргалок; она посвящена применению при программировании условного оператора IF
Титульная страница книги Book Sampler
Рис. 10. 12 Титульная страница книги Book Sampler
входящих в систему, и с ними можно работать так же, как со встроенными книгами Это обеспечивает обширные возможности расширения системы и ее адаптации к интересующим пользователя задачам и проблемам Начат выпуск и отдельных книг на русском языке Пример работы с такой книгой приведен на рис 1013
Титульная заставка центра ресурсов, относящаяся к шпаргалкам
Рис. 10. 8 Титульная заставка центра ресурсов, относящаяся к шпаргалкам
Тут надо отметить, что шпаргалки содержат сотни интересных (как простейших, так и сложных) примеров на применение системы MathCAD в практике математических и научно-технических расчетов
Большой интерес (даже у наших пользователей) вызовут справочные таблицы Reference Tables Они заменяют обычные таблицы физико химических и иных свойств различных веществ В качестве примера на рис 10 10 показана периодическая система элементов с данными об одном из элементов
Большой материал по применению системы MathCAD содержится в трех встроенных в центр ресурсов электронных книгах
Заставка MathCAD 7. 0 PRO, выведенная при выполнении операции About MathCAD
Рис. 10. 15 Заставка MathCAD 7. 0 PRO, выведенная при выполнении операции About MathCAD
Впрочем, кое-что любопытное в этой заставке есть; из нее, например, можно узнать, что MathSoft начала работу в 1986 г. и что разработка данного программного продукта выполнена уже в 1997 г.
MathCAD 7.0
Алфавит MathCAD 7. 0 PRO
Алфавит MathCAD 7. 0 PROАлфавит входного языка системы определяет совокупность символов и слов, которые используются при задании команд, необходимых для решения интересующего пользователя класса задач. Алфавит системы MathCAD содержит:
• строчные и прописные латинские буквы;
• строчные и прописные греческие буквы;
арабские цифры от 0 до 9;
системные переменные;
операторы;
имена встроенных функций;
спецзнаки;
строчные и прописные буквы кириллицы (при работе с русифицированными документами).
К укрупненным элементам языка относятся типы данных, операторы, функции пользователя и управляющие структуры. Все эти элементы присущи и любому другому языку программирования.
К типам данных относятся числовые константы, обычные и системные переменные, массивы (векторы и матрицы) и данные файлового типа. По числу типов данных система MathCAD несколько уступает современным языкам программирования (к примеру, в ней нет данных типа записей, множеств и др.). Это связано с определенной специализацией языка, направленной на математические расчеты общего характера. Впрочем, тенденция расширения типов данных в MathCAD налицо; в конце этой главы описан новый тип данных (строковые), которые появились в MathCAD 7. 0 PRO.
Арифметические операторы
Арифметические операторыАрифметические операторы предназначены для выполнения арифметических действий над численными величинами и конструирования математических выражений. Система MathCAD содержит следующие арифметические операторы (приводится их форма ввода, последовательность нажатия клавиш для ввода и условное наименование операндов Х и Y):
| Оператор X: =Y X=Y Х--X X+ Y X-Y X. Y Х Y XY Vx" X! ¦Z¦ z (-) ( ) |
Клавиши X: Y X-Y X Ctrl = -X X+ Y X-Y X* Y X/Y X^ x\ X! ¦Z z" ( ) |
Назначение оператора Локальное присваивание X значения Y Глобальное присваивание Х значения Y Вывод значения Х Смена знака Х Суммирование Х с Y Вычитание из Х значения Y Умножение Х на Y Деление Х на Y Возведение Х в степень Y Вычисление квадратного корня из Х Вычисление факториала Вычисление модуля комплексного Z Вычисление комплексно-сопряженного с Z числа Ввод пары круглых скобок с шаблоном Ввод открывающей скобки Ввод закрывающей скобки |

Базовые понятия входного языка системы
11. 1. Базовые понятия входного языка системыСистема MathCAD практически избавляет нас от необходимости программировать решение многих задач. Уходит в прошлое подход, когда пользователь, прежде чем вычислить определенный интеграл или производную заданной функции либо просто рассчитать ряд ее значений, был вынужден изучать основы программирования на Фортране, Бейсике или Паскале, а затем составлять свои простенькие и не очень надежные программы или же разыскивать их в статьях и книгах, подобных [2], и самостоятельно загружать эти программы в ПК.
Впрочем, нельзя не отметить, что такие программы (если они составлены корректно и профессионально) обеспечивают существенно большую скорость проведения вычислений, чем MathCAD. Однако время, необходимое на их создание, намного превышает время на подготовку задач к решению в системе MathCAD.
MathCAD прежде всего требует от пользователя корректного описания алгоритма решения математической задачи на входном языке, очень напоминающем общепринятый язык описания математических и научно-технических расчетов. Естественно, это описание должно быть исчерпывающе полным и абсолютно точным. Тем не менее сказанное не означает, что решение задач в системе MathCAD нельзя назвать программированием. Просто MathCAD обладает специализированным входным языком программирования очень высокого уровня, ориентированным на математические расчеты.
Поэтому, рассматривая входной язык системы как язык программирования, мы можем выделить в нем типичные понятия и объекты, такие, как идентификаторы, константы, переменные, массивы и другие типы данных, операторы и функции, управляющие структуры и т. д. Четкое представление об их возможностях и правилах применения (синтаксисе) весьма полезно при решении задач умеренной и высокой сложности.
Ниже описан входной язык системы MathCAD PLUS 7. 0. Он содержит все операторы и функции, которые были во всех предшествующих версиях системы - MathCAD 3. 0/4. 0/5. 0/ PLUS 5. 0/6. 0/PLUS 6. 0 PRO, что позволяет использовать материал этой главы пользователям, работающим с любой из указанных версий. Для этого в приведенных ниже изображениях экрана, как правило, удалены элементы интерфейса, характерные для MathCAD 7. 0 PRO. Функции, имеющиеся только в профессиональных версиях (с приставкой PRO в названии), выделены символом Ф.
Числовые функции с условиями сравнения
Числовые функции с условиями сравненияК числовым функциям с условиями сравнения относятся:
ceil(x) — наименьшее целое, большее или равное x,, floor(x) — наибольшее целое, меньшее или равное х;
mod(x,y) — остаток от деления х/у со знаком х;
angle(a,y) — положительный угол с осью х для точки с координатами (х,у)', Ф(х) — функция Хевисайда — единичного скачка (дает 0 при х<0 и 1 в
противном случае);
d(m,n) — функция, именуемая символом Кронекера, возвращающая 1
при т=п и 0 в противном случае. Назначение этих функций довольно очевидно. К примеру, функция Хевисайда может использоваться для задания импульса с шириной w.
pulse(t.w) := Ф(t) - Ф(t-w)
Функцию Хевисайда можно также использовать для создания указанных ниже логических функций, которых нет в системе MathCAD:
not(a):=Ф(.5-l) — функция логического отрицания NOT;
and(a,b):= Ф(а*Ь-.5) — функция логического перемножения AND;
or(a,b):= Ф(а+Ь-.5) — функция логического сложения OR.
Эти функции используются с параметрами а и Ь, которые имеют логические значения 0 (FALSE) и 1 (TRUE). Функции возвращают результат (О или 1) в соответствии с таблицами истинности логических функций NOT, AND и OR. Аналогичным образом можно задать и другие логические функции.
Числовые константы
Числовые константыКонстантами называют поименованные объекты, хранящие некоторые значения, которые не могут быть изменены. В качестве имени числовых констант используются их числовые значения (к примеру, значения констант 0 и 1 есть соответственно ноль и единица). В системе MathCAD используются и числовые константы, значениями которых являются числа с разной системой исчисления: десятичные, восьмеричные или шестнадцатеричные.
Числовые константы задаются с помощью арабских цифр, десятичной точки (а не запятой) и знака - (минус). Например:
123 — целочисленная десятичная константа;
12. 3 — десятичная константа с дробной частью;
12. 3* 10-5 —десятичная константа с мантиссой (12. 3) и порядком-5.
Эти формы представления числовых констант естественны, и их не стоит обсуждать, за исключением двух важных аспектов. Порядок числа вводится умножением мантиссы на 10 в степени, определяющей порядок. Во многих языках программирования принят ввод чисел в виде 12. 3е-5, где разделительный символ е указывает на порядок. Этот не вполне естественный для математики ввод числа в системе MathCAD устранен.
Далее надо отметить, что знак умножения* при выводе числа на экран меняется на привычную математикам точку, а операция возведения в степень (с применением спецзнака ^) отображается путем представления порядка в виде надстрочного элемента. Десятичные числа имеют основание 10. Диапазон их возможных значений лежит в пределах от 10^07 до 10^307 (это машинная бесконечность и машинный ноль).
Данные файлового типа
11 .4. Данные файлового типаЕще один важный тип данных системы MathCAD — файловые данные В сущности, это те же векторы и матрицы, но с элементами, которые могут записываться в виде файлов, имеющих свои имена. Файлы данных в системе представляет собою запись матриц в их естественной форме как последовательных текстовых файлов. Это простейший тип файлов, который легко обрабатывается в программах на различных языках программирования и может создаваться такими программами, благодаря чему возможен обмен данными между системой MathCAD и другими программами.
В ходе создания файла система считывает значения элементов векторов и матриц поэлементно (для матриц слева направо и сверху вниз) и по ходу считывания преобразует числовые значения элементов в их символьные эквиваленты, использующие ASCII-коды цифр и символы, относящиеся к заданию чисел. Эти символьные значения и записываются в виде данных файлов.
Существует семь файловых операций, рассматриваемых ниже. Создаваемые или используемые ими файлы легко просмотреть любым текстовым редактором, воспринимающим тексты в виде ASCII-кодов. При считывании файлов система обеспечивает обратное преобразование символьных представлений значений элементов в их числовые значения. Начнем рассмотрение этих операций с операции считывания файла, содержащего данные векторы.
1. READ (Имя_файла)
Эта операция-функция считывает данные из файла с указанным именем Имя_файла и возвращает значение — вектор. Обычно она используется для присваивания значений векторам, например:
V: = READ (DATA)
Здесь элементы вектора V получают значения, считанные из файла с именем DATA. Естественно, что такой файл должен существовать на диске, иначе ситуация будет считаться ошибочной. Для указания полного имени файла (если он не в текущем каталоге системы) следует использовать общеупотребительные для MS-DOS составные имена, например D: \EXPER\DATA, если файл DATA расположен на диске D в каталоге EXPER.
2. WRITE (Имя_файла)
Эта операция записывает данные в файл и присваивает ему указанное имя. Данные могут порождаться математическим выражением, например:
WRITE (Имя_файла): = Выражение
Разумеется, выражение должно создавать данные векторного типа.
3. APPEND (Имя_файла)
Эта операция подобна операции WRITE, но она дописывает данные в конец уже существующего файла. Нельзя использовать другие функции для до-писывания данных, поскольку эти функции уничтожают прежние данные в файле и заносят новые.
4. READPRN (Имя_файла)
Эта операция подобна READ, но считывает данные в виде двумерного массива — матрицы. Функция READPRN возвращает матрицу, значения элементов которой однозначно связаны со значениями элементов файла. Точнее, каждая строка или столбец возвращаемой матрицы подобны соответствующим строкам или столбцам текстового представления файла.
5. WRITEPRN (Имя_файла)
Эта операция подобна WRITE, но применяется для записи матричного выражения (или матрицы) в файл с указанным именем. Структура файла подобна структуре матрицы.
6. APPENDPRN (Имя_фaйлa)
Демонстрирует типовые операции с данными файлового типа.
Рис. 11.5 демонстрирует типовые операции с данными файлового типа.
Динамика протекания процесса эпидемии
Рис. 11.37 Динамика протекания процесса эпидемии
Возможны и более сложные реализации итерационных вычислений. Например, к ним сводится решение систем дифференциальных уравнений численными методами Эйлера, Рунге — Кутта и др.
Директива Given для подготовки блока решения системы уравнений
Директива Given для подготовки блока решения системы уравненийПри решении систем нелинейных уравнений используется специальный вычислительный блок, открываемый служебным словом — директивой Given — и имеющий следующую структуру:
Given
Уравнения
Ограничительные условия Выражения с функциями find и minerr
Рекомендуется дополнить блок проверкой решения системы.
Дополнительные матричные функции
Дополнительные матричные функцииВ профессиональные версии MathCAD включен ряд дополнительных матричных функций Они перечислены ниже.
eigenvals(M) — возвращает вектор, содержащий собственные значения матрицы М,
eigenvec(M,Z) для указанной матрицы М и заданного собственного значения Z возвращает принадлежащий этому собственному значению вектор,
eigenvecs(M) — возвращает матрицу, столбцами которой являются собственные векторы матрицы М (порядок расположения собственных векторов соответствует порядку собственных значений, возвращаемых функцией eigenvals),
genvals(M,N) — возвращает вектор обобщенных собственных значений v1 соответствующий решению уравнения M-x=v,-N-x (матрицы М и N должны быть вещественными),
genvals(M,N) — возвращает матрицу, столбцы которой содержат нормированные обобщенные собственные векторы,
Ф1и(М) — выполняет треугольное разложение матрицы М- P-M=L-U, L и U — соответственно нижняя и верхняя треугольные матрицы Все четыре матрицы квадратные, одного порядка;
Фqr(A) — дает разложение матрицы A, A=Q-R, где Q, — ортогональная матрица и R — верхняя треугольная матрица,
(Bsvd(A) — дает сингулярное разложение матрицы А размером n m A*S*VТ где U и V — ортогональные матрицы размером m m и n n соответственно, S - диагональная матрица, на диагонали которой расположены сингулярные числа матрицы А,
Фsvds(A) — возвращает вектор, содержащий сингулярные числа матрицы А размером т-п, где т>п;
Egeninv(A) - возвращает матрицу левую обратную к матрице А.
L-A=E, где Е — единичная матрица размером п* п, L — прямоугольная матрица размером n-rn, A — прямоугольная матрица размером п*п.
Дополнительные неактивные функции
Дополнительные неактивные функцииПри загрузке символьного процессора система распознает ряд дополнительных специальных функций, например:
FresnelC(x) — интеграл Френеля С(х);
FresnelS(x) — интеграл Френеля S(x);
Ci(x) — интегральный косинус;
Si(x) — интегральный синус;
Ег(х) — интегральная показательная функция;
dilog(x) — дилогарифм;
erf(z) — интеграл ошибок для комплексного аргумент z;
Psi(x) := , In(Go(x)) — "пси"-функция;
Psi(n,x) — п-я производная "пси"-функции.
К сожалению, статус этих функций необычен, они могут фигурировать в результатах символьных операций, но недоступны для обычных операций. Эти функции не обладают свойством эволюции, т. е. они не активны. Например, невозможно вычислить значения функций при подстановке в них числового значения аргумента и применении знака = для вывода результата вычислений. Однако, используя известные (в основном интегральные) представления для этих функций, их можно определить как функции пользователя. Выражения с неактивными функциями MathCAD размещает в буфере обмена, и их можно извлечь оттуда для обозрения.
Здесь не приводятся представления для этих функций, поскольку их легко найти в справочной системе помощи MathCAD либо в литературе, например в [14, 21]. В связи с особым статусом данного класса функций их имена не выделены жирным шрифтом.
Двумерная линейная сплайн-интерполяция и сплайн-аппроксимация
Двумерная линейная сплайн-интерполяция и сплайн-аппроксимацияДля повышения качества построения 3D-графиков имеется возможность осуществления двумерной сплайн-интерполяции. Это позволяет существенно повысить представительность сложных графиков 3D-функций, в том числе контурных (см. рис. 11.20).
На этом рисунке слева показан контурный график после проведения двумерной сплайн-интерполяции, а справа — без нее (с применением линейной
Единицы измерения
Единицы измеренияВ системе может применяться особый вид констант — единицы измерения размерных величин. Помимо своего числового значения они характеризуются еще и указанием на то, к какой физической величине они относятся. Для этого указания используется символ умножения. В системе MathCAD заданы следующие основные типы физических величин: time (время), length (длина), mass (масса) charge (заряд) и др. При необходимости их можно изменить на другие.
Функции альтернативного преобразования Фурье
Функции альтернативного преобразования ФурьеПомимо описанных функций MathCAD содержит ряд функций альтернативного преобразования Фурье. Они записываются прописными буквами: FFT, IFFT, CFFT и ICFFT. При альтернативном преобразовании используются иные нормирующие множители. Выражения, определяющие суть преобразований Фурье, можно легко найти в справочной базе данных системы (поэтому здесь они не приводятся).
Функции Бесселя
Функции БесселяК важнейшим встроенным специальным математическим функциям принадлежат функции Бесселя, являющиеся решениями дифференциального уравнения второго порядка:

Здесь п — порядок функции (рассматриваются функции только целого порядка при действительном х). Функции Бесселя описывают колебательные процессы и широко используются в физике и электро- и радиотехнике. Приведенное уравнение имеет решения в виде функций Бесселя Jn(x) первого рода и Yn(:c) второго рода.
Существуют также модифицированные функции Бесселя, которые являются решениями следующего дифференциального уравнения:

Эти функции также представлены функциями первого рода 1п(x) и второго рода Кп(х).
Функции Бесселя используются с вещественным аргументом. Ниже приведен список функций Бесселя, вычисление которых реализовано в системе MathCAD:
j0(х) — функция Бесселя первого рода нулевого порядка;
I0(х) — модифицированная функция Бесселя первого рода нулевого порядка;
Y0(x) — функция Бесселя второго рода нулевого порядка;
К0(х) — модифицированная функция Бесселя второго рода нулевого порядка;
J1(x) — функция Бесселя первого рода первого порядка;
I1(x) — модифицированная функция Бесселя первого рода первого порядка;
Y1(x) — функция Бесселя второго рода первого порядка;
К1(х) — модифицированная функция Бесселя второго рода первого порядка;
Jn(n,x) — функция Бесселя первого рода п-го порядка;
1п(п,к) — модифицированная функция Бесселя первого рода п-го порядка;
Yn(n,c) — функция Бесселя второго рода п-го порядка;
Кп(n,x) — модифицированная функция Бесселя второго рода п-го порядка.
Функции для линейной регрессии
Функции для линейной регрессииДругой широко распространенной задачей обработки данных является представление их совокупности некоторой функцией у(х). Задача регрессии заключается в получении параметров этой функции такими, чтобы функция приближала облако исходных точек (заданных векторами VX и VY) с наименьшей среднеквадратичной погрешностью. Чаще всего используется линейная регрессия, при которой функция у(х) имеет вид
у(х) =а+ Ь*х
и описывает отрезок прямой. К линейной регрессии можно свести многие виды нелинейной регрессии при двупараметрических зависимостях у(х).
Для проведения линейной регрессии в систему встроен ряд приведенных ниже функций:
corr(VX, VY) — возвращает скаляр — коэффициент корреляции Пирсона;
intercrpt(VX, VY) — возвращает значение параметра а (смещение линии регрессии по вертикали);
slope(VX, VY) — возвращает значение параметра b (наклона линии регрессии).
На рис. 11.23 показан пример проведения линейной регрессии для данных, представленных значениями элементов в векторах VX и VY.

Функции для одномерной и многомерной полиномиальной регрессии
Функции для одномерной и многомерной полиномиальной регрессииВведена в новую версию MathCAD и функция для обеспечения полиномиальной регрессии при произвольной степени полинома регрессии
regress(VX,VY, n)
Она возвращает вектор VS, запрашиваемый функцией interp(VS,VX,VY,x), содержащий коэффициенты многочлена п-й степени, который наилучшим образом приближает «облако» точек с координатами, хранящимися в векторах VX и VY
На рис 11 25 показан пример выполнения полиномиальной регрессии Для вычисления коэффициентов полинома регрессии используется функция submatrix

Функции для решения дифференциальных уравнений
11.19. Функции для решения дифференциальных уравненийНачиная с версии 5.0 в систему была введена возможность решения дифференциальных уравнений и систем с такими уравнениями в численном виде. Эту возможность трудно переоценить, так как многие серьезные научно-технические задачи (особенно относящиеся к анализу динамических систем и к их математическому моделированию) базируются на численных методах решения систем дифференциальных уравнений.
Нелинейные дифференциальные уравнения и системы с такими уравнениями, как правило, не имеют аналитических методов решения, и здесь особенно важна возможность их решения численными методами. В большинстве случаев желательно представление решений в графическом виде, что и позволяет MathCAD.
В прежних версиях MathCAD пользователю приходилось самостоятельно составлять документы с решением таких уравнений, например, методом Эйлера или Рунге — Кутта, что было делом не очень простым. К тому же решение загромождало текст документа. Теперь эта проблема решена, и довольно изящно.
Функции для решения дифференциальных уравнений Пуассона и Лапласа
Функции для решения дифференциальных уравнений Пуассона и ЛапласаДля решения дифференциальных уравнений Пуассона (в частных производных второго порядка) и уравнений Лапласа в систему введены следующие функции:
Фbvalfit(vl, v2, х1, х2, xi, — устанавливает начальные условия для F, LI, L2, score) краевой задачи, заданной в векторах F, vl и v2
на интервале от х1 до х2, где решение известно в некоторой промежуточной точке xi;
Фге1ах(М1, М2, МЗ, — возвращает квадратную матрицу решения М4, М5, A, U, г) уравнения Пуассона для спектрального радиуса г, Фmultigrid(M, п) — возвращает матрицу решения уравнения Пуассона, у которого решение равно нулю на границах;
sbval(y, х1, х2, F, L.,score) — дает установку начальных условий для краевой задачи, определенной в символьном векторе F; вектор у — начальные условия на интервале от х1 до х2.
Функции для решения жестких систем дифференциальных уравнений
Функции для решения жестких систем дифференциальных уравненийСистема дифференциальных уравнений, записанная в матричной форме у=А-х, где А — почти вырожденная матрица, называется жесткой. Для решения жестких дифференциальных уравнений в последние версии MathCAD введен ряд функций:
Фbulstoer (у, x1, x2, — возвращает матрицу решения системы обыкновен-асс, n, F, k, s) ных дифференциальных уравнений, правая часть которых записана в символьном векторе F с заданными начальными условиями в векторе у, на интервале от x1 до x2. Используется Bulirsch-Stoer-метод решения с переменным шагом. Параметры k и s задают максимальное число промежуточных точек, на которых ищется решение и минимально допустимый интервал между ними;
Ф Stiffb — возвращает матрицу решений жесткого дифферен-(у, х1, х2, п, F, J) циального уравнения, записанного в F и функции
Якобиана J; у - вектор начальных значений на интервале от х1 до х2. Для решения используется Bulirsch-Stoer-метод;
Ф stiffb (у, х1, х2, — возвращает матрицу решений только в конечной асc, п, F, J, k, s) точке жесткого дифференциального уравнения, записанного в F и функции Якобиана J; у — вектор начальных значений на интервале от х1 до х2. Для решения используется метод Bulirsch-Stoer с переменным шагом;
Ф Stiffr(y, х1, х2, — возвращает матрицу решений дифференциального п, F, J) уравнения, записанного в F и функции Якобиана
J; у — вектор начальных значений на интервале от х1 до х2. Для решения используется метод Розенброка;
Ф stiffr(y, х1, х2, — матрица решений только в конечной форме жест-асе,n, F, J, k, s) кого дифференциального уравнения, записанного в F и функции Якобиана J; у — вектор начальных значений на интервале от х1 до х2. Для решения используется метод Розенброка с переменным шагом. В приведенных функциях: асc — погрешность решения (рекомендуется порядка 0.001), k — максимальное число промежуточных точек ид— минимально допустимый интервал между точками, в которых ищется решение. Обратите внимание, что функции, начинающиеся со строчной буквы, дают решения только для конечной точки. Различаются функции также и методом решения.
Функции для решения краевых задач
Функции для решения краевых задачДля решения двухточечных краевых задач предназначены функции
shval(v^c1,x2,D,load,score)
bvalfit(vl,v2,x1,x2,xf,S,loadl,load2,score)
В них векторы v, vl, v2 задают начальные условия; х, х1, х2 — граничные точки интервала решений; D(х,у) — функция, возвращающая п-компонент-ный вектор с первыми производными неизвестных функций, \oad(x1,v), \oadi(x1,vi), load2(;c2,v2) — векторзначные функции, возвращающие значения начальных условий в точках х1 (х2); score(xf,y) — векторзначная функция, возвращающая п-элементный вектор соответствия. Вектор указывает, насколько значения решений, начинающихся из точек х1 и х2, должны соответствовать xf. Например, если нужно совпадение решений, то score(xf, у):=у.
Большое число примеров на решение дифференциальных уравнений с описанными функциями дается в подсказках QuickSheets, размещенных в центре ресурсов.
Функции для решения нелинейных уравнений и систем
11.16. Функции для решения нелинейных уравнений и системФункции для решения обыкновенных дифференциальных уравнений
Функции для решения обыкновенных дифференциальных уравненийДля решения задач такого класса в MathCAD введен ряд функций. Вначале остановимся на функциях, дающих решения для систем обыкновенных дифференциальных уравнений:
rkadapt — возвращает матрицу, содержащую таблицу (у, х1, х2, асc, п, F, k, s) значений решения задачи Коши на интервале от х1 до х2 для системы обыкновенных дифференциальных уравнений, вычисленную методом Рунге — Кутта с переменным шагом и начальными условиями в векторе у (правые части системы записаны в векторе F, n — число шагов, k — максимальное число промежуточных точек решения и s — минимально допустимый интервал между точками);
Rkadapt(y, х1, х2, п, F) — возвращает матрицу решений методом Рунге — Кутта с переменным шагом для системы обыкновенных дифференциальных уравнений с начальными условиями в векторе у, правые части которых записаны в символьном векторе F, на интервале от х1 до х2', п - число шагов;
rkfixed(y, х1, х2, п, F) — возвращает матрицу решений методом Рунге —
Кутта системы обыкновенных дифференциальных уравнений с начальными условиями в векторе у, правые части которых записаны в символьном векторе F, на интервале от х1 до х2 при фиксированном числе шагов п.
Функции find и minerr для решения систем нелинейных уравнений
Функции find и minerr для решения систем нелинейных уравненийВ блоке используется одна из следующих двух функций:
find(vl, v2, ..., vn) — возвращает значение одной или ряда переменных
для точного решения;
minerr(vl, v2, ..., vn) — возвращает значение одной или ряда переменных
для приближенного решения. Между этими функциями существуют принципиальные различия. Первая функция используется, когда решение реально существует (хотя и не является аналитическим). Вторая функция пытается найти максимальное приближение даже к несуществующему решению путем минимизации среднеквадратичной погрешности решения.
Функции прямого и обратного преобразований Фурье
11.18. Функции прямого и обратного преобразований ФурьеК фундаментальным положениям математики относится возможность представления периодических (а при определенных условиях и непериодических) функций совокупностью их гармонических составляющих в виде так называемого ряда Фурье [14]. Эта возможность используется во множестве прикладных сфер применения. Достаточно отметить, что на ее основе реализуется передача через каналы связи практически любой информации, например речи или музыки.
Функции распределения
Функции распределенияЭти функции дают вероятность того, что случайная величина будет иметь значения, меньшие или равные определенной величине. Они представлены ниже (смысл и значения параметров были указаны ранее):
Ф pbeta(x, s1, s2) — значение в точке х функции стандартного нормального распределения;
pbinom(^, п, р) — значение функции распределения биномиального закона для k успехов в серии п испытаний;
Ф pcauchy(x, /, s) — значение в точке х функции распределения Коши со шкалой параметров / и s;
pchisq(x, d) — значение в точке х кумулятивного {Хи-квадрат-распре-деления, в котором d - степень свободы;
Ф рехр(х, r) — значение в точке х функции экспоненциального распределения;
pf(x, d1, d2) — значение в точке х функции распределения Фишера;
Ф pgamma(x, s) — значение в точке х функции гамма-распределения;
Ф pgeom(k, р) — значение в точке х функции геометрического распределения;
Ф plnonn(x, m, о) — значение в точке х функции логнормального распределения;
Ф plogis(;c, /, s) — значение в точке х функции последовательного распределения;
plnonn(:c, jU, о) — значение в точке х функции нормального распределения;
Ф pnbinom(k, п, р) — значение в точке х функции отрицательного биномиального распределения;
ppois(k, Л) — значение для k функции распределения Пуассона;
pt(x, d) — значение в точке х функции распределения Стьюдента;
punif(x, a, b) — значение в точке х функции равномерного распределения;
Ф pweibull(x, s) — значение в точке х функции распределения Вейбулла.
Функции сглаживания данных
11.14. Функции сглаживания данныхДанные большинства экспериментов имеют случайные составляющие погрешности. Поэтому часто возникает необходимость статистического сглаживания данных. Ряд функций MathCAD предназначен для выполнения операций сглаживания данных различными методами (в их названии имеется слово smooth - гладкий). Вот перечень этих функций:
medsmooth(VY,n) — для вектора с т действительными числами возвращает т-мерный вектор сглаженных данных по методу скользящей медианы, параметр п задает ширину окна сглаживания (п должно быть нечетным числом, меньшим т),
Ф ksmooth(VX, VY, b) — возвращает n-мерный вектор сглаженных VY, вычисленных на основе распределения Гаусса. VX и VY — п-мерные векторы действительных чисел Параметр b (полоса пропускания) задает ширину окна сглаживания (b должно в несколько раз превышать интервал между точками по оси х),
Ф supsmooth(VX, VY) — возвращает и-мерный вектор сглаженных VY, вычисленных на основе использования процедуры линейного сглаживания методом наименьших квадратов по правилу k-ближайших соседей с адаптивным выбором k. VX и VY — и-мерные векторы действительных чисел Элементы вектора VX должны идти в порядке возраст ания На рис 11 28 показан пример применения функции subsmooth(X,Y), ко
торая выполняет сглаживание функции Y(X), представленной векторами Х и
Y координат ее точек Обратите внимание на применение и другой функции —
sort(Y), сортирующей данные векторов, что иногда уменьшает погрешности
численного алгоритма сгтаживания
Функции сортировки для векторов и матриц
Функции сортировки для векторов и матрицНачиная с третьей версии в системе MathCAD появились некоторые дополнительные функции сортировки — перестановки элементов векторов и матриц:
sort(V) — сортировка элементов векторов в порядке возрастания их значений;
reverse(V) — перестановка элементов (после sort) в обратном порядке;
csort(M,n) — перестановка строк матрицы М таким образом, чтобы отсортированным оказался п-й столбец;
rsort(M,n) — перестановка столбцов матрицы М таким образом, чтобы отсортированной оказалась п-я строка.
Примеры применения дополнительных векторных и матричных функций
На рис. 11.17 представлены примеры, иллюстрирующие работу некоторых дополнительных векторных и матричных функций.
Функции создания векторов m различными законами распределения
Функции создания векторов m различными законами распределенияПоследняя группа статистических функций служит для создания векторов с определенными законами распределения значений их элементов:
Ф rbeta(m, s1, s2) — бетта-распределение;
rbinom(m, n, p) — биномиальное распределение;
Ф rcauchy(m, /, s) — распределение Коши;
rchisq(m, d) — Хи-квадрат-распределение;
Ф rexp(m, r) — экспоненциальное распределение, rF(m, d1, d2) — распределение Фишера;
Ф rgamma(m, s) — гамма-распределение;
Ф rgeom(m, p) — геометрическое распределение;
Ф rlnorm(m, /л, сг) — логарифмическое нормальное распределение;
Ф rlogis(m, /, s) — последовательное распределение;
Ф mbinom(m, n, p) — негативное биномиальное распределение;
morm(m, m, о) — нормальное распределение;
rpois(m, Я) — распределение Пуассона;
rt(m, d) — распределение Стьюдента;
rumf(m, а, b) — равномерное распределение;
Ф rweibull(m, s) — распределение Вейбулла.

Функции с условиями сравнения
11.8. Функции с условиями сравненияСуществует ряд встроенных функций, у которых возвращаемый ими результат зависит от знака или значения аргумента. Так, при их вычислении производится сравнение аргумента с некоторыми числовыми константами, например с нулем или целыми числами. Ниже представлены такие функции.
Функции волновых дискретных преобразований
Функции волновых дискретных преобразованийВ системы MathCAD 6.0/7.0 включены еще две функции дискретных волновых преобразований:
Ф wave(V) — дискретное волновое преобразование действительных чисел с использованием четырехкоэффициентного волнового базиса Даубечи. Вектор V должен содержать 2" действительных значений, где п - целое число;
Ф iwave(V) — обратное преобразование относительно преобразования wave
(V — вектор размером 2").
Это довольно редкие функции, представляющие интерес для специалистов — разработчиков электронных фильтров.
Функции, возвращающие специальные характеристики матриц
Функции, возвращающие специальные характеристики матрицСпециальные характеристики матриц возвращаются следующими функциями:
cols(M) — возвращает число столбцов матрицы М;
rows(M) — возвращает число строк матрицы М;
rank(M) — возвращает ранг матрицы М;
tr(M) — возвращает след (сумму диагональных элементов) квадратной
матрицы М;
mean(M) — возвращает среднее значение элементов массива М;
median(M) — возвращает медиану элементов массива М;
condl(M) — возвращает число обусловленности матрицы, вычисленное в
норме L1;
cond2(M) — возвращает число обусловленности матрицы, вычисленное в
норме L2;
conde(M) — возвращает число обусловленности матрицы, вычисленное
в норме евклидова пространства;
condi(M) — возвращает число обусловленности матрицы, основанное на
равномерной норме;
norml(M) — возвращает L1, норму матрицы М;
norm2(M) — возвращает L2, норма матрицы М;
поппе(М) — возвращает евклидову норму матрицы М;
normi(M) — возвращает неопределенную норму матрицы М.
Функции встроенные и задаваемые пользователем
Функции встроенные и задаваемые пользователемMathCAD имеет множество встроенных функций, которые обладают особым свойством: в ответ на обращение к ним по имени с указанием аргумента (или списка аргументов) они возвращают некоторое значение — символьное, числовое, вектор или матрицу. В систему встроен ряд функций, например функция вычисления синуса sin (x) аргумента х, логарифма \п (х) и т. д. Наряду со встроенными функциями могут задаваться и функции пользователя, отсутствующие в MathCAD. Благодаря встроенным функциям обеспечивается расширение входного языка системы и его адаптация к задачам пользователя.
Функции вычисления плотности вероятности распределения
Функции вычисления плотности вероятности распределенияФункции вычисления плотности вероятности распределения представлены
следующим набором:
Ф dbeta(x, s1, s2) —B-распределение (s1, s2>0 — параметры формы, 0
dchisq(x, d) — Хи-квадрат-распределение (х, d>0, причем d — число степеней свободы);
Ф dexp(x, r) — экспоненциальное распределение (г, х>0);
dF(x, d1, d2) — распределение Фишера (d1, d2>0 — числа степеней свободы, х>0)',
Ф dgamma(x, s) — гамма-распределение (s>0 — параметр формы, х>0);
Ф dgeom(k, р) — геометрическое распределение (0
Ф dlnorm(x, р., о") — логнормальное распределение (р. —
натуральный логарифм среднего значения, о">0 — натуральный логарифм среднеквадратичного отклонения, х>0)',
Ф dlogis(x, /, s) —
логистическое распределение (/ — параметр разложения, s>0 — параметр масштаба);
Ф dnbinom(^, п, р) —
отрицательное биномиальное распределение (и>0 и k>0 — целые числа, 0
dnorm(x, р., а) —
нормальное распределение (^ — среднее значение,
++ о>0 — среднеквадратичное отклонение);
dpois(k. Л) — распределение Пуассона (А>0, k — целое неотрицательное число);
dt(a', d) —
распределение Стьюдента (d>0 — число степеней свободы, х — вещественное число);
dunif(-c, а, Ь) —
равномерное распределение (а и b —
граничные точки интервала, причем а<Ь и а<х<Ь);
Ф dweibull(x, s) —
распределение Вейбулла (s>0 — параметр формы).
Функция для линейной регрессии общего вида
Функция для линейной регрессии общего видаВ MathCAD реализована возможность выполнения линейной регрессии общего вида При ней заданная совокупность точек приближается функцией вида
F(x, К1 ,К2, ., Kn)= K1, F1(x)+K2 F2(x)+ +КnFn(x)
Таким образом, функция регрессии является линейной комбинацией функций F1(x), F2(x), ., Fn(x), причем сами эти функции могут быть нелинейными, что резко расширяет возможности такой аппроксимации и распространяет ее на нелинейные функции
Для реализации линейной регрессии общего вида используется функция linfit(VX,VY,F) Эта функция возвращает вектор коэффициентов линейной регрессии общего вида К, при котором среднеквадратичная погрешность приближения облака исходных точек, если их координаты хранятся в векторах VX и VY, оказывается минимальной Вектор F должен содержать функции F1(x), F2(x), , Fn(x), записанные в символьном виде
Рис 11 24 поясняет проведение линейной регрессии общего вида с применением функции Unfit Процедура проведения вычислений настолько проста, что не нуждается в особых комментариях

Функция для нелинейной регрессии общего вида
Функция для нелинейной регрессии общего видаПод нелинейной регрессией общего вида подразумевается нахождение вектора К параметров произвольной фучнкции F(x,K1,K2,...,Kn), при котором обеспечивается минимальная среднеквадратичная погрешность приближения облака исходных точек.
Для проведения нелинейной регрессии общего вида используется функция genfit(VX, VY, VS, F). Эта функция возвращает вектор К параметров функции F, дающий минимальную среднеквадратичную погрешность приближения функцией Р(х,К1,К2,...,Кп) исходных данных.
F должен быть вектором с символьными элементами, содержащими уравнение исходной функции и ее производных по всем параметрам. Вектор VS должен содержать начальные значения элементов вектора К, необходимые для решения системы нелинейных уравнений регрессии итерационным методом.
На рис. 11.27 показан пример выполнения нелинейной регрессии общего вида для нелинейной функции F(x,a,b)=a-exp(-b-x)+a-b.
Функция поиска корней многочлена polyroots
Функция поиска корней многочлена polyrootsДля поиска корней обычного полинома р(х) степени п MathCAD содержит очень удобную функцию:
polyroots(V)
Она возвращает вектор корней многочлена (полинома) степени п, коэффициенты которого находятся в векторе V, имеющем длину равную п+1.
Заметим, что корни полинома могут быть как вещественными, так и комплексными числами. Не рекомендуется пользоваться этой функцией, если степень полинома выше пятой-шестой, так как тогда трудно получить малую погрешность вычисления корней. На рис. 11.30 в конце документа приведен пример вычисления корней кубического полинома с применением функции polyroots.
Функция поиска корня нелинейного уравнения root
Функция поиска корня нелинейного уравнения rootМногие уравнения, например трансцендентные, и системы из них не имеют аналитических решений. Однако они могут решаться численными методами с )аданной погрешностью (не более значения, заданного системной переменной TOL). Для простейших уравнений вида F(x)=0 решение находится с помощью функции
гооt (Выражение, Имя_переменной)
Эта функция возвращает значение переменной с указанным уровнем, при котором выражение дает 0. Функция реализует вычисления итерационным методом, причем можно задать начальное значение переменной. Это особенно полезно, если возможно несколько решений. Тогда выбор решения определяется выбором начального значения переменной.
Функция предсказания
11.15. Функция предсказанияВесьма интересной является функция предсказания predikt(datai,k,N), где data — вектор данных, k — степень полинома регрессии и N — число точек. Она по ряду заданных равномерно расположенных точек позволяет рассчитать некоторое число N последующих точек, т. е. по существу выполняет жстраполяцию произвольной (но достаточно гладкой и предсказуемой) зависимости. На рис. 11.29 показано применение функции предсказания — экстраполяции.

Функция root в составе функции пользователя
Функция root в составе функции пользователяФункцию root можно использовать и в составе функций пользователя, что нередко позволяет получать довольно простые решения для нетривиальных задач. Примером может служить вычисление неполной гамма-функции G(a,x), показанное на рис. 11.31.
Функция until и ее применение
Функция until и ее применениеБолее актуальна задача реализации итерационных вычислений с их окончанием по некоторому заданному условию. Для этого система MathCAD содержит специальную операцию
until(Выражение_1, Выражение_2)
Эта операция-функция реализует итерационные вычисления и возвращает значение выражения 2, если выражение 1 больше или равно 0. В противном случае итерационные вычисления прекращаются.
На рис. 11.36 показано действие этой функции на другом классическом примере — вычислении квадратного корня из числа N итерационным методом Ньютона.
Этот пример позволяет наглядно проследить динамику схождения к точному результату результатов вычислений по итерационной формуле Ньютона.

Функция условных выражений if
Функция условных выражений ifБолее широкие возможности дает функция if для создания условных выражений:
if (Условие, Выражение 1, Выражение 2)
Если в этой функции условие выполняется, то будет вычисляться выражение 1, в противном случае — выражение 2 Заметим, что эта функция широко распространена в языках программирования.
На рис 11. 10 приведены примеры применения функции if для моделирования процессов однополупериодного и двухполупериодного выпрямления синусоиды (используется в электротехнике для преобразования переменного тока в пульсирующий одной полярности) Этот процесс иллюстрируется наглядной графикой
Гамма-функция
Гамма-функцияДругой широко распространенной специальной функцией, вычисление которой (причем как при действительном, так и комплексном аргументе z) предусмотрено в системе MahCAD, является гамма-функция G(z). Она широко применяется и в статистических расчетах. В них используется также функция ошибок erf(x), называемая еще интегралом вероятности.
На рис. 11.9 представлены примеры вычисления ряда специальных математических функций и их графики.
Иллюстрирует подготовку вектора...
Рис. 11.35 иллюстрирует подготовку вектора, содержащего десять чисел Фибоначчи. Этот пример соответствует вычислениям по рекуррентной формуле заданное число раз.
Иллюстрирует решение другой задачи...
Рис. 11.33 иллюстрирует решение другой задачи — поиск точек пересечения параболы отрезком прямой. В нашем случае с помощью функции Find решается система из двух уравнений (одно из них нелинейное) с ограничительными условиями, задающими область поиска корня (x<0 для отрицательного корня и х>0 для положительного).
Индексация элементов массивов
Индексация элементов массивовПорядковый номер элемента, который является его адресом, называется индексом. Напоминаем, что нижняя граница индексации задается значением системной переменной ORIGIN, которая может принимать значение 0 или 1.
Имя массива естественно увязать с именами индексированных переменных, значениями которых являются элементы массива. Для этого достаточно в виде подстрочного индекса указать индекс элемента. Например, если третий из представленных массивов имеет имя V, то его элементами при ORIGIN=0 будут индексированные переменные:
Vo=0 V1=x V2=2x2 Vз-Зх3 V4=4x4
Векторы могут быть двух типов: векторы-строки и векторы-столбцы. Например:

Несмотря на то что два этих вектора имеют одни и те же числовые значения элементов, они различны по типу и дадут разные результаты при векторных и матричных операциях, чувствительных к типу векторов.
Комплексные числа
Комплексные числаБольшинство вычислений система выполняет как с действительными, так и с комплексными числами, которые обычно представляются в алгебраическом виде:
Z = ReZ+ i* ImZ или Z = ReZ+ j* ImZ
Здесь ReZ — действительная часть комплексного числа Z, ImZ — его мнимая часть, а символы i или j обозначают мнимую единицу, т. е. корень квадратный из -1. Такое представление характерно и для системы MathCAD (за исключением того, что знак равенства не есть знак присваивания). Итак, если ReZ = 2, а ImZ = 3, то комплексная числовая константа в системе MathCAD должна быть задана в виде 2+ г* 3 или 2+ j* 3.
Однако система не всегда знает, какой символ применить для обозначения мнимой единицы. Поэтому перед использованием любых операций с комплексными числами полезно вначале определить i или,/' как мнимую единицу (т. е. присвоить им значение квадратного корня из -1).
Квантили распределения
Квантили распределенияСледующая группа задает обращения (квантили) функций распределения случайных величин. Они позволяют по заданной вероятности вычислить такое значение х, при котором вероятность равна или меньше заданного значения р. Квантили для различных распределений задаются функциями, представленными ниже:
Ф qbeta(p, s1, s2) — квантили обратного бетта-распределения с параметрами формы s1 и s2;
qbinom(p, n, q) — количество успешных определений при п-м количестве испытаний при решении уравнения Бернулли при условии, что вероятность этого количества успешных определений есть р (q - вероятность успеха при однократном испытании (0<<7<1 и 0<=р<1);
Ф qcauchy(p, /, q) — квантили обратного распределения Коши со шкалой параметров 1 и s (s>0 и 0
qchisq(p, d) — квантили обратного Хи-квадрат-распределения;
Ф qexp(p, r) — квантили обратного экспоненциального распределения, при котором г>0, определяет частоту (0<=р<1);
qF(p, d1, d2) — квантили обратного распределения Фишера, в котором d1 и d2 — степени свободы);
Ф qgamma(j0, s) —
квантили обратного гамма-распределения;
Ф qgeomQo, q) — квантили обратного геометрического распределения;
Ф qlnorm(p, p., <т) — квантили обратного логнормального распределения;
Ф qlogis(p, /, s) —
квантили обратного последовательного распределения;
Ф qnbinom(p, n, q) —
квантили обратного отрицательного биномиального
распределения с размером п
и вероятностью ошибки q;
qnorm(p, m, о) — квантили обратного нормального распределения со
средним значением р. и стандартным отклонением (г, qpois(p, Я) — квантили обратного распределения Пуассона;
qt(p, d) — квантили обратного распределения Стьюдента
((^определяет степени свободы, d>0 и 0<р<1);
qunif(p, a, b) — квантили обратного равномерного распределения;
Ф qweibull(q, s) —
квантили обратного распределения Вейбулла.
Линейная и сплайновая аппроксимации функции
Рис.11.19 Линейная и сплайновая аппроксимации функции

Линейная регрессия
Рис.11.23 Линейная регрессияКак видно на рис 11 23, прямая регрессии проходит в «облаке» исходных точек с максимальным среднеквадратичным приближением к ним Чем ближе коэффициент корреляции к 1, тем точнее представленная исходными точками зависимость приближается к линейной
Локальные переменные в теле функций пользователя
Локальные переменные в теле функций пользователяСледует отметить особый статус переменных, указанных в списке параметров функций пользователя. Это локальные переменные, поэтому они могут не определяться до задания функций. Фактически их указание в списке параметров и является заданием определенного статуса этих переменных. Естественно, что локальные переменные могут использоваться только в выражении, описывающем функцию. Их имена могут совпадать с именами глобальных переменных, введенных ранее. Но при этом по выходе из блока задания функции значения этих переменных будут сохранять ранее заданные (для глобальных переменных) значения.
Следует с осторожностью относиться к применению глобальных переменных в теле выражения функции пользователя, хотя в принципе это возможно, но, конечно, только в том случае, когда глобальная переменная определена ранее. Например, вполне приемлемо задание следующей функции пользователя:
А: =10 fun (x): =A* (l-exp (x))
поскольку переменная А определена до задания функции. Однако, если убрать строку с ее определением, задание функции fun (x) станет невозможным, точнее, в введенном выражении переменная А будет выделена как несуществующая. Разумеется, эту переменную можно определить глобально и после задания функции пользователя, используя для этого символ глобального присваивания =:
fun (x): = А* (1 - ехр (х)) А =10
Массивы-векторы
Массивы-векторыНиже представлено три пятиэлементных массива-вектора:
Номер элемента 0 1 2 3 4 Значение О 1 4 9 16 Значение а Ь с d e Значение 0 х 2* x^2 3*x^3 4* х4
Первый из представленных массивов — числовой, два других — символьные.
Математические выражения
Математические выраженияФункции (наряду с операторами) могут входить в математические выражения. Например, в выражении
У := 2* ln (x)+ i
Y — переменная, 1 и 2 — числовые константы,* и+ — операторы, ln (x) — встроенная функция с аргументом х. Напоминаем, что встроенные функции в данной книге выделяются полужирным шрифтом (за исключением примеров их записей в документах, где специальных выделений нет).
При выполнении символьных операций переменные р и е используются только в символьном виде. Это значит, что их числовые значения не вычисляются при выводе результатов вычислений. К примеру, число 2л=6. 141... выводится как 2п, а не как приближенное численное значение.
Матричные функции
Матричные функцииДля работы с матрицами также существует ряд встроенных функций. Они перечислены ниже:
augment(Ml,M2) — объединяет в одну матрицы Ml и М2, имеющие одинаковое число строк (объединение идет "бок о бок");
identity(n) — создает единичную квадратную матрицу размером п*п;
stack(Ml,M2) — объединяет две матрицы Ml и М2, имеющие одинаковое число столбцов, располагая Ml над М2;
submatrix(A,ir,jr,ic,jc) — возвращает субматрицу, состоящую из всех элементов, содержащихся в строках от ir no jr и столбцов с ic по JC (irfjr и icfjc);
diag(V) — создает диагональную матрицу, элемент главной диагонали которой — вектор V;
matrix(ff2,n,f) — матрицу, в которой (i,j)-vi элемент содержит f(i,j), где г=0, 1,... т uj=0, 1,... п;
Re(M) — возвращает матрицу действительных частей матрицы М с комплексными элементами;
Im(M) — возвращает матрицу мнимых частей матрицы М с комплексными элементами.
Матрицы
МатрицыМатрица может рассматриваться как совокупность ряда векторов одинаковой длины, например:

Элементы матриц являются индексированными переменными, имена которых совпадают с именами матриц. Но в этом случае для каждой индексированной переменной указываются два индекса: один — для номера строки, другой — для номера столбца. Например, для указанной матрицы М средний элемент обозначается как М1,1, а последний как М;2,2
Для задания векторов и матриц можно воспользоваться операцией Matrix... (Матрицы...) в позиции Math (Математика) основного меню, нажав клавиши Ctrl+V или введя пиктограмму с изображением шаблона матрицы. Это вызывает вначале появление диалогового окна, в котором надо указать размерность матрицы, т. е. количество ее строк т и столбцов п. Для векторов один из этих параметров должен быть равен 1. При m=1 получим вектор-столбец, а при п=\ — вектор-строку. Матрица является двумерным массивом с числом элементов тхп. Элементы векторов и матриц помещаются между большими квадратными скобками.
Обратное преобразование Фурье
Обратное преобразование ФурьеПерейдем к обратному БПФ. Функция ifft(V) реализует обратное (инверсное) преобразование Фурье для вектора V с комплексными элементами. Вектор V здесь имеет 2m+l элементов. Функция возвращает вектор D с действительными элементами.
Функция cifft(B) выполняет обратное преобразование Фурье по полному алгоритму, при котором как исходный, так и результирующий векторы или матрицы содержат элементы с комплексными значениями. Если задана матрица В, реализуется двумерное обратное преобразование Фурье. Заметим, что в ранних версиях эта возможность отсутствовала, но могла быть реализована (хотя и более сложным путем) с помощью одномерного БПФ.
Одномерная линейная аппроксимация
Одномерная линейная аппроксимацияПри проведении научно-технических расчетов часто используются зависимости вида у(х), причем число точек этих зависимостей ограничено. Неизбежно возникает задача получения приемлемой представительности функций в промежутках между узловыми точками (интерполяция) и за их пределами (экстраполяция). Эта задача решается аппроксимацией исходной зависимости, т. е. ее подменой какой-либо достаточно простой функцией. Система MathCAD предоставляет возможность аппроксимации двух типов: кусочно-линейной и сплайновой.
При кусочно-линейной интерполяции, или аппроксимации, вычисления дополнительных точек выполняются по линейной зависимости. Графически это означает просто соединение узловых точек отрезками прямых, для чего используется следующая функция:
linterp(VX, VY, х)
Для заданных векторов VX и VY узловых точек и заданного аргумента х эта функция возвращает значение функции при ее линейной аппроксимации. При экстраполяции используются отрезки прямых с наклоном, соответствующим наклону крайних отрезков при линейной интерполяции.
Одномерная сплайн-интерполяция и сплайн-аппроксимация
Одномерная сплайн-интерполяция и сплайн-аппроксимацияПри небольшом числе узловых точек (менее 10) линейная интерполяция оказывается довольно грубой. При ней даже первая производная функции аппроксимации испытывает резкие скачки в узловых точках. Для целей экстраполяции функция linterp не предназначена и за пределами области определения может вести себя непредсказуемо.
Гораздо лучшие результаты дает сплайн-аппроксимация. При ней исходная функция заменяется отрезками кубических полиномов, проходящих через три смежные узловые точки. Коэффициенты полиномов рассчитываются так, чтобы непрерывными были первая и вторая производные. Линия, которую описывает сплайн-функция, напоминает по форме гибкую линейку, закрепленную в узловых точках (отсюда и название аппроксимации: splain — гибкая линейка).
Для осуществления сплайновой аппроксимации система MathCAD предлагает четыре встроенные функции. Три из них служат для получения векторов вторых производных сплайн-функций при различном виде интерполяции:
cspline(VX, VY) — возвращает вектор VS вторых производных при приближении в опорных точках к кубическому полиному;
pspline(VX, VY) — возвращает вектор VS вторых производных при приближении к опорным точкам параболической кривой;
lspline(VX, VY) — возвращает вектор VS вторых производных при приближении к опорным точкам прямой. Наконец, четвертая функция
interp(VS, VX, VY, x)
возвращает значение у(х) для заданных векторов VS, VX, VY и заданного значения x.
Таким образом, сплайн-аппроксимация проводится в два этапа. На первом с помощью функций cspline, pspline или Ispline отыскивается вектор вторых производных функции у(х), заданной векторами VX и VY ее значений (абсцисс и ординат). Затем, на втором этапе для каждой искомой точки вычисляется значение у(х) с помощью функции interp.
Операция векторизации
Операция векторизацииБольшинство приведенных операторов достаточно известны из математического аппарата матричных вычислений. Под необычным для нашей математической литературы понятием "векторизация" подразумевается одновременное проведение математических операций в их скалярном значении над всеми элементами вектора или матрицы, помеченными знаками векторизации. Это можно понимать и как возможность параллельных вычислений.
Векторизация может изменить смысл математических выражений и даже превратить недопустимое выражение во вполне допустимое. Например, если V — вектор, то выражение cos(V) будет недопустимым, поскольку аргументом функции cos может быть только скалярная величина или переменная. Однако со знаком векторизации функция cos(V) возвращает вектор, каждый элемент которого есть косинус значения соответствующего исходного вектора V.
Если А и В — векторы, то АЧВ дает скалярное произведение этих векторов. Но то же произведение под знаком векторизации создает новый вектор, каждый 7-й элемент которого есть произведение J-X элементов векторов А и В
Итак, векторизация позволяет использовать скалярные операторы и функции с массивами. Нередко это заметно упрощает запись математических алгоритмов, особенно для обеспечения параллельных вычислений. Впрочем, параллельность относится не к самим вычислениям, а лишь к их алгоритмической записи.
Операторы
ОператорыОператоры представляют собой элементы языка, с помощью которых можно создавать математические выражения. К ним, например, относятся символы арифметических операций, знаки вычисления сумм, произведений, производной и интеграла и т. д. После указания операндов (параметров операторов) операторы становятся исполняемыми по программе блоками. MathCAD позволяет задавать и свои новые операторы.
Операторы отношения (логические операторы)
Операторы отношения (логические операторы)Ряд операторов предназначен для сравнения двух величин. Они называются операторами отношения, или логическими операторами.
Оператор Клавиши Наименование операции
Х > Y Х > Y Х больше Y Х < Y Х < Y Х меньше Y
X > Y X Ctrl) Y X больше или равно Y
X < Y X Ctrl ( Y X меньше или равно Y
X >< Y X Ctrl# Y X не равно Y
X = Y X Ctrl = Y X равно Y
He следует путать оператор сравнения (знак равенства) с похожим знаком вывода значений переменных. В системе MathCAD знак равенства как оператор отношения имеет больший размер и более жирное написание (=), чем обычный знак равенства (=) — оператор вывода. Все операторы отношения могут вводиться самостоятельно в место расположения курсора. В этом случае по обе стороны от них появляются маленькие темные прямоугольники. Они являются шаблонами для указания подлежащих сравнению выражений. Например, если ввести знак "меньше", то на экране дисплея появится блок вида' • < •. Знак вывода при этом будет появляться с сообщением об ошибке — Missing operand (пропущенный операнд)
Необходимо отметить, что выражения с логическими операторами возвращают логическое значение, соответствующее выполнению или невыполнению условия, заданного оператором. Эти значения в системе MathCAD являются логической единицей (1), если условие выполнено, и логическим нулем (0), если оно не выполнено Математически значения логической единицы и нуля совпадают со значениями числовых констант 1 и 0. Например'
2 > 1 = 1 — условие выполнено, результат 1;
1 > 2 = 0 — условие не выполнено, результат^).
Указанное свойство логических операторов позволяет строить не совсем обычные выражения, содержащие в себе логические операторы, например.
2* (5 > 0) = 2
Нетрудно понять, что выражение (5 > 0) возвращает единицу, поэтому результат вычисления такого выражения даст число 2. Логические операторы часто используются совместно с условными функциями, которые будут описаны далее.
Основные операции с данными файлового типа
Рис. 11. 5 Основные операции с данными файлового типаЭтот рисунок показывает эффективные возможности занесения данных в файл и последующего их вызова. Полезно просмотреть текстовым редактором создаваемый файл данных Нетрудно заметить, что он представляет данные довольно наглядно и естественно Поэтому такой файл можно обрабатывать, а также модифицировать с применением программ на обычных языках программирования или иных программ, что создает предпосылки для обеспечения легкого обмена данными через файлы.
READRGB (Имя_файла)
Эта операция стоит явно в стороне от других и скорее относится к системным операциям Она используется вместе с графическими файлами и возвращает массив из трех подмассивов, несущих данные о разложении цветного изображения на три основных цвета- красный, зеленый и синий Таким образом, операция выполняет функции цветоделения, используемого в полиграфии для цветной печати графиков и рисунков
Благодаря введению данных файлового типа возможности системы MathCAD существенно расширяются. Она может использоваться в сложных программных комплексах. Например, некоторая специализированная программа может управлять экспериментальной установкой и формировать файлы данных, которые в дальнейшем обрабатываются системой MathCAD с использованием ее мощных и гибких математических возможностей При этом предусмотрена обработка множества пакетов данных
Особенности локального и глобального присваивания переменным их числовых значений
Рис. 11. 1 Особенности локального и глобального присваивания переменным их числовых значений
Переменные могут использоваться в математических выражениях, быть аргументами функций или операндом операторов. Далее мы рассмотрим особые виды переменных, в частности индексированные (элементы векторов и матриц), а также переменные с заданными пределами их изменения (ранжированные переменные).
Статус присваивания не следует путать со статусом самих переменных. Все переменные, описанные выше, являются глобальными, поскольку можно определять их в любом месте документа и также в любом месте изменять их значение. Локальные переменные в системе MathCAD содержатся в телах функций пользователя. Эти функции будут рассмотрены ниже.
Переменные могут быть и размерными, т. е. характеризоваться не только своим значением, но и указанием физической величины, значение которой они хранят. Для присваивания значений таким переменным используется знак =. На рис. 11. 2 представлены примеры работы с размерными переменными.
Проведение расчетов с размерными величинами и переменными особенно удобно при решении различных физических задач. При этом правильная

Переменные
ПеременныеПеременные являются поименованными объектами, имеющими некоторое значение, которое может изменяться по ходу выполнения программы. Имена констант, переменных и иных объектов называют идентификаторами. Тип переменной определяется ее значением; переменные могут быть числовыми, строковыми, символьными и т. д.
Идентификаторы в системе MathCAD могут иметь практически любую длину, и в них могут входить любые латинские и греческие буквы, а также цифры. Однако начинаться идентификатор может только с буквы, например:
х, xl, alfa, X_coordinate. Кроме того, идентификатор не должен содержать пробелов. Некоторые спецсимволы (например, знак объединения _) могут входить в состав идентификаторов, другие (например, знаки операторов арифметических действии) — недопустимы. Нельзя использовать для идентификаторов буквы русского языка. Строчные и прописные буквы в идентификаторах различаются. Идентификаторы должны быть уникальными, т. е. они не могут совпадать с именами встроенных или определенных пользователем функций.
Переменные могут также быть строкового типа, например N: ="My_name". Для обработки строковых констант и переменных в MathCAD 7. 0 PRO введен ряд строковых функций, которые мы рассмотрим в дальнейшем. Заметим, что этот вид данных в прежних версиях системы MathCAD отсутствовал.
Полиномиальная регрессия
Рис. 11.25 Полиномиальная регрессияНа практике не рекомендуется делать степень аппроксимирующего поли нома выше четвертой — шестой, поскольку погрешности реализации регрессии сильно возрастают
Функция regress создает единственный приближающий полином, коэффициенты которого вычисляются по всей совокупности заданных точек, т е глобально Иногда полезна другая функция полиномиальной регрессии, дающая локальные приближения отрезками полиномов второй степени, — loess(VX, VY, span). Эта функция возвращает используемый функцией interp(VS,VX,VY,x) вектор VS, дающий наилучшее приближение данных (с координатами точек в векторах VX и VY) отрезками полиномов второй степени Аргумент span>0 указывает размер локальной области приближаемых данных (рекомендуемое начальное значение — 0,75) Чем больше span, тем сильнее сказывается сглаживание данных При больших span эта функция приближается к regress(VX,VY,2)
На рис 11 26 показан пример приближения сложной функции со случайным разбросом ее ординат с помощью совокупности отрезков полиномов вто рой степени (функция loess) для двух значений параметра span
На рис 11 26 нетрудно заметить, что при малом значении span, равном 0 05, отслеживаются характерные случайные колебания значений функции, тогда как уже при span=0,5 кривая регрессии становится практически гладкой К сожалению, из-за отсутствия простого описания аппроксимирующей

Понятие о массивах
Понятие о массивахВажным типом данных в системе MathCAD являются массивы. Массив — имеющая уникальное имя совокупность конечного числа числовых или символьных элементов, упорядоченных заданным образом и имеющих определенные адреса. В системе MathCAD используются массивы двух наиболее распространенных типов: одномерные (векторы) и двумерные (матрицы).
Применение БПФ для спектрального разложения и синтеза прямоугольного импульса
Рис. 11.39 Применение БПФ для спектрального разложения и синтеза прямоугольного импульсаТехника проведения БПФ на примере разложения прямоугольного импульса и последующего его синтеза с помощью ряда Фурье с ограниченным (k-10) числом гармоник показана на рис. 11.39. Здесь исходный вектор задан с элементами действительного типа и используются функции fft и ifft.
БПФ широко применяется при решении задач фильтрации сигналов или аппроксимации функций. При ограниченном числе гармоник приближение функции тригонометрическим рядом Фурье обеспечивает наименьшую среднеквадратичную погрешность, если при этом используется БПФ.
Применение функции if
Рис. 11. 10 Применение функции if
С помощью функций с элементами сравнения можно моделировать и другие функции, например логические или описывающие импульсные сигналы различного вида
Применение функции предсказания — экстраполяции
Рис. 11.29 Применение функции предсказания — экстраполяцииФункция предсказания обеспечивает высокую точность при монотонных исходных функциях или функциях, представляемых полиномом невысокой степени. Но рис. 11.29 показывает, что она неплохо предсказывает и функции, содержащие явную колебательную компоненту.
Применение операторов для работы с векторами
Рис. 11.12 Применение операторов для работы с векторамиРИС.11.13 Примеры матричных операций (начало)

MathCAD делает работу с векторами и матрицами столь же простой, как и с обычными числами и переменными Это, безусловно, способствует проникновению векторных и матричных методов математических вычислений в практику научно-технических и иных расчетов
Применение операторов для работы с матрицами показано на рис 11 13 Поскольку не все матричные операции поместились в окне документа, представленного на рис 1113, конец документа с другими матричными операциями показан на рис 11 14
Применение ранжированных переменных
Применение ранжированных переменныхВажно отметить, что в сущности задание ранжированных переменных эквивалентно заданию конечных циклов. Сами ранжированные переменные являются векторами, что видно из выдачи их значений (столбец со всеми значениями переменных). Это означает, что объем памяти, занимаемый такими переменными, больше занимаемого обычными переменными.
Индексированные переменные, образующиеся в результате задания ранжированных переменных, могут применяться в последующих фор-мульных блоках. Однако в этих блоках необходимо соблюдать соответствие результатов (конечных и промежуточных) векторному типу этих переменных.
Привыкшие к обычному программированию пользователи часто забывают, что ранжированная переменная — вектор. Поэтому они пытаются выполнять с такими операциями действия, корректные лишь для обычных (скалярных) переменных. Например, задают выражение вроде f: =i* 2, используя обычную переменную f, что приведет к явной ошибке — система укажет (красным цветом), что f не соответствует векторному типу. Однако если использовать выражение, например, вида
f,: = i^2
то будет получен новый вектор с именем f, элементы которого в нашем случае являются квадратами значений элементов вектора i. Более подробно особенности задания и применения векторов рассматриваются далее.
Ранжированные переменные широко применяются при построении графиков. Например, для построения графика некоторой функции f (x) прежде всего надо позаботиться о создании ряда значений переменной х, для этого она должна быть ранжированной.
Примеры линейной и сплайновой аппроксимаций
Примеры линейной и сплайновой аппроксимацийНа рис. 11.19 показано применение описанных функций для линейной и сплайновой аппроксимаций.
Нетрудно заметить, что график при линейной аппроксимации оказывается слишком грубым — отчетливо видны точки перегибов. В то же время сплайн-аппроксимация, несмотря на малое число точек в этом примере (их всего 6), дает прекрасные результаты: график функции оказывается плавным и точки его перегиба вообще незаметны.
Примеры матричных операций (конец)
Рис. 11.14 Примеры матричных операций (конец)
На рис 1115 приведен ряд примеров применения наиболее распространенных матричных функций

Примеры на преобразование Фурье
Примеры на преобразование ФурьеНа рис. 11.38 показано в комплексном виде прямое преобразование Фурье, а затем обратное. При этом преобразованный вектор полностью совпадает с исходным.
Примеры применения арифметических операторов
Рис. 11. 6 Примеры применения арифметических операторовХ N X [ п Ввод нижнего индекса п X
В дальнейшем будут рассмотрены дополнительные функции комплексного аргумента.
Примеры применения матричных функций (конец)
Рис. 11.16 Примеры применения матричных функций (конец)
Примеры применения матричных функций (начало)
Рис.11.15 Примеры применения матричных функций (начало)Конец документа с примерами матричных функций показан на рис 11.16 Заметим, что раньше для задания таких функций приходилось готовить довольно сложные программы
Примеры применения расширенных операторов
Рис.11.7 Примеры применения расширенных операторов
Применение расширенных операторов значительно облегчает решение математических задач. Раньше для того, чтобы они выполняли определенные действия, приходилось писать отдельные программы
Примеры применения статистических функций
Рис. 11.22 Примеры применения статистических функцийНа рис. 11.22 показаны примеры построения графиков для различных статистических функций и задания векторов чисел с различным распределением.
Обилие статистических функций, включенных в систему MathCAD, позволяет ей выполнять достаточно сложные статистические расчеты. Однако все же надо отметить, что существуют специализированные мощные пакеты для выполнения статистических расчетов, например Statistica.
Примеры применения строковых функций
Рис.11.42 Примеры применения строковых функций
В состав системных переменных добавлена еще одна — строковая переменная CWD. Она возвращает путь к текущему каталогу, где хранится документ, с которым в данный момент происходит работа.
Примеры применения векторных и матричных операций
Примеры применения векторных и матричных операцийНа рис. 11.12 приведены примеры использования наиболее распространенных векторных операторов, описанных выше.

Примеры типового применения ранжированных переменных
Рис. 11. 3 Примеры типового применения ранжированных переменныхПолезно учитывать некоторые свойства таблиц вывода:
• число строк в них не может быть больше 50 (большие таблицы придется составлять из нескольких малых);
• числа в таблицах можно задавать в требуемом формате с помощью операций задания формата чисел;
• при использовании в таблице единиц размерности все данные таблицы будут содержать единицы размерности (поделите результат с размерными переменными на размерность для указания ее только в заголовке таблицы вывода);
Есть три способа показать значения векторов:
Х, = выводится обычная таблица вывода;
Х= выводится вектор, если число его элементов меньше 10;
Х= выводится таблица вывода со слайдером, если число элементов вектора больше 10.
В таблицы вывода можно и вставлять числовые значения, и корректировать их. Естественно, это меняет значения элементов соответствующего вектора.
Примеры вычислений с элементарными функциями
Рис. 11. 8 Примеры вычислений с элементарными функциями
Набор элементарных функций в системе MathCAD функционально полон, точнее, он даже несколько избыточен Например, гиперболические функции можно вычислить через алгебраические, функции тангенса и котангенса легко вычисляются через функции синуса и косинуса и т д Соответствующие формулы общеизвестны и потому здесь не приводятся Однако расширенный набор функций создает заметные удобства при проведении вычислений, избавляя пользователя от необходимости определения многих распространенных функций.
Примеры задания функций пользователя
Примеры задания функций пользователяФункции пользователя можно вводить для задания новых специальных математических функций. Ряд таких примеров содержится в справочнике системы и приведен на рис. 11. 11.
Заданные с применением знака: = функции являются определенными локально. Поэтому они должны быть заданы в документе до того, как будут использованы. С помощью знака = можно определить функции пользователя как глобальные. Тогда это можно сделать в любом месте документа, в том числе в конце. Если же функция нигде и никак не задана, то применять ее, естественно, нельзя. Попытки такого применения будут сопровождаться сообщениями об ошибке: имя функции окажется выделенным черным фоном.
Функции пользователя — мощный аппарат расширения системы. Они облегчают адаптацию системы к решению специфических задач пользователя. Напоминаем еще раз, что, к сожалению, функции пользователя нельзя применять в составе выражений, над которыми осуществляются символьные операции из меню (но преобразования с применением оператора -> могут выполняться и без этого ограничения).
Примеры задания и применения функций пользователя
Рис. 11. 11 Примеры задания и применения функций пользователя
Примеры задания и применения размерных переменных
Рис. 11. 2 Примеры задания и применения размерных переменныхразмерность результата является дополнительным фактором, свидетельствующим о корректности таких расчетов
Использование незаданной переменной ошибочно Такая переменная отмечается красным цветом (в предшествующих версиях MathCAD — черным фоном) Использование несуществующих переменных в математических выражениях может привести к различным ошибкам Все они диагностируются и требуют исправления для продолжения вычислений
Пример двумерной сплайн-интерполяции...
Рис. 11.20 Пример двумерной сплайн-интерполяции для построения контурного графика 3D-функ-ции, имеющей сложную поверхностьинтерполяции). Сразу бросается в глаза гораздо большая информативность левого графика.
Пример проведения линейной регрессии общего вида
Рис. 11.24 Пример проведения линейной регрессии общего видаРасположение координат точек исходного массива может быть любым, но вектор VX должен содержать координаты, упорядоченные в порядке их возрастания, а вектор VY ординаты, соответствующие абсциссам в векторе VX
Пример регрессии отрезками полиномов второй степени
Рис. 11.26 Пример регрессии отрезками полиномов второй степенифункции в виде отрезков полиномов этот вид регрессии широкого применения не нашел.
Пример решения простой некорректной задачи
Рис. 11.32 Пример решения простой некорректной задачи
Более правомерной является постановка вопроса о приближенном решении уравнения х2 =3 при приближенном задании x=10 в качестве начального приближения к решению. При этом для записи уравнения используется особый (жирный) знак равенства. Как видно на рис. 11.32, здесь обе функции (find и minerr) дают одинаковое решение.
Пример решения системы рекуррентных уравнений
Пример решения системы рекуррентных уравненийВ общем случае итерационные вычисления могут осуществляться по нескольким формулам, причем возможно перекрестное применение в них переменных. Такого рода вычисления в системе MathCAD необходимо выполнять в векторной форме.
Пример выполнения нелинейной регрессии общего вида
Рис. 11.27 Пример выполнения нелинейной регрессии общего вида
При решении этой задачи возникают две проблемы. Во-первых, надо вычислить значения производных по переменным а и Ь. В документе на рис. 11.27 это сделано с помощью символьных операций (первая строка документа после титульной надписи), что наглядно показывает пользу от таких операций.
Вторая проблема связана с необходимостью применения функции genfit в ее стандартном виде. Поэтому пришлось заменить параметр а на k1 а параметр b на k2. В остальном операции в примере на рис. 11.27 достаточно очевидны.
Присваивание переменным значений
Присваивание переменным значенийОбычные переменные отличаются от системных тем, что они должны быть предварительно определены пользователем, т. е. им необходимо хотя бы однажды присвоить значение. В качестве оператора присваивания используется знак: =, тогда как знак = отведен для вывода значения константы или переменной. Попытка использовать неопределенную переменную ведет к выводу сообщения об ошибке — переменная окрашивается в ярко-красный цвет. Существует также жирный знак равенства, который используется либо как признак неравенства в операциях сравнения, либо как оператор приближенного равенства (в прежних версиях этот знак имел вид =).
В версии MathCAD 7. 0 допустимо при первом присваивании вводить знак = (например, х=123). Система сама заменит его на знак: =. Эта возможность скорее исключение, чем правило; знаком присваивания все же является знак: =.
Если переменной присваивается начальное значение с помощью оператора: =, такое присваивание называется локальным. До этого присваивания переменная не определена и ее нельзя использовать. Однако с помощью знака = (три горизонтальные черточки) можно обеспечить глобальное присваивание, т. е. оно может производиться в любом месте документа. К примеру, если переменной присвоено таким образом значение в самом конце документа, то она будет иметь это же значение и в начале документа. Разумеется, в дальнейшем значение можно изменить и с помощью операции локального присваивания (см. рис. 11. 1).
Прямое и обратное преобразования Фурье для векторов с комплексными коэффициентами
Рис. 11.38 Прямое и обратное преобразования Фурье для векторов с комплексными коэффициентами

Прямое преобразование Фурье
Прямое преобразование ФурьеЕсли некоторая временная функция f(t) задана рядом отсчетов, переход от нее к параметрам ряда Фурье (амплитудам и фазам гармоник) называется прямым преобразованием Фурье, а обратный переход — обратным преобразованием Фурье. К сожалению, эти переходы связаны с вычислениями интегралов, подынтегральные функции которых быстро осциллируют (т. е. приобретают колебательный характер), что существенно затрудняет вычисление таких интегралов с заданной точностью и ведет к значительным затратам времени.
Поэтому были разработаны специальные методы быстрого преобразования Фурье — БПФ (Fast Fourier Transform). К сожалению, сложность этого процесса не позволяет детально описать эти методы в настоящей книге. Отослав читателя к специальной литературе [10, 14], займемся описанием функций, реализующих прямое и обратное БПФ в системе MathCAD. Они предоставляют возможность проводить указанные преобразования для данных в виде векторов с действительными и комплексными числами.
Функция fft(V) выполняет прямое БПФ для данных, представленных действительными числами — значениями исходного вектора V. Однако при этом вектор V должен иметь 2" составляющих, где п — целое число. Если число составляющих иное, функция отказывается от быстрого преобразования и вычисляет прямое преобразование Фурье гораздо медленнее.
Функция cfft(A) аналогична предыдущей, но реализует прямое преобразование Фурье для вектора А с комплексными элементами. Если А — матрица, реализуется двумерное преобразование. Введение функции fft(V) обусловлено тем, что преобразование для векторов с действительными элементами реализуется по более быстрому алгоритму (БПФ) и занимает меньше времени (при числе отсчетов, соответствующем 2", где п — целое число). В этом случае более прост и ввод исходных данных.
Работа дополнительных векторных и матричных функций
Рис. 11.17 Работа дополнительных векторных и матричных функций
Работа со случайными числами
Рис. 11.21 Работа со случайными числамиНа рис. 11.21 представлен документ, в котором организована генерация вектора Х из 1000 случайных чисел, представлено их распределение и вычислены основные статистические параметры массива случайных чисел — вектора X. Этот документ демонстрирует и применение функции hist.
В MathCAD содержится множество различных статистических функций, возможности которых интересны специалистам по обработке статистической информации. Приведем сводку таких функций.
Расширенные арифметические операторы
Расширенные арифметические операторыСистема MathCAD содержит ряд расширенных арифметических операторов:
вычисления суммы ($) и произведения (#) ряда, вычисление производной (?) и определенного интеграла (&). Здесь в скобках даны символы, ввод которых задает вывод шаблона соответствующей операции. Шаблон содержит места, подлежащие заполнению числовыми или символьными значениями. Разумеется, для вызова шаблона можно использовать и соответствующую панель набора математических спецсимволов.
На рис. 11.7 показано применение этих операторов. Заметим, что выражения с ними ведут себя как функции, т. е возвращают вычисленные значения. Поэтому их можно использовать в составе математических выражений.
Реализация итерационных вычислений с помощью функции until
11.17. Реализация итерационных вычислений с помощью функции untilРекуррентное вычисление чисел Фибоначчи
Рекуррентное вычисление чисел ФибоначчиСистема MathCAD позволяет реализовать итерационные вычисления, обычно осуществляемые по рекуррентным выражениям. Это такие выражения, при которых значение некоторой функции ищется по одному или нескольким предшествующим ее значениям. Классическим примером рекуррентных вычислений является создание чисел Фибоначчи. Как известно, два первых числа Фибоначчи определены как 1, а последующие есть сумма двух предыдущих.
Решение системы дифференциальных уравнений с применением функции rkfixed
Рис. 11.40 Решение системы дифференциальных уравнений с применением функции rkfixed
На рис. 11.41 показано решение той же системы с применением функции Rkadapt. Обычно она, благодаря автоматическому изменению шага решения,
Решение системы из двух дифференциальных уравнений с применением функции Rkadapt
Рис. 11.41 Решение системы из двух дифференциальных уравнений с применением функции Rkadapt
дает более точный результат. Естественно, по скорости вычислений она проигрывает функции rkfixed, хотя и не всегда: если решение меняется медленно, это может привести к заметному уменьшению числа шагов. Таким образом, функция Rkadapt наиболее привлекательна для решения систем дифференциальных уравнений, дающих медленно изменяющиеся решения.
В последнем примере решение представлено в виде временных зависимостей. Много других примеров решения дифференциальных уравнений можно найти в электронных книгах системы.
Если решение системы дифференциальных уравнений имеет вид гладких функций, то вместо функции rkfixed, описанной ранее, целесообразно применять новую функцию:
Bulstoer(y, x1, x2, n, F)
Она возвращает матрицу решения системы обыкновенных дифференциальных уравнений, правая часть которых (в виде первых производных неизвестных функций) записана в векторе F(x, у) при заданных в векторе у начальных условиях и при решении на интервале от x1 до x2 для n точек решения, не считая начальной точки. Вы можете заменить функцию Rkadapt в примере, показанном на рис. 11.40, на Bulstoer и опробовать последнюю в работе.
Решение системы из двух уравнений с помощью функции minerr
Рис. 11.34 Решение системы из двух уравнений с помощью функции minerr
При использовании функции minerr для решения систем нелинейных уравнений надо проявлять известную осторожность и обязательно предусматривать проверку решений. Нередки случаи, когда решения могут оказаться ошибочными, чаще всего из-за того, что из нескольких корней система предлагает нереальный (или не представляющий интереса) корень. Полезно как можно точнее указывать начальные приближения к решению.
Решение системы линейных уравнений
Рис. 11.18 Решение системы линейных уравненийДля решения систем линейных уравнений в MathCAD PLUS введена встроенная функция
Isolve(A.B),
которая возвращает вектор Х для системы линейных уравнений А-Х=В при заданной матрице коэффициентов А и векторе свободных членов В. Если уравнений п, размерность вектора В должна быть п, а матрицы А — п-п. Пример применения этой функции также дан на рис. 11.18.
Решение систем линейных уравнений
Решение систем линейных уравненийВ целом векторные и матричные операторы и функции системы MathCAD позволяют решать широкий круг задач линейной алгебры. К примеру, если задана матрица А и вектор В для системы линейных уравнений в матричной форме АхХ:=В, то вектор решения можно получить из очевидного выражения Х:=А-1*В. На рис. 11.18 приведен пример решения системы линейных уравнений.

Сглаживание данных, представленных рядом значений XnY
Рис. 11.28 Сглаживание данных, представленных рядом значений XnY
В примере на рис 11 28 для получения исходного массива точек используется генератор случайных чисел Поэтому как расположение точек, так и вид кривой сглаживания могут отличаться от приведенных при иной настройке генератора случайных чисел Но в любом случае хорошо будет видно, что кривая сглаживания намного более гладкая, чем кусочно-линейная линия, соединяющая точки друг с другом в последовательном порядке
Системные переменные
Системные переменныеВ MathCAD содержится небольшая группа особых объектов, которые нельзя отнести ни к классу констант, ни к классу переменных. Их правильнее считать системными переменными, имеющими предопределенные системой начальные значения. Ниже указаны эти объекты и приведены их начальные значения (в скобках):
Объект Ввод Назначение
л Ctrl+ P Число "пи" (3.14..)
е е Основание натурального
логарифма (2. 71..)
Ctrl+ Z Системная бесконечность (1 (^307)
% % Процент (0. 01)
TOL Погрешность численных методов (0. 001)
ORIGIN Нижняя граница индексации массивов (0)
PRNCOLWIDTH Число столбцов оператора WRITEPRN (8)
PRNPRECISSION Число десятичных знаков, используемых оператором WRITEPRN (4)
FRAME Переменная счетчика кадров при работе с анимационными рисунками (0)
Пять последних переменных вводятся набором их имен. Значения системных переменных, как и обычных, могут быть в дальнейшем изменены путем присваивания им новых значений. К примеру, значение е можно изменить так, что эта переменная будет означать заряд электрона, а вовсе не основание натурального логарифма. Однако рекомендуется этого не делать во избежание двойного истолкования таких переменных.
Статистические функции для векторов
Статистические функции для векторовСледующая группа функций относится к вычислению основных статистических параметров одномерного массива данных — вектора:
mean(V) — возвращает среднее значение элементов вектора V;
var(V) — возвращает дисперсию (вариацию) для элементов вектора V;
side(V) — возвращает среднеквадратичную погрешность, т. е квадратный корень из дисперсии, stdev(V) — задает стандартное отклонение элементов вектора V;
hist(int,V) — возвращает вектор частот попадания данных V в заданные интервалы int (служит для построения гистограмм) В функции hist(int,V) вектор int должен содержать значения границ, число попаданий данных из вектора V должно подсчитываться Если строится гистограмма из N элементов, то вектор int должен содержать N+1 элементов. Функция возвращает вектор из N элементов, числовые значения которых можно использовать для графического построения гистограмм.

Строковые функции
11. 20. Строковые функцииВ версию MathCAD 7.0 PRO включен новый тип данных — строковые функции. Напоминаем, что они задаются как символьные строки в кавычках. Имеется также ряд строковых функций, указанных в документе, показанном на рис. 11.42.
Как видно из рис. 11.42, строковые значения могут быть присвоены переменным и над ними можно выполнять различные операции: объединять строки, выделять из них подстроки, преобразовывать строки в числа и в ASCII-коды (и наоборот), вычислять длину строки и т. д. Строковые функции можно применять и в программных конструкциях.
Строковые константы
Строковые константыВ описываемую версию MathCAD включены данные строкового типа. Как обычно, строковая константа — это строка, заключенная в кавычки, например:
"My_name" или "My first example". В строковую константу могут входить один или несколько символов либо слов.
Таблицы вывода
Таблицы выводаРанжированные переменные широко применяются для представления числовых значений функций в виде таблиц, а также для построения их графиков. Любое выражение с ранжированными переменными после знака равенства инициирует таблицу вывода. Несколько таких таблиц показано на рис. 11. 3.

Типовые статистические функции
Типовые статистические функцииС помощью системы MathCAD можно проводить наиболее распространенные статистические расчеты с данными, представленными векторами их значений. Существует также ряд статистических функций для скалярного аргумента. С них и начнем.
Помимо уже упомянутой гамма-функции, широко применяемой в статистических расчетах, существуют следующие встроенные статистические функции скалярного аргумента х cnorm(x) — кумулятивная нормальная функция;
erf(x) — функция ошибок (или интеграл вероятности), md(x) — функция генерации случайных чисел, corr(VX,VY) — коэффициент корреляции двух векторов — VX и VY, cvar(X,Y) — коэффициент ковариации Х и Y
Через функцию erf(x) легко вычисляется дополнительная функция ошибок.
cerf(x) := 1- erf(x).
Функция rnd(x) при каждом обращении к ней возвращает случайное число с равномерным распределением на отрезке [0, 1] Эта функция широко применяется при статистическом моделировании различных физических процессов Числа являются не строго случайными — в действительности это повторяющиеся последовательности из большого количества чисел, распределение которых близко к равномерному
Векторные функции
Векторные функцииСуществует также ряд встроенных векторных и матричных функций. Они облегчают решение задач линейной алгебры и других сфер приложения векторов и матриц. Приведем векторные функции, входящие в систему MathCAD-
length(V) — возвращает длину вектора;
last(V) — возвращает индекс последнего элемента;
max(V) — возвращает максимальный по значению элемент;
min(V) — возвращает минимальный по значению элемент;
Re(V) — возвращает вектор действительных частей вектора с комплекс ными элементами;
Im(V) — возвращает вектор мнимых частей вектора с комплексными элементами;
e(i,j, k) — полностью асимметричный тензор размерности три. г, j и k
должны быть целыми числами от 0 до 2 (или между ORIGIN и ORIGIN+2, если ORIGINS). Результат равен 0, если любые два аргумента равны, 1 — если три аргумента являются четной перестановкой (0, 1, 2), и минус 1, если три аргумента являются перестановкой (0, 1, 2), кратной 2 и некратной 4.
Векторные и матричные операторы
Векторные и матричные операторыДля работы с векторами и матрицами система MathCAD содержит ряд операторов и функций. Вначале рассмотрим операторы, введя следующие обозначения: для векторов — V, для матриц —Ми для скалярных величин — Z. Ниже представлены операторы для работы с векторами и матрицами:
| Оператор V1+ V2 VI-V2 -V -м V-Z z* v, v* z Z* M, M* Z V1* V2 M* V M1* M2 V z M z м-1 M" IV] |
Ввод V1+ V2 V1-V2 -V -M V-Z z* v, v* z Z* M, M* Z V1* V2 M* V M1* M2 v/z M/Z ivr-i M^ IV |
Назначение оператора Сложение двух векторов VI и V2 Вычитание двух векторов VI и V2 Смена знака у элементов вектора V Смена знака у элементов матрицы Вычитание из вектора V скаляра Z Умножение вектора V на скаляр Z Умножение матрицы М на вектор Z Умножение двух векторов VI и V2 Умножение матрицы М на вектор V Умножение двух матриц Ml и М2 Деление вектора V на скаляр Z Деление матрицы М на скаляр Z Обращение матрицы М Возведение матрицы М в степень п Вычисление квадратного корня из ^V |
¦М¦ ¦М Вычисление определителя матрицы
VT V Ctrl! Транспонирование вектора V
МT М Ctrl! Транспонирование матрицы М
VlxV2 VI Ctrl * V2 Кросс-умножение двух векторов VI и V2
V V" Получение комплексно-сопряженного
вектора М М" Получение комплексно-сопряженной
матрицы ZV Alt $ V Вычисление суммы элементов вектора V
V V Ctrl - Векторизация вектора V
М М Ctrl - Векторизация матрицы М
М
Vn V [ п Выделение п-го элемента вектора V
Мm,n М [(m,п) Выделение элемента (т,п) матрицы М
Следует отметить, что в некоторых операторах для ввода используется клавиша Ctrl, тогда как в ранних версиях системы MathCAD для этого предназначалась клавиша Alt (в последней версии Alt используется для начала активизации главною меню)
Восьмеричные и шестнадцатеричные числа
Восьмеричные и шестнадцатеричные числаСистема MathCAD может работать с восьмеричными и шестнадцатеричными числами. Восьмеричные числа имеют основание 8, так что один их разряд может иметь значения от 0 до 7. Такие числа в конце отмечаются латинской буквой О (от слова octal — восьмеричное).
Шестнадцатеричные числа имеют основание 16, и их разряд может иметь значения:
HEX 0123456789ABCDEF DEC О 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Шестнадцатеричные числа имеют в конце отличительный признак в виде буквы h или Н (от слова hexagonal — шестнадцатеричное). Под сокращенным названием этих чисел HEX приведены их десятичные значения DEC (от decimal — десятичное).
Применение восьмеричных и шестнадцатеричных чисел в обычной математике ограничено, и в дальнейшем мы эти числа (а также константы на их основе) использовать не будем. Однако отметим, что если шестнадцатеричное число начинается с буквы (например, АВС0), то система будет путать его с возможным именем переменной. Для устранения потенциальных ошибок такие числа надо начинать с цифры 0 (ноль). В математических выражениях можно комбинировать числа различного типа (например, 10+ 0eh = 18H).
Встроенные элементарные функции
11.6. Встроенные элементарные функцииСистема MathCAD содержит расширенный набор встроенных элементарных функций Функции задаются своим именем и значением аргумента в круглых скобках В ответ на обращения к ним функции возвращают вычисленные значения. Аргумент и значение функций могут быть действительными или комплексными числами г. Ниже представлены эти функции, разбитые на шесть групп
Тригонометрические функции sin (z) — синус cos (z) — косинус tan (z) — тангенс sec (z) — секанс csc (z) — косеканс cot (z) — котангенс
Гиперболические функции sinh (z) — гиперболический синус cosh (z) — гиперболический косинус tanh (z) — гиперболический тангенс sech (z) — гиперболический секанс
csch (z) — гиперболический косеканс coth (z) — гиперболический котангенс
Обратные тригонометрические функции asin (2) — обратный тригонометрический синус асов (г) — обратный тригонометрический косинус atan (z) — обратный тригонометрический тангенс
Обратные гиперболические функции asinh (2) — обратный гиперболический синус acosh (2) — обратный гиперболический косинус atanh (z) — обратный гиперболический тангенс
Показательные и логарифмические функции ехр (г) — экспоненциальная функция 1п (г) — натуральный логарифм (по основанию е) log (2) — десятичный логарифм (по основанию 10)
Функции комплексного аргумента Ке (г) выделение действительной части г Im (z) — выделение мнимой части г arg (z) вычисление аргумента (фазы)
Обратите внимание, что большинство из этих функций набирается строчными латинскими буквами Рис 118 иллюстрирует работу с элементарными функциями как при действительном, так и при комплексном аргументе
Встроенные специальные математические функции
11.7. Встроенные специальные математические функцииНаряду с элементарными функциями в системе MathCAD содержится ряд встроенных специальных математических функций. Их применение расширяет возможности системы в решении сложных математических задач.
Ввод элементов векторов и матриц
Ввод элементов векторов и матрицДля указания подстрочных индексов после имени переменной вводится знак открывающей квадратной скобки:
Ввод Изображение в окне
V3 [ 2 : V32 :=
Для элементов матрицы подстрочные индексы вводятся в круглых скобках с разделением их запятыми:
Ввод Изображение в окне редактирования
М [ ( 1, 2 ) : M1,2 : =
Индексы могут иметь только целочисленные значения Они могут начинаться с нуля или с целого числа, например с единицы, в соответствии со значением системной переменной ORIGIN
Ввод ограничений при решении систем нелинейных уравнений
Ввод ограничений при решении систем нелинейных уравненийОграничительные условия задаются обычно с помощью операторов — знаков отношения величин. Особо следует отметить знак приближенного равенства (в версиях MathCAD под Windows это жирный знак равенства, тогда как в более ранних версиях под MS-DOS это был знак приближенного равенства), который используется для указания начального значения переменных при итерационных вычислениях.
Оператор Клавиши Значение оператора
е1>е2 е1>е2 е1 больше е2 е1 < е2 е1<е2 е1 меньше е2 е1 > е2 el Ctrl ) е2 е1 больше или равно е2 е1 < е2 Ctrl ( е2 е1 меньше или равно е2 е1у:е2 el Ctrl # е2 е1 не равно е2 el=e2 elCtrl=e2 el равно е2
Вычисление функции G(a,x) с помощью функции root в составе функции пользователя
Рис. 11.31 Вычисление функции G(a,x) с помощью функции root в составе функции пользователя
Вычисление координат точек пересечения параболы прямой
Рис. 11.33 Вычисление координат точек пересечения параболы прямойЕще один пример решения системы нелинейных уравнений (на этот раз с помощью функции minerr) показан на рис. 11.34.
Вычисление корней кубического полинома
Рис. 11.30 Вычисление корней кубического полинома
Как известно, кубическое уравнение обязательно имеет хотя бы один кубический корень х1. Он найден вначале функцией root. Два других корня могут оказаться и комплексными. Функция root может отыскивать и такие корни. Для поиска второго корня, х2, первый исключается делением F(x) на (х-х1). Соответственно для поиска третьего корня, х3, F(X) делится еще и на (х-х2). Эту процедуру можно распространить и на поиск корней полиномов более высокой степени, однако надо помнить, что найти корни полинома можно гораздо более изящным и простым способом — используя операцию символьных вычислений.
Вычисление специальных математических функций
Рис.11.9 Вычисление специальных математических функций
Наличие встроенных в систему наиболее распространенных математических функций расширяет ее возможности. Многие другие специальные математические функции могут быть определены через перечисленные встроенные функции или заданы своим интегральным либо дифференциальным представлением.
Выполнение многомерной регрессии
Выполнение многомерной регрессииMathCAD позволяет выполнять также многомерную регрессию, самый типичный случай которой — приближение трехмерных поверхностей. Их можно характеризовать массивом значений высот z, соответствующих двумерному массиву Мху координат точек (х, у) на горизонтальной плоскости.
Новых функций для этого не задано. Используются уже описанные функции в несколько иной форме:
regress(Mxy, Vz, n) — возвращает вектор, запрашиваемый функцией
interp (VS,Mxy,Vz,V) для вычисления многочлена n-v. степени, который наилучшим образом приближает точки множества Мху и Vz. Мху — матрица т-2, содержащая координаты х и у. Vz — т-мерный вектор, содержащий z-координат, соответствующих т точкам, указанным в Мху;
loes(Mxy,Vz,span) — аналогична loes(VX,VY, span), но в многомерном случае;
interp(VS, Mxy,Vz,V) — возвращает значение z по заданным векторам VS (создается функциями regress или loess) и Мху, Vz и V (вектор координат х и у заданной точки, для которой находится z).
Пример многомерной интерполяции был приведен выше. В целом многомерная регрессия применяется сравнительно редко из-за сложности сбора исходных данных.
Задание функций пользователя
Задание функций пользователяНесмотря на довольно широкий набор встроенных функций, всегда возникает необходимость расширить систему новыми функциями, представляющими интерес для пользователя Функции пользователя вводятся с применением следующего выражения:
Имя_функции (Список_параметров): = Выражение
Имя функции задается как любой идентификатор, например имя переменной В скобках указывается список параметров функции, это перечень ис пользуемых в выражении переменных, разделяемых запятыми Выражение — любое выражение, содержащее доступные системе операторы и функции с операндами и аргументами, указанными в списке параметров
Примеры задания функций одной и двух переменных
fun (x): - 10. (1 - ехр (х)) module (x, y): - ^ х2+ у2
Задание матриц без применения их шаблонов
Рис. 11. 4 Задание матриц без применения их шаблонов
Такой способ задания матриц очень напоминает применяемый в обычных программах метод, при котором значения элементам матриц присваиваются в двух вложенных циклах с управляющими переменными и г. Однако это сходство чисто внешнее, так как в нашем случае ранжированные переменные i и j — векторы.
Задание ранжированных переменных
Задание ранжированных переменныхРанжированные переменные — особый класс переменных, который в системе MathCAD зачастую заменяет управляющие структуры, называемые циклами (однако полноценной такая замена не является) Эти переменные имеют ряд фиксированных значений (либо целочисленных, либо в виде чисел), с определенным шагом меняющихся от начального значения до конечного.
Ранжированные переменные характеризуются именем и индексом каждого своего элемента Для создания ранжированной переменной целочисленного типа используется выражение
Name Nbegin Nend
где Name — имя переменной, Nbegin — ее начальное значение, Nend — конечное значение, — символ, указывающий на изменение переменной в заданных пределах (он вводится знаком точки с запятой,). Если Nbegin < Nend, то шаг изменения переменной будет равен+ 1, в противном случае -1
Для создания ранжированной переменной общего вида используется выражение
Name = Nbegin, (Nbegin+ Step) Nend
Здесь Step — заданный шаг изменения переменной (он может быть положительным, если Nbegin < Nend или отрицательным в противном случае).
Задание векторов и матриц
Задание векторов и матрицВ отношении индексированных переменных действуют те же правила присваивания и вывода, что и для обычных В частности, с помощью операций присваивания можно создать вектор или матрицу заданной размерности и заданного типа без ручного вывода их шаблоном и без их заполнения. Это иллюстрирует рис. 11. 4, на котором показано задание нулевой, единичной и специальной матриц путем поэлементного их формирования.
MathCAD 7.0
Назначение системы SmartMath
Назначение системы SmartMathНачиная с версии 4. 0 система MathCAD обзавелась новым средством оптимизации вычислений — SmartMath. Это фактически экспертная система, ускоряющая вычисления в тех случаях, когда это возможно. При запущенной системе SmartMath процессор численных операций, приступая к вычислению формульного блока, запрашивает символьный процессор о том, может ли тот произвести упрощение или иное преобразование исходной формулы. Если это возможно, то вычисления производятся уже по упрощенной формуле.
Помимо оптимизации вычислений второе важное назначение системы SmartMath заключается в визуализации символьных вычислений и преобразований. Тут дело в том, что символьные вычисления, выполняемые из позиции главного меню Symbolics не наглядны: результат их помещается рядом или под исходным выражением либо замещает его. Откуда он взялся и что именно делается для получения этого результата, в данном случае неясно. К примеру, при вычислении производной некоторого выражения из результата не видно, что вычисляется именно производная, и непонятно, какого она порядка.
Хотя при выполнении символьных операций можно задать опцию вывода комментариев, лишь с применением системы SmartMath процесс символьных преобразований стал очевидным даже в том случае, когда он имеет несколько стадий и выполняется с рядом специальных указаний — директив, которые при этом отображаются в документе.
Система SmartMath более полно использует ядро символьных операций, чем символьные вычисления из подменю позиции Symbolics главного меню, и снимает некоторые ограничения на их выполнение. Например, возможно использование в преобразуемых выражениях функций пользователя. Еще важнее то, что результаты символьных преобразований, выполняемых системой SmartMath, автоматически меняются при изменении исходных символьных данных. Этого, увы, не происходит при символьных вычислениях с помощью команд в позиции Symbolics главного меню.
Описание системы SmartMath не случайно включено в эту главу вместе с разделами по программированию. Она в сущности и является частью программных средств MathCAD, реализующих линейные программы символьных вычислений. При этом блоки символьных вычислений по своей конструкции и идеология их построения очень напоминают программные блоки.
Обзор программных операторов
Обзор программных операторовНетрудно заметить, что набор программных элементов для создания программных модулей весьма ограничен. Ниже приводится их перечень. Add Line — создает и при необходимости расширяет жирную вертикальную линию, справа от которой в шаблонах задается запись программного блока;
<— — символ локального присваивания (в теле модуля);
if — оператор условного выражения;
for — оператор задания цикла с фиксированным числом повторении;
while — оператор задания цикла типа "пока" (цикл выполняется, пока выполняется некоторое условие);
otherwise — оператор иного выбора (обычно применяется с if);
break — оператор прерывания;
Фcontinue — оператор продолжения;
Фreturn — оператор возврата;
Фоn error — оператор обработки ошибок.
Операторы вычисления пределов функций
12. 3. Операторы вычисления пределов функцийДля вычисления пределов функций начиная с версии MathCAD PLUS 5 0 в систему введен символьный оператор limit Помимо ввода с наборной панели Calculus Pallete его в трех формах можно ввести нажатием следующих комбинаций клавиш
Ctrl+ L — ввод шаблона оператора вычисления предела функции при х, стремящемся к заданному значению,
Ctrl+ A — ввод шаблона вычисления предела функции слева от заданной точки, Ctrl+ B — ввод шаблона вычисления предела функции справа от заданной точки
На рис. 127 показаны примеры вычисления пределов При вычислении пределов нужно заполнить шаблоны, входящие в главный шаблон для вычисления пределов, а затем ввести функцию, имя переменной, по которой ищется предел, и значение переменной — аргумента функции

Оператор Add Line
Оператор Add LineОператор Add Line выполняет функции расширения программного блока. Расширение фиксируется удлинением вертикальной черты программных блоков или их древовидным расширением. Благодаря этому в принципе можно создавать сколь угодно большие программы.
Оператор break
Оператор breakОператор break вызывает прерывание работы программы всякий раз, когда он встречается. Чаще всего он используется совместно с оператором условного выражения if и операторами циклов while и for, обеспечивая переход в конец тела цикла.
Оператор continue
Оператор continueОператор continue используется для продолжения работы после прерывания программы. Обычно он применяется совместно с операторами задания циклов while и for, обеспечивая после прерывания возврат в начало цикла.
Оператор for
Оператор forОператор for служит для организации циклов с заданным числом повторений. Он записывается в виде:
for Var e Nmin.. Nmax
•
Эта запись означает, что если переменная Var меняется с шагом+ 1 от значения Nmin до значения Nmax, то выражение, помещенное в шаблон, будет выполняться. Переменную счетчика Var можно использовать в выражениях программы.
Оператор if
Оператор ifОператор if является оператором условного выражения. Он задается в виде:
Выражение if Условие
Если Условие выполняется, то возвращается значение Выражения. Совместно с этим оператором часто используются оператор прерывания break и оператор иного выбора otherwise.
Оператор <-
Оператор <-Оператор <— выполняет функции внутреннего локального присваивания. Например, выражение х <— 123 присваивает переменной х значение 123. Локальный характер присваивания означает, что такое значение х сохраняет только в теле программы. За пределами тела программы значение переменной х может быть неопределенным либо равным значению, которое задается операторами локального: = и глобального = присваивания вне программного блока.
Оператор on error
Оператор on errorОператор on error является оператором обработки ошибок, позволяющим создавать конструкции обработчиков ошибок. Этот оператор задается в виде:
Выражение_1 on error Выражение_2
Если при выполнении Выражения_1 возникает ошибка, то выполняется Выражение_2. С оператором on error связана функция error, которая обычно используется для возврата текстового сообщения об ошибке.
Оператор otherwise
Оператор otherwiseОператор иного выбора otherwise обычно используется совместно с оператором if. Это поясняет следующая программная конструкция:
f (x): = 1 if х>0 возвращает 1, если х > О
-1 otherwise возвращает -1 во всех иных случаях
Оператор расширенного символьного вывода
Оператор расширенного символьного выводаВ версию системы MathCAD 7. 0 PRO введен еще один расширенный оператор символьного вывода. Он задается нажатием клавиш Ctrl+ Shift+. (точка) или выбором из палитры символьных операций. Этот оператор имеет вид • • —>. В первый шаблон-прямоугольник вводится исходное выражение, а во второй — директивы символьных преобразований. Они будут описаны чуть позже; задаются эти директивы или вводом соответствующих ключевых слов, или из палитры символьных операций.
Кроме того, в один такой оператор можно ввести другой, с тем чтобы получить составной расширенный оператор символьного вывода и место для записи нескольких директив. Это позволяет намечать заданный путь символьных преобразований. На рис. 12. 1 приведены простейшие примеры применения символьных операций без использования системы SmarthMath и с ее использованием.
Несмотря на простоту примеров, приведенных на рис. 12. 1, они дают наглядное представление об отличительных особенностях реализации символьных операций с помощью операторов символьного вывода, которые были указаны выше.
Оператор return
Оператор returnОператор return прерывает выполнение программы и возвращает значение своего операнда, стоящего следом за ним. Например, в приведенном ниже случае
return 0 if x<0
будет возвращаться значение 0 при любом х < 0.
Оператор символьного вывода
Оператор символьного выводаВначале для визуализации результатов символьных преобразований был введен специальный символ — удлиненная горизонтальная стрелка —>. Ее можно вызвать нажатием клавиш Ctrl+. (точка) или вызовом из палитр математических символов (для ввода отношений и символьных операций). Шаблон этого знака имеет вид • —>, где на месте черного прямоугольника вводится подвергаемое символьному преобразованию исходное выражение.
Указанный символ можно рассматривать как простой оператор символьного вывода. Если задать исходное выражение и вывести курсор из формуль-ного блока с ним, то система помещает результат его символьных преобразований после стрелки (оператора символьного вывода). Это и есть первый этап работы с системой SmartMath.
Оператор while
Оператор whileОператор while служит для организации циклов, действующих до тех пор, пока выполняется некоторое Условие. Этот оператор записывается в виде:
while Условие
•
Выполняемое выражение записывается на место шаблона.
Погрешности вычислений и сообщения об ошибках
12. 7. Погрешности вычислений и сообщения об ошибкахБольшинство вычислений в системе реализовано с помощью численных методов, принципиально имеющих конечную погрешность вычислений. Так, для вычислений производной используется конечно-разностный метод с изменением шага между узлами и его подстройкой под заданную погрешность. Интегралы вычисляются методом Симпсона с заданной погрешностью, а для вычисления корней функций применяется метод секущих.
Для всех методов погрешность вычислений задается с помощью специальной системной переменной TOL. Хотя истинная погрешность может

Показывает применение символьных...
Рис. 12. 6 показывает применение символьных директив для вычисления интегралов Здесь, пожалуй, полезно обратить внимание на применение директивы float, позволяющей вычислить значение интеграла в виде обычного вещественного числаИтак, мы рассмотрели большую часть символьных директив С оставшимися читатель может поработать самостоятельно, тем более что правила их применения уже были описаны
Применение директив on error и return
Рис. 12. 11 Применение директив on error и returnи им можно присваивать значения при вызове функции, заданной модулем Локальный характер таких переменных позволяет присваивать им те же имена, что и глобальным переменным документа. Однако лучше этого не делать и использовать разные имена для локальных переменных программных модулей и переменных документа.
На рис. 12. 11 показано применение операторов on error и return, а также действие функции error, задающей вывод надписи в желтом прямоугольнике при активизации мышью выражения, содержащего ошибку.
В этих примерах надо обратить внимание на два момента. Первый — возможность применения оператора on error вне программного блока для задания функции y (x) =sin (x)/x с исключительным значением 1 при х=0. Второй — применение этого оператора для решения уравнения, имеющего комплексные корни. Когда при таком решении задается действительное начальное приближение для х, то функция root (f, x) дает ошибку. Она исправляется с помощью оператора on error при задании функции RF (f, x), имеющей обработчик ошибок.
Задание программных модулей позволяет реализовать любые специальные приемы программирования и может служить мощным средством расширения системы путем задания новых функций.
Теперь рассмотрим достаточно сложный и поучительный пример применения программного блока. На рис. 12. 12 показан документ, в котором программный модуль вычисляет коэффициенты Фурье для заданной функции — пилообразного импульса (его можно менять).

Применение программного модуля для построения точек заданной функции в пространстве
Рис. 12. 14 Применение программного модуля для построения точек заданной функции в пространстве
Разумеется, подобные задачи могут в системе MathCAD решаться и без использования в явном виде программных средств Однако эти средства облегчают решение сложных задач, особенно когда имеется описание их программной реализации на каком-либо языке программирования Тогда несложно перевести реализацию решения задачи с этого языка на язык программирования системы MathCAD
Вообще, надо отметить, что проблема включения в документы программных блоков в MathCAD решена изящно и красиво, такие блоки подчас просто украшают документы и позволяют пользоваться всеми средствами не только математически ориентированного входного языка MathCAD, но и классического программирования.
Много интересного и поучительного можно найти в примерах задания и применения программных модулей раздела QuickSheet (Шпаргалки), доступного из центра ресурсов системы. Нельзя не отметить, что характер задания программных модулей в MathCAD весьма удачен: модули прекрасно вписываются в документы, выглядят просто и естественно.
Следует также отметить, что система MathCAD PLUS 7. 0 допускает расширение путем включения в нее новых функций, написанных на языке Си или Си++. Впрочем, возможности системы настолько широки, что трудно себе представить необходимость в таком кардинальном шаге. Это расширение скорее может оказаться полезным для разработчиков системы, чем для подавляющего большинства ее пользователей.
Интересующиеся этой возможностью могут воспользоваться описанием ее в [14].
Примеры на применение директив complex, assume и coeffs
Рис. 12. 4 Примеры на применение директив complex, assume и coeffsКак нетрудно заметить, директива упрощения simplify не имеет параметров Директива разложения в ряд Тейлора series требует указания двух параметров задания начального значения переменной х и указания числа членов ряда Директивы преобразования Лапласа laplace и решения уравнений solve требуют одного параметра — указания имени переменной (в нашем случае х) С помощью директивы solve можно решать и системы уравнений — тогда ее параметр будет вектором неизвестных
Применение директив complex, assume и coeffs поясняет рис 124 Тут важно обратить внимание на двойственность применения ключевого слова assume Оно может применяться для отмены значений переменных (берется

Примеры применения символьных директив
Примеры применения символьных директивПростейшие примеры на символьные операции даны на рис. 12.2. В этих примерах полезно обратить внимание на множественность применения директив, особенно в примере на применение директивы подстановки substitute.

Примеры применения символьных вычислений
Рис. 12. 3 Примеры применения символьных вычислений
Примеры программирования
12. 6. Примеры программированияНесмотря на столь скромный набор программных средств, они дают системе MathCAD именно те возможности, которые ранее попросту отсутствовали: задание функций с аппаратом локальных переменных, задание различных видов циклов (в том числе вложенных), упрощение алгоритмов с помощью операций присваивания и реализация по классическим алгоритмам итерационных и рекурсивных процедур. Рекомендуется внимательно изучить рис. 12. 10, на котором показана часть этих возможностей.
Обратите особое внимание на второй пример вычисления факториала. Здесь использовано задание одного программного модуля внутри другого. Вообще говоря, для нескольких подмодулей, которые должны выполняться в составе циклов, надо использовать их объединение в виде жирной вертикальной черты. Для этого, как и для исходного задания блока, служит

Примеры символьных преобразований с помощью системы SmartMath
Рис. 12. 2 Примеры символьных преобразований с помощью системы SmartMathКак видно из рис. 12. 1 и 12. 2, блоки системы SmartMath имеют следующие отличительные свойства:
дают хорошее визуальное представление операций;
имеют шаблоны для задания параметров и опций;
обеспечивают работу с функциями пользователя;
обеспечивают передачу данных от формулы к формуле;
допускают расширение, позволяющее использовать сразу несколько директив;
имеют конструкцию, схожую с конструкцией программных блоков.
На рис. 12. 3 показано еще несколько примеров применения символьных вычислений. Здесь особенно полезно присмотреться к технике применения разложения в ряд Тейлора и преобразования Лапласа.

Примеры вычисления пределов функций
Рис. 12. 7 Примеры вычисления пределов функцийДля получения результата установите после блока вычисления предела стрелку с острием, направленным вправо. Предел (если он существует) будет вычислен и появится в шаблоне у острия стрелки. Если функция не имеет предела, вместо результата появится надпись Undefine
Примеры задания программных блоков
Рис. 12. 10 Примеры задания программных блоковкоманда Add Line, добавляющая в модуль дополнительную вертикальную черту для подмодуля.
Программный модуль в сущности является функцией, но описанной с применением упомянутых сугубо программных средств. Эта функция может возвращать значение, определяемое последним оператором. Это значит, что после такого модуля, выделенного как целый блок, можно поставить знак равенства для вывода значения функции. В блоке могут содержаться любые операторы и функции входного языка системы. Для передачи в блок значений переменных можно использовать переменные документа, которые ведут себя в блоке как глобальные переменные.
Обычно модулю присваивается имя со списком переменных, после которого идет знак присваивания: =. Переменные в списке являются локальными,

Программные операторы
Программные операторыВплоть до появления последних версий системы MathCAD возможности программирования в них были крайне ограниченными. Фактически MathCAD позволяла реализовать лишь линейные программы, в основе которых лежит понятие функции. Функция if и ранжированные переменные в отдельных случаях могли заменить условные выражения и циклы, но с серьезными ограничениями. Отсутствовала возможность задания завершенных программных модулей.
Эти возможности наконец появились в версии MathCAD PLUS 6. 0 PRO и в расширенном варианте имеются в описываемой версии MathCAD 7. 0 PRO. Они сосредоточены в наборной панели программных элементов, показанной на рис. 12. 9.
Простейшие примеры применения символьных операций
Рис. 12. 1 Простейшие примеры применения символьных операций
Реализация численных методов в MathCAD 7. 0 PRO
12. 8. Реализация численных методов в MathCAD 7. 0 PROСерьезные пользователи, работающие с математическими системами, зачастую бывают недовольны отсутствием информации о реализованных в таких системах численных методах. Связано это с тем, что нередко от этих методов зависит успех решения особых задач, с которыми может столкнуться каждый пользователь. Поэтому немного остановимся на сути численных методов, реализованных в системе MathCAD 7. 0 PRO.
Прежде всего отметим, что выражения 0*x, 0/х и 0/0 система вычисляет как 0. Точнее говоря, встречая 0 в числителе любого выражения, она не вычисляет это выражение, а просто полагает его значение равным 0. При реализации численных методов MathCAD дает точными 15 десятичных цифр для результатов вычислений, но при выводе задает число знаков в соответствии с выбранным форматом чисел.
Определенные интегралы система вычисляет методом Ромберга. Этот метод широко описан в нашей литературе (см., например, [1, 2]). Поэтому, не описывая его подробно, отметим лишь, что он является вариантом метода трапеций с делением на два интервала интегрирования с итерационным уточнением решения до достижения заданной точности (она определяется значением системной переменной TOL).
Если за заданное число итераций точность не достигнута, используется более точный метод Ромберга с открытыми концами. При нем число интервалов утраивается на каждом шаге интегрирования. Этот метод увеличивает число шагов интегрирования там, где подынтегральная функция меняется более резко (например, если она имеет разрыв).
К достоинствам метода можно отнести то, что он делает все возможное, чтобы вычислить интеграл даже при сложной функции. Но для простых функций это ведет к увеличению времени вычислений. При наличии у подынтегральной функции особенностей время вычисления может резко возрастать из-за перехода от одной реализации метода Ромберга к другой. Поэтому нередко бывает оправданным применение достаточно точных формул интегрирования, например формул Ньютона — Котесса с легко предсказуемыми узлами, которые можно выбрать вдали от особых точек подынтегральной функции. Примеры такого подхода даны в Главе 14.
Для вычисления производных порядка от 0 до 5 система использует метод Риддера. Подробности о нем можно найти в [14]. Главное то, что метод вычисляет первую производную с погрешностью до 7—8 верных цифр результата, а с повышением производной на порядок число верных цифр уменьшается на единицу. Метод Риддера — итерационный (на каждой итерации шаг дифференцирования уменьшается), но число итераций ограничено. Если при реализации этого метода указанная точность не достигается, MathCAD сообщает об отсутствии сходимости.
При решении систем уравнений и неравенств используется итерационный метод Левенберга — Маркардта, содержащийся в известном и свободно распространяемом пакете алгоритмов численных методов MINPACK. Этот метод пытается найти нули или минимум среднеквадратичной погрешности при решении заданной системы уравнений или системы неравенств. При решении с применением аппарата комплексных чисел раздельно решаются действительная и мнимая части уравнений.
При решении вычисляется также вектор невязки. Если его величина меньше TOL, система возвращает вектор переменных-неизвестных. Если для решения используется функция find, при величине вектора невязки больше TOL система сообщает, что решение не найдено. Когда используется функция minerr, вектор неизвестных возвращается даже в том случае, когда значение вектора невязки больше TOL. Наконец, если не обнаружено схождение за заданное число итераций, выдается сообщение об отсутствии сходимости (как при применении функции find, так и minerr). В любых случаях величина вектора невязки определяется значением переменной ERR.
Для вычисления определителей матрицы и ее инвертирования используется LU-разложение. При этом матрица М разлагается в произведение нижней треугольной матрицы L и верхней U (т. е. M=L-U). Такой метод хорошо известен. В частности, он позволяет:
• вычислить определитель исходной матрицы как произведение диагональных элементов матриц L и U;
• вычислить обратную матрицу из решения матричного уравнения M*Vj=ej, где е — вектор с единицей на j-м месте и нулями в остальных позициях, V— вектор решения, который образует столбцы обратной матрицы для каждогоj;
Реализация гармонического синтеза
Рис. 12. 13 Реализация гармонического синтезаЕще один пример применения программного модуля для задания точек некоторой функции в трехмерном пространстве показан на рис 12 14 Там же представлено построение этих точек внутри параллелепипеда
Символьное вычисления интегралов
Рис. 12. 6 Символьное вычисления интегралов
прямо из палитры символьных директив) и для указания статуса и ограничении переменных (берется из дополнительной палитры Modifiers)
Выполнение матричных операций в символьной форме особой специфики не имеет На рис 125 показаны основные операции с матрицами, включая их транспонирование и вычисления обратной матрицы и детерминанта матрицы. Для наглядности взята матрица небольшого (2х2) порядка
Состав директив
Состав директивПри вводе стрелки —> после выражения фактически (по умолчанию) над ним исполняется операция Simplify (Упростить). Но что подразумевается под этим, ясно далеко не всегда, даже несмотря на то, что многие символьные операции система выполняет вполне очевидно, например вычисление интеграла или производной в символьном виде.
При необходимости выполняемую операцию можно изменить с помощью ряда ключевых слов:
simplify — упрощение выражений;
expand — разложение выражения по степеням;
factor — разложение выражения на простые дроби;
complex — преобразования в комплексной форме;
assume — присваивание переменным неопределенного значения, даже если до этого им были присвоены значения и заданы ограничения на значения переменных;
series — разложение в ряд по заданным переменным;
float — преобразование в формат чисел с плавающей точкой;
literally — запрет символьного преобразования для последующего выражения;
ФBparfac — разложение на элементарные дроби;
Фcoeffs — возвращает коэффициенты полинома;
ФBfourier — прямое преобразование Фурье;
Фlaplace — прямое преобразование Лапласа;
Фztrans — прямое Z-преобразование;
ФBinvfourier — обратное преобразование Фурье;
Фinvlaplace — обратное преобразование Лапласа;
Фinvztrans — обратное Z-преобразование;
ФMT ---> — транспонирование матрицы;
ФМ-1—» — инвертирование матрицы;
Ф¦М¦-> — вычисление детерминанта матрицы;
ФModifier — модифицированные команды:
* assume — вводное слово для приведенных ниже определений;
* real — для var=real означает вещественное значение var;
* RealRange — для var=RealRange(a,b) означает принадлежность вещественной var к интервалу [а,Ь];
» trig — задает направление тригонометрических преобразований.
Ключевые слова допустимо набирать только строчными буквами (кроме Modifier — первая буква в этом слове должна быть прописной). В новой версии MathCAD директивы охватывают все возможные символьные преобразования. При этом их даже больше, чем при использовании операций позиции Symbolics главного меню.
Влияние переменной TOL на погрешности вычисления производных и интегралов
Рис. 12. 15 Влияние переменной TOL на погрешности вычисления производных и интеграловоказаться значительно меньше значения TOL, ее влияние на результаты вычислений все же заметно (см. рис. 12. 15).
При выполнении вычислений возможны ошибки. Система выводит сообщения об ошибках, закрашивая ошибочные имена идентификаторов в ярко-красный цвет. В прежних версиях MathCAD сообщения об ошибках появлялись в красных прямоугольниках с линией, отходящей от места ошибки к прямоугольнику с сообщением о ней. Однако это загромождало документ, и от такого способа в новой версии отошли. В новой версии MathCAD подробное сообщение об ошибке можно получить также, установив на выражение с ошибкой курсор мыши и нажав ее левую клавишу.
Ниже представлен список основных сообщений об ошибках:
array size mismatch — несоответствие размера массива;
cannot be defined — не может быть определено;
cannot take subscript — не содержит верхних (нижних) индексов, 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 — некорректная точность аппроксимации;
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 block — следующий блок решения;
no matching Given — нет соответствующего 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 — мало нижних индексов;
too large to display — слишком велико, чтобы быть отображенным;
too many arguments — слишком много аргументов;
too many constraints — слишком много ограничений;
too many points — слишком много точек;
too many subscripts — слишком много индексов;
undefindet — не определено;
unmatched parenthesis — дисбаланс скобок;
wrong size vector — неверный размер вектора.
Сообщения об ошибках кратки, но их анализ не вызывает особых затруднений. Заметим, что приведенный список содержит далеко не все ошибки, а лишь наиболее распространенные.
Вычисление коэффициентов А и В разложения функции в ряд Фурье
Рис. 12. 12 Вычисление коэффициентов А и В разложения функции в ряд ФурьеТут вычисление коэффициентов ряда Фурье выполнено по их классическим интегральным представлениям. Это хорошо иллюстрирует возможность применения в программных блоках весьма мощных средств входного языка системы. Продолжение этого документа, реализующее гармонический синтез, представлено на рис. 12. 13.
На рис. 12. 13 показаны векторы коэффициентов, приведена формула гармонического синтеза исходной функции по ее гармоническому ряду и на графике проведено сопоставление исходной функции с ее представлением рядом Фурье с ограниченным числом гармоник N

Задание оператора пользователя с выбором имени из набора знаков
Рис. 12. 8 Задание оператора пользователя с выбором имени из набора знаков
После того как оператор задан, его можно использовать как функцию и как оператор Примеры показаны на рис 12. 8. Для применения нового оператора надо вывести его шаблон с помощью панели математических знаков (она также показана на рис 12 8) В нашем случае следует нажать кнопку xfy этой панели — она выводит особый шаблон вида • • • Введите операнды, например 6 и 2, в крайние прямоугольники, а символ оператора — в средний. Поставив после этой конструкции знак равенства, увидите результат — число 3.
Разумеется, можно задать и другие операторы, например для работы с одним операндом Так, вы можете задать оператор для пересчета значения температуры по шкале Цельсия, с тем чтобы определить соответствующее ему значение по шкале Фаренгейта, следующим образом
°С (х) =9/5 х+32 °F.=1
Затем, используя кнопку xf наборной панели символов отношения, можно выполнять операцию пересчета в виде.
37°С-986 °F
Большинство пользователей MathCAD вправе спросить и зачем только нужны эти сложности? И в самом деле, проще и естественней задать нужную операцию с помощью функции пользователя Однако есть области математики и физики, где задание новых операторов необходимо, поскольку является частью специфического языка их описания Те, кто работает в этих областях, по достоинству оценят предоставляемую возможность, несмотря на определенные неудобства, связанные с назначением новых операторов и их использованием
Задание операторов пользователя
12. 4. Задание операторов пользователяЕще одна экзотическая возможность, присущая новым версиям системы MathCAD, — задание новых операторов пользователя Такой оператор задается практически так же, как функция пользователя, но вместо имени выбирается какой-либо подходящий знак Например, можно задать оператор деления
в виде:
/(А,В):= A/B задание нового оператора деления;
/(6,2) =3 — применение функции деления;
6/2 = 3 — применение нового оператора деления.
При кажущейся простоте такого задания здесь есть проблемы. Встроенные в систему операторы нельзя переопределить. Поэтому набор доступных знаков для обозначения новых операторов ограничен. К примеру, нельзя задать новый оператор деления знаком / (он уже использован), но можно взять знак /поскольку этот символ системой не используется.
Вторая проблема связана с вводом символа нового оператора. Скорее всего, его напрямую ввести нельзя. Придется воспользоваться типовыми приемами ввода новых символов в документы Windows. Один из этих приемов — использование приложения, выдающего таблицу символов, с возможностью его экспорта из этой таблицы в документ другого приложения (в нашем случае — в документ MathCAD).
Можно также воспользоваться подходящим знаком из набора Extra Math Symbol, имеющегося в составе шпаргалок QuickSheet, доступ к которым дает центр ресурсов На рис 12. 8 показан такой вариант задания нового оператора
пользователя Для перетаскивания знака можно скопировать его в буфер об мена с помощью операции Copy, а затем ввести в документ, используя операцию Paste
Задание программных блоков
Рис. 12. 9 Задание программных блоков
Как видно из рис. 12. 9, программный модуль в системе MathCAD превратился в самостоятельный модуль, выделяемый в тексте документа жирной вертикальной чертой. Он может вести себя как безымянная функция, не имеющая параметров, но возвращающая результат — первый пример на вычисление квадратного корня из числа 12. Программный модуль может выполнять и роль тела функции пользователя с именем и параметрами — второй пример.
MathCAD 7.0
Часть документа системы MathCAD, вызванная из документа MathConnex
Рис. 13. 11 Часть документа системы MathCAD, вызванная из документа MathConnex
Что такое MathConnex?
13. 1. Что такое MathConnex?MathConnex — новое средство, примененное в системе MathCAD 7. 0 PRO. Оно выполняет две важнейшие и чрезвычайно мощные функции:
• служит для интеграции различных приложений с системой MathCAD и обеспечения их совместной работы с использованием объектных связей OLE2;
• выполняет функции имитационного моделирования моделей, представленных типовыми блоками в виде функциональной схемы.
В сущности MathConnex является вполне самостоятельным приложением, включенным в систему MathCAD и выполняющим функции системного интегратора. Благодаря ему возможно простое и наглядное установление сложных взаимосвязей между различными приложениями: математической системой MathCAD, матричной системой MatLAB, графической системой Axum, электронными таблицами Excel из пакета Microsoft Office и др. Мощь такой объединенной системы возрастает многократно, позволяет использовать для решения задач пользователя целый арсенал различных программных систем, включая встроенные в них специфические и подчас уникальные функции.
В то же время применение системы MathConnex имеет и недостатки:
• эффективное использование этой системы требует знакомства с целым рядом новых программных средств, что порой не под силу начинающим пользователям и даже пользователям средней квалификации;
• медлительность работы системы ощущается даже на ПК класса Pentium 166/200 ММХ;
• MathConnex имеет свой собственный язык программирования, требующий усилий по его освоению;
• имеются трудности при задании текстовых комментариев на русском языке;
• подготовка проектов (документов) для MathConnex требует больших затрат времени.
Все это свидетельствует о том, что MathConnex представляет интерес для опытного пользователя, способного по достоинству оценить уникальные возможности этой системы и уверенно их применять. Это средство особенно полезно, если необходимо блочное представление и описание сложной системы, работу которой необходимо имитировать. Можно считать, что в системе MathConnex на новом (цифровом) уровне реализована идея аналоговых ЭВМ (таких, как МН-7): подготовка блок-схем моделируемых устройств и имитация (или симуляция) их работы.
Представленное ниже описание рассчитано на начальное знакомство с системой. При этом предполагается, что опытный пользователь может освоить систему более детально по множеству имеющихся в ее составе примеров и по описанию (на английском языке), входящему в комплект поставок на CD-ROM.
Экран редактора Word со значком MathCAD Document в документе
Рис. 13. 16 Экран редактора Word со значком MathCAD Document в документе
для подготовки нужного математического выражения или графика Это иллюстрирует рис 13 17 на примере задания интеграла.

Электронные таблицы Excel
Электронные таблицы ExcelТабличный процессор Excel входит в самый популярный пакет автоматизации офисной деятельности — Microsoft Office 95 (уже появился и Office 97, но возможность его стыковки с MathConnex пока не ясна). Excel — одна из самых мощных и гибких электронных таблиц. Эта система может работать не только с двумерными, но и с трехмерными таблицами, представленными листами с двумерными таблицами.
Excel широко используется для подготовки прекрасно иллюстрированных финансово-экономических и иных документов. Она содержит сотни математических и экономических функций. Применение системы для математических расчетов всегда вызывало определенные сомнения (хотя бы в силу весьма специфических названий функций), но будучи интегрированной с системой MathCAD, табличная система Excel открывает колоссальные возможности по обработке объемных и сложных данных.
Главное меню MathConnex
Главное меню MathConnexГлавное меню системы имеет типичный для Windows-приложений набор позиций и относящихся к ним подменю. Поскольку главное меню MathCAD было описано, то можно опустить описание главного меню MathConnex. Укажем лишь, что все его операции относятся к деталям интерфейса MathConnex и к документам этой системы. Документы имеют расширение. .mxp.
Кроме того, надо отметить специфическую для MathConnex позицию Run главного меню. Она выводит подменю со следующими операциями:
Run (Пуск) — пуск имитации работы документа;
Pause (Пауза) — пауза в имитации;
Step (Шаг) — имитация для следующего блока в режиме пошаговой работы;
Stop (Стоп) — остановка имитации;
Single Step Mode — переход к пошаговой имитации;
(Пошаговый режим)
Highlight Components — установка подсветки исполняемого компонента.
(Подсветка компонентов)
Главное окно системы MathConnex
Рис. 13. 1 Главное окно системы MathConnexОкно имеет строку главного меню и расположенную под ним панель инструментов (Toolbar). В правой части главного окна (экрана) системы находится большое окно для рабочего документа (Worksheet). Первоначально оно пустое. В левой части расположена палитра компонентов (Component Pallete) в виде 12 кнопок и так называемый Исследователь (Explorer).
Графическая система Axum
Графическая система AxumПрежде всего эта система ориентирована на построение 2D- и ЗD-графиков, способных удовлетворить самые изысканные требования в области графической визуализации. К примеру, Axum позволяет строить сложные трехмерные поверхности с функциональной окраской и с одновременным построением их проекции в виде линий равного уровня на плоскости, расположенной под этой поверхностью. Это заметно повышает степень визуализации построений.
Axum ориентирована также на быструю и наглядную обработку данных. Она содержит множество математических и статистических функций и удобный редактор математических формул, обладает большими возможностями импорта и экспорта данных.
Демонстрационная версия системы Axum поставляется на CD-ROM в комплекте поставки системы MathCAD 7. 0 PRO. Ее можно найти в Internet на сервере фирмы MathSoft.
Иллюстрация пошагового исполнения документа с выделением исполняемого блока
Рис. 13. 6 Иллюстрация пошагового исполнения документа с выделением исполняемого блокаобщего характера, так что воздержимся от них и рассмотрим возможности системы MathConnex на примерах, включенных в комплект ее поставки.
Когда пользователь работает над курсовой
13. 7. Интеграция MathCAD с текстовым процессором Word 95Когда пользователь работает над курсовой работой, дипломным проектом, диссертацией или даже книгой, то наверняка большую часть времени он тратит все же на подготовку текста, а не на математическое решение задач. Такой пользователь, возможно, еще не владеет математической системой, но, несомненно, пользуется текстовым процессором Word (например, Word 95 из известного пакета Microsoft Office 95/97).
MathConnex напрямую позволяет вставлять документы Word в свои документы. Кроме того, существует ряд ограничений на подготовку русскоязычных текстов в системах MathCAD и MathConnex. К примеру, проверку орфографии в среде MathCAD можно использовать только для англоязычных текстов, поскольку русскоязычный словарь в эту систему на входит. Есть проблемы и с подготовкой русскоязычных комментариев в документах MathConnex.
В принципе в этих системах можно установить объектную связь с текстовым процессором Word через операцию Object в подменю позиции Insert главного меню. Однако мы поступим, как говорится, с точностью до наоборот учитывая более важную и первичную роль текстового процессора Word для большинства пользователей, рассмотрим его интеграцию с системой MathCAD через объектную связь.
На рис. 13. 15 показан начальный этап объектной связи Word 95 с системой MathCAD. Перед вами окно объектной связи процессора Word с другими приложениями. В нем в списке объектов необходимо найти объект MathCAD Document, установить связь в виде значка и нажать кнопку ОК.
Интерфейсные переменные
Интерфейсные переменныеИнтерфейсные переменные служат для организации обмена данными между блоками в документах MathConnex:
in0, inl,... — организуют ввод данных в блок с выходов других блоков;
out0, out1,... — организуют вывод данных из блока.
Интерфейсные переменные могут использоваться и в блоках системы MathCAD.
Использование внешних систем
13. 5. Использование внешних системГлавным достоинством системы MathConnex является ее интеграция с другими математическими и графическими системами. Отметим особенности и возможности последних.
Конструкция цикла типа for
Конструкция цикла типа forДля определения цикла с заданным числом повторений используется конструкция с оператором for:
for identifier in expr
statement 1
statement2
end
Например, оператор с заголовком for i in 1: 10 выполняет 10 циклов, поскольку переменная цикла меняется от 1 до 10 с шагом+ 1. Оператор break, встречаясь в цикле, ведет к немедленному его прерыванию. Обычно этот оператор вводят в составе условного выражения с оператором if.
Матричная математическая система MatLAB
Матричная математическая система MatLABMatLAB одна из самых древних и глубоко почитаемых специалистами математических систем, ориентированных на численные расчеты. MathConnex обеспечивает объединение MathCAD 7. 0 PRO с одной из последних версий этой матричной системы — MatLAB 4. 2 (последней является версия 5. 0, но возможности ее работы под управлением MathConnex пока не вполне понятны).
MatLAB, будучи изначально матричной системой, позволяет быстро и эффективно решать сложные задачи, базирующиеся на матричных методах.
Профессионалы особенно почитают MatLAB (несмотря на некоторую архаичность пользовательского интерфейса) за огромный набор ее подчас уникальных функций и возможность поистине неограниченного и весьма простого расширения. Вам достаточно в редакторе системы задать свою новую функцию, и она становится столь же доступной, как любая элементарная функция. Благодаря этому свойству на основе системы MatLAB были созданы десятки новых математических систем.
Специалистов привлекает также высокая скорость выполнения вычислений, она намного выше, чем при решении подобных задач только средствами MathCAD. Поэтому объединение функций систем MathCAD и MatLAB открывает перед серьезными пользователями систем компьютерной математики новые и почти неограниченные возможности эффективного решения сложных математических задач.
Назначение языка программирования Connex Script
Назначение языка программирования Connex ScriptКак было показано выше, система MathConnex может использовать свои собственные блоки с вычислительными операциями. В этих блоках могут использоваться и программные конструкции, составленные на основе специального языка программирования — Connex Script. Применение таких блоков заметно расширяет возможности подготовки сложных документов. Ниже дано достаточно полное описание этого языка.
Общий обзор окна
Общий обзор окнаДля запуска системы MathConnex используется кнопка в инструментальной панели MathCAD с пиктограммой в виде красного шарика и трех разноцветных прямоугольников (блоков). После запуска появляется главное окно MathConnex, показанное на рис. 13. 1.

с окном установки свойств блока
Рис. 13. 5 Окно MathConnex с окном установки свойств блока Input0
Итак, редактирование и отладка блоков достаточно просты. Пожалуй, куда большие трудности представляет само составление блок-схемы для решения поставленной задачи. К сожалению, тут мало помогают рекомендации

Окно редактора MatLAB, вызванное из документа MathConnex
Рис. 13. 9 Окно редактора MatLAB, вызванное из документа MathConnexДанный документ иллюстрирует технику простейшей анимации. Показанная на рис. 13. 8 фигура вращается, правда, с черепашьей скоростью (несмотря на просмотр на ПК Pentium 166 ММХ). Это лишний раз свидетельствует о некоторой медлительности имитации сложных процессов с помощью системы MathConnex. Но тут ничего не поделаешь: чем сложнее система имитации, тем медленнее она в работе!
Если (после остановки вычислений) выделить блок с матрицей вращения системы MatLAB и дважды щелкнуть левой клавишей мыши, то можно вызвать окно редактора MatLAB с записанной в нем функцией. Это иллюстрирует рис. 13. 9. Теперь в этом окне можно редактировать документы MatLAB и входящие в них функции и математические выражения.
Этот пример наглядно показывает полный доступ к ресурсам системы MatLAB, который обеспечивается интегратором приложений MathConnex.
Операторы и функции
Операторы и функцииОператоры Connex Script имеют хорошо известный вид и назначение:
=+ -* / А — арифметические операторы;
.*./.л — матричное умножение, деление и возведение в степень;
- (NOT) xor & (AND) ¦ (OR) — логические операторы;
\= >= <= > < — операторы сравнения.
Операнды логических операторов располагаются по обе стороны от них (кроме операнда - для NOT, например А&В&С или 2! =3). Такие выражения возвращают логические значения.
Connex Script содержит следующие встроенные функции:
abs — абсолютное значение;
ceil — ближайшее очередное целое;
ехр — экспонента;
floor — ближайшее предшествующее целое;
log10 — логарифм по основанию 10;
log2 — логарифм по основанию 2;
In — натуральный логарифм;
max — максимальное значение;
min — минимальное значение;
mod — остаток от деления;
nelem — число элементов в переменной;
round — округленное до ближайшего целого значение;
sign — функция знака;
sqrt — квадратный корень;
time — время в секундах с начала 1980 г.;
trunc — число десятичных позиций;
gamma — гамма-функция.
Имеются встроенные функции комплексного переменного:
conj — комплексно-сопряженное число;
im — мнимая часть аргумента;
re — действительная часть аргумента.
Тригонометрические функции представлены следующим набором: cos, sin, tan, sec, csc, cot, pi, acsc, acos, acot, asec, asin, atan.
Гиперболические функции представлены набором: cosh, coth, csch, sech, sinh, tanh, acsch, acosh, acoth, asech, asinh, atanh.
Матричные функции: cols — число столбцов матрицы, rows — число строк матрицы и det — детерминант матрицы.
Палитра компонентов
Палитра компонентовПалитра компонентов содержит кнопки с приведенными ниже обозначениями. Они разбиты на пять групп. Компоненты ввода и вывода данных:
Input — блок ввода;
File Read or Write — считывание или запись файла;
Ramp — блок генерации последовательностей;
Global Variable — блок задания глобальной переменной. Компоненты просмотра (инспекции) результатов:
Inspector — блок Инспектора — просмотра вычислений;
Graph — блок вывода графики;
Axum — блок графической системы Axum. Подключаемые компоненты:
MathCAD — блок математической системы MathCAD;
Excell — блок системы Excel (электронные таблицы);
MatLAB — блок математической системы MatLAB;
Connex Script — блок с описанием на языке Connex Script.
Компоненты контроля потоков данных:
Conditional — блок ввода условий;
Initialize — блок инициализации;
Wire Breaker — блок выключателя;
Stop or Pause — блок остановки и паузы. Компонента вставки текстового комментария:
Text — блок вставки текстового комментария.
Панель инструментов MathConnex
Панель инструментов MathConnexПанель инструментов MathConnex содержит ряд кнопок, аналогичных по своему виду и назначению тем, что используются в системе MathCAD. Однако есть две новые группы кнопок, отмеченные ниже. Кнопки управления имитацией.
Run — пуск имитации;
Pause — пауза в имитации;
Step — пошаговое выполнение имитации;
Stop — остановка имитации.
Кнопки управления уровнем исполнения и размерами документа:
Back — переход к предыдущему по уровню блоку;
Zoom in — увеличение размеров документа;
Zoom out — уменьшение размеров документа.
Подготовка документов в MathConnex
13. 3. Подготовка документов в MathConnexПодготовка документов в системе MathConnex сводится к созданию блок-схемы решаемой задачи. Блок-схема может содержать указанные выше компоненты, связи между ними и текстовые комментарии. Все это размещается в окне документов.
Для ввода блоков в документы достаточно указать курсором мыши на кнопку нужного блока и, нажав и удерживая левую клавишу мыши, начать перетаскивать блок в нужное место окна редактирования документа. Отпустив левую клавишу мыши, можно зафиксировать блок в нужном месте. Таким образом реализуется известный метод перетаскивания объектов drag and drop ("перетащи и брось"). В ряде случаев система выводит диалоговые установочные окна для задания числа вводов и выводов (обозначаемых треугольниками) и некоторых других параметров.
На рис. 13. 2 показан простейший пример работы с системой MathConnex. В окно документов перенесен блок системы MathCAD, и в нем построен график двух функций. Обратите внимание, что при установке блока системы MathCAD появляется панель палитр математических символов.

Примеры применения системы MathConnex
13. 6. Примеры применения системы MathConnexСистема MathConnex поставляется с рядом примеров ее применения, соответствующие файлы которых расположены в папке Sample. Рассмотрим некоторые из этих примеров, дающие хорошее представление о возможностях системы MathConnex и технике ее применения.
На рис. 13. 10 дан один из самых простых примеров: беря данные из таблицы (координаты х и у точек), документ выполняет полиномиальную регрессию, вычисляет коэффициент полинома и коэффициент корреляции.

Пример имитации документа, созданного с применением системы Visio
Рис. 13. 14 Пример имитации документа, созданного с применением системы Visio
Ознакомившись с другими примерами применения MathConnex, пользователь наверняка сумеет не только оценить ее интересные возможности, но и плодотворно применить на практике для решения своих задач.
Пример объединения MathCAD с MatLAB
Пример объединения MathCAD с MatLABНо рассмотрим конкретный пример объединения MathCAD с другой математической системой. Все, что надо сделать для использования специфических возможностей MatLAB, — это включить в состав документа блоки этой системы. При первом запуске такого документа из среды MathConnex можно

Пример построения блок-схемы из четырех блоков
Рис. 13. 3 Пример построения блок-схемы из четырех блоков
Блок Input0 вводит число 123 Следующий б ток системы MathCAD Функция in0 возвращает значение числа, которое задает блок Input0 Это обеспечивает интерфейс связи между блоком ввода и блоком вычислений системы MathCAD. Поскольку данный пример чисто иллюстративный, то в математическом блоке задано суммирование числа из блока ввода с числом 57 Результат передается на выход блока с помощью интерфейсной функции out0 С помощью блока Инспектора можно наблюдать результат вычислений, а блок останова останавливает их
Для пуска имитации достаточно активизировать кнопку пуска (ее пиктограмма имеет вид зеленого треугольника) Освоив пару-другую подобных примеров, можно научиться составлять свои блок-схемы, причем не только линейные, но и со сложной разветвленной структурой
В функциональную схему имитируемых устройств могут входить блоки с описанием их довольно сложных функций на языке системы MathConnex — Connex Script Ею описание дано в конце этой главы
Пример построения пространственной кривой
Рис. 13. 12 Пример построения пространственной кривойНа рис. 13. 13 приведен пример синтеза сложных колебаний и их спектрального анализа с применением метода быстрого преобразования Фурье. И хотя детали документа здесь разглядеть трудно, но, запустив его на своем ПК, вполне можно будет разобраться с этим достаточно сложным примером
Этот пример дает представление о создании с помощью MathConnex виртуальной (т. е. кажущейся) физической лаборатории, оснащенной самыми современными приборами, например осциллографом и анализатором спектра (последний из-за его высокой цены встретишь далеко не во всякой лаборатории).
Пример проведения полиномиальной регрессии
Рис. 13. 10 Пример проведения полиномиальной регрессииАктивизировав блок системы MathCAD, можно просмотреть документ, выполняющий регрессию, и входящий в него график функции регрессии и узловых точек (см. рис. 13. 11).
На рис. 13. 12 показан пример построения в параметрической форме объемной спирали. Матричные преобразования и построение графика здесь обеспечиваются с помощью блоков системы MathCAD. Построение кривой (довольно медленное) можно видеть в развитии.

с документом, использующим функции матричной
Рис. 13. 8 Пример работы с документом, использующим функции матричной системы MatLAB 4. 2

Пример редактирования в блоке MathCAD
Рис. 13. 4 Пример редактирования в блоке MathCADПосле редактирования нужно установить курсор мыши на свободное поле окна редактирования и щелкнуть ее левой клавишей. При этом выделение блока исчезнет и документ предстанет в виде, готовом для пуска его имитации.
Для редактирования блоков полезно также контекстно-зависимое меню, появляющееся при нажатии правой клавиши мыши. Оно содержит различные операции, которые относятся к выделенному блоку. Это могут быть операции стирания блока, редактирования его свойств и т. д.
Одной из важных является операция редактирования свойств Properties. Она выводит диалоговое окно, показанное на рис. 13. 5 для блока Input0. Такое окно позволяет (с помощью панели General) установить номер блока и задать к нему текстовый комментарий. Заметим, что MathConnex автоматически проставляет номера блоков по мере их задания, что не всегда удобно. В панели Display можно задать параметры отображения чисел в блоке.
При отладке документов полезен режим пошаговой работы. При этом на каждом шаге исполняется один блок документа. Обычно исполнение блока заметно лишь по изменению входящих в него данных, результатов вычислений и графических построений. Однако включив режим подсветки Highlight Components, можно наблюдать выделение исполняемого блока (компонента) двойной рамкой с ярко-зеленой окраской (см. рис. 13. 6).
Пример входа в окно MathCAD и начало задания интеграла
Рис. 13. 17 Пример входа в окно MathCAD и начало задания интегралаЗавершив ввод интеграла и вычисление его символьного значения, можно вернуться в среду Word закрыв окно MathCAD (см рис 13 18) Все это вы можете сделать, не покидая документа редактора Word
Указав курсором мыши на формулу и щелкнув левой ее клавишей, можно выделить формулу характерной рамкой с шаблонами. С их помощью мышью можно растягивать формулу и менять ее размеры, что показано на рис 13 19
Удобным средством для подготовки сложных документов является вставка объекта в кадр.
Пример вставки формулы в кадр и обтекания кадра текстом
Рис. 13. 20 Пример вставки формулы в кадр и обтекания кадра текстом
Пример вставки в документ рисунка из системы MathCAD
Рис. 13. 22 Пример вставки в документ рисунка из системы MathCAD
возможности создания сложных программных систем, решающих самые разнообразные и сложные математические задачи.
Пример вывода и применения блока MathCAD
Рис. 13. 2 Пример вывода и применения блока MathCADВходы и выходы блоков в общем случае соединяются соответствующим образом с помощью активизации их курсором мыши, превращающимся в кисть руки, держащей карандаш На рис 13 3 показан более сложный случай подготовки документа из четырех блоков со связями между ними
Редактирование блоков и документов системы MathConnex
13. 4. Редактирование блоков и документов системы MathConnexВ панели Project (Проект) Исследователя в левой части экрана виден полный перечень блоков, вставленных в окно документов Установив курсор мыши на любую позицию этого перечня и нажав быстро левую клавишу мыши, можно выделить заштрихованной рамкой соответствующий блок в окне документа Уцепившись курсором мыши за эту рамку, б ток легко переместить в любое место окна документа Это же можно сделать, указав блок курсором мыши и прямо в окне документов. Кроме того, используя шаблоны в виде маленьких темных прямоугольников по сторонам рамки, блок растягивается по вертикали, по горизонтали и по диагонали.
Двойной щелчок левой клавишей мыши позволяет ввести режим редактирования блока. При этом автоматически запускается создавшее блок приложение. На рис. 13. 4 показан пример редактирования в блоке MathCAD, в котором число 57 изменено на число 456. Изменение результата в Инспекторе произойдет только после запуска имитации. Окно документа при редактировании приобретает элементы интерфейса, присущие приложению, в котором создается редактируемый блок (см. рис. 13. 4).

Синтез сложных колебаний и их спектральный анализ
Рис. 13. 13 Синтез сложных колебаний и их спектральный анализ
Наконец, на рис. 13. 14 дан хотя и простой пример, но с применением программной системы Visio, предназначенной для технических графических построений. С ее помощью выполнен показанный в документе рисунок RC-цепи, переходной процесс в которой имитируется.
Система символьной математики Maple V
Система символьной математики Maple VКак ни странно, но установка связей с маститым патриархом символьной математики — системой Maple V — с помощью MathConnex не предусмотрена. Возможно, фирма MathSoft посчитала для себя вполне достаточным альянс с фирмой Maple Software, который привел к включению в MathCAD несколько сокращенного ядра символьной математики системы Maple V.
По видимому, это самый серьезный недостаток MathCAD 7. 0 PRO. Однако скорее всего разработчики системы пошли на это сознательно: полное объединение MathCAD с Maple V превратило бы новую систему в необычайно мощный инструмент, владеть которым должны суперпрофессионалы, а не рядовые пользователи. Но тогда имидж MathCAD как системы для всех был бы сильно подорван, несмотря на большие перспективы роста возможностей в области компьютерной алгебры.
Тем не менее нельзя не считаться с тем, что символьные вычисления MathCAD выполняет с помощью ядра Maple V: таким образом, интеграция с этой системой налицо, хотя лишь частичная — ведь новая реализация Maple V R4 содержит около 2800 (!) доступных функций, тогда как в MathCAD 7. 0 PRO их порядка трех сотен. Это сравнение будет выглядеть еще более впечатляюще если учесть, что функций символьной математики в MathCAD гораздо меньше — всего-то около двух десятков.
Создание списков, векторов и матриц
Создание списков, векторов и матрицMathConnex может оперировать списками следующего вида:
{ ехрг, ехрг; ехрг, ехрг}
Списки создаются в фигурных скобках. Для разделения данных одного порядка используется запятая, а для данных разного порядка — точка с запятой.
Примеры задания списков:
Х = { 1, 2, 3} — задан вектор Х из трех элементов;
М= { 1, 2, 3; 4, 5, 6} — задана матрица М с размером 2х3.
Для задания векторов с элементами-числами можно использовать выражения вида:
start_expr: step_expr: end_expr
где start_expr — условие, задающее начальное значение списка чисел; step_ ехрг — шаг изменения ряда чисел; end_expr — условие, задающее конечное значение чисел в списке.
Например, выражение
Х-1: 2: 100
создает вектор чисел с именем X, у которого первое число равно 1, а последующие (до значения 100) идут с шагом нарастания 2. Другие примеры:
Y = 1: 5 — вектор чисел Х от 1 до 5 с шагом по умолчанию 1;
Z = 10: 1 — вектор чисел Z от 10 до 1 с шагом по умолчанию -1;
Типы данных
Типы данныхConnex Script имеет данные вещественного и комплексного типа. Вещественные числа задаются с двойной точностью в IEEE-формате. Числа задаются в виде:
314 3. 14 5. 78е14
и т. д. Для задания комплексных чисел используется знак мнимой единицы i или J, например:
5. 78i 0. 5e10i 4. 0+ 8. 7j
Бесконечность задается словом "Inf". Слово "NaN" (Not-a-Number) означает нечисловое значение, например:
х = Inf у = NaN
Условный оператор if
Условный оператор ifУсловный оператор if используется для создания типовой конструкции:
if boolean_expr statement 1 statement2
elseif boolean_expr statements
else statement4
end Пример применения оператора if:
if ( x > у & x! - 0)
z=y/x
q = log (2-z)
elseif ( у >= x & у! = 0)
z-x/y
q=2'\z
else
z-0
q=l
end
Поскольку действие таких конструкций хорошо известно, воздержимся от их подробного описания.
Установка связи текстового процессора Word
Рис. 13. 15 Установка связи текстового процессора Word 95 с системой MathCAD 7. 0
После этих операций в текст документа редактора Word будет включен значок математической системы MathCAD. Это показано на рис. 13. 16.
Указав на этот значок курсором мыши и дважды щелкнув ее левой клавишей, можно вызвать систему MathCAD и воспользоваться ее возможностями
Выделенная формула, которую можно перемещать и растягивать
Рис. 13. 19 Выделенная формула, которую можно перемещать и растягивать

Вызов окна MathCAD для редактирования формулы
Рис. 13. 21 Вызов окна MathCAD для редактирования формулыТаким образом, вставка в текстовый процессор объектов из математической системы MathCAD дает полноценный доступ ко всем возможностям и средствам последней. Как лучше поступать: работать в Word, вставляя объекты из MathCAD, или, работая в системе MathCAD, вставлять в нее объекты из Word, — каждый пользователь должен решать самостоятельно.
Разумеется, таким же образом можно связать друг с другом MathCAD и другие, не упоминавшиеся выше системы. Необходимо лишь одно — возможность установления объектной связи. Большинство приложений, разработанных для работы в среде операционной системы Windows 95/97, такой особенностью обладают. Это открывает (даже для рядового пользователя)
Язык программирования системы MathConnex
13. 8. Язык программирования системы MathConnexЗагрузка системы MatLAB из MathConnex
Рис. 13. 7 Загрузка системы MatLAB из MathConnexнаблюдать появление характерной заставки пакета MatLAB 4. 2, что показано на рис. 13. 7.
На рис. 13. 8 показано решение задачи на построение сферы, состоящей из шести- и пятиугольников. При этом используются матричные функции и графика системы MatLAB. На рисунке хорошо видны блоки системы MatLAB — матрицы вращения фигуры и построения ее графика. По перемещению выделяющих рамок можно судить об этапах имитации документа. В частности, будет видно, что быстрее всего исполняется блок вычислений с матрицей вращения системы MatLAB.
Запись выражений
Запись выраженийЗапись выражений выполняется в обычной алгебраической форме, например:
7 7+ 8* 19 / 3. 3 х х+ 8х/у* 8 х = у [5] А [3] = В [5, 3]* х
Вычисление функций также задается, как обычно, например:
у = sin (x)
При этом функция возвращает значение в ответ на обращение к ней с указанием параметра функции — переменной или выражения.
Неисполняемый однострочный комментарий задается после символа двойного слэша (//), например:
х = А [ 1, 2; 0] // take first element from 2nd and 3rd row
Многострочный комментарий помещается между символами (/*) и (*/).
Выражения размещаются в строках. Для их разделения можно использовать символ (;), например:
х = у+ 5; z = х^
х = 0; for i in 0: 5; x = x+ i; end
Для переноса длинных выражений с одной строки на другую используется символ подчеркивания ( _) в конце переносимой строки, например:
^-{i, 2, 3; _ 4, 5, 6;
7, S, 9}//3-by-3matrix
Зарезервированные слова и идентификаторы
Зарезервированные слова и идентификаторыЗарезервированные слова, которые нельзя использовать в качестве идентификаторов для задаваемых пользователем объектов:
break cols complex delete else elseif end error for function if in list load nelem new real repeat return rows static until while xor
Примеры задания имен (идентификаторов) переменных:
this_is_my_variable tl х_5 R2D2
Имена должны быть заданы одним словом (допускается соединение нескольких слов символов объединения — горизонтальная черта снизу) и начинаться с буквы. Имена переменных допускается задавать только латинскими буквами.
Завершение вставки формулы в документ редактора Word
Рис. 13. 18 Завершение вставки формулы в документ редактора Word
В отличие от простой вставки вставка в кадр обеспечивает обтекание текстом введенной формулы.
MathCAD 7.0
Быстрые операции с полиномами-векторами
Быстрые операции с полиномами-векторамиВ математических расчетах широко применяются степенные многочлены — полиномы вида
Р (х) = аn xn+ an 1 хn 1+ + а1 х1 + а0
Ценность полиномов заключается в том, что они могут достаточно точно аппроксимировать многие функции (особенно непрерывные) единообразным способом При этом, поскольку полиномы содержат суммы простых членов

Быстрые операции с полиномами
Рис. 14. 10 Быстрые операции с полиномамивида an 1 xn 1, легко аналитически вычислять производные полиномов и интегралы с подынтегральной функцией в виде многочленов.
Коэффициенты полинома удобно задать как элементы вектора а. Тогда их запись (как элементов вектора) совпадает с общепринятой. При этом помимо своих коэффициентов полином характеризуется порядком п. В документе на рис. 14. 10 представлены задание полинома Р (х) и примеры выполнения ряда операций с полиномом: вычисление значений полинома по заданному аргументу x, вычисление производной полинома Р'(х) и определенного интеграла с полиномом Р (х) в виде подынтегральной функции.
Для вычисления производной и интеграла используются аналитические выражения, что заметно уменьшает время вычислений и позволяет проводить их с предельно малой погрешностью. Все отмеченные вычисления оформлены в виде функций пользователя, что позволяет использовать эти функции в приложениях, связанных с применением полиномов.
Цифровая фильтрация с помощью БПФ
Цифровая фильтрация с помощью БПФАналоговые фильтры обычно имеют довольно сложную аппаратную реализацию. В них применяются громоздкие и нетехнологичные колебательные контуры или RC-цепи с интегральными операционными усилителями. Поэтому интенсивно развивается новый класс фильтрующих устройств — цифровые фильтры. В них используются цифровые логические схемы, имеющие высокую степень интеграции, и применяются цифровые методы обработки сигналов.
Документ на рис. 14. 29 поясняет реализацию алгоритмов цифровой фильтрации с помощью реализуемой цифровыми устройствами функции s (kj). После ее определения синтезируется цифровой сигнал, содержащий низкочастотную в виде перепада и высокочастотную в виде меандра компоненты.
Далее показана реализация фильтрующей операции — свертки для двух типов фильтров, широкополосного и узкополосного. Конец документа, представленного на рис. 14. 29, показан на рис. 14. 30.

Данные о падении парашютиста (конец документа, представленного на рис. 14. 38)
Рис. 14. 39 Данные о падении парашютиста (конец документа, представленного на рис. 14. 38)В результате моделирования получены зависимости от времени падения парашютиста следующих параметров (см. рис 14 39): высоты, скорости и ускорения падения и резкости (второй производной от скорости) падения. Резкость падения характеризуют перегрузки, которые испытывает парашютист в полете Они многократно возрастают сразу после раскрытия парашюта
Если вас интересуют числовые данные величин, характеризующих падение парашютиста, выведите их в табличной форме.
Электро- и радиотехнические расчеты
14. 8. Электро- и радиотехнические расчетыЭлектро- и радиотехнические расчеты — весьма благодатная почва для приложения MathCAD. Некоторые из таких расчетов (например, вычисление емкости или индуктивности различных компонентов) достаточно просты и сводятся (за редкими исключениями) к вычислениям по готовым формулам
В электро- и радиотехнике широко применяются комплексные числа и величины MathCAD обладает всеми возможностями для работы с ними, начиная от вычислений импеданса (полного сопротивления) простых цепей и кончая работой с матрицами, имеющими комплексные элементы
Ниже рассмотрено лишь несколько примеров расчетов электро- и радиотехнических цепей
Фильтрация аналогового сигнала с применением БПФ (конец документа)
Рис. 14. 28 Фильтрация аналогового сигнала с применением БПФ (конец документа)ставленный 128 отсчетами вектора q. Затем к этому сигналу присоединяется шум с помощью генератора случайных чисел и формируется вектор из 128 отсчетов зашумленного сигнала. Используя прямое БПФ, сигнал с шумом преобразуется из временной области в частотную, которую создает вектор f из 64 частотных составляющих. Затем выполняется фильтрующее преобразование, эффективность которого оценивается параметром фильтрации а. Отфильтрованный сигнал (вектор g) подвергается обратному БПФ и создает вектор выходного сигнала h.
В конце документа (см. рис. 14. 28) сравниваются временные зависимости входного и выходного сигналов. Хотя абсолютной идентичности между ними нет, видно, что выходной сигнал почти повторяет входной и в значительной мере избавлен от высокочастотных шумовых помех, маскирующих полезный сигнал.
Алгоритмы, реализованные в данном примере, находят широкое применение на практике. Они лежат в основе создания фильтров для аналоговых сигналов.
Фильтрация аналогового сигнала с применением БПФ (начало документа)
Рис. 14. 27 Фильтрация аналогового сигнала с применением БПФ (начало документа)

Фильтрация аналоговых сигналов
Фильтрация аналоговых сигналовПод фильтрацией подразумевается выделение полезного сигнала из его смеси с мешающим сигналом — шумов. Наиболее распространенный тип фильтрации — частотная фильтрация. Если известна область частот, занимаемая полезным сигналом, достаточно выделить ее и подавить те области, которые заняты шумом.
Документ на рис. 14. 27 иллюстрирует технику фильтрации с применением БПФ. В начале документа синтезируется двухчастотный сигнал, пред-
Фильтрация пространственного образа (конец документа)
Рис. 14. 32 Фильтрация пространственного образа (конец документа)Полезно отметить, что графики трехмерной поверхности здесь также получены без применения стандартных средств построения трехмерных поверхностей системы. Поэтому без какой-либо доработки (кроме выбора шрифта комментариев) этот пример можно использовать и в ранних версиях системы MathCAD 2. 0/2. 04, не имеющих средств построения трехмерных фигур (а говоря точнее, он и взят из примеров для этих систем).
Фильтрация пространственного образа (начало документа)
Рис. 14. 31 Фильтрация пространственного образа (начало документа)Система MathCAD 7. 0 реализует двумерное БПФ, если в операциях БПФ использовать не векторы, а матрицы. Однако у ранних версий MathCAD таких возможностей нет. Поэтому воспользуемся более наглядной реализацией двумерного БПФ с помощью одномерного. На рис. 14. 31 показан документ, реализующий фильтрацию трехмерной поверхности с помощью двумерного БПФ.
В начале документа создается матрица трехмерной поверхности М со случайными отклонениями каждой точки. Внизу слева построена эта поверхность — см. рис. 14. 32. Она имеет вид пятна, в котором отдаленно угадываются общие контуры поверхности. Регулярность расположения точек-крестиков на ней вообще не заметна. В средней части документа показана реализация математического аппарата фильтрации. Рисунок справа внизу документа показывает результат фильтрации. На нем отчетливо видны не только общие формы поверхности (типа "выпуклый лист"), но и явная регулярность расположения точек. Это и есть результат фильтрации.

Фильтрация пространственного образа с применением двумерного БПФ
Фильтрация пространственного образа с применением двумерного БПФДо сих пор мы приводили примеры применения одномерного БПФ. Однако возможно и двумерное преобразование Фурье, позволяющее решать более сложные задачи.

Финансово-экономические расчеты со сложными процентами
Финансово-экономические расчеты со сложными процентамиВ наше время перехода к рыночным отношениям финансово-экономические расчеты могут интересовать многих читателей настоящей книги MathCAD не содержит специальных функций для проведения таких расчетов Однако все они легко выполняются встроенными в систему средствами
Документ на рис 147 иллюстрирует наиболее распространенные расчеты с единичным вкладом Все они основаны на применении сложных процентов, и их не так давно (в период государственной монополии на банковские расче ты и стабильных процентов годовых) можно было использовать для оценки финансовой ситуации с нашими вкладами на сберкнижках
Разумеется, вы можете подставить в них те параметры, которые соответствуют текущему положению дел в нашей рыночной экономике
Финансовые операции с начальным и регулярными вкладами
Финансовые операции с начальным и регулярными вкладамиЕсли вы имели возможность внести некоторый начальный вклад и затем намерены регулярно пополнять его ежегодно N раз, расчеты придется вести по несколько иным формулам. Они приведены в документе на рис. 14. 9.
Здесь особый интерес вызывает последний пример — вычисление процента годовых.
Финансовые операции с регулярными вкладами
Финансовые операции с регулярными вкладамиЕсли ваша заработная плата превышает прожиточный минимум, простой жи тейский опыт подсказывает, что лучше не копить деньги "в чулке", а периоди чески (N раз в год) относить их в Сбербанк Документ на рис 148 показывает возможные ситуации при операциях с ежегодными регулярными вкладами

Физические расчеты
14. 7. Физические расчетыГармонический синтез меандра
Гармонический синтез меандраОдним из фундаментальных положений математики, ранее казавшимся абст рактным а затем нашедшим широчайшее практическое применение, является возможность описания любой периодической функции, имеющей конечное число разрывов и непрерывность производных между ними, с помощью три гонометрического ряда Фурье [29, 30]

где k — порядковый номер гармоники, f1 — частота колебания Этот ряд со держит бесконечное число косинусных и синусных составляющих — гармо ник, причем амплитуды этих составляющих а^ и Ь^ являются коэффициента ми Фурье, определяемыми приводимыми несколько позднее интегральными выражениями
Приведенный ряд содержит бесконечное число членов и при таком пред ставлении оказывается бесполезным, поскольку время вычисления в этом случае также равно бесконечности К счастью, амплитуды гармоник для ре альных зависимостей y (t) довольно быстро уменьшаются по мере роста номеpa гармоники k. Поэтому на практике обычно приходится иметь дело с ограниченными по числу гармоник рядами Фурье.
Помимо упомянутой формы ряд Фурье можно представить в виде:

где амплитуда гармоник М^ и их фаза (р^ определяются выражениями:

Преимущество ряда в этой форме в том, что для вычисления каждого члена ряда нужно лишь один раз обращаться к довольно медленному вычислению тригонометрической функции. В дальнейшем будут приведены формулы, позволяющие вычислять коэффициенты Фурье (либо амплитуды и фазы гармоник) для любой функции y (t). Это является задачей спектрального анализа. Здесь же мы рассмотрим обратную задачу — синтеза зависимости y (t) путем вычисления ряда Фурье с ограниченным числом членов.
Теория спектрального анализа и синтеза хорошо развита, и для многих зависимостей y (t) заведомо известны значения коэффициентов Фурье или законы изменения (с частотой или номером гармоники) амплитуд и фаз гармоник. Это позволяет синтезировать наиболее распространенные зависимости y (t).

Гармонический синтез меандра
Рис. 14. 18 Гармонический синтез меандраДокумент, представленный на рис. 14. 18, реализует синтез периодических прямоугольных импульсов со скважностью, равной 2 (меандра). Ряд Фурье для таких импульсов содержит только синусные члены, причем лишь с нечетными k. Это упрощает синтез, который в документе реализован для 3, 7 и 15 гармоник.
Меандр — не самая удачная для синтеза зависимость, поскольку он содержит резкие скачки. Для не очень сведущего в математике пользователя
удивительно, что такого рода зависимость вообще синтезируется из синусоид, которые представляют собою гладкие функции без всяких скачков Естественно, что для получения скачков нужно брать очень большое число гармоник Тем не менее уже при 15 гармониках синтезированный сигнал напоминает меандр и отличается от него конечным временем перепада и характерной волнистостью Она усиливается после быстрых перепадов и является проявлением так называемого эффекта Гиббса [30].
Эффект Гиббса, к сожалению, невозможно устранить (и даже ослабить) лишь увеличением числа гармоник при синтезе В этом случае просто возрастает частота волнообразных колебаний, но их относительная амплитуда меняется незначительно — она доходит до 18% от амплитуды синтезируемых колебаний.
Эффект Гиббса — явление крайне нежелательное Он фактически вводит в синтезируемые колебания новые компоненты, на деле отсутствующие Это может замаскировать или сильно исказить компоненты колебания, которые интересуют исследователя. Поэтому обычно стремятся ослабить эффект Гиббса, даже за счет уменьшения точности синтеза В дальнейшем будут обстоятельно рассмотрены приемы ослабления этого эффекта
Гармонический синтез пилообразных колебаний
Гармонический синтез пилообразных колебанийВ литературе можно найти множество примеров разложения в ряд Фурье самых разнообразных зависимостей y (t) Используя приведенные для них значения коэффициентов Фурье, можно синтезировать самые разнообразные за висимости (сигналы) Еще одним примером может служить показанный на рис. 14 19 гармонический синтез треугольных колебаний

Гармонический синтез треугольных колебаний
Рис. 14. 19 Гармонический синтез треугольных колебанийМожет возникнуть вполне закономерный вопрос зачем столь сложным способом синтезировать такие простые зависимости, если они легко описываются целиком или по частям с помощью простых аналитических выражений? Действительно, если нужно просто смоделировать сигнал как временную функцию, нет необходимости синтезировать его по множеству гармоник
Однако существует большое количество теоретических методов анализа сигналов и практических устройств, основанных именно на спектральном подходе. Примером могут служить частотные фильтры и даже целые радиотехнические системы. При их анализе сигнал y (t) часто приходится разлагать в ряд Фурье для проведения в дальнейшем операций с гармониками. Имея сигнал y (t) уже в виде гармоник, можно заметно сократить время обработки сигнала и вообще убрать этап задания функции в виде временной зависимости. Во многих странах до сих пор выпускаются синтезаторы сложных колебаний, основанные на суммировании их гармонических составляющих с разными амплитудой и фазой.
График функции Розенброка (окончание документа, представленного на рис. 14. 12)
Рис. 14. 13 График функции Розенброка (окончание документа, представленного на рис. 14. 12)Поиск задается вычислительным блоком, открываемым словом Given. Фактически решается система уравнений. Два уравнения после слова Given приближенно задают условия минимума, третье уравнение (с функцией minегг) отыскивает решение, в максимальной степени удовлетворяющее заданным условиям минимума.
Функция Розенброка имеет очевидные значения х=у=\ в точке минимума. Графическое представление функции напоминает овраг (см. рис. 14. 13), что затрудняет поиск минимума рядом простых методов.
Следует отметить, что тут заведомо известно, что функция имеет минимум. Если бы этого не было, пришлось бы ввести условия на значения вторых производных функции по каждой переменной.
Интегрирование таблично заданных функций
Интегрирование таблично заданных функцийЧасто возникает необходимость в вычислении определенного интеграла для таблично заданной функции. Тогда прямое применение встроенного в систему оператора вычисления интеграла оказывается невозможным, так как он предполагает задание подынтегральной функции в аналитическом виде.
Документ на рис. 14. 11 иллюстрирует три способа вычисления определенного интеграла при табличном задании подынтегральной функции. Первые два способа (методом трапеций и Симпсона) используют довольно хорошо известные формулы интегрирования табличных данных. Третий способ использует встроенный оператор вычисления интеграла. При этом таблично заданная функция интерполируется линейной зависимостью или набором сплайновых функций (полиномов третьей степени).

Интегрирование табличных данных
Рис. 14. 11 Интегрирование табличных данныхВ качестве исходных данных взяты ординаты квадратичной параболы, что позволяет вычислить интеграл без этих ухищрений. Такое вычисление представлено для контроля в конце документа. Нетрудно заметить, что лишь интегрирование методом Симпсона и интегрирование со сплайн-интерполяцией дают полное совпадение с прямым интегрированием (не стоит забывать, что установленный формат цифровых данных выводит результат только с шестью значащими цифрами после десятичной точки).
Интерполяция по общей формуле Лагранжа
Интерполяция по общей формуле ЛагранжаВ этом пакете рассматриваются функции одной переменной вида у (х), как правило, заданные в табличном виде, т. е. рядом значений х и соответствующих им значений у. Именно так обычно задаются данные эксперимента, получаемые на различных физических или электронных измерительных установках.
Важной задачей математической обработки подобных данных является и их представление в виде некоторой математической зависимости, допускающей проведение над нею обычных математических операций, например вычисление у (х) при х, не совпадающих с исходными (узловыми) точками, интегрирование или дифференцирование функций, проведение их статистической обработки (сглаживания или фильтрации) и т. д.
Одной из самых распространенных задач такого рода является ингерпо-ляция таблично заданных функций, т. е. вычисление их значений в промежутках между узловыми точками. В математической литературе общепринято представление многих специальных функций в виде математических таблиц [14], ориентированных на интерполяцию по заданному числу узловых точек (обычно от 2 до 6).
В систему MathCAD встроены функции линейной и сплайн-интерполяции, при которых отдельно на каждом промежутке функция представляется отрезком прямой или кубическим многочленом. Последний вычисляется так, чтобы обеспечить стыковку в узловых точках как значений функции, так и ее первых двух производных (что и дает необходимую гладкость графика функции).
Эти мощные средства интерполяции имеют, однако, существенный недостаток: параметры интерполирующей функции различны на различных участках интерполяции. Другими словами, такая интерполяция не может быть сведена к одной интерполирующей формуле, что затрудняет интерполяцию математических таблиц, за исключением линейной интерполяции, дающей довольно низкую точность.
На рис. 14. 14 представлен документ, задающий обобщенную формулу интерполяции методом Лагранжа. Эта формула синтезирует полином Лагранжа, используя два вектора: с координатами xi и yi узловых точек. Преимущества такого подхода в том, что число узловых точек и их расположение может быть любым (в том числе неравномерным), а для интерполяции используется единая интерполирующая формула f (x), к сожалению, довольно сложная.
При интерполяции полиномом Лагранжа степень полинома п однозначно связана с числом узловых точек. Она на единицу меньше этого числа Значения ординат интерполирующей функции в узловых точках совпадают со зна-
Интерполяция табличных данных по формуле Лагранжа
Рис. 14. 14 Интерполяция табличных данных по формуле Лагранжа
чениями ординат узловых точек, поэтому график интерполирующей функции f (x) точно проходит через эти точки. К сожалению, при высокой степени полинома (более 5—6) погрешность вычислений его значений заметно возрастает, поэтому выбор п выше 6 на практике нецелесообразен. А это означает, что функция у (х) должна быть представлена небольшим числом достаточно точных значений.
К недостаткам интерполяции по обобщенной формуле Лагранжа относится и довольно большое время вычислений, поскольку формула интерполяции далеко не проста.
Конец документа, иллюстрирующего решение дифференциального уравнения методом Рунге Кутта
Рис. 14. 17 Конец документа, иллюстрирующего решение дифференциального уравнения методом Рунге Кутта
Рассматривая рис 14 17, нетрудно сделать вывод о наглядности реализа ции метода Рунге — Кутта По существу приведенные уравнения повторяют известные формулы этого метода часто встречающиеся в учебной литературе по численным методам решения дифференциальных уравнений
Линейное сглаживание по пяти точкам
Линейное сглаживание по пяти точкамОдин из полезных видов статистической обработки функции у (х), заданной п точками, заключается в статистической обработке каждой точки с учетом положения нескольких ближайших точек. Например, простейший способ такой обработки усредняет значения этой точки и нескольких других, окружающих ее слева и справа. В результате будет получен вектор ys сглаженных значений у (х). Некоторую проблему представляет вычисление сглаженных значений точек, примыкающих к концевым, но можно вывести формулы сглаживания и для этих точек.
MathCAD 7 О PRO имеет встроенную функцию сглаживания Однако полезно проверить работу известных алгоритмов сглаживания по ряду точек. Так, линейное сглаживание по пяти точкам демонстрируег документ, показанный на рис. 14. 15. На нем вначале задан вектор параболической зависимости, на которую наложены сильные случайные компоненты, создаваемые генератором случайных чисел. Далее заданы пять формул сглаживания: по две для крайних двух точек слева и справа и одна для других (эта формула просто находит среднее значение для центральной точки и окружающих ее четырех ближайших точек). Фактически кривая сглаживания состоит из ряда отрезков прямых линий, откуда и название — линейное сглаживание.
На приведенном рисунке видно, что сглаженная кривая проходит внутри облака точек и неплохо вписывается в него. При этом число сглаженных точек равно числу исходных точек (в нашем случае их 50) Разумеется, при таком большом числе сглаженных точек эффективность сглаживания оказывается заметно ниже, чем, например, при проведении регрессии с большим числом исходных точек

Линейное сглаживание по пяти точкам
Рис. 14. 15 Линейное сглаживание по пяти точкамМожно повысить эффективность сглаживания, увеличивая число точек, используемых для статистической обработки заданной точки, и перейдя к кривой сглаживания в виде отрезка полинома более высокой степени, чем 1 Так, известны формулы нелинейного сглаживания по семи точкам [1, 2, 28] Этих формул семь по три для крайних точек и одна для остальных Для нели нейных зависимостей, близких к параболическим или содержащих отрезки парабол, нелинейное сглаживание гораздо более эффективно, чем линейное Тем не менее и здесь гладкость кривой сглаживания невелика
Единого мнения о целесообразности повторения процедуры сглаживания у математиков нет Одни считают, что повторное сглаживание делает кривую сглаживания более плавной Другие не рекомендуют применение повторного сглаживания В целом сглаживание — эффективный инструмент предварительной обработки исходных данных Затем можно использовать более тонкие методы их обработки, например фильтрацию на основе спектрального анализа и синтеза, полиномиальную регрессию с применением полинома определенного порядка и т д
Моделирование генератора гармонических колебаний на туннельном диоде
Моделирование генератора гармонических колебаний на туннельном диодеПусть туннельный диод подключен к источнику постоянного напряжения Е через последовательно соединенные резистор R и индуктор L. Пусть далее R и Е выбраны так, что рабочая точка туннельного диода находится на падающем участке N-образной ВАХ туннельного диода. Это обстоятельство принципиально важно, поскольку дифференциальная малосигнальная проводимость туннельного диода тогда является отрицательной. Физически это означает, что туннельный диод отдает энергию во внешнюю цепь.
Если учесть емкость С туннельного диода (совместно с емкостью монтажа и нагрузочной емкостью), такая схема будет описываться следующей системой нелинейных дифференциальных уравнений [6, 8]:

Нелинейность этой системы обусловлена тем, что во втором уравнении ток туннельного диода 1 (и) нелинейно зависит от напряжения на нем и емкости С. Зависимость 1 (и) есть N-образная вольт-амперная характеристика туннельного диода.
Документ на рис. 14. 44 позволяет рассчитать переходные процессы при включении рассмотренной схемы таблично заданной JV-образной ВАХ туннельного диода. Она задается своими табличными значениями — элементами векторов U и I. N-образная ВАХ получается сплайн-интерполяцией с кубической экстраполяцией Решение системы дифференциальных уравнений обеспечивается методом Эйлера

Моделирование генератора на туннельном диоде (конец документа)
Рис. 14. 45 Моделирование генератора на туннельном диоде (конец документа)
Следует отметить, что область применения описанного документа неизмеримо шире, чем моделирование конкретной схемы генератора на туннельном диоде Практически с его помощью можно моделировать основную цепь на любом приборе с N- или N-образной ВАХ (например, индуктивный релак сатор на лавинном транзисторе, генераторы на N- и Л-диодах и транзисторах, их аналогах и т д) Достаточно лишь задать данные их ВАХ и соответствующие исходные данные
Стоит, к примеру, уменьшить емкость С в два-три раза, а индуктивность увеличить, как генератор перейдет в режим генерации релаксационных коле баний Этот случай показан на рис 14 46
Теперь возникают более резкие колебания, фазовый портрет начинается сразу с предельного цикла, форма которого принципиально отличается от эллиптической Соответственно, сильно отличаются от гармонической и форма напряжения на туннельном диоде, и форма тока, текущего через резистор R Колебания при этом относятся к типу релаксационных и возникают сами по себе, без какого-либо внешнего воздействия Практически после первого цикла колебаний устанавливается их стационарный режим
Еще более интересные результаты можно получить, используя импульсное питание цепи на туннельном диоде Тут напряжение питания можно задать зависимостью ei (t) в виде прямоугольно! о импульса, наложенного на постоянное напряжение — пьедестал. Напряжение выбирается так, что рабочая точка попадает на первую восходящую ветвь N-образной ВАХ и оказывается стабильной. При этом цепь устойчива и колебания не генерируются. При появлении импульса рабочая точка попадает на падающий участок и развивается процесс генерации одного полного цикла колебаний. Цепь, таким образом, выполняет функции ждущего релаксационного генератора. Читатель может самостоятельно изменить документ для реализации этого режима работы.

Моделирование генератора на туннельном диоде (начало документа)
Рис. 14. 44 Моделирование генератора на туннельном диоде (начало документа)Результаты моделирования (см рис 14 45) в этом документе представлены в двух формах Первая имеет вид фазового портрета — положение каждой точки решения отмечается на графике в плоскости ВАХ Для чисто гармонических колебаний предельный цикл колебаний на фазовой плоскости должен иметь форму эллипса Его отличие от эллипса небольшое, что, с одной стороны, говорит о заметном влиянии нелинейности, а с другой — о почти гармоническом характере колебаний Вторая форма — временные зависимости напряжения на туннельном диоде и тока в цепи резистора R Эти зависимости близки к гармоническим
Моделирование падения парашютиста (начало документа)
Рис. 14. 38 Моделирование падения парашютиста (начало документа)
дифференциальных уравнений и требует учета сопротивления воздушной среды до и после открытия парашюта. В документе на рис. 14. 38 показано выполнение этого моделирования с применением конечно-разностного метода решения.

Начало документа, иллюстрирующего решение дифференциального уравнения методом Рунге — Кутта
Рис. 14. 16 Начало документа, иллюстрирующего решение дифференциального уравнения методом Рунге — КуттаДокумент на рис. 14. 16 состоит из двух частей. Первая часть (она и показана на рисунке) содержит ввод исходных данных и вывод графика решения. Для решения надо задать функцию f (x, y), начальное (startx) и конечное (endx) значения х, число точек решения п и начальное значение (inity) переменной у. При построении графика функции указываются нижний (L) и верхний (U) пределы изменения искомой зависимости у (х).
Вторая часть документа (см. рис. 14. 17) в действительности располагается справа от первой части и размещается в обычно невидимой части документа Поэтому пользователь избавлен от созерцания тривиальных или просто не интересующих его математических формул и может сосредоточить внимание лишь на вводе исходных данных и функции f (x, y) и выводе результатов
Общие замечания
14. 1. Общие замечанияВ этой главе описаны наиболее интересные примеры из десяти пакетов при менений систем MathCAD, размещенных на дискете, прилагаемой к книге [б]. Примеры охватывают решения широкого круга практических задач в об ласти математики, физики, электро- и радиотехники, электроники [20-39].
В педагогической среде нередко звучат нарекания, что в системах Math CAD скрыты методы реализации численных расчетов и потому последние не наглядны. Такие нарекания абсурдны, поскольку именно MathCAD позволя ет описать алгоритм любого численного метода на естественном математичес ком языке, не прибегая к таким (скорее программистским, чем математичес ким) понятиям, как условные переходы, циклы и т. д. (хотя реализация алгоритмов с ними также возможна с помощью аппарата ранжированных пе ременных, не говоря уже о применении программных блоков).
При подготовке описанных здесь примеров определенное внимание уде лялось реализации численных методов типовыми возможностями системы MathCAD, причем даже тех методов, которые реализованы встроенными функциями систем. Это, во-первых, демонстрирует возможности системы MathCAD в наглядной реализации таких методов, во-вторых, позволяет ре шать относящиеся к ним задачи с использованием тех версий системы, у ко торых соответствующих функций нет, а в-третьих, дает заметное ускорение вычислении.
Разбор описанных примеров позволит читателю существенно углубить свои знания о возможностях систем класса MathCAD и полнее использовать их в своей учебе, на практике и в научном творчестве, а также заметно умень шить затраты времени на освоение системы, поскольку избавит вас от необхо димости самостоятельно придумывать учебные примеры.
Операции с начальным и регулярными ежегодными вкладами
Рис. 14. 9 Операции с начальным и регулярными ежегодными вкладами
Падение парашютиста \
Падение парашютиста \Рассмотрим существенно более сложный случай динамического движения:
на высоте уО из самолета выпрыгивает парашютист и в свободном полете падает вниз. Спустя пять секунд он дергает кольцо и испытывает заметные перегрузки из-за раскрытия парашюта и резкого снижения скорости падения. Моделирование падения основывается на решении нелинейной системы
Параметрическая трехмерная графика
14. 2. Параметрическая трехмерная графикаПри построении трехмерных поверхностей и объемных фигур можно использовать параметрическое задание описывающих их функций. Фигуры задаются значениями координат х, у и z всех точек фигуры. При этом в шаблоне 3D-графики указываются три матрицы, хранящие массивы этих координат, — X, Y и Z. Ниже представлены интересные примеры применения такой графики.
Поиск минимума функции Розенброка
Поиск минимума функции РозенброкаС помощью функции minerr возможен поиск экстремума и функций ряда переменных. Типичной тестовой функцией двух переменных является функция Розенброка, обычно применяемая для тестирования программ минимизации функций ряда переменных. На рис. 14. 12 показан поиск минимума функции Розенброка с применением функции minerr.
Поиск минимума тестовой функции Розенброка
Рис. 14. 12 Поиск минимума тестовой функции Розенброка

Построение АЧХ и ФЧХ линейной системы по ее операторной характеристике (начало документа)
Рис. 14. 40 Построение АЧХ и ФЧХ линейной системы по ее операторной характеристике (начало документа)В этом документе представлено также построение по операторной функции передаточной характеристики системы. Для каждого значения времени t эта характеристика определяется интегралом с бесконечным пределом интегрирования:

На рис. 14, 41 показано построение переходной характеристики.
Построение фигуры — узлов, образованных толстыми "канатами" (начало документа)
Рис. 14. 5 Построение фигуры — узлов, образованных толстыми "канатами" (начало документа)Сама фигура, построенная по алгоритму, представленному на рис 145, изображена на рис 146

Построение фигуры вращением линии вокруг осиХ
Рис. 14. 2 Построение фигуры вращением линии вокруг осиХ
Построение фигуры вращением линии вокруг оси Х
Построение фигуры вращением линии вокруг оси ХИнтересные объемные фигуры можно получить, вращая некоторую кривую вокруг той или иной оси. При этом необходимо обеспечить пересчет координат всех узловых точек фигуры по известным из геометрии формулам. На рис. 14. 2 показано построение такой фигуры вращением линии, заданной функцией f (x), вокруг оси X.
В документе на рис. 14. 2 приведены все необходимые формулы для пересчета координат узловых точек фигуры при ее вращении. Даны также графики исходной кривой (слева внизу) и фигуры, полученной ее вращением (справа внизу). Фигура напоминает опрокинутую рюмку, лежащую на плоскости. Она построена без применения функциональной окраски, но с использованием алгоритма удаления невидимых линий.
Построение фигуры вращением линии вокруг оси Y
Построение фигуры вращением линии вокруг оси YТаким же способом можно построить фигуру, полученную вращением исходной кривой вокруг оси Y. Это демонстрирует документ, показанный на рис. 14. 3.
Чтобы показать возможности задания различного стиля рисунков, в нашем случае фигура построена с удалением невидимых линий каркаса и с при-

Построение фигуры вращением линии вокруг оси Y
Рис. 14. 3 Построение фигуры вращением линии вокруг оси Yменением функциональной окраски. Нетрудно заметить, что это делает фигуру очень наглядной.
Построение графика объемной спирали
Построение графика объемной спирали3D Scatter Plot — вид трехмерных графиков, особенно удобный для представления пространственного расположения множества мелких объектов, условно называемых точками. На рис. 14. 4 показано применение этого графика для построения 100 точек, лежащих на пространственной спирали, напоминающей растянутую пружину.
Для каждой точки в этом случае необходимо располагать тремя координатами — X, Y и Z. Их совокупность образует три одноименных вектора. Вви-

Построение графика вида 3D Scatter Plot для точек пространственной спирали
Рис. 14. 4 Построение графика вида 3D Scatter Plot для точек пространственной спиралиду простоты алгоритма построения необходимости в более подробном его описании нет. Заметим лишь, что число точек N можно менять.
Построение переходной характеристики (конец документа, представленного на рис. 14. 40)
Рис. 14. 41 Построение переходной характеристики (конец документа, представленного на рис. 14. 40)
К счастью, у всех реальных систем АЧХ на высоких частотах имеет спад и при больших w>wmax принимает близкие к нулю значения. В нашем примере это происходит уже при w>5, что позволяет заменить бесконечный предел интегрирования на конечный.
Вычисление h (t) в документе на рис. 14. 42 выполнено по этому алгоритму. Число 0. 637 перед знаком интеграла есть значение 2/тс. Рядом с графиком h (t) выведена таблица времен t и значений h (t). Анализируемая цепь является цепью 2-го порядка и имеет соответствующие признаки заметно демпфированной цепи 2-го порядка — характерный подъем АЧХ на некоторой частоте и переходную характеристику с небольшим выбросом.
Построение пространственной фигуры — узлов, образованных толстыми "канатами"
Построение пространственной фигуры — узлов, образованных толстыми "канатами"О больших возможностях графики MathCAD PLUS 7. 0 PRO свидетельствует пример, приведенный на рис. 14. 5. Он же иллюстрирует применение типовых матричных функций для описания и пространственного преобразования сложной трехмерной фигуры — узлов, образованных толстыми "канатами".

Построение сферы
Построение сферыНа рис. 14. 1 показано построение в трехмерном пространстве сферы. Сфера строится из каркаса, причем число деления ее по вертикали N задается в начале построения. Затем вычисляются массивы опорных точек каркаса, которые представлены матрицами X, Y и Z.

Построение сферы
Рис. 14. 1 Построение сферыИспользуя различные форматы 3D-графиков, можно выполнить рисунок сферы в различных стилях, в том числе с цветной или черно-белой окраской. Однако в таком случае каркасное построение с применением алгоритма удаления невидимых линий дает, пожалуй, наиболее наглядное представление о характере этой простой объемной фигуры. На рис. 14. 1 представлено два варианта построения сферы с применением различной функциональной окраски.
Параметрическое задание трехмерной поверхности позволяет эффективно применять форматирование их графиков, в частности задавая углы обзора 3D-фигур и меняя их функциональную окраску. К тому же визуализацию таких фигур можно существенно улучшить.
Потеря автомобилем энергии при торможении
Потеря автомобилем энергии при торможенииУслышав визг тормозов автомобиля, мы с ужасом следим, сумеет ли он сбросить скорость и не настигнет ли нас до того, как мы успеем отскочить Полезно (скорее шоферу, чем нам) знать, как быстро автомобиль теряет энергию при торможении Решение этой задачи для автомобиля с дисковым тормозным устройством представлено на рис 14 35

Преодоление самолетом звукового барьера
Преодоление самолетом звукового барьераБольшинство из нас слышали в ясную погоду звуки, напоминающие гром. Почти наверняка это были либо отзвуки дальней грозы, либо грохот, создаваемый самолетом при преодолении звукового барьера. В физике известна функция М (и, h), определяющая так называемое число Маха, зависящее от скорости самолета и и высоты полета h [32]. В момент преодоления звукового барьера значение М (и, h) становится равным 1. Скорость, на которой преодолевается этот барьер, падает с увеличением высоты полета.
Документ на рис. 14. 33 содержит определение функции М (и, h). На верхнем графике показаны зависимости М (и, h) от и для четырех значений h, а также уровень единицы. Звуковой барьер преодолевается в момент, когда соответствующая зависимости М (и, h) кривая пересекает уровень единицы.
Примеры расчетов с единичными вкладами и сложными процентами
Рис. 14. 7 Примеры расчетов с единичными вкладами и сложными процентами
Примеры расчетов с регулярными вкладами
Рис. 14. 8 Примеры расчетов с регулярными вкладамиПри таких операциях, разумеется, не имеет значения, какие деньги вы вкладываете (рубли, марки или доллары). Главное, чтобы это были какие-то одни денежные единицы
Пример генерации релаксационных колебаний
Рис. 14. 46 Пример генерации релаксационных колебанийПриведенные выше примеры наглядно показывают, что даже незначительное изменение параметров одной и той же цепи на туннельном диоде способно резко (и даже качественно) изменить режимы ее работы. При этом цепь может выполнять практически любую функцию электронного устройства: нелинейного преобразователя, усилителя и генератора гармонических колебаний, автоколебательного и ждущего релаксатора и триггера.
Расчет движения снаряда
Расчет движения снарядаПусть спортсмен мечет снаряд (например, диск или ядро) с некоторой начальной скоростью VO и под углом Q к горизонту. По какой траектории происходит полет снаряда, если пренебречь сопротивлением воздуха? Ответ общеизвестен — по параболической Однако мы попытаемся ответить на этот вопрос моделированием движения, решая систему описывающих его дифференциальных уравнений численным методом Эйлера Этот подход иллюстрирует документ на рис. 14. 37.
Расчет отклика системы на воздействие, заданное таблично
Расчет отклика системы на воздействие, заданное табличноРасчет отклика линейной системы с произвольной формой переходной характеристики на произвольно заданное входное воздействие — задача достаточно сложная. Ее решение облегчается, если передаточная характеристика и входное воздействие заданы в табличном виде, т. е. в виде ряда значений a (t) и u (t) для фиксированных моментов времени t на отрезке Т. Наличие в системе MathCAD эффективного аппарата сплайн-интерполяции табличных данных позволяет с блеском решить такую задачу.
Документ на рис. 14. 42 иллюстрирует сказанное. Векторы А и U в нем задают узловые точки зависимостей a (t) и u (t) на отрезке времени Т. Эти векторы должны быть одинаковой длины, а их элементы должны относиться к соответствующим одинаковым моментам времени. Далее проводится сплайн-интерполяция (с линейной экстраполяцией) зависимостей aft) и u(t), что позволяет получить эти зависимости в непрерывном виде и использовать в интеграле свертки для вычисления реакции y (t).
Расчет потери энергии тормозящим автомобилем (конец документа)
Рис. 14. 36 Расчет потери энергии тормозящим автомобилем (конец документа)Процесс потери энергии в общем случае связан с решением нелинейного дифференциального уравнения. Физики любят использовать для такого решения простые конечно-разностные методы, при которых решение выражается рекуррентной формулой. Фактически эти методы соответствуют решению простым методом Эйлера. Результаты решения представлены на рис. 14. 36.
Важно отметить, что в данном расчете используются размерные величины (энергия определяется в джоулях). Для расчетов с размерными величинами в состав MathCAD входят файлы, содержащие глобальные определения этих величин. В конце документа (на рис 14. 36) показан пример использования такого файла. В нем содержится определение многих размерных величин, относящихся к физике (их больше, чем это нужно для нашего конкретного примера).
Расчет потери энергии тормозящим автомобилем (начало документа)
Рис. 14. 35 Расчет потери энергии тормозящим автомобилем (начало документа)
Расчет реакции системы на заданное воздействие (конец документа)
Рис. 14. 43 Расчет реакции системы на заданное воздействие (конец документа)
Расчет реакции системы на заданное воздействие Сначапо документа)
Рис. 14. 42 Расчет реакции системы на заданное воздействие Сначапо документа)
Табличное задание u (t) облегчает вычисление производной i/(t) в численном виде, что, в свою очередь, ускоряет вычисления. Обратите внимание, что здесь и' — имя функции пользователя, вычисляющей значение производной численным методом. В конце документа (см рис. 14. 43) построены графические зависимости aft), u (t) и y (t).
Расчет скорости преодоления самолетом звукового барьера (конец документа)
Рис. 14. 34 Расчет скорости преодоления самолетом звукового барьера (конец документа)Более полезно не просто знать саму по себе зависимость М (и, h), а из условия М (и, h) =i получить зависимость скорости преодоления звукового барьера u (h) от высоты h. Для этого можно воспользоваться функцией поиска корня указанного условия. Это также сделано в конце документа (см. рис. 14. 34).
Этот пример дает наглядное представление о решении простых физичес ких задач, базирующихся на уравнениях теоретической физики, и демонстриру ет возможность находить с помощью MathCAD корень нелинейных уравнений
Расчет скорости преодоления самолетом звукового барьера (начало документа)
Рис. 14. 33 Расчет скорости преодоления самолетом звукового барьера (начало документа)

Расчет траектории и угла наклона летящего снаряда
Рис. 14. 37 Расчет траектории и угла наклона летящего снаряда
Обратите внимание, что операции (как это принято в физических расче тах) происходят с размерными величинами. В результате моделирования получены траектория движения снаряда (зависимость высоты от расстояния по горизонтали), а также зависимость угла наклона траектории от расстояния по горизонтали. Как и следовало ожидать, траектория полета снаряда оказалась параболической.
Реализация цифровой фильтрации (конец документа)
Рис. 14. 30 Реализация цифровой фильтрации (конец документа)Заметим, что в данном примере речь идет не о фильтрации сигнала на фоне шумов, а о прохождении сложного составного сигнала через цифровые фильтры. Графики в конце документа иллюстрируют характер искажений сигнала при этом.
Реализация цифровой фильтрации (начало документа)
Рис. 14. 29 Реализация цифровой фильтрации (начало документа)
Решение дифференциального уравнения первого порядка методом Рунге — Кутта
Решение дифференциального уравнения первого порядка методом Рунге — КуттаРешение дифференциальных уравнений широко применяется в практике научно-технических расчетов Это связано с тем, что дифференциальные уравнения (и системы из них) описывают поведение различных объектов в динамике, например переходные процессы в электронных схемах или работу часового маятника Линейные дифференциальные уравнения имеют решения в виде специальных функций (скажем, функций Бесселя) Однако многие физические системы нелинейны и описываются нелинейными дифференциальными уравнениями, не имеющими аналитического решения. В этом случае приходится использовать численные методы решения дифференциальных уравнений.
Версия MathCAD 7. 0 PRO содержит мощные средства для реализации численных методов решения дифференциальных уравнений. Поэтому может возникнуть вопрос: а нужно ли создавать свои документы для реализации таких методов? Ответ на него не однозначен. Если ваша цель — решение конкретной задачи, то проще воспользоваться готовыми функциями MathCAD. Они были описаны выше. Однако нередко педагоги и специалисты без должных оснований говорят о трудности реализации в системе MathCAD обычных численных методов. Это неверно! Реализация таких методов в системе MathCAD легка и наглядна. Более того, она позволяет вмешиваться в алгоритмическую реализацию методов решения, что способствует созданию новых или улучшенных методов решения дифференциальных уравнений, ориентированных на решение интересующих пользователя задач.
Здесь мы остановимся на реализации решения дифференциального уравнения i/=f (x, y) хорошо известным методом Рунге — Кутта. Пусть h — шаг приращения переменной х, i — индекс, имеющий значения от 1 до N (N — число интервалов решения с шагом h). Метод Рунге — Кутта четвертого порядка дает погрешность решения порядка h (4, что удовлетворяет самым при-щрчивым требованиям к точности численных методов. Он неоднократно подробно описывался в [6, 8, 14]. Его реализация показана на рис. 14. 16.

Синтез исходного сигнала по результатам...
Рис. 14. 24 Синтез исходного сигнала по результатам вычисления его спектра (конец документа, приведенного на рис. 14. 23)Если умножить значение амплитуды каждой k-й. гармоники на множитель sin ( (k/N)/((k/N), это будет фактически означать переход от формул интегрирования методом прямоугольников к формулам интегрирования методом трапеций — с применением линейной интерполяции y (t). Само по себе это, как отмечалось выше, не является основанием к существенному повышению точности вычислений. Однако такой подход дает заметное ослабление эффекта Гиббса. Рекомендуем читателю проверить это самостоятельно.
Хотя коррекция предполагает, что в формулах интегрирования применяется линейная или квадратичная интерполяция между узлами, по-прежнему используются и дискретные отсчеты, соответствующие исходному вектору Yi. Поэтому максимальное число гармоник, как и ранее, не может превосходить N/2.
Спектральный анализ и синтез с прямой линейной интерполяцией функции между узлами
Спектральный анализ и синтез с прямой линейной интерполяцией функции между узламиВместо того чтобы вводить корректирующие множители, имитирующие интерполяцию функции y (t) между узлами, можно прямо ввести такую интерполяцию. Тогда появляется возможность задавать произвольное число отсчетов y (t) по интерполируемой функции и получить сколь угодно большое число гармоник для ее синтеза. Впрочем, надо помнить, что интерполируемая функция идеально точно совпадает с исходной только тогда, когда число отсчетов равно числу узлов.
В других случаях отсчеты берутся с несколько иной функции, но на практике весьма близкой к исходной. Несмотря на эти оговорки, такой прием дает блестящие результаты: при достаточно большом числе выбранных для синтеза гармоник синтезируемая функция повторяет исходную, а эффект Гиббса исчезает почти полностью.
На рис. 14. 25 показана реализация этого метода. За счет отказа от умножения на 0.

Спектральный анализ методом Берга
Спектральный анализ методом БергаДля некоторых простых зависимостей y (t) амплитуды гармоник могут выражаться аналитически. Примером служат отрезки синусоиды, получаемые выделением только верхней ее части. На практике такие колебания широко используются в радиотехнике, где обрезание нижней части синусоиды обусловлено работой электронных приборов (например, ламп или транзисторов) в нелинейном режиме.
Доля периода синусоиды, используемой для анализа гармоник, оценивается углом отсечки 9 (далее он измеряется в радианах). Он, к примеру, равен к, если обрезается нижняя половина синусоиды. Удобно вычислять относительную амплитуду k-тл гармоники (по отношению к усеченной амплитуде синусоидального импульса). Этот параметр для разных k впервые был вычислен Бергом.

Спектральный анализ методом Берга
Рис. 14. 20 Спектральный анализ методом БергаВ документе на рис. 14. 20 представлены формулы для вычисления коэффициентов Берга о. О (относительная постоянная составляющая сигнала), а. 1 (относительная амплитуда первой гармоники) и сот (относительная амплитуда п-й гармоники). Коэффициенты Берга являются функциями угла отсечки.
График в нижней части этого документа дает наглядное представление об изменении первых четырех коэффициентов Берга с изменением угла отсечки.
Нетрудно заметить существование максимумов у этих зависимостей. Например, максимальная амплитуда первой гармоники будет достигнута при угле отсечки 120 градусов, второй гармоники — 60 градусов и т. д. Знать эти углы полезно при проектировании умножителей частоты (например, удвоителей или устроителей), работа которых основана на фильтрации одной из высших гармоник.
Спектральный анализ прямоугольного импульса с применением БПФ
Спектральный анализ прямоугольного импульса с применением БПФВстроенные в систему MathCAD средства быстрого преобразования Фурье (БПФ) существенно упрощают процедуру приближенного спектрального анализа. БПФ — быстрый алгоритм переноса сведений о функции, заданной 2" отсчетами во временной области, в частотную область. Если речь идет о спектральном анализе функции y (t), ее нужно задавать действительными отсчетами и использовать функцию fft (V), где V — вектор, элементы которого хранят отсчеты функции y (t). Результатом будет также вектор А с комплексными элементами — отсчетами в частотной области (их вдвое меньше, чем отсчетов во временной области). Фактически действительная и мнимая части этого вектора есть коэффициенты Фурье а^ и Ъ^ что существенно упрощает их получение.
Документ на рис. 14. 21 поясняет проведение спектрального анализа с применением функции fft прямого БПФ. В начале документа (левый верхний угол) задан вектор с восемью единичными отсчетами и с остальными (всего их 32) — нулевыми. Затем вычислен вектор А — результат БПФ.
Спектральный анализ прямоугольного импульса с применением БПФ (конец документа)
Рис. 14. 22 Спектральный анализ прямоугольного импульса с применением БПФ (конец документа)Казалось бы, наличие встроенных средств широко рекламируемого БПФ должно означать ориентацию спектрального анализа на их применение. Но это не так. БПФ имеет ряд серьезных недостатков: неясный для пользователя алгоритм, отсутствие средств подавления эффекта Гиббса и строгая привязка числа отсчетов y (t) к величине 2n (т. е. 2, 4, 8, 16, 32 и т. д.). БПФ дает хорошие результаты, когда взаимное преобразование (прямое и обратное) происходит без ограничения употребляемого при нем количества гармоник. Эти недостатки могут оказаться весьма существенными при проведении спектрального анализа и синтеза, когда наглядность их реализации принципиально важна.
Спектральный анализ прямоугольного импульса с применением БПФ (начало документа)
Рис. 14. 21 Спектральный анализ прямоугольного импульса с применением БПФ (начало документа)
В заключение (см. рис. 14. 22) вычислены амплитуды гармоник и их фазы для представления импульса рядом Фурье. Завершает документ построение графиков амплитуд (модулей) и фаз первых десяти гармоник.
Чтобы лучше понять закономерности спектрального анализа, целесообразно провести его и для импульсов другой формы, например пилообразного импульса. Рекомендуем читателю проделать это самостоятельно.
Спектральный анализ с прямой линейной интерполяцией функции между узлами (начало документа)
Рис. 14. 25 Спектральный анализ с прямой линейной интерполяцией функции между узлами (начало документа)Как видно из конца этого документа (см рис 14 26), степень совпадения исходной и синтезируемой функций очень высока

Спектральный синтез на основании расчета спектра, показанного на рис. 14. 25 (конец документа)
Рис. 14. 26 Спектральный синтез на основании расчета спектра, показанного на рис. 14. 25 (конец документа)Во всех приведенных примерах использован достаточно сложный случай. импульс с маленькой полкой на линейном росте и резким спадом В реальной ситуации функция у ft) чаще всего является довольно плавной и эффект Гиббса проявляется гораздо в меньшей мере, чем в приведенном тестовом примере. Это говорит о том, что все описанные методы имеют право на жизнь
Стандартный спектральный анализ и синтез
Стандартный спектральный анализ и синтезРассмотрев некоторые частные аспекты спектрального анализа и синтеза, мы вплотную подошли к их классической реализации и методам ее улучшения. Прежде всего отметим, что MathCAD содержит средства, позволяющие провести спектральный анализ по классическому алгоритму, описанному в любом учебнике математики или в книгах по спектральному анализу.
К сожалению, классический метод спектрального анализа с вычислением коэффициентов Фурье численным интегрированием имеет ряд недостатков. Интегралы для коэффициентов Фурье вычисляются приближенно. Подынтегральные функции имеют быстро осциллирующие синусные и косинусные множители, что затрудняет интегрирование с малой заданной погрешностью. В итоге интегрирование идет довольно медленно, а точность вычислений оставляет желать лучшего. Эффект Гиббса не подавляется, поскольку его проявление связано с ограничением числа гармоник, которое имеет место при практической реализации данного алгоритма. Результаты анализа в значительной мере зависят от конкретной реализации интегрирования (к примеру, они различны у различных версий системы MathCAD). Время интегрирования достаточно значительное.
В основе так называемого стандартного спектрального анализа лежит вычисление интегралов, определяющих коэффициенты Фурье, простейшим численным методом прямоугольников Может показаться, что это большой шаг назад в сравнении с классическим методом. И уж тем более трудно поверить, что такой метод является единственным научно обоснованным методом вычисления этих коэффициентов [29, 30] Тем не менее это так. И понятно, почему. Если функция y (t) задана рядом дискретных отсчетов (вектор Yi), мы не имеем права предполагать, что какая-либо интерполяция значений y (t) между узлами имеет преимущество перед постоянством y (t). Строгий теоретический анализ показывает, что синтез у ft) по максимальному для данного числа отсчетов количеству гармоник при интегрировании методом прямоугольников дает наименьшую среднеквадратичную погрешность.
Документ на рис. 14. 23 показывает спектральный анализ и синтез стандартным методом (в варианте, описанном в [2]).

Стандартный спектральный анализ (начало документа)
Рис. 14. 23 Стандартный спектральный анализ (начало документа)Результаты синтеза (см. рис 14 24) показывают, что синтезированная кривая удачно описывает быстрые детали исходной зависимости Явно видно сильное проявление эффекта Гиббса. Впрочем, нередко можно подобрать оптимальное число гармоник (или длительность отдельных участков исходной функции), при котором эффект Гиббса становится малозаметным. Однако это не более чем частный случай. Увеличение числа используемых для синтеза гармоник свыше N/2, где N— число отсчетов функции, невозможно.
К достоинствам стандартного метода относится то, что его применение значительно ускоряет спектральный анализ. Это связано с тем, что интегрирование производится по простейшим формулам без использования алгоритмов и изменяющимся в его ходе шагом.
Итак, стандартные анализ и синтез применимы для любого числа отсчетов функции, но не свободны от сильного проявления эффекта Гиббса. Известен ряд методов ослабления или подавления этого эффекта [2] Отметим лишь самый простой способ — коррекция амплитуды гармоник с помощью корректирующего множителя, постепенно ослабляющего высшие гармоники спектра.

Вид фигуры (конец документа)
Рис. 14. 6 Вид фигуры (конец документа)Изменяя параметр К, можно получить множество других объемных фигур Функциональная окраска придает фигуре весьма реалистичный вид Этот пример наглядно показывает, что по возможностям графики система MathCAD 7 О PRO уже приближается к системе Mathematica 222, лидеру среди систем символьной математики для персональных компьютеров
Вычисление характеристик системы по ее операторной функции
Вычисление характеристик системы по ее операторной функцииЕсли схема описана операторной функцией, по ней можно вычислить важнейшие характеристики линейной системы. АЧХ, ФЧХ и переходную характеристику (т е. реакцию системы во времени на единичный скачок напряжения или тока на ее входе) Для вычисления АЧХ и ФЧХ достаточно заменить оператор p на величину iw, тогда модуль полученного выражения будет описывать АЧХ, а аргумент — ФЧХ
Построение АЧХ и ФЧХ для системы второго порядка, описанной операторной функцией, дано в документе на рис 14 40.

MathCAD 7.0
Доступ к совместной работе прямо из MathCAD 7. 0 PRO
15. 3. Доступ к совместной работе прямо из MathCAD 7. 0 PROПосле единовременной настройки на работу с Internet вы получаете постоянную возможность прямой работы над совместными проектами непосредственно из системы MathCAD. Все, что для этого нужно, — исполнить операцию Collaboratory в позиции File главного меню (см. рис. 15. 11).

Конец установки связи с удаленным компьютером через терминал
Рис. 15. 10 Конец установки связи с удаленным компьютером через терминал
Начало страницы Collaboratory
Рис. 15. 3 Начало страницы Collaboratoryпоказана на рис. 15. 3. Она поясняет правила совместной работы пользователей системы MathCAD 7. 0 над определенными тематическими проектами, при этом пользователи могут находиться в самых разных странах. Такой вид работы носит соревновательный характер и может не только существенно ускорить решение той или иной математической или физической задачи, но и привести к зарождению взаимно полезных связей между участниками совместных проектов, в том числе международных.
Дойдя до конца страницы, можно найти гипермедиа-ссылку, открывающую доступ к тематическому перечню совместных проектов (см. рис. 15. 4.) Этот перечень содержит такие темы, как математика, физика, химия, электричество, электроника и др. и фактически является перечнем имен папок, в которых хранятся файлы документов системы MathCAD. Ознакомившись с различными проектами, можно решить, в каких из них стоит принять участие или какой новый проект предложить для совместной разработки.

Начало установки связи с удаленным компьютером
Рис. 15. 9 Начало установки связи с удаленным компьютеромЕсли набор номера абонента прошел успешно, появляется темное окно терминала (см. рис. 15. 10). В этом окне надо повторить набор своего имени и пароля, нажимая в конце набора клавишу Enter. He исключено, что эту клавишу придется нажать два-три раза и для вывода сообщения о начале набора имени. Обратите внимание на то, что в ходе набора пароля вводимые символы не отображаются. Это сделано для того, чтобы находящиеся сзади вас люди не видели, какой пароль вы вводите.
Сама передача невидима, хотя при передаче больших по размерам файлов можно увидеть типичное окошко Windows 95, в котором бумажки, представляющие файлы, эффектно перелетают из одной корзинки в другую. Если сеанс связи состоялся, кричите "Эврика!", ведь это значит, что все ваше Internet-хозяйство (модем, телефонная линия, программное обеспечение) работает нормально и можно приступать к спокойной работе в Internet.
Начало вхождения в сеанс совместной работы над проектами
Рис. 15. 11 Начало вхождения в сеанс совместной работы над проектамиЕсли вы проделываете эту операцию при отключенном сеансе связи с удаленным компьютером (вашего провайдера), то придется повторить установку сеанса связи, описанную выше. После этого (или сразу, если вы приступаете к совместной работе с уже установленной связью с удаленным компьютером) открывается окно доступа к файлам совместных проектов, показанное на рис. 15. 12.
Настройка MathCAD 7. 0 PRO для работы с Internet
15. 2. Настройка MathCAD 7. 0 PRO для работы с InternetИтак, через браузер Internet можно получить доступ к страницам фирмы MathSoft с проектами задач для совместной работы. Однако разработчики системы MathCAD пошли намного дальше: они обеспечили доступ к таким проектам прямо из системы MathCAD 7. 0 PRO. Но прежде чем постоянно пользоваться этой возможностью, надо настроить систему на работу с Internet. Для этого служит операция Setup Internet в позиции File главного меню. При ее исполнении появляется окно установок, показанное на рис. 15. 6.
В этом окне вначале надо установить адрес электронной почты (Email) пользователя. Затем надо указать адрес сервера фирмы MathSoft и данные о типе сервера, а также номере порта, с которым он работает. Все необходимые данные показаны на рис. 15. 6. Кнопки внизу окна выполняют обычные функции: OK — фиксация установок, Cancel — отказ от установок и возврат к работе с документом, Help — получение справки по установкам.

Окно доступа к файлам совместных проектов
Рис. 15. 12 Окно доступа к файлам совместных проектов
Нетрудно заметить, что в этом окне в левой панели представлен перечень тем проектов, идентичный тому, что был показан на странице фирмы MathSoft. Выбрав нужный проект в нижней части окна, можно наблюдать появление всех данных о выбранном проекте (файле) с указанием полного Web-адреса разработчика проекта (см. рис. 15. 13).

Окно установки конфигурации
Рис. 15. 7 Окно установки конфигурацииОбычно серверы Internet относятся к типу HTTP. Однако возможна работа и с давно известными серверами типа FTP и GOPHER. Например, файловые серверы FTP удобны для перекачки больших файлов. Многие
Окно установок для работы с Internet
Рис. 15. 6 Окно установок для работы с Internetнажав клавишу ОК, можно перейти к установке конфигурации системы. Окно этой установки показано на рис. 15. 7. В этом окне можно задать тип конфигурации системы, т. е. выбрать, с каким конкретно программным обеспечением будет происходить работа в Internet (в нашем случае это приложение Outlook из пакета Microsoft Office).

Организация тестового сеанса связи по электронной почте
Рис. 15. 8 Организация тестового сеанса связи по электронной почте
программы для работы с такими серверами позволяют переписывать оставшуюся часть файла даже после прерывания связи с удаленным компьютером. Что греха таить — нередко случается, что связь прерывается в момент, когда уже затрачен не один десяток минут на перекачивание большого файла и до окончания этого процесса остается лишь пара минут. При общении через сервер HTTP в таком случае считывание файла начинается с самого начала.
Упомянутое приложение Outlook работает с типовой программой организации электронной почты — Microsoft Exchange. Завершив установку, следует провести тестовый сеанс связи по электронной почте (см. рис. 15. 8). При этом программа Microsoft Exchange загружается автоматически.
Для проверки связи по электронной почте не обязательно сразу выходить на "почтовый ящик" фирмы MathSoft. Проще опробовать связь с кем-либо из своих знакомых, чей адрес электронной почты вам хорошо известен. Для проведения сеанса связи надо нажать большую кнопку с изображением желтого конверта в конце строк с адресами (или аналогичную кнопку меньших размеров в начале панели инструментов). На экране появится небольшое окно установки связи (см. рис. 15. 9), в нем можно проследить за этапом набора номера абонента (сам номер, впрочем, не отображается). Компьютер, с которым вы устанавливаете связь, принято называть удаленным.

Основная страница браузера Microsoft Internet Explorer
Рис. 15. 1 Основная страница браузера Microsoft Internet ExplorerПосле того как основная страница браузера (она может быть разной у разных провайдеров сети Internet) будет выведена на экран, надо в поле адресов набрать адрес фирмы MathSoft, который был приведен выше. Нажав клавишу Enter, можно через короткий промежуток времени увидеть основную с границу фирмы MathSoft, показанную на рис. 15. 2. На этой странице, помимо рекламного изображения новой системы Fibonachi фирмы MathSoft, видны пиктограммы гипермедиа-ссылок и главное меню окна, также выполненное в виде этих ссылок. Активизируя их, можно путешествовать по довольно обширной странице фирмы MathSoft.

Основная Web-страница фирмы MathSoft
Рис. 15. 2 Основная Web-страница фирмы MathSoftКроме кратких описаний программных продуктов, выпускаемых Mdth-Soft ее страница содержит полезные утилиты для модернизации программных продуктов, сотни файлов, содержащих информацию о применении этих продуктов, последние новости о работе фирмы и множество иных сведений К примеру, можно получить файлы расширения библиотек MathCAD 7 О PRO со многими новыми функциями, а также сервисные пакеты по улучшению этой системы Некоторые инструменты предоставляются бесплатно, другие — за довольно скромную плату
Особое место на странице занимает раздел Collaboratory (совместная работа), назначение которого заключается в объединении усилий различных пользователей в работе над совместными проектами Страница этого раздела

Страница с перечнем совместных проектов по определенной тематике
Рис. 15. 5 Страница с перечнем совместных проектов по определенной тематикеАктивизировав гипертекстовую ссылку одного из разделов тематического перечня, можно получить список проектов по этому разделу (см. рис. 15. 5). В сущности проекты — это обычные файлы документов MathCAD, включая краткие данные о проектах с указанием адресов, по которым можно эти проекты получить. Как правило, документы имеют подробный заголовок с указанием фамилии и имени авторов, впервые вынесших проекты на совместную разработку.
Выбрав любой документ, вы получаете возможность записать его на диск своего ПК и опробовать в работе. Впрочем, надо отметить, что есть немало документов, для которых приведена лишь ссылка (чаще всего в виде адреса электронной почты) на то, где этот документ можно добыть и на каких условиях его автор согласен на совместную работу над ним.
Тематический перечень совместных проектов
Рис. 15. 4 Тематический перечень совместных проектов
Выбор проекта и его загрузка в ваш ПК
Рис. 15. 13 Выбор проекта и его загрузка в ваш ПКОстается установить связь (см. группу кнопок в правой части окна) с разработчиком проекта и получить от него нужный файл с документом по проекту. Полученный документ размещается прямо в окне редактирования вашей системы MathCAD, теперь его можно изучать и модифицировать. Как это делается, было описано в предыдущих главах. Остается пожелать читателю с успехом использовать эту новую, интересную и мощную возможность системы MathCAD 7. 0 PRO.
Web-страница фирмы MathSoft
15. 1. Web-страница фирмы MathSoftВ настоящее время ни одна программная система не может претендовать на высокое место в рейтинге качества, если она не поддерживает работу с Internet. Система MathCAD 7. 0 PRO такую поддержку обеспечивает, она позволяет напрямую (т. е. непосредственно из ее среды) отправлять файлы своих документов по электронной почте. Более того, система предоставляет возможность ведения совместной работы над документами, в частности серьезными математическими проектами.
Понять организацию совместных работ в системе MathCAD легче всего, ознакомившись с Web-страницей фирмы MathSoft, имеющей адрес www. mathsoft. com. Для доступа к ней достаточно запустить браузер Microsoft Internet Explorer, входящий в состав операционной системы Windows 95 (или любой другой браузер). Спустя некоторое время (какое именно, зависит от производительности ПК и скорости передачи информации по каналам связи), на экране появится ею основная страница (см. рис. 15. 1).

MathCAD 7.0
Часть документа в стиле Bookone
3 Часть документа в стиле Bookone
При открытии документа с пустым окном редактирования (в стиле Normal) графический курсор — маленький крестик (красный при работе с цветным дисплеем) — устанавливается в верхний левый угол окна с небольшим отступом от краев Становятся допупными все операции ввода объектов документа и их редактирования Текущий документ приобретает имя Untitled (в переводе "Безымянный"), и возле этого имени в верхней части окна указы вается номер документа Поскольку MathCAD — многооконная система, возможно существование нескольких окон с этим именем Список имен документов, с которыми пользователь работал последнее время, хранится системой и выводится перед позицией Exit подменю File (Файл) главного меню. Обычно после применения этой операции пользователь начинает ввод документа и его редактирование, используя для этого оконный редактор.
Операция New (Создать) дублируется кнопкой с пиктограммой в виде чистого листка, помещенной в панель инструментов. Разумеется, ее применение возможно только в том случае, когда эта панель (строка с пиктограммами) присутствует. При этом данная кнопка задает стиль нового документа Normal, так что при ее активизации получается просто чистое окно редактирования.
Диалоговое окно для записи файла с указанием его имени
5 Диалоговое окно для записи файла с указанием его имени
Имя файла может быть коротким, без указания имени диска и подкаталогов. Тогда файл будет помещен в текущий каталог. Однако можно указать и полное имя файла, например:
d: \wmcad\book\demo. mcd
В этом случае файл demo. mcd будет записан на диск d в подкаталог book, имеющийся в каталоге wmcad.
Такая операция особенно полезна при доработке и модификации файлов, например входящих в комплект поставки системы, когда надо сохранить оригинальные файлы в неприкосновенности. Для этого достаточно записать измененные файлы под новыми именами. MathCAD не предусматривает создания резервного bak-файла при использовании команды Save (Сохранить). Поэтому надо внимательно следить за ее использованием и применять команду Save As... (Сохранить как), когда есть подозрения даже в случайной модификации исходных файлов.
Диалоговое окно, появляющееся при закрытии окна модифицированного документа
6 Диалоговое окно, появляющееся при закрытии окна модифицированного документа
Опыт показал, что иногда при заполнении всех окон вместо команды Close удобнее просто задать выход из системы с помощью команды Exit (Выход) Тогда все окна, содержащие документы, не подвергнутые модификации, закроются автоматически (см. ниже) Закрытие модифицированных документов сопровождается запросом о том, желаете ли вы сохранить документ в измененном виде или нет
Затем надо вновь загрузить MathCAD Быстро закрыть окна по одному без выхода из системы MathCAD можно, нажимая клавиши Ctrl и F4 (каждое такое нажатие закрывает очередное окно)
Диалоговое окно установки параметров печатаемой страницы
10 Диалоговое окно установки параметров печатаемой страницы
Групповая работа над документом (Collaboratory...)
2. 7. Групповая работа над документом (Collaboratory...)Новая возможность шестой версии системы MathCAD — более активная поддержка средств телекоммуникаций Непременными условиями для этого являются оснащение ПК телефонным модемом и его инсталляция
MathCAD 7 О PRO пошла в этом направлении еще дальше в ней появилось средство для организации совместной работы над сложными документами (проектами) Если указанные выше условия выполнены, то можно через сервер фирмы MathSoft установить связь между различными пользователями для организации совместной работы Для этого служит команда Collaborato-гу... в подменю позиции File главного меню.
К сожалению, большинство наших пользователей пока не подключено к Internet, поэтому, когда они применяют команду Collaboratory..., вызывается окно с именем No Connected ("Нет подключения"), показанное на рис 2 7
Начальное окно Мастера установки модемной сети
9 Начальное окно Мастера установки модемной сети
называют диалоговые окна, позволяющие разделить процесс инсталляции или установки периферийного оборудования на ряд довольно простых шагов.
На рис. 2. 9 показано начальное окно Мастера установки связи по электронной почте. Нажимая кнопку Next, можно перейти к следующему шагу установки и т. д.
Дальнейшие действия пользователя зависят от обстоятельств установки сетевого оборудования и инсталляции его программного обеспечения.
Окна печати и установки параметров принтера
12 Окна печати и установки параметров принтера
можно указать диапазон страниц печати, число копий и разрешение принтера В целом диалог с компьютером при осуществлении этой операции прост и нагляден
Вид исходного документа при печати, как правило, сохраняется Естест венно, если он многостраничный, то печатаются отдельные страницы (они разделены характерной пунктирной линией) Современные принтеры (особенно лазерные и струйные) имеют более высокое разрешение при печати, чем разрешение дисплея Поэтому качество отпечатанного документа у них выше, чем видимое на экране
Документы MathCAD могут иметь двойную ширину и большую длину Тогда вначале печатаются все страницы левой половины широкого документа, а затем уже страницы правой половины, даже если они пустые (разумеется, при этом принтер вытолкнет пустой лист) Склеив страницы, вы получите полную распечатку документа
Прежние версии MathCAD, нелегально поставляемые на CD-ROM, в буквальном смысле наказывали пользователей таких версий отказом от печа ти документов в среде Windows 95 Новая версия этим пакостным свойством уже не обладает' проблем с печатью у новой версии уже не зафиксировано
Окно No Connected, указывающее на отсутствие подключения к Internet
7 Окно No Connected, указывающее на отсутствие подключения к Internet
Если вы подключены к Internet, то в этом окне можно будет задать необходимые для совместной работы параметры. Работа с Math CAD 7. 0 PRO в сети Internet рассмотрена в последней главе данной книги.
Окно подключения к Internet
8 Окно подключения к Internet
В этом окне надо установить имя пользователя (по умолчанию оно задается таким, каким было указано при регистрации системы), адрес для связи (по умолчанию задан сервер фирмы MathSoft) и адрес электронной почты. Кроме того, следует определить данные серверов, ресурсов Internet. Описание этих процедур выходит за рамки нашей книги, поскольку сильно зависит от конкретных условий подключения к Internet и к математическим способностям MathCAD прямого отношения не имеет.
Окно выбора стиля документа
2 Окно выбора стиля документа
При этом только стиль Normal (Нормальный) создает пустое окно редактирования Другие стили создают окно с заготовками (шаблонами) докумен тов Эти заготовки пользователь может использовать для своего документа К сожалению, они англоязычные, но в них можно заменить (или дополнить) надписи надписями на русском языке, используя соответствующие наборы шрифтов
На рис 2 3 показана часть документа со стилем Bookone В шуточной форме показано заполнение ее в заданном стиле русскоязычными надписями Можно просмотреть и остальные стили и использовать их для своих целей Оформление документов в определенном стиле является одним из правил подготовки документов высокого полиграфического качества
Отправка документов по электронной почте (Send...)
2. 9. Отправка документов по электронной почте (Send...)С помощью команды Send... документы можно отправить и по электронной почте. Для этого следует выполнить ряд простых операций с применением так называемых Мастеров операционной системы Windows 95. Мастерами
Печать документов (Print...)
2. 12. Печать документов (Print...)Команда Print... [Ctrl+ 0] (Печать) служит для запуска печати. Нередко эта команда используется как основная для печати, если формат страницы и установки принтера были заданы ранее и устраивают пользователя. Команда Print... имеет в панели инструментов дублирующую пиктограмму с изображением принтера.
При запуске команды Print... появляется диалоговое окно, показанное на рис. 2. 12. Это окно также не принадлежит системе MathCAD — используется стандартное окно печати Windows.
Используя окно печати, имеется возможность установки параметров принтера. Поскольку разные принтеры имеют различное программное обеспечение (драйверы) печати, вид окна на рис. 2. 12 может заметно отличаться от приведенного для известного лазерного принтера HP LaserJet 5L компании Hewlett Packard.
Windows позволяет осуществлять печать с помощью принтеров нескольких типов. Один из них задан как рабочий (основной). В диалоговом окне
Переднее панно системы MathCAD с активной позицией File главного меню
1 Переднее панно системы MathCAD с активной позицией File главного меню
Подменю содержит ряд операций, разбитых на группы. В первую группу входят следующие операции работы с документами:
New [Ctrl+ N] (Создать) — открыть окно для нового документа;
Open... [Ctrl+ 0] (Открыть) — открыть существующий документ;
Close [Ctrl+ F4] (Закрыть) — закрыть документ.
Вторая группа команд служит для сохранения документов:
Save [F6] (Сохранить) — сохранить на диске текущий документ;
Save as... [Ctrl+ S] — сохранить на диске текущий документ под (Сохранить как) новым именем.
Третья группа команд предназначена для работы с телекоммуникационными средствами:
Collaboratory... — установить связь с фирмой — разработчиком (Сотрудничество) системы для обеспечения совместной работы над документами;
Internet Setup... — установить модемную связь с Internet;
(Установка Internet)
Send... (Отправка) — отправить документ по электронной почте или по Internet.
Четвертая группа команд служит для подготовки к печати и самой печати документов:
Page Setup... — установить левый и правый отступы (Параметры страницы) на странице;
Print Preview... (Просмотр)— предварительно просмотреть документ перед печатью;
Print... [Ctrl+ 0] (Печать) — распечатать документ.
Последняя из этих операций позволяет распечатать весь текст документа с комментариями, математическими формулами, таблицами и графиками. Печать производится на принтере в графическом режиме и не очень быстро. Зато используются все шрифты и печатаются все математические спецзнаки. Можно печатать и части документа. Лазерные принтеры дают превосходное качество печати, но обычно черно-белой (цветные лазерные принтеры пока слишком дороги). Струйные принтеры могут легко реализовать печать в цвете.
Пятая группа представлена командой Exit [Alt+ F4] (Выход) — выйти из среды MathCAD.
Перед этой командой имеется перечень последних файлов, с которыми работала система, что позволяет загрузить любой из них без предварительного поиска.
Вернемся к широко используемым операциям первой группы и рассмотрим их более подробно. Заметим, что некоторые из них могут быстро вводится нажатием функциональных клавиш (они указаны в квадратных скобках после наименования операции).
Подготовка к вводу нового документа (New)
2. 2. Подготовка к вводу нового документа (New)Операция New [Ctrl+ N] (Создать) обычно используется, когда пользователь намерен создать новый документ. Она выводит на экран новое текущее окно редактирования и переводит систему в режим редактирования.
Отличительной особенностью новой версии MathCAD является возможность выбора стиля нового документа. При исполнении операции New выводится окно выбора стиля документа, показанное на рис. 2. 2.
Позиция главного меню File
2. 1. Позиция главного меню FileПозиция File (Файл) главного меню служит для работы с файлами документов Файлом называют имеющую имя упорядоченную совокупность данных или кодов программ, размещенную на том или ином носителе, обычно на жестком или гибком диске либо CD-ROM Как уже отмечалось, файлы документов в MathCAD имеют расширение mcd, которое указывается сразу после имени файла Такие файлы имеют текстовый формат, и их легко прочитагь и модифицировать любым текстовым редактором.
Файлы документов MathCAD содержат полный текст программы, выводящей документ в окно редактирования, с указаниями координат расположения блоков, фактического содержания и характера выполняемых операций, форматов предоставления информации и т д Таким образом, файл является по сути программой, записанной на внутреннем (промежуточном) языке программирования системы Файлы могут содержать и результаты вычислений Предусмотрена возможность записи документов и в особом формате RTF, созданном для хранения сложных многокомпонентных данных (содержащих тексты и 1рафики)
Важно отметить, что даже при записи документов со сложными рисунками используется не запись их BitMap-копии, а именно программы вывода документа Поэтому файлы с расширением mcd невелики по размеру и их легко передавать по современным средствам телекоммуникаций, например по Internet Они требуют небольшого свободного пространства на дисках для записи
Помимо обычных операций работы с файлами (их запись на диск и загрузка с диска) предусмотрены возможности распечатки документов принтерами различного типа Если сделать позицию File (Файл) главного меню активной, появится ниспадающее подменю (см рис 2.1)
Предварительный просмотр страницы перед печатью
11 Предварительный просмотр страницы перед печатью
Вверху окна видны кнопки управления просмотром страницы. Они становятся активными только в том случае, если просматривается объемный документ, не помещающийся на одной стандартной странице (формат А4). Треугольники на этих кнопках показывают на возможное направление просмотра. Внизу окна контроля имеются кнопки Print (Печать) для запуска печати, Close (Закрыть) для выхода из просмотра и закрытия диалогового окна и Page Setup... (Страница...) для вызова диалогового окна установки параметров страницы (описывалось выше).
Предварительный просмотр страниц печати (Print Preview...)
2. 11. Предварительный просмотр страниц печати (Print Preview...)Даже одна страница большого документа не видна полностью на экране дисплея. Поэтому перед печатью полезно просмотреть расположение элементов документа на странице. Для этого служит команда Print Preview... (Просмотр), которая выводит контрольное окно с изображением будущей напечатанной страницы (см. рис. 2. 11). Такая весьма полезная команда появилась в системах MathCAD начиная с версии 5. 0.
Пример задания новой папки из окна Open
4 Пример задания новой папки из окна Open
Для вызова одного из ранее использовавшихся документов достаточно указать курсором мыши его имя в списке, размещенном над операцией Exit в позиции File (Файл) главного меню. Щелкнув один раз левой клавишей мыши, можно загрузить выбранный файл в текущее окно редактирования.
При работе со многими документами возможна ситуация, когда все восемь окон окажутся уже заполненными. Тогда загрузка нового файла становится невозможной и система выводит сообщение об этом с предложением о закрытии окон командой Close (Закрыть).
Установка параметров страницы при печати (Page Setup...)
2. 10. Установка параметров страницы при печати (Page Setup...)Печать документов — важная возможность системы. В общем случае она предполагает установку параметров печатаемой страницы, ее предварительный просмотр и затем уже печать на выбранном типе принтера с возможной коррекцией ее параметров.
Команда Page Setup... (Параметры страницы) служит для установки параметров печатаемых страниц. При ее выполнении появляется диалоговое окно, показанное на рис 2. 10 в центре экрана.
Следует отметить, что это окно принадлежит системе Windows. Непосредственно подлежит установке ширина отступа (поля) со всех сторон бумажного листа: Left (левый), Right (правый), Тор (верхний) и Bottom (нижний). Отступы устанавливаются в дюймах. Кнопки Headers... и Footers... позволяют ввести колонтитулы вверху и внизу документа при его печати. Кнопка Cancel (Отмена) отменяет эту операцию, а ОК фиксирует ее данные.
Установка входа в сеть (Internet Setup...)
2. 8. Установка входа в сеть (Internet Setup...)Если ПК, на котором установлена система MathCAD, подключен к модемной сети, то с помощью команды Internet Setup... можно подключиться к Internet. Эта команда выводит довольно простое диалоговое окно, которое показано на рис. 2. 8.
Ввод документа с диска (Open...)
2. 3. Ввод документа с диска (Open...)Операция Open... [Ctrl+ 0] (Открыть) служит для загрузки документа из его файла с выбором из директории файлов. При исполнении этой операции появляется диалоговое окно выбора файла (см. рис. 1. 15). К аналогичному действию приводит активизация пиктограммы в виде открывающейся папки в инструментальном ящике системы.
В этом окне с помощью меню выбора дискового накопителя и вертикального слайдера можно пройтись по всем именам дисков, их каталогам и файлам текущего каталога, чтобы выбрать нужный файл для загрузки. Имя файла и каталог можно указать в двух первых позициях окна. Для выбора файла или каталога используются мышь и клавиши перемещения курсора. Выбор завершается нажатием клавиши Enter или указанием курсора мыши на изображение кнопки ОК в окне выбора файлов с последующим нажатием левой клавиши мыши. Это приводит к загрузке документа в текущее окно системы. Использование кнопки Cancel позволяет отказаться от выбранной операции.
Можно поступить и иначе: указав курсором мыши на нужный файл, быстро нажать дважды левую клавишу мыши. Активизация курсором мыши кнопки Cancel диалогового окна (или нажатие клавиши пульта Esc) ведет к отказу от операций выбора файла.
Окно Open имеет четыре кнопки быстрого управления для перехода на различные уровни файловой системы. Перечислим их слева направо:
• На один уровень вверх
• Создание новой папки
• Список
• Таблица
Кнопка "На один уровень вверх" переводит окно в отображение более старшей папки (каталога), а кнопка "Создание новой папки" задает в текущем каталоге новую папку и предлагает ввести ее имя. На рис. 2. 4 показан пример задания новой папки Myfile.
Две другие кнопки устанавливают отображение файлов в выбранной папке в форме списка (как на рис. 1. 15) или в форме таблицы (как на рис. 2. 4). Табличная форма менее компактна, но дает больше данных о каждом файле или каталоге.
После загрузки файла с документом его текст появляется в текущем окне и по умолчанию начинается исполнение документа в режиме автоматических вычислений. Можно отключить этот режим, тогда загруженный документ не будет исполняться до подачи команды на вычисления.
Выход из системы (Exit)
2. 13. Выход из системы (Exit)Операция Exit [Alt+ F4] (Выход) используется для окончания работы с системой. Перед этой операцией необходимо побеспокоиться, чтобы все загруженные ранее документы, подвергавшиеся редактированию и модификации, были сохранены на диске с помощью команды Save As... (Сохранить как) или Save (Сохранить) Тогда при использовании операции Exit можно на блюдать последовательное исчезновение окон документов Если пользователь забыл записать какой-либо документ на диск, система сообщит об этом, выдав запрос. Нужно ответить Y, если документ нужно сохранить, и N — если сохранения не требуется.
После выхода из системы MathCAD происходит возврат в среду Windows. Не следует применять эту команду, если вам необходимо временно выйти из системы. Тогда лучше свернуть MathCAD в пиктограмму, активизировав курсором мыши кнопку с жирной горизонтальной чертой в конце титульной строки окна. Можно также воспользоваться переключателем программ Windows, нажимая клавиши Alt и Tab и выбирая программу по названию, появляющемуся в верхней части экрана. Исключением из этого правила является описанный выше прием очистки всех окон с помощью команды выхода из системы. При этом выход из системы и ее повторная загрузка займут меньше времени, чем последовательная очистка всех окон.
Закрытие документа (Close)
2. 6. Закрытие документа (Close)Эта операция закрывает окно с текущим документом, и система переходит к работе с окном предшествующего документа (либо к пустому первому окну, если другие документы не вводились).
Как уже отмечалось, система MathCAD для работы с каждым документом создает свое окно. Текущее окно обычно видно на переднем плане. Команда Close [Ctrl+ F4] (Закрыть) позволяет убрать ставшее ненужным окно текущего документа и освободить память для ввода новых документов.
Если какой-либо из документов в закрываемых окнах подвергался модификации, то система спросит, надо ли записывать документ на диск (рис. 2. 6).
Если документ не модифицировался, соответствующее окно просто закрывается. Окно, показанное на рис. 2. 9, создает система Windows. Закрыть окно также можно, используя кнопку с треугольником, острие которого обращено вниз, или команду Close меню управления окном.
Следует помнить, что каждый загруженный документ занимает определенный объем памяти. Поэтому команда Close является эффективным средством освобождения памяти, особенно когда закрывается окно с большим документом. Не рекомендуется использовать более десятка окон.
Запись документа на диск без переименования (Save)
2. 4. Запись документа на диск без переименования (Save)Эта операция записывает файл на диск с использованием его текущего имени и с учетом всех изменений, которые вводились в документ в ходе его редактирования, доработки или дополнения. Такая операция удобна, если вы совершенствуете ранее созданный и имеющий свое имя документ. Она дает быстрый способ записи файла на диск без поиска его места в файловой структуре и без изменения имени.
Следует с осторожностью пользоваться этой командой в том случае, когда вы модернизируете какой-либо документ, но желаете сохранить оригинал. В случае применения операции Save [F6] (Сохранить) исходный файл-оригинал будет заменен новым. Чтобы этого не произошло, следует пользоваться командой записи Save As... (Сохранить как), описанной в следующем разделе.
Командой Save (Сохранить) рекомендуется пользоваться периодически при подготовке сложных документов. Это позволяет сохранить все изменения в документах и избежать потери документа при ошибочных действиях, например при случайном выключении компьютера до записи файла.
Команда Save (Сохранить), обозначавшаяся в предшествующих версиях как Save Document, выполняется без выдачи каких-либо предупредительных сообщений.
Запись документа на диск с переименованием (Save As...)
2. 5. Запись документа на диск с переименованием (Save As...)Операция Save As... [Ctrl+ S] (Сохранить как) отличается от предыдущей тем, что перед записью файла на диск в диалоговом окне появляется запрос на ввод имени файла (рис. 2. 5), что позволяет задать любое имя, в том числе отличное от имени дорабатываемого файла-оригинала. Тем самым можно отдельно записать доработанный документ и сохранить оригинал.
MathCAD 7.0
Демонстрация специальной вставки
7 Демонстрация специальной вставки
Вставка может задаваться значком, причем с помощью дополнительного окна (оно также показано на рис 3 7) можно выбрать из предоставленного набора значков наиболее подходящий Причины появления в диалоговых окнах специальной вставки русскоязычных надписей уже обсуждались Эти окна являются общими для различных приложений и создаются не ими, а русифицированной операционной системой Windows 95
Диалоговое окно команды Go To Page...
13 Диалоговое окно команды Go To Page...
В этом окне следует указать страницу, к которой надо перейти: First Page (К первой странице), Last Page (К последней странице) или с Number Page (К странице №). Внизу окна отображается номер текущей и заданной для перехода страниц. Кнопка ОК исполняет переход, a Cancel отменяет его.
Диалоговое окно операции Links...
14 Диалоговое окно операции Links...
С помощью этого окна можно редактировать связи с внедренным объектом, открывать и менять источник объектов и прерывать связь.
Экран системы при активной позиции Edit главного меню
1 Экран системы при активной позиции Edit главного меню
Как видно из рис. 3. 1, позиция Edit главного меню выводит подменю, содержащее следующие операции:
Undo [Alt+ BkSp] — отменить последнюю операцию (Отменить изменения) редактирования;
Redo (Повторить) — повторить последнюю операцию редактирования;
Cut [Ctrl+ X] (Вырезать) — переместить выделенный объект в буфер обмена;
Copy [Ctrl+ C] (Копировать) — скопировать выделенный объект в буфер об мена;
Paste [Ctrl+ V] (Вставить) — вставить содержимое из буфера обмена в до кумент;
Paste Special... — вставить содержимое из буфера обмена (Специальная вставка) в различном формате (в формате Mathcad или BITMAP, например);
Delete [Ctrl+ D] (Удалить) — стирание выделенных объектов;
Select All (Выделить все) — выделение всех объектов документа;
Find... [Ctrl+ F5] (Найти) — найти заданную текстовую или математичес кую строку;
Replace... [Shift+ F5] — найти и заменить математическую или
(Заменить) текстовую строку;
Go to Page... — расположить начало указанной страницы
(Перейти к странице) в начале рабочего документа MathCAD;
Check Speling... проверка орфографии (для англоязычных
(Контроль орфографии) документов);
Links... (Связи) — задание связи с документом;
Object (Объект) — редактирование вставленного в документ объ екта.
Здесь прежде всего надо отметить очередной казус совместной работы англоязычной MathCAD с русскоязычной (локализованной для российских пользователей) операционной системой Windows 95: последняя позиция Object в подменю Edit записана на русском языке!
Многие из операций редактирования используют буфер обмена (Clipboard). Так называется специально организованная и динамически изменяющаяся область памяти в операционной системе Windows. В нее могут помещаться различные (обычно предварительно выделенные) объекты и документы. Буфер обмена можно использовать для организации обмена частями документа как в пределах текущего документа, так и между различными документами и даже приложениями.
Рассмотрим операции редактирования более подробно.
Формы курсора
Формы курсораКурсор может иметь следующие формы.
+ — крестообразный красный курсор (визир) служит для указания места для новых блоков (текстовых, формульных или графических). Курсор имеет такой вид только вне пространства блоков, т. е. на пу стом месте экрана, и может перемещаться клавишами управления курсором или устанавливаться мышью (для этого курсор мыши ставится в нужное место и нажимается ее левая клавиша), курсор в виде красной вертикальной черты (маркер ввода) служит для указания на отдельные элементы блоков, он обычно используется для ввода данных и заполнения шаблонов. В текстовых блоках используется для указания места вставки или удаления отдельных символов,
[ или ] — курсор в виде синих уголков разного размера, выделяющих отдельные части выражения или выражение целиком Вид курсора зависит от направления ввода Нажатие клавиши Ins или клавиш <— и —> перемещения курсора меняет направление ввода
Клавиши для выделения
Клавиши для выделенияДля выполнения выделений используются указанные ниже клавиши:
вверх — превращает маркер в выделяющий уголок и расширяет его;
вниз — сужает выделяющий уголок;
-» — перемещает маркер и меняет вид уголка;
<- — перемещает маркер и меняет вид уголка;
Shift Т — выводит курсор из выражения в верхнюю часть свободного поля, делая его крестообразным;
Shift вниз — выводит курсор из выражения в нижнюю часть свободного поля;
Shift -» — выводит курсор из выражения в правую половину свободного по ля;
Shift <— — выводит курсор из выражения в левую половину свободного поля;
Space — заключает в рамку операнд, действует как несколько нажатий кла виши Т и выводит курсор из выделенного выражения;
Ins — перемещает срез рамки из правого верхнего угла в левый верх ний угол
Клавиши и их комбинации для управления редактированием
Клавиши и их комбинации для управления редактированиемПо мере освоения системы все большую помощь в редактировании оказывает знание функций управляющих клавиш и их комбинаций. Ниже дан перечень осуществляемых ими операций:
Tab — в тексте перемещает курсор на начало следующего слова, в
уравнении управляет выделением частей блока (в частности, выделяя выражения в скобках);
Shift+ Tab — в тексте перемещает курсор в начало очередного слова, в уравнении управляет выделением частей блока;
PgUp — перемещает курсор и вызывает скроллинг на пять строк вверх;
PgDn — перемещает курсор и вызывает скроллинг на пять строк вниз;
Ctrl+ PgUp — вызывает скроллинг на одно окно вверх;
Ctrl+ PgDn — вызывает скроллинг на одно окно вниз;
Home — устанавливает курсор в начало предшествующего блока, Ctrl+ Home — вызывает скроллинг с установкой курсора в начало документа;
Ctrl+ End — вызывает скроллинг с установкой курсора в конец документа.
Действия некоторых клавиш, связанные с выделением, неоднозначны, и для их интуитивного применения требуется определенный опыт работы. При редактировании текстовых блоков особых трудностей не возникает — оно выполняется так же, как в большинстве текстовых редакторов, и будет подробнее рассмотрено в дальнейшем.
Математические выражения не столько набираются, сколько конструируются При этом учитывается определенная структура выражений и иерархия выполняемых операций. Конструирование выражений облегчается средствами выделения отдельных фрагментов выражений. Полезно помнить, что все, что попадает в ходе выделения в уголки курсора, оказывается операндом для следующего вводимого оператора. Операторы возведения в степень, извлечения корня и деления являются "цепкими" операторами. После их ввода все, что набирается следом, становится показателем степени, подкоренным выражением или знаменателем. Для прекращения этого обычно приходится дважды нажать клавишу Space.
Как правило, удобно сочетать отметку начала выделения мышью, поскольку она позволяет сразу и точно указать место выделения, с последующим расширением или сужением места выделения с помощью управляющих клавиш. При определенном навыке все выделения можно выполнить, используя мышь и рассматривая область выделения с разных сторон, чтобы принять решение о расширении или сужении этой области в нужном направлении.
Нажатие клавиши Ins меняет направление ввода и расположение курсора, что позволяет оперативно управлять вводом фрагментов формул. Например, если курсор имеет вид J, то ввод будет идти вправо (курсор как бы поддерживает вводимое выражение). Пусть, например, вы хотите набрать выражение (а+ Ь) и затем sin (a+ b), т. е. сделать ранее набранное выражение аргументом функции. Для этого вначале нажмите клавиши (а+ Ь) — выражение (а+ Ь) появится на экране и окажется заключенным в уголок J. Нажмите клавишу Ins — уголок приобретет вид ¦_ и переместится в начало выражения. Теперь введите имя функции sin — на экране будет sm (a+ b).
Для замены числа или буквы в выражении поместите маркер ввода после цифры или буквы и щелкните левой клавишей. Маркер приобретет вид уголка J. Поскольку он расположен справа от цифры или буквы, то для ее стирания нажмите клавишу <— (Backspace), а если слева и имеет вид L — то клавишу Del. Пользуйтесь F3, чтобы стереть выделенное рамкой выражение с сохранением его в буфере, и F4 — для вызова выражения из буфера обмена.
При этом полезно знать, что всякое заключенное в рамку выражение становится операндом следующего вводимого оператора. Отметим также, что нажатие клавиши F3 убирает выделяемый фрагмент и помещает его в буфер обмена Windows (операция Cut). Нажатие клавиши F4 помещает фрагмент из буфера в текущее положение курсора.
Несмотря на эти и другие тонкости конструирования математических выражений, вряд ли стоит запоминать все правила манипуляции с клавишами или мышью. Конструирование выражений чаще всего осуществляется интуитивно, и просто нужно некоторое время для экспериментов с ним. После набора первых же нескольких достаточно сложных формул пользователь подсознательно обучится правилам ввода.
Клавиши редактирования
Клавиши редактированияРедактирование фрагментов документа трудно отделить от некоторых других операций. Поэтому ниже приведено назначение ряда других функциональных клавиш и их сочетаний, используемых при комплексной работе с документами. Shift+ F5 — замена одной подстроки на другую;
Enter или Ctrl+ F9 — вставка пустой строки;
Backspace или Ctrl+ FlO — удаление пустой строки;
Alt+ Bksp — отмена последней операции редактирования;
Ctrl+ Ins — копирование (Copy) выделенного объекта в
буфер обмена;
Shift+ Del — перенос (Cut) выделенного объекта в буфер
обмена;
Shift+ Ins — копирование объекта из буфера обмена в окно;
Ins — включение режима вставки (Insert).
Клавиши (символы) для создания объектов
Клавиши (символы) для создания объектов@ — создание шаблона двумерной графики (2D-графики), Ctil+® — создание шаблона трехмерной графики (ЗD-графики), Ctrl+ % — создание шаблона импортируемого рисунка, Ctrl+ G — замена латинской буквы на греческую;
Ctrl+ V — задание шаблона вектора или матрицы, Ctrl+ P — ввод греческой буквы "пи", Ctrl+ Z — ввод математического символа бесконечности
Ряд других комбинаций клавиш для ввода математических и логических операторов будет рассмотрен одновременно с их описанием в следующих главах
Клавиши управления документами и окнами
Клавиши управления документами и окнамиCtrl+ Esc — вызов информации с перечнем исполняемых в настоящее время программ для их переключения;
Ctrl+ F4 — закрытие документа,
Ctrl+ F6 — активизация следующего окна,
Ctrl+ 0 — печать документа,
Alt+ F4 — завершение работы с системой (команда Quit),
Ctrl+ R — восстановление изображения на экране,
F1 — открытие окна помощи (Help);
F3 — удаление отмеченного объекта с переносом в буфер обмена,
F4 — вывод объекта из буфера обмена в текущее окно,
F5 — вызов окна загрузки файлов документов;
F6 — запись файла текущего документа на диск,
F7 — подготовка к созданию нового документа,
F9 — запуск вычислений;
Shift+ Fl — вызов контекстно-зависимой справки.
Последняя операция требует некоторых пояснений При ее исполнении у курсора-стрелки появляется жирный знак вопроса. Если теперь указать на какой-либо объект или его часть (например, на имя функции или оператор), будет выведено окно с сообщением о назначении и правилах использования указанного объекта Для отмены этого режима помощи достаточно нажать клавишу Esc.
Конец проверки орфографии
12 Конец проверки орфографии
Окно проверки орфографии имеет ряд кнопок:
Ignory — игнорировать найденное слово с ошибкой;
Change заменить слово подходящим из списка;
Add добавить слово в словарь;
Suggest представить расширенный список слов для замены;
Cancel - прекратить проверку.
Добавление слов в словарь расширяет его и позволяет проводить проверку специальных терминов, возможно, отсутствующих в словаре. Однако эту операцию следует проводить осторожно: словарь легко засорить случайно введенными неверными словами, чю снижает эффективность проверки орфографии.
Как уже говорилось, для наших пользователей ценность системы орфографического контроля заметно снижается из-за невозможности проверки русскоязычных текстов. При этом все русские слова отмечаются как ошибочные. Однако благодаря объектной связи нередко можно готовить тексты в редакторе Word 95 из офисного пакета Microsoft Office (он имеет мощную русскоязычную систему орфографического и грамматического контроля) и затем включать их в документы MathCAD.
Копирование объекта из буфера обмена в окно (Paste)
3. 5. Копирование объекта из буфера обмена в окно (Paste)Операция Paste [Ctrl+ V] (Вставить) переносит изображения объектов из буфера обмена в окно и располагает их по текущему местоположению графического курсора. Помещенные в окно объекты выделяются пунктирными прямоугольниками. Для снятия выделения достаточно установить курсор в свободное поле окна и нажать левую клавишу мыши (или клавишу Enter). Эта операция выполняется также нажатием клавиши F4 и комбинацией клавиш Shift+ Ins.
При применении операции Paste содержимое буфера обмена сохраняется и команду можно использовать неоднократно, что особенно удобно при необходимости дублирования объектов, когда, например, какая-либо формула или математическое выражение встречаются в тексте документа несколько раз.
С помощью описанных операций переноса и копирования объекта в буфер обмена и вывода его содержимого в окно (не обязательно исходное) можно переносить объекты из одного окна в другое. К сожалению, прямой перенос объектов без помощи буфера обмена (как пиктограмм в версии Windows 31) невозможен Однако он возможен для примеров QuickSheets
Копирование объекта в буфер обмена (Copy)
3. 4. Копирование объекта в буфер обмена (Copy)Операция Copy [Ctrl+ C] (Копировать) аналогична Cut (Вырезать), но с одним существенным отличием выделенный объект (или блок объектов) переносится в буфер обмена, но не уничтожается в окне редактирования. Эта операция обычно используется в том случае, когда нужно перенести заданный объект в несколько документов, оставив при этом оригинал на своем месте, или если объект либо блок объектов нужно повторить в другом месте документа.
Особенно полезна операция Copy при составлении документа из частей других документов (см. рис. 3. 5). Если переключиться в другое окно, то скопированная и занесенная в буфер обмена информация может быть помещена в это окно с помощью операции Paste (Вставить), описанной ниже.
Объект в виде формулы, внедренный в документ
15 Объект в виде формулы, внедренный в документ
На рис 316 покачана подготовка к редактированию объекта Такой вид принимает окно MathCAD после исполнения команды Заменить
Как видно из рис 3 16, в окне редактирования объекта появляется набор ная панель редактора формул приложения Microsoft Word 95, породившего редактируемую панель Благодаря этому становится возможным полное ре дактирование внедренной формулы, вплоть до ее замены другой
Общие приемы редактирования документов (Edit)
3. 1. Общие приемы редактирования документов (Edit)Редактирование документов в ранних версиях системы MathCAD под MS-DOS было в определенном смысле искусством. Следовало помнить десятки сочетаний клавиш для ввода математических спецсимволов, шаблонов и греческих букв, правила стирания и вставки знаков в формулы и т. д. Все эти правила (несмотря на некоторые элементы их интуитивности) быстро забывались, и пользователю приходилось рыться в документах для их поиска или действительно полагаться на свою интуицию. Нередко это вело к тому, что замена в формуле какой-либо переменной или показателя степени легче обеспечивалась повторным набором блока целиком, чем применением напрочь забытых приемов редактирования.
Подобный недостаток полностью устранен в новой версии системы, в основном благодаря возможности конструирования формул с помощью мыши и готовых наборов (палитр) специальных математических символов. При этом разработчики новой версии MathCAD наконец-то решились на важный шаг — отказались от полного сохранения правил редактирования и ввода объектов, к которым привыкли пользователи ранних версий системы MathCAD. Многие из этих правил сохранены, но не все. Зато набор математических символов в MathCAD стал напоминать эту операцию в текстовом редакторе Word 95 из пакета Microsoft Office 95.
Большая часть процессов редактирования производится непосредственно с отображением объектов в текущем окне редактора. Разумеется, редактирование возможно только после ввода в текущее окно редактора одного или ряда шаблонов объектов. В противном случае часть операций редактирования осуществить будет нельзя и в меню редактирования Edit (Правка) такие операции будут указаны затененным шрифтом.
Ввод объектов (математических выражений, текстовых комментариев, графиков и др.) в текущее окно редактора производится по-разному. Он будет неоднократно описан по мере изложения последующего материала книги.
Здесь мы ограничимся парой простых примеров. Так, для задания переменной х=1 и вычисления значения функции sin (x) можно воспользоваться вводом с клавиатуры.
| Нажимаемая клавиша | Изображение | Комментарий в окне |
| х | X | Ввод имени переменной |
| X: = | Ввод символа присваивания: - | |
| 1 | x: = 1 | Ввод числовой константы 1 |
| Enter | Фиксация ввода, скачок курсора | |
| s i n | s si sin | Ввод имени функции sin |
| ( | sin ( | Ввод левой скобки ( |
| х | sin (x | Ввод имени переменной х |
| ) | sin (x) | Ввод правой скобки) |
| sin (x) = | Ввод знака вывода = | |
| Enter | sin (x) - 0. 841 | Вычисление sin (x) =sin (l) |
Даже на этом простом примере видны некоторые особенности входного языка общения с системой. Так, символ присваивания: = отличен от обычно используемого в математике знака равенства =. Это обстоятельство связано с тем, что знак равенства интерпретируется в математических выражениях по контексту. Например, х=у означает либо присвоение переменной х значения ранее определенной переменной у, либо просто факт логического равенства значения х значению у.
Такая двойственность недопустима в машинных программах. Поэтому в системах MathCAD долгое время знак = использовался только как знак вывода результатов вычислений, а для присваивания переменным значений применяется знак: =. Наконец, для обозначения отношения величин х и у как равенства используется жирный знак равенства.
В последней версии MathCAD знак = допустимо применять и как знак присваивания. Система автоматически заменяет его на знак: = при первой операции присваивания. Это происходит благодаря тому, что система "знает ", что перед первым присваиванием переменная не определена и, следовательно, знак = в качестве знака вывода значения переменной не может использоваться. Так что его можно применять для присваивания. Например, если вы введете в первый раз х=2, то система представит это в виде х: =2. Однако при втором присваивании надо писать х: =3 (если задать х=, то система тут же выдаст х=2, т. е. знак = будет уже означать вывод).
Интересно отметить, что для ввода знака: = предназначена клавиша с двоеточием (:). А клавиатурный знак \, к примеру, вводит обычное изображение квадратного корня. Если мы хотим создать вектор с именем V, элементы которого имеют значения от 1 до 5, придется набрать:
V: 1; 5
На экране дисплея в текущем окне появится:
V: =1.. 5
Здесь клавиша, содержащая точку с запятой (;), вводит символ перечисления значений "от до" в виде двух точек (..). Этот прием придает переменной V статус ранжированной, по существу вектора с элементами 1, 2, 3, 4 и 5 в нашем примере.
Можно огорчиться, когда узнаешь, что таких правил ввода десятки. Объясняется это тем, что многих математических спецсимволов нет в виде надписей на клавиатуре. Клавиатура ПК приспособлена для ввода простых текстов, а отнюдь не для ввода сложных математических формул и относящихся к ним математических знаков, например квадратного корня, знаков суммы и произведения, интеграла и т. д.
На самом деле проблема не столь ужасна, как кажется с первого взгляда (она действительно нервирует начинающих пользователей, работающих с ранними версиями системы MathCAD). Во-первых, многие знаки вводятся интуи-гивно, стоит вспомнить их начертание или смысл. Например, знак:"= вводится целиком с помощью начального двоеточия, а знак квадратного корня вводится знаком \ — частью его изображения. По мере описания системы будут указаны клавиши для ввода тех или иных операторов. Во-вторых, как уже отмечалось, в описанной версии MathCAD эта проблема практически снята благодаря возможности выбора спецсимволов из их наборов (палитр) в наборных панелях. Достаточно установить графический курсор в нужном месте окна и выбрать мышью пиктограмму соответствующего спецсимвола из выбранной палитры символов. Нажатие левой клавиши мыши вызовет вывод на место курсора шаблона спецзнака. Далее надо заполнить выделенные темными прямоугольниками места шаблона, и соответствующий объект будет полностью введен. Пример заполнения шаблона для интеграла мы уже приводили.
Для заполнения шаблонов операндов надо вначале наметить нужный шаблон с помощью клавиш перемещения курсора. Еще удобнее сделать это с помощью мыши, указав перемещаемым маркером мыши на нужный шаблон и нажав ее левую клавишу. Активный шаблон помечается синим уголком, указывающим направление ввода (ранее это делал синий прямоугольник со скосом). Теперь можно вводить операнд. Это повторяется для других шаблонов ввода операндов.
Оставив на потом описание некоторых других деталей ввода (например, выделение частей объектов, перемещение курсора по объектам и др.), рассмотрим операции, вводимые при активной позиции Edit (Правка) главного меню (см. рис. 3. 1).
Отмена операции редактирования (Undo) и ее повтор (Redo)
3. 2. Отмена операции редактирования (Undo) и ее повтор (Redo)Команда Undo [Alt+ BkSp] (Отменить) служит для устранения последней операции редактирования. Обычно она применяется, если в ходе редактирования установлено, что введен неправильный знак либо неверное имя или значение переменной. Тогда следует отменить последнюю операцию редакги-рования, что и делает команда Undo.
Надо отметить, что она применима только к тем блокам, в которые введен курсор и в которых начаты операции редактирования. В других случаях команда Undo неактивна. При ее применении восстанавливается то содержимое блока, которое было в нем до операции редактирования, например в введенном выражении
х: = exp (sin (l))
Вы решили исправить функцию sin на функцию cos и стали стирать имя функции sin, но вспомнили, что это исправление неверно Достаточно ввести команду Undo, и функция sin окажется восстановленной. Действие этой команды распространяется только на одну последнюю операцию
Бывает, однако, что, отменив последнюю операцию редактирования, пользователь все же решает ее ввести снова. Для этого служит операция Redo
Переход к заданной странице документа (Go to Page...)
3* 12. Переход к заданной странице документа (Go to Page...)Документ с достаточно сложными расчетами может занимать множество страниц. Для быстрого перехода к нужной странице используется команда
Go To Page... (Перейти к странице). При исполнении этой команды появляется диалоговое окно, показанное на рис. 3. 13.
Перенос выделенных блоков из окна одного документа в окно другого документа
6 Перенос выделенных блоков из окна одного документа в окно другого документа
Если отпустить левую клавишу мыши, то объекты появятся в другом документе и исчезнут в первом (где они были до этого).
Поиск подстроки (Find...)
3. 9. Поиск подстроки (Find...)Часто в ходе редактирования документа пользователь заранее знает, какая именно часть документа должна изменяться. Например, часто возникает необходимость исправить имя какой-либо переменной или скорректировать заведомо известную формулу. Возможно, потребуется изменение какой-либо фразы текстового сообщения При этом весьма полезна операция поиска изменяемого фрагмента по всему документу, особенно когда документ велик и заданное изменение надо повторить несколько раз.
Операция Find... [Ctrl+ F5] (Найти) служит для поиска фрагментов текста или имен переменных в математических выражениях. При ее исполнении появляется окошко Find с запросом искомого фрагмента — подстроки (см. рис. 3. 9). Можно вести поиск такого фрагмента по всему документу. При обнаружении указанной подстроки в формульном блоке курсор устанавливается в конец обнаруженной подстроки, после чего можно приступить к ее редактированию. В текстовом блоке найденная подстрока выделяется.
Поиск заданного фрагмента текста (слова "символьном")
9 Поиск заданного фрагмента текста (слова "символьном")
Окошко Find имеет две опции-кнопки Previous (Позади) и Next (Впереди). Первая опция задает поиск от текущего положения курсора вверх до первого обнаружения подстроки, вторая позволяет провести поиск подстроки от текущего положения курсора вниз. Если подстрока поиска не обнаружена, появляется окошко Error (Ошибка) с предупреждающей надписью: Stop Not found (He найдено).
Пример перенесения выделенных блоков на новое место
3 Пример перенесения выделенных блоков на новое место
В новой версии системы улучшено выделение выражений с помощью мыши. Используя мышь, легко выделять даже отдельные фрагмента формул, что иллюстрирует рис. 3. 4. Это открывает обширные возможности конструирования формул из фрагментов набранных ранее формул. Сохранены и возможности изменения выделений с помощью клавиш управления курсором и клавиши пробела. Например, для расширения выделения на все выражение удобно применять клавиши пробела.
При выделении мышью текстовых надписей можно выделить и любой фрагмент текста, вплоть до одиночного символа. В формулах также можно выделить любую односимвольную переменную. Однако в математических выражениях нельзя выделять отдельные символы в именах функций — они выделяются целиком.
Команда Cut выполняется также комбинацией клавиш Shift+ Del. Щелчок левой клавишей мыши при курсоре, помещенном за пределы выделенных объектов, снимает все выделения.
Пример переноса выделенной в одном документе части выражения в окно другого документа
5 Пример переноса выделенной в одном документе части выражения в окно другого документа
Для переноса ряда объектов из одного документа в другой не обязательно использовать буфер обмена. Можно перетаскивать объекты, зацепив их курсором мыши (в форме ладони), прямо из одного окна в другое. Начало такого переноса представлено на рис. 3. 6. Этот перенос основан на реализованном в приложениях Windows 95 методе Drag and Drop ("Перетащи и брось"). Он намного облегчает перенос и делает его более наглядным.
Пример проверки орфографии
11 Пример проверки орфографии
Как видно из приведенного примера, система орфографического контроля не только выявляет слова с ошибками и выделяет их цветом основы, но и предлагает варианты замены (см. рис. 3. 12). Это говорит о том, что в данной системе есгь и тезаурус — перечень слов схожего назначения. Если ошибки не обнаружены или исправлены, то появляется окно с сообщением о завершении контроля. Это окно также показано на рис. 3. 12.
Пример редактирования внедренного объекта
16 Пример редактирования внедренного объекта
Еще более наглядную картину редактирования дает применение операции "Открыть" Она открывает окно редактора формул, показанное на рис 317, позволяющего с полными удобствами редактировать введенное выражение.
Пример выделения мышью части математической формулы
4 Пример выделения мышью части математической формулы
Пример выделения объектов, расположенных в разных местах документа
2 Пример выделения объектов, расположенных в разных местах документа
линиями. Если надо выделить объекты поодиночке (рис. 3. 2), делайте это с помощью мыши при нажатой и удерживаемой клавише Ctrl или Shift. Подведите курсор мыши к нужному объекту и щелкните левой клавишей — объект будет выделен пунктирным прямоугольником. Далее переходите к выделению другого объекта. Расположение выделяемых объектов и порядок их выделения при этом могут быть любыми.
Группа выделенных объектов ведет себя как единый блок, который можно перетаскивать при нажатой левой клавише мыши, что наглядно демонстрирует рис. 3. 3. На нем выделенный на рис. 3. 2 блок из трех объектов перенесен на новое место. Для переноса достаточно уцепиться курсором мыши за край выделения любого блока и добиться, чтобы курсор превратился в темное изображение ладони. Это будет означать возможность перемещения блоков. Напоминаем, что если курсор приобретает вид двусторонних стрелок, то это означает возможность растяжения выделенного блока.
Пример выделения всех объектов командой Select All
8 Пример выделения всех объектов командой Select All
При переносе объектов или при их редактировании возможно частичное II даже полное наложение блоков одних объектов на другие, когда может исчезнуть часть изображения некоторых объектов. Выделение всех объектов полезно для контроля такой ситуации.
Проверка орфографии (Check Speling...)
3. 11. Проверка орфографии (Check Speling...)Для проверки орфографии в англоязычных текстах служит операция Check Speling... (Контроль орфографии) Она обеспечивает проверку орфографического написания слов путем сравнения их с набором эталонных слов в специальном словаре системы. Процесс проверки иллюстрируется примером на рис 3. 11
Редактирование с применением клавиатуры
3. 15. Редактирование с применением клавиатурыРедактирование документов возможно как с применением мыши, так и с помощью клавиатуры. В любом случае прежде всего полезно знать функции графического курсора (маркера). При перемещении по документу он может принимать одну из трех приведенных ниже форм.
Редактирование внедренного объекта, формулы, с помощью редактора формул
17 Редактирование внедренного объекта, формулы, с помощью редактора формул
На рис 317 показано также информационное окно редактора формул с данными о нем. Это окно прямо указывает на то, что используется именно редактор формул из пакета Microsoft Office 95 Сам процесс вставки объектов мы рассмотрим несколько позже при описании подменю позиции Insert глав ного меню
Редактирование внедренных объектов (Object)
3. 14. Редактирование внедренных объектов (Object)С помощью операции Object (она вводится в позиции главного меню Insert) в документ можно вводить объекты из других приложений. На рис. 3. 15 показан такой объект в виде формулы, созданной в редакторе формул приложения Microsoft Word 95.
Если внедренный объект выделен (прямоугольником из сплошных линий), то позиция подменю Edit Object (Объект) становится доступной, что и видно на рис. 3. 15. При этом она открывает доступ к редактированию объекта с помощью того приложения, которое первоначально создало внедренный в документ объект.
Специальная вставка (Paste Special...)
3. 6. Специальная вставка (Paste Special...)Операция специальной вс1авки позволяет вставлять в документ данные, представленные файлами различных форматов Выбор форматов обеспечивается с использованием простого диалогового окна Предусмотрены различные типы форматов текстовый, MathCAD, RTF и Bitmap Операция расширяет возможности подготовки многокомпонентных документов С ее помощью можно, например, подготовив рисунок в графическом редакторе PaintBrush, перенести его в документ системы MathCAD В остальном применение ко манды Paste Special... (Специальная вставка) подобно описанному для команды Paste (Вставить)
Рис 3 7 иллюстрирует технику выполнения специальной вставки В од ном из документов выделены объекты и исполнена операция специальной вставки Она вызывает появление окна вставки, в котором можно выбрать доступный для нее формат
Связывание документов (Links...)
3. 13. Связывание документов (Links...)Операция Links... (Связи) используется после внедрения объектов с применением операций Insert Object и Paste Special. Она выводит диалоговое окно, показанное на рис. 3. 14.
Уничтожение выделенного объекта (Delete)
3. 7. Уничтожение выделенного объекта (Delete)Команда Delete [Ctrl+ D] (Удалить) служит для уничтожения выделенного объекта (в том числе блока выделенных объектов) При этом в буфер обмена объекты не заносятся. Команда полезна для редактирования документов. В отличие от команды Cut (Вырезать) ее применение не загружает буфер обмена и предотвращает нехватку оперативной памяти. Будьте осторожны с этой операцией — можно легко стереть нужный объект, причем в этом случае его восстановить не удастся (придется создавать заново).
Выделение объектов и перенос их в буфер обмена (Cut)
3. 3. Выделение объектов и перенос их в буфер обмена (Cut)Операция Cut [Ctrl+ X] (Вырезать) пересылает выделенный сплошным или пунктирным прямоугольником объект в буфер обмена системы Windows Вы делить сплошным прямоугольником объект можно, введя в него мышью гpaфический курсор и нажав дважды левую клавишу мыши. Пересылаемый one рацией Cut объект поступает в буфер обмена, а его изображение в окне редактирования исчезает (это напоминает вырезку рисунка и его наклейку в другое место — буфер). Для пересылки объекта в буфер обмена подходит и средство, использовавшееся в ранних версиях системы — нажатие клавиши F3.
Объект или группу объектов можно целиком выделить и другим путем. Подведите курсор к объекту (но не вводите в него) Нажмите левую клавишу мыши и, не отпуская, сдвиньте мышь по диагонали. На экране появится прямоугольник из пунктирных черных линий, размеры которого задаются перемещением мыши Как только в этот прямоугольник попадет хотя бы часть какого-либо объекта, этот объект окажется обведен прямоугольником из сплошных черных линий.
Как только левая клавиша мыши будет отпущена, основной прямоугольник исчезнет, но все выделения объектов останутся. Так можно выделить сразу несколько объектов В этом случае они будут выделены пунктирными
Выделение всех объектов (Select All)
3. 8. Выделение всех объектов (Select All)Операция Select All (Выделить все) выделяет все объекты пунктирными прямоугольниками (см. рис. 3. 8). Это позволяет не только отчетливо наблюдать взаимное расположение блоков, но и подмечать степень их перекрытия. Как правило, оно нежелательно.
Замена подстроки (Replace...)
3. 10. Замена подстроки (Replace...)Операция Replace... [Shift+ F5] (Заменить) служит не только для поиска заданной подстроки (в тексте или математическом выражении), но и для ее замены другой подстрокой. При исполнении этой операции появляется окно с предложениями о вводе подстрок.
Find (Что): Искомая_строка Change to (Чем) Строка замены
Окно содержит также указания на характер замены, по всему документу, однократная замена, игнорирование замены (рис 3 10)
Как и в случае с операцией Find, операцию Replace... можно применять неоднократно К сожалению, в текстах на русском языке иногда могут возникнуть трудности при поиске и замене слов, поскольку система замены создавалась для англоязычных текстов Тем не менее обычно система поиска и замены работает и при русскоязычных надписях.
Замена слова "символьном" на слово "аналитическом" с помощью операции Replace...
10 Замена слова "символьном" на слово "аналитическом" с помощью операции Replace...
С самого своего появления системы
С самого своего появления системы класса MathCAD имели удобный пользовательский интерфейс -- совокупность средств общения с пользователем. У этой системы есть и эффективные средства типовой научной графики, они просты в применении и интуитивно понятны. Словом, системы MathCAD ориентированы на массового пользователя, от ученика начальных классов до академика.В последнее время особый интерес проявляется к системам, способным выполнять не только числовые, но и аналитические вычисления. В 80-е годы школа советского академика Глушкова внесла большой вклад в разработку таких программных систем (язык Аналитик) и в создание инженерных мини-ЭВМ, аппаратно реализующих аналитические вычисления (серия "Мир"). К сожалению, эти ЭВМ были вытеснены вначале машинами класса ЕС-ЭВМ, а затем и персональными компьютерами, и теперь мы наблюдаем развитие нового поколения зарубежных систем компьютерной алгебры, ориентированных на современные массовые ПК
[9 — 13].
Многие известные математические программы для ПК класса IBM PC -- от некогда популярного языка символьных вычислений Reduce [18] до мощной, быстрой и легко развиваемой системы MatLAB под MS-DOS — имели примитивный интерфейс, заимствованный из опыта начинающих программистов и любителей "дедушки" Бейсика, в новых версиях почитаемого и поныне. А системы с более современным (в конце 80-х годов) многооконным интерфейсом, например Eureka фирмы Borland [3], серьезному математику казались примитивными.
Неплохо бы соединить приятное с полезным! К такому выводу первой пришла фирма MathSoft (США) -- разработчик подлинного шедевра среди математических систем (MathCAD). Из обзоров автора [6--8] и его справочной книги [5] многие читатели уже знают, что отличительной чертой интегрированных математических систем MathCAD является подготовка документов, которые объединяют задание исходных данных, математическое описание их обработки и результаты вычислений (в виде числовых данных, таблиц и графиков). Текст документа в MathCAD почти ничем не отличается от текста научных статей. Удачно решена в MathCAD проблема передачи изменений численных данных в формулах по всей цепочке вычислений.
В начале 90- х годов произошло давно ожидаемое событие: серьезная математика в виде интегрированной системы MathCAD 3.0 прорвалась в окна системы Windows [11]! После этого почти все фирмы -- разработчики программных средств наперегонки бросились дорабатывать свои программы под Windows.
Ко времени выпуска MathCAD 3.0 под Windows далеко не каждый наш пользователь имел под рукой ПК класса 386 или 486 с установленной на нем операционной системой Windows. Однако обзор западной литературы по информатике и тенденций развития вычислительной техники убедительно показывал, что система Windows стремительно выдвинулась на роль лидера среди современных операционных систем для персональных компьютеров. Большинство серьезных программных продуктов перерабатывается под Windows 3.1/3.11, а сейчас уже под 32-разрядную (в основном) операционную систему Windows 95. В то же время количество программ под MS- DOS стремительно сокращается.
На Западе уже давно прекращен серийный выпуск ПК на микропроцессорах 386 и сворачивается производство ПК на процессоре 486. В России ситуация также изменилась. Новое поколение ПК -- это машины серии Pentium/ Pentium Pro. Стоимость их постоянно снижается, и машины этого класса становятся доступными не только для организаций, но и для дома. Наиболее часто приобретаемыми ПК уже стали на машины с микропроцессорами класса 486DX4-100 и Pentium 100/133.
Именно на машины этого класса и ориентированы версии MathCAD 6.0 и PLUS 6.0 PRO, хотя, в принципе, вполне возможна их работа и на ПК с микропроцессором 386.
Тем более, что пользователи, работающие с системой MathCAD под MS-DOS, всегда ощущали определенный дискомфорт из-за присущих ей принципиальных пороков, унаследованных от операционной системы MS- DOS. К примеру, при альтернативной кодировке символов знакогенераторов дисплея и принтера пропадала большая часть греческих букв, широко используемых в математических формулах. Много недоразумений возникало с печатью документов принтерами, искажались некоторые математические спецзнаки, нарушались форматы таблиц и т. д. Качество печати также оставляло желать лучшего. Шрифты не имели сменных наборов стилей, их размеры были фиксированными.
Не только профессионалы-аналитики, но и просто любители и почитатели математики быстро теряли интерес к системе, как только возникала необходимость в выполнении даже простейших символьных вычислений, нужных для этого средств версии системы MathCAD под MS-DOS были попросту лишены. Да и набор математических формул (не говоря уже об их поиске в справочных книгах) был занятием далеко не самым легким и приятным, поскольку требовал знания десятков комбинаций различных клавиш.
Опыт работы автора даже с первой системой MathCAD 3.0 под Windows позволяет сделать вывод, что студенты, аспиранты, инженеры и ученые получили в свои руки превосходный инструмент для повседневной работы. Теперь для написания научной статьи или диссертации они могут обойтись только системой MathCAD под Windows и встроенными в Windows средствами.
К средствам новых версий MathCAD относятся настройка под любой мало-мальски известный тип печатающего устройства, богатый набор шрифтов, возможность использования всех инструментов Windows, прекрасная графика и современный многооконный интерфейс. А в новейшую версию MathCAD PLUS 6.0 PRO добавлены эффективные средства оформления документов в цвете, создания анимационных (движущихся) графиков и звукового сопровождения. Тут же текстовый, формульный и графический редакторы, объединенные с мощным вычислительным потенциалом. Отсюда и название таких систем — интегрированные.
Математики, физики и ученые из других, смежных отраслей науки давно мечтали о математически ориентированном языке программирования для записи алгоритмов решения математических и научно-технических задач в наиболее удобной, компактной и доступной для понимания форме. Для этого они пытались приспособить различные языки программирования высокого уровня -- Фортран, Алгол, Бейсик, Паскаль и др. Но их попытки так и не увенчались успехом -- программы на этих языках, увы, ничем не напоминали привычные математические и физические символы и формулы, с которыми все привыкли работать и с помощью которых описываются решения математических задач.
Выпустив за какие- то три года целую серию систем MathCAD, ориентированных под Windows и имеющих некоторые средства для выполнения символьных операций компьютерной алгебры, фирма MathSoft наглядно показала свое несомненное лидерство в быстрой разработке популярных математических систем. Этому способствовало привлечение к разработкам систем MathCAD известной компании Waterloo Maple Software -- создательницы одной из самых мощных и интеллектуальных систем компьютерной алгебры Maple V [12].
Совсем недавно лидером среди систем компьютерной алгебры признавалась система Mathematica 2 фирмы Wolfram [13]. Но сегодня ей на пятки уже наступает упомянутая система Maple V R3 с реализацией под Windows [12]. Появилась и новая реализации этих систем – Maple V R4. Впрочем, уже есть и новая мощная версия системы Mathematica 3. Однако все эти системы имеют явную избыточность средств символьной математики, что удобно для математиков высшей квалификации, но отнюдь не для массового пользователя.
Оставаясь по-прежнему мощной системой для численных расчетов, MathCAD начиная с версии 3.0 приобрела возможности выполнения некоторых символьных операций, т. е. стала системой компьютерной алгебры. Для этого по лицензии от фирмы Maple в систему MathCAD было введено урезанное ядро символьных операций от системы Maple V. Число таких операций, доступных пользователю из меню, тщательно оптимизировалось и было ограничено тем разумным минимумом, который необходим массовому пользователю. Тем не менее символьные возможности систем расширялись от версии к версии, наиболее полно они представлены в версии MathCAD PLUS 6.0 PRO.
Начиная с версии 4.0 система MathCAD стала 32-разрядной. Это означает, что для ее работы задействованы самые быстрые и эффективные команды современных микропроцессоров, прежде всего класса Pentium и Pentium Pro. В результате, несмотря на заметное увеличение математических возможностей, скорость действия системы не только не уменьшилась, но и заметно возросла.
Помимо ориентации под Windows новые версии системы MathCAD содержат множество усовершенствований: удобное и простое управление мышью, более совершенный редактор документов, возможность выполнения наиболее распространенных символьных вычислений, встроенные электронные книги, мощную систему помощи и возможность работы одновременно с восемью документами (задачами).
Предусмотрен импорт любых графических изображений -- от простых и специальных графиков функций до многокрасочных репродукций художественных произведений. Введены средства анимации рисунков и проигрывания видео-- файлов со звуковым стереофоническим сопровождением. Это значительно улучшает визуализацию самых сложных расчетов.
Справочная база данных о системе в MathCAD PLUS 6.0 PRO реализована гораздо полнее, чем в ранних версиях. Она дает возможность ознакомления с основными возможностями MathCAD, разумеется, если пользователь хорошо владеет английским языком. В русифицированных версиях MathCAD справочная база данных реализована на русском языке, что является главным побудительным мотивом к применению таких версий.
Особый интерес представляют встроенные в систему электронные книги, содержащие справки и примеры применений системы по ряду разделов математики, механики, физики, электротехники и радиотехники, а также по интерфейсу системы. Справки содержат математические формулы и иллюстрации. Можно выделить нужную справку -- формулу или рисунок -- и перенести ее в текст документа. В сочетании с возможностью импорта графических файлов из других графических систем (таких, как VISIO, AutoCAD, PCAD, TurboCAD и др.) это позволяет готовить документы, содержащие наряду с расчетной частью высококачественные иллюстрации.
Существенно улучшена графика системы. В ранних версиях при построении графиков функций перечисление этих функций шло в одну строчку. Это приводило к смещению графика от левой части экрана вправо. Кроме того, было неясно (особенно при монохромном дисплее и распечатке документов не цветным принтером), к какой функции относится та или иная кривая.
Эти недостатки устранены в новой версии. Теперь имена перечисляемых функций располагаются друг под другом вместе с указаниями на тип линии, ее цвет (в виде короткого отрезка соответствующих цвета и типа) и наличие меток того или иного типа (кружки, крестики, квадратики и т. д.). Существенно упростились перемещение рисунков и изменение их размеров (с помощью мыши), повысилась точность позиционирования рисунков.
Пользователи будут приятно удивлены тем, что все версии MathCAD под Windows позволяют работать как с латинскими буквами, так и кириллицей (буквами русского алфавита), греческим алфавитом и вообще с любыми символами, доступными в Windows. Более того, благодаря применению масштабируемых TTF-шрифтов можно управлять как размером символов, так и их стилем (делая буквы прямыми или наклонными, тонкими или жирными). Все это дает возможность готовить документы и электронные книги высокого качества и на английском, и на русском языках. Эта возможность есть как в русифицированных, так и в англоязычных версиях MathCAD.
Впрочем, не стоит забывать, что это достоинство -- результат работы системы в среде Windows, которая также русифицирована. Греческие символы и математические спецзнаки раньше были недоступны в текстовых комментариях, теперь же и этот недостаток полностью устранен.
Последние версии системы MathCAD дают новые средства для подготовки сложных документов. В них предусмотрено красочное выделение отдельных формул, многовариантный вызов одних документов из других, возможность закрытия “на замок” отдельных частей документов, гипертекстовые и гипермедиа-переходы и т. д. Это позволяет создавать превосходные обучающие программы и целые книги по любым курсам, базирующимся на математическом аппарате. Здесь же реализуется удобное и наглядное объектно-ориентированное программирование сложнейших задач, при котором программа составляется автоматически по заданию пользователя, а само задание формулируется на естественном математическом языке общения с системой.
Сейчас для обучения работе с системой фирма MathSoft предлагает набор простых и коротких примеров решения типовых математических задач. Поэтому наряду с электронными книгами по расчетам (BookSampler) и интерфейсу (Desktop Reference) и самоучителем (Tutorial) MathCAD содержит множество коротких примеров QuickSheet – шпаргалок [14], с которыми можно быстро ознакомиться перед решением той или иной проблемы. Большое количество таких новых примеров описано и в настоящей книге (см. главу 12). При этом они не повторяют, а дополняют имеющиеся в документах примеры применения MathCAD.
С выходом настоящей книги заинтересованный читатель получает достаточно полную информацию как о самих системах класса MathCAD, так и о практике их применения в массовых общетехнических и математических расчетах. Более подробные сведения о разных версиях систем класса MathCAD содержатся в главе 11.
На сегодняшний день пользователь имеет большой выбор систем этого класса. Если он располагает лишь не очень мощным ПК с процессором 386 и емкостью ОЗУ 2 Мбайта, ему вполне подойдет MathCAD 3.0. На среднем по нынешним временам ПК 486DX с ОЗУ 4 Мбайта разместится система MathCAD 4.0 или 5.0. Пользователи, предпочитающие современные ПК, могут воспользоваться более мощными версиями PLUS 5.0 и PLUS 6.0 PRO.
1.2. Инсталляция и запуск системы
Системы MathCAD поставляются на магнитных дисках, а в последнее время в основном на CD-ROM. Для установки системы MathCAD PLUS 6.0 PRO нужен ПК класса 386/486/Pentium/Pentium Pro с емкостью ОЗУ не менее 8 Мбайт. На ПК должна быть установлена операционная система класса Windows 3.1/3.11 (правильнее рассматривать ее как графическую надстройку над MS-DOS), Windows 95 или Windows NT. Объем оперативной памяти должна быть не меньше 12 Мбайт, а свободное пространство на диске — 20 Мбайт. При этом еще 3 Мбайта свободного пространства должно быть в том разделе жесткого дика, где установлена операционная система Windows.
Вообще говоря, для работы системы MathCAD математический сопроцессор не нужен. Однако его наличие ускоряет выполнение многих цифровых вычислений и построение графиков. Начиная с процессоров 486DX математический сопроцессор встраивается в центральный процессор, что дает наибольшее повышение производительности для таких операций.
Следует также учитывать, что начиная с версии MathCAD 4.0 система ориентирована на использование быстрых 32-разрядных команд микропроцессоров 386/486/Pentium. Поэтому Windows 3.1/3.11 должна быть дополнена системой Win32s, которая может инсталлироваться как отдельно, так и с различными приложениями, в том числе MathCAD 4.0 и выше. 32-разрядные операционные системы Windows 95 и Windows NT не требуют инсталляции Win32s, поскольку изначально ориентированы на возможность работы с 32-разрядными приложениями.
Как отмечалось, новые версии MathCAD дополнены возможностью вывода анимационных изображений, получивших название “живого” видео. Однако для реализации этой возможности также нужно дополнительное программное обеспечение в виде видеосистемы Microsoft Video for Windows 1.0/1.1. Эта программа может инсталлироваться отдельно или (если она ранее не была установлена) в процессе инсталляции системы MathCAD. А для реализации звукового сопровождения необходимо оснащение ПК аудиоадаптером, совместимым со звуковыми картами класса Sound Blaster, и звуковыми колонками.
С учетом отмеченных особенностей инсталляция системы не вызывает особых проблем и проходит гладко. Если возникают специфические трудности (как правило, при неудачной и нетиповой конфигурации ПК), следует ознакомиться с довольно детальной инструкцией по инсталляции, приведенной в файле readme.
После инсталляции в рабочем окне системы Windows вы обнаружите пиктограмму с изображением счетов и надписью MathCAD PLUS 6.0 PRO. Будучи открытым, окно этой пиктограммы примет вид, показанный на рис. 1.1.
Рис. 1.1. Группа пиктограмм системы MathCAD PLUS 6.0 PRO
То, что система MathCAD PLUS 6. 0 PRO профессиональная, вовсе не означает, что для обычных пользователей работа с ней будет в чем-то сложнее, чем с упрощенной версией MathCAD 6.0. Все эти версии имеют одинаковый пользовательский интерфейс и отличаются лишь полнотой набора встроенных операторов и функций и объемом сопроводительной документации. Так что вопреки логике работа с версией "PRO" проще для любого пользователя, ведь именно эта версия содержит наиболее мощный справочно-информационный раздел и обладает наибольшими возможностями немедленного применения.
В прежних версиях MathCAD под Windows пиктограмма запуска имела вид калькулятора. Некоторые пользователи поневоле из-за этого отождествляли MathCAD с микрокалькулятором в Windows. Однако они отличаются примерно так же, как космический “челнок” отличается от бумажного голубка, сотворенного руками ребенка! Видимо, учтя это, MathSoft изменила пиктограмму, изобразив ее в виде счетов, -- вряд ли кто-либо заподозрит, что MathCAD PLUS 6.0 PRO уподобляется этаким большим электронным счетам.
В дальнейшем, говоря о системе MathCAD, мы будем подразумевать ее последнюю оригинальную англоязычную версию -- MathCAD PLUS 6.0 PRO. Номер версии будет указываться только в том случае, если соответствующий материал относится именно к ней. При этом практически весь материал глав 1–10 в равной мере относится ко всем версиям систем MathCAD под Windows.
Запустив MathCAD из Windows, вы обнаружите окно, некий гибрид типового окна Windows-программ и диалогового окна, столь привычного для пользователям ранних версий MathCAD. Вид этого окна сразу после загрузки системы показан на рис. 1.2.
Рис. 1.2. Окно системы MathCAD
Обычно при первой загрузке системы ее окно появляется не полностью открытым (на рис. 1.2 под ним видны пиктограммы других приложений менеджера программ Windows 3.11).
Как известно, Windows -- многозадачная система, позволяющая быстро переключаться с решения одной задачи на решение другой (в частности, путем одновременного нажатия клавиш Alt и Tab). Возможно также управление окнами различных приложений. Для этого в правом верхнем углу окна MathCAD помещены два квадратика с черными треугольниками, вершины которых обращены вверх и вниз. Если указать курсором мыши на треугольник с вершиной, обращенной вверх, и щелкнуть левой клавишей мыши, то окно системы распахнется во весь экран. То же действие с треугольником, вершина которого обращена вниз, ведет к свертыванию окна системы -- оно превратится в пиктограмму. Кнопка с двумя треугольниками переключает размер окна с неполного на полное и обратно.
С помощью клавиш Alt и Tab можно быстро переключаться в Windows из одного приложения в другое, например из текстового редактора или программы Autocad в MathCAD. При этом (что является принципиальным отличием от работы в среде MS- DOS) работа каждого приложения временно прекращается в том состоянии, какое было перед переключением окон. С этого же состояния приложение начинает работать, как только его окно делается активным.
1.3. Основы пользовательского интерфейса
Под интерфейсом пользователя подразумевается совокупность средств графической оболочки MathCAD, обеспечивающих легкое управление системой как с помощью клавиатуры, так и с помощью мыши. Под управлением понимается и просто набор необходимых символов, формул, текстовых комментариев и т. д., и возможность полной подготовки в среде MathCAD документов (WorkSheets) и электронных книг с последующим их запуском в реальном времени.
Пользовательский интерфейс системы создан так, что пользователь, имеющий элементарные навыки работы с Windows-приложениями, может сразу начать работу с MathCAD. Интерфейс системы внешне очень напоминает интерфейс широко известных текстовых приложений Word 6.0/7.0 под Windows. Это, в частности, позволило несколько сократить описание общепринятых для Windows-приложений деталей работы с ними.
Окно редактирования
Сразу после запуска система готова к созданию документа с необходимыми пользователю вычислениями. Соответствующее окно редактирования получает название Untitled:N, где N — порядковый номер документа. Он начинается с цифры 1, максимальный номер окна — 8.
Основную часть экрана занимает окно редактирования, первоначально пустое. Линейки на нижней и правой кромке текущего окна, так называемые полосы прокрутки, предназначены для перемещения (скроллинга) изображения на экране по горизонтали и вертикали. Для этого достаточно установить курсор-стрелку мыши на квадратике со стрелкой, указывающей направление перемещения, и нажать левую клавишу мыши. При этом будет обеспечено плавное, перемещение изображения в окне. Можно перемещать изображение намного быстрее, установив курсор-стрелку в поле линейки и также нажав клавишу мыши. При этом длина линейки соответствует полной длине документа, так что курсором можно сразу приблизительно указать на часть документа, выводимую в окно.
Вверху окна видно несколько строк с основными элементами интерфейса. Верхняя строка — строка заголовка. Она отображает название загруженного или вводимого с клавиатуры документа. В левой части строки помещена стандартная кнопка управления окном, а в правой части -- кнопки свертывания окна в пиктограмму и развертывания его во весь экран.
Если используется русифицированная версия Windows, то левая кнопка выведет на экран меню с русскими названиями опций. Дело в том, что эти кнопки типичны для всех Windows-приложений. Они относятся не к системе MathCAD как таковой, а ко всей системе Windows.
Главное меню и наборные панели
Вторая строка окна системы -- главное меню. Оно будет описано в дальнейшем, пока же отметим, что работа с документами MathCAD обычно не требует обязательного использования возможностей главного меню, т. к. основные из них дублируются пиктограммами управления.
Вместо столбикового переключателя математических знаков, применяемого в более ранних версиях MathCAD под Windows, в шестой версии используются более удобные перемещаемые наборные панели (в оригинале Palletes -- палитры) с такими знаками. Они служат для вывода заготовок -- шаблонов математических знаков (цифр, знаков арифметических операций, матриц, знаков интегралов, производных и т. д.).
Пиктограммы вывода наборных панелей занимают третью сверху строку окна системы (см. рис. 1.3, на котором оставлены только эти пиктограммы). Наборные панели появляются в окне редактирования документов при активизации соответствующих пиктограмм -- первая линия пиктограмм управления системой. На рис. 1.3 представлены все наборные панели, причем рядом с ними повторены соответствующие пиктограммы их вызова. Интересующимся полезно знать, что пиктограммы повторяют рисунки в справочном разделе и демонстрируют возможность переноса рисунков из него в окно редактирования. Как это делается, рассмотрим позже.
Рис. 1.3. Наборные панели системы MathCAD
Наборные панели намного удобнее столбикового переключателя в прежних версиях системы, у которого был виден лишь один столбец с математическими знаками. На наборной панели, помимо того, что на ней одновременно видны все математические знаки (причем они отчетливо различимы), можно вывести или все панели сразу, или в нужном количестве (рис. 1.3). Для установки с их помощью необходимого шаблона (объекта) достаточно поместить курсор в желаемое место окна редактирования (красный крестик на цветном дисплее) и затем активизировать пиктограмму нужного шаблона, установив на него курсор мыши и нажав ее левую клавишу.
Применение пиктограмм для вывода шаблонов математических знаков очень удобно, поскольку не надо запоминать разнообразные сочетания клавиш, используемые для ввода специальных математических символов. Впрочем, и эта возможность сохранена, так что привыкшие к работе с клавиатурой пользователи, имевшие дело с более ранними версиями системы MathCAD (в том числе под MS-DOS), могут воспользоваться навыками виртуозного набора формул и при работе с новой версией системы.
Любую наборную панель можно переместить в удобное место экрана, уцепившись за ее верхнюю часть курсором мыши. Перемещая панель, левую клавишу мыши нужно держать нажатой. В верхнем левом углу каждой наборной панели помещена маленькая кнопка со знаком минус, служащая для устранения панели с экрана, как только она становится ненужной.
Большинство кнопок на наборных панелях вводят общепринятые и специальные математические знаки и операторы, выводя их шаблоны в месте расположения курсора на документе. Позже мы последовательно рассмотрим все эти знаки, в том числе на первый взгляд неочевидные.
Панель инструментов
Четвертую строку окна системы занимает панель инструментов (Toolbox). Она содержит несколько групп пиктограмм управления, каждая из которых дублирует одну из важнейших операций главного меню. Глядя на эти пиктограммы (см. рис. 1.2), можно легко уяснить их функции. Стоит только остановить курсор мыши на любой из этих пиктограмм, как в желтом окошечке появится текст, объясняющий функции пиктограммы.
Надо отметить, что строки с пиктограммами тоже можно мышью свернуть в наборную панель и поместить в любое место экрана. Такую панель легко закрыть с помощью кнопки с жирным знаком минус. Так интерфейс системы модифицируется, и пользователь может подстроить его под свой вкус. Рассмотрим действие пиктограмм управления.
Пиктограммы операций с файлами
Документы системы MathCAD являются файлами. Файлы можно создавать, загружать (открывать), записывать и распечатывать принтером. Соответственно файловые операции представлены в инструментальной панели первой группой из четырех пиктограмм:
New (Создать) -- создание нового документа с очисткой окна редактирования;
Open (Открыть) -- загрузка ранее созданного документа из диалогового окна;
Save (Сохранить) -- запись текущего документа с его именем;
Print (Печать) -- распечатка документа на принтере.
Ниже мы рассмотрим эти операции более подробно.
Пиктограммы операций редактирования
Во время подготовки документов их приходится видоизменять и дополнять — редактировать. Следующие четыре пиктограммы служат для выполнения операций редактирования документов:
Undo (Отменить) -- отмена предшествующей операции редактирования;
Cut (Вырезать) -- перенос выделенной части документа в буфер обмена (Clipboard) с очисткой этой части документа;
Copy (Копировать) -- копирование выделенной части документа в буфер обмена с сохранением выделенной части документа;
Paste (Вставить) -- перенос содержимого буфера обмена в окно редактирования на место вставки.
Три последние операции связаны с применением буфера обмена. Его возможности и назначение хорошо известны пользователям Windows. Он предназначен для временного хранения данных и их переноса из одной части документа в другую либо для организации обмена данными между различными приложениями.
Пиктограммы размещения блоков
Здесь уместно отметить, что документы состоят из различных блоков: текстовых, формульных, графических и т. д. Блоки просматриваются системой, интерпретируются и исполняются. Просмотр идет справа налево и снизу вверх. Две операции размещения блоков представлены пиктограммами следующей группы:
Align Horizontal (Выровнять по горизонтали) -- блоки выравниваются по горизонтали;
Align Vertical (Выровнять по вертикали) -- блоки выравниваются по вертикали.
Эти пиктограммы изображают блоки и указанные варианты их размещения. Определенное размещение блоков в некоторых случаях имеет значение. Например, нередко результат операции желательно разместить в одной строке с заданием на операцию. А размещение блоков по вертикали характерно для больших документов.
Пиктограммы текстовых операций
Один из видов блоков -- текстовые блоки (или области -- Regions). Обычно с их помощью создаются неисполняемые текстовые комментарии с включенными в них (при необходимости) математическими формулами. Для создания и контроля текстовых блоков служат пиктограммы:
Create Text Region (Создать текстовую область ["]) -- создание текстовой области малого размера с шириной, меньшей полной ширины строки;
Create Text Paragraph (Создать текстовый параграф [Ctrl+T]) -- создание текстовой области под параграф с шириной, равной максимальной ширине строки;
Check Speling (Проверить орфографию) -- включение грамматического контроля (пока даже для русских версий MathCAD доступна проверка орфографии только англоязычных текстов).
Первая операция (пиктограмма с заглавной буквой A) используется для задания небольших комментариев, тогда как вторая операция позволяет готовить объемные тексты. К сожалению, грамматический контроль (пиктограмма с буквами ABC над птичкой) возможен только для англоязычных текстов.
Пиктограммы установки режимов работы
Просмотр, интерпретация и исполнение блоков могут выполняться в автоматическом или ручном режиме. Обычно пользователи предпочитают автоматический режим. Для переключения режимов работы служит группа из двух пиктограмм:
Automatic Mode (Автоматический режим) -- включение режима автоматической работы;
Live Symbolic (Символьный процессор) -- включение режима SmartMath для “интеллектуальных” символьных операций.
Применение символьных операций связано с повышенными затратами аппаратных ресурсов, в частности памяти. Поэтому предусмотрено включение режима символьных операция только тогда, когда это необходимо. На кнопке-пиктограмме первой операции помещено изображение лампочки, а на второй -- академической шапочки.
Пиктограммы операций с выражениями
Формульные блоки часто являются вычисляемыми выражениями или выражениями, входящими в состав заданных пользователем новых функций. Для работы с выражениями служат пиктограммы:
Calculate (Пересчитать) -- вычисление выделенного выражения;
Choose Function (Вставить функции) – вставить функцию из списка, появляющегося в диалоговом окне.
Если документы большие, то при их изменениях не всегда выгодно запускать вычисления с самого начала. Операция Calculate (Пересчитать) позволяет запускать вычисления для выделенных блоков, что может уменьшить время вычислений. Пиктограмма первой операции представляет собою изображение знака =, а второй -- f(x).
Пиктограммы размера и вывода единиц измерения
Следующие две пиктограммы задают:
Zoom (Масштаб) -- управление размером (масштабом) экрана;
Insert Utit (Вставить единицы) – вставку размерных единиц.
Хотя прямой связи между этими операциями нет, соответствующие пиктограммы расположены рядом. Управление размером экрана (пиктограмма имеет вид лупы со значком ±) полезно при просмотре больших документов, поскольку их ширина и длина могут превосходить размеры видимой в окне редактирования области. Пиктограмма второй операции имеет вид мерной кружки.
Пиктограммы работы со справочной базой данных о системе
Заключительная группа из двух пиктограмм задает обращение к примерам применения и встроенной справочной базе данных системы:
Quick Sheets (Шпаргалки) -- быстрый вызов примеров применения системы;
Help (Справка) -- вызов справочной базы данных о системе.
Указанных операций вполне достаточно для работы с документами без применения других возможностей главного меню. Пиктограммы этих операций имеют вид вопросительного знака (наклонного для первой операции и жирного прямого для второй).
Другие элементы пользовательского интерфейса
Пятая строка верхней части экрана содержит типовые средства управления шрифтами: переключатели типа символов, набора фонтов шрифта и размеров шрифта, три пиктограммы типа шрифтов (полужирный курсив и подчеркивание), а также три пиктограммы расположения букв в строке (рядом, надстрочное и подстрочное).
До тех пор пока не начат набор элементов документа, часть описанных пиктограмм находится в пассивном состоянии. В частности, в окнах переключателей панели форматирования нет надписей. Пиктограммы и переключатели становятся активными, как только появляется необходимость в их использовании.
Внизу экрана кроме полосы горизонтальной прокрутки расположена еще одна строка – строка состояния. В ней выводится служебная информация, краткие комментарии, номер страницы документа и др. Эта информация полезна для оперативной оценки состояния системы в ходе работы с нею.
Вид окна системы может меняться. В дальнейшем будет показано, что возможно удаление отдельных деталей интерфейса, например строки с пиктограммами вывода наборных панелей, инструментальной панели и панели управления шрифтами. Если все окна документов закрыты, может резко сократиться и число позиций главного меню (см. рис. 1.4). Исчезают те позиции, которые не имеют смысла при отсутствии редактируемого документа.
Рис. 1.4. Вид окна системы MathCAD при всех закрытых окнах документов
Указанные объекты интерфейса можно перемещать по экрану с помощью мыши. Например, можно поместить строку форматирования рядом с пиктограммами наборных панелей, вынести в любое место экрана инструментальную панель и т. д. Таким образом, интерфейс несложно подстраивать под запросы пользователя.
Изложение всех возможностей управления системой MathCAD под Windows потребует описания большей части возможностей Windows. К счастью, большая часть правил работы с Windows одинакова для любого приложения, работающего в системе, и интуитивно предсказуема. К примеру, для изменения размера окна достаточно установить курсор-стрелку мыши на пограничную линию окна. Вид курсора изменится: стрелка станет двусторонней. Если теперь нажать и удерживать левую клавишу мыши, то можно перемещать границу окна, меняя его размеры. Точно так же (установив стрелку-курсор на верхнюю титульную линию окна) можно плавно перемещать окно по всему экрану.
На этом мы закончим рассмотрение возможностей пользовательского интерфейса MathCAD и посоветуем читателю получше узнать общие правила работы с приложениями под Windows, прежде чем всерьез осваивать работу с MathCAD.
1.4. Особенности интерфейса при запуске из Windows 95
Рассмотрим некоторые особенности работы системы MathCAD в ставшей популярной и массовой операционной системе Windows 95.
Windows 95 построена таким образом, что она несколько меняет вид некоторых компонентов пользовательского интерфейса. Это хорошо заметно на рис. 1.5, где показан вид экрана системы Windows 95 с загруженным приложением MathCAD.
Рис. 1.5. Окно системы MathCAD на рабочем столе операционной системы Windows 95
Первое, что бросается в глаза, -- более мелкие надписи, относящиеся к главному меню. Модернизации подверглась и строка заголовка -- в правой ее части видны три маленькие кнопки-пиктограммы для сворачивания окна в пиктограмму, увеличения или уменьшения размеров окна и завершения работы с приложением. Они характерны для окон всех приложений Windows 95. В остальном вид окна MathCAD остался прежним. Строка задач (Task Bar) с кнопкой Пуск обычно при работе с Windows 95 остается видимой. На этой панели появляются названия работающих приложений, которые (если их несколько) можно переключать. Кнопка Пуск выводит главное меню Windows 95.
1.5. Входной язык системы MathCAD
Отличительной чертой MathCAD является работа с так называемыми документами. Документы объединяют описание математического алгоритма решения задачи (или ряда задач) с текстовыми комментариями и результатами вычислений, заданными в форме символов, чисел, таблиц или графиков. В оригинале документы системы MathCAD названы английским словом Sheets.
Уникальное свойство MathCAD — возможность описания математических алгоритмов в естественной математической форме с применением общепринятой символики для математических знаков, таких, например, как квадратный корень, знак деления в виде горизонтальной черты, знак интеграла и т. д. Это делает документ, видимый на экране дисплея, чрезвычайно похожим на странички текста из математических книг и научных статей.
Такой подход значительно облегчает восприятие математической сущности решаемой задачи и избавляет пользователя от изучения некоторого промежуточного языка программирования (например, Фортрана, Бейсика, Паскаля и т. д.). Можно сказать, что в MathCAD методы решения математических задач без их программирования доведены до совершенства.
Разумеется, это не означает, что в системе нет своего языка программирования. В действительности он есть, но это математически ориентированный особый язык программирования сверхвысокого уровня, используемый в основном как входной язык для диалога с системой. В подавляющем большинстве расчетных задач этот язык позволяет задать их решение в виде вводимых математических формул и указать тип желаемых результатов (таблицы или графики). Специальные приемы введены лишь для задания циклического изменения переменных и создания так называемых ранжированных переменных.
По существу, входной язык системы — промежуточное звено между скрытым от пользователя истинным языком программирования и текстом документа, видимым в окне дисплея. По мере того как пользователь создает (средствами текстового, формульного и графического редакторов) в окне дисплея объекты (тексты, формулы, таблицы и графики), система сама составляет программу, которая хранится в ОЗУ до тех пор, пока не будет сохранена на диске в виде файла с расширением .mcd. Текст такого файла, прочитанный любым текстовым редактором, фактически является обычной программой. Однако важно подчеркнуть, что от пользователя не требуется знать язык программирования, достаточно освоить приближенный к естественному входной язык системы.
В версии MathCAD 6.0 резко снижены требования к знанию даже входного языка. Практически все операторы можно вводить мышью, а большинство математических функций (например, sin, cos, exp и т. д.) имеют естественную форму задания, например, sin(x) так и вводится как sin(x). К тому же есть возможность выбора из списка, имеющегося в специальном окне, что уменьшает вероятность ошибок при вводе документов.
Работа с системой приобрела характер визуального объектно-ориентированного программирования. При этом решающим является задание объектов, а программу составляет сама система. Более того, в MathCAD (к сожалению, не для символьных операций) эффективно решена проблема сквозной передачи данных от одного объекта к другому, например от одного математического выражения к другому, от него к таблицам, от таблиц к графикам и т. д. Поэтому изменение в любой формуле или в задании входных данных тут же ведет к пересчету задачи по всей цепи взаимодействия объектов.
Лучшее враг хорошего! Это в полной мере можно сказать о входном языке предшествующих версий MathCAD. Этот язык был доведен до такого "совершенства", что в нем исчезли многие основополагающие средства программирования, например циклы, условные выражения, процедуры и т. д., в их привычном для программистов виде. В результате пользователь, привыкший к обычному программированию, испытывал большие неудобства от замены этих средств непривычными средствами системы MathCAD. Тем более, что иногда описание задачи в общепринятом на языках программирования виде оказывается предпочтительным и более коротким.
Некоторые критики системы MathCAD, как правило, даже не работающие с нею, говорят, что реализация решения математических задач в среде MathCAD отучает пользователя от познания фундаментальных основ реализации математических численных методов обычными средствами программирования. Это обвинение абсолютно абсурдно. MathCAD как раз и позволяет описать любые алгоритмы реализации численных методов привычным для математиков языком обычных формул.
Впрочем, версии MathCAD 6.0 и PLUS 6.0 PRO избавились и от этого "недостатка". В них включены важнейшие средства программирования и предусмотрена возможность задания программных блоков -- процедур с общепринятыми операторами программирования. В совокупности с иными средствами входного языка это делает его необычайно гибким, мощным и наглядным.
Входной язык системы MathCAD -- интерпретирующего типа. В интерпретаторах, например в Бейсике, листинг программы пользователя просматривается сверху вниз (а в пределах строки — слева направо), и любые указания в программе тут же выполняются. Так же просматриваются и блоки в системе MathCAD. Как только блок опознается, система автоматически запускает внутренние подпрограммы выполнения необходимых действий, например вычисления по формуле, вывод таблицы значений вектора, построение рисунка по его шаблону и т. д. В общем, это напоминает интерпретацию высшего уровня, при которой пользователь не опускается до таких мелочей, как составление необходимых подпрограмм, хотя, как отмечалось, теперь и это возможно.
Интерпретаторы работают медленно, поэтому не случайно, что пользователи, работавшие со старыми версиями MathCAD, отмечали медлительность систем, особенно при сложных вычислениях и при построении графиков. Медлительность является и следствием работы систем в графическом режиме, когда малейшее изменение содержания экрана требует его полной перерисовки.
Начиная с версии MathCAD PLUS 5.0 в систему введена возможность ее расширения функциями, которые задаются обычными программами на языке Cи или Cи++. Однако это не позволяет эффективно и просто решить проблему расширения возможностей системы. На Cи или Cи++ хорошо программируют системные программисты, но они весьма редко разбираются в сути математических задач. Обычные пользователи, освоив возможности MathCAD, не захотят вернуться к тому, от чего ушли, -- к программированию на достаточно сложном языке.
В связи с этим в версиях MathCAD PLUS 6.0 и MathCAD PLUS 6.0 PRO появилась весьма изящная возможность записи встроенных в документ программных модулей, реализующих типовые управляющие структуры и записанных в столь милом для программистов виде обычных программ. Так что теперь MathCAD предоставляет им полную возможность для самовыражения.
1.6. Простейшие приемы работы
В простейшем случае работа с системой MathCAD сводится к подготовке в окне редактирования задания на вычисления и заданию форматов их результатов. Для этого используются различные приемы подготовки блоков; пока мы рассмотрим лишь вычислительные блоки. В дальнейшем дополним эту возможность вводом текстовых комментариев и графиков.
Формульный редактор
Фактически система MathCAD интегрирует в себе три редактора: формульный, текстовый и графический. Для запуска формульного редактора достаточно установить курсор мыши в любом свободном месте окна редактирования и щелкнуть левой клавишей. Появится визир в виде маленького красного крестика. Его можно перемещать клавишами перемещения курсора. Визир указывает место, с которого можно начинать набор формул -- вычислительных блоков.
Наборные панели (палитры) и шаблоны
Подготовка вычислительных блоков облегчается благодаря выводу шаблона при задании того или иного оператора. Для этого в шестой версии MathCAD служат наборные панели с набором шаблонов различных математических символов.
Допустим, мы желаем вычислить определенный интеграл. Для этого вначале надо вывести панель операторов математического анализа, ее пиктограмма в строке инструментов имеет знаки интеграла и производной. Затем следует установить курсор мыши в то место экрана, куда выводится шаблон, и на панели сделать активной пиктограмму с изображением знака определенного интеграла. Все это показано на рис. 1.6.
Рис. 1.6. Задание шаблона определенного интеграла
В составе сложных шаблонов часто встречаются шаблоны для ввода отдельных данных. Они имеют вид небольших черных квадратиков. В шаблоне интеграла их четыре: для ввода верхнего предела интегрирования, для ввода нижнего предела интегрирования, для задания подынтегральной функции и для указания имени переменной, по которой идет интегрирование. На рис. 1.6 шаблон интеграла показан в верхнем левом углу окна редактирования документа.
Для ввода данных можно указать курсором мыши на нужный шаблон данных и щелчком левой ее клавиши ввести их. На рис. 1.7 отражен момент ввода знака квадратного корня для задания подынтегральной функции. Перед этим были заполнены шаблоны верхнего (1) и нижнего (0) пределов интегрирования.
Рис. 1.7. Начало заполнения шаблона интеграла
Для ввода этого знака требуется совершить следующие действия:
· установив курсор мыши в стороне от места ввода, вывести панель набора арифметических операторов;
· подвести курсор мыши под шаблон ввода функции и щелкнуть левой клавишей для фиксации начала ввода;
· активизировать (мышью) кнопку со знаком квадратного корня;
· провести ввод выражения под знаком квадратного корня (при этом возможно редактирование данных с помощью стандартных операций редактирования).
Затем таким же способом надо заполнить остальные шаблоны, т. е. ввести пределы интегрирования и имя переменной, по которой производится интегрирование. Установив знак равенства после полученного выражения, можно сразу увидеть результат вычисления интеграла (см. рис. 1.8).
Рис. 1.8. Пример ввода и вычисления определенного интеграла
Так же выполняются любые другие разовые вычисления, как простые, так и сложные. Разумеется, есть возможность задавать шаблоны для вычислительных блоков и с клавишного пульта, о чем речь пойдет чуть ниже.
При задании сложных вычислений работа системы может быть долгой. Для прерывания работы можно нажать клавишу Esc. MathCAD выведет надпись о прерывании вычислений и небольшое окно с двумя командами: OK -- подтвердить прерывание и Cancel (Отмена) -- отменить прерывание. После прерывания можно возобновить работу, нажав клавишу F9 или сделав активной пиктограмму с изображением жирного знака равенства.
Выделение и редактирование объектов
Важной при редактировании математических выражений является возможность выделения их целиком или в виде отдельных фрагментов. По существу, это означает замену одномерного маркера в виде синей вертикальной черты на маркер двумерный в виде выделяющего часть выражения прямоугольника.
На рис. 1.7 показано выделение шаблона под запись подкоренного выражения. Обычно выделения в выражениях задаются рамкой — четырехугольником из темно-синих отрезков прямых. Рамка имеет характерный срез на правом верхнем углу. Он указывает, что дальнейший набор формулы пойдет вправо.
Выделение фрагментов математических выражений необходимо для изменения шрифтов, которыми набирается выражение. Например, для изменения шрифта в математических формулах достаточно выделить одну букву, установив выделение в виде жирной вертикальной черты сразу после буквы. Затем можно воспользоваться средствами модификации шрифтов (рис. 1.9). Обратите внимание на результат этих операций и сравните размеры символов в документе на рис. 1.8 и 1.9.
Рис. 1.9. Модификация размеров шрифта
Следует отметить, что изменение параметров и типов шрифтов для определенных объектов (например, переменных или констант) действует для них глобально. Так, если увеличить размеры обозначения какой-либо переменной, то все обозначения других переменных тоже будут увеличены. Для локального изменения размеров надо выделить соответствующий блок документа и только затем изменить шрифт.
О конструировании и редактировании математических выражений можно говорить много и долго [14]. Однако в целом это процесс интуитивный и учитывает тонкости конструирования математических выражений. Главное здесь практика! Мы еще вернемся к описанию некоторых правил конструирования математических выражений (формул).
1.7. Загрузка, распечатка и сохранение документа
Наряду с вводом своих простых документов с клавиатуры бывает полезно опробовать в работе ранее созданные (в том числе демонстрационные) документы. Для этого достаточно активизировать вторую пиктограмму панелей инструментов (с изображением открывающейся папки) или воспользоваться командой Open (Открыть) опции File (Файл) главного меню системы. Тогда появится диалоговое окно поиска файла загружаемого документа (см. рис. 1.10).
Рис. 1.10. Диалоговое окно поиска файла документа
Диалоговое окно поиска файлов -- типичное для Windows-приложений. С его помощью можно установить накопитель, просмотреть файловую систему текущего диска, установить каталог и найти файл. Затем, после активизации кнопки OK диалогового окна, документ будет загружен и с ним можно начинать работу, например просматривая его листинг. Обычно по умолчанию работа идет в автоматическом режиме, так что в документе будут представлены не только задание, но и результаты вычислений.
Вид документа в большом окне MathCAD (рис. 1.11) при использовании обычных средств подготовки документов ничем не отличается от вида документа в более ранних версиях систем 2.0--2.50, ориентированных под MS-DOS.
Рис. 1.11. Окно системы MathCAD с загруженным в него документом
На рис. 1.11 сразу же бросается в глаза естественность записи математических выражений. Хотя здесь пока не использованы никакие средства для повышения выразительности документов, их вид можно сделать самым изысканным, если воспользоваться всеми средствами подготовки документов в новых версиях. Новые версии позволяют делать цветовые и иные выделения не только в текстовых блоках, но и в формульных и графических. Это намного повышает наглядность документов.
Среди указанных средств прежде всего следует отметить возможность выделения блоков и текстовых фрагментов. Для выделения текстов надо установить курсор мыши в нужном месте (в начало текста) и нажать ее левую клавишу. Появится выделение начала фрагмента в виде тонкой красной вертикальной черты. Ее можно перемещать клавишами перемещения курсора. Сам блок выделяется черной рамкой.
Затем, нажав и удерживая левую клавишу мыши, можно выделять фрагменты текста, перемещая мышь по горизонтали и по вертикали. Фрагмент может быть отдельным символом, словом, строкой или даже группой строк. На рис. 1.11 так выделено первое слово названия документа. После выделения текста можно менять параметры шрифтов: их тип, вид, размер и цвет.
Большую часть экрана (рис. 1.11) занимает окно, предназначенное для ввода документов, с которыми работает система. Будем называть его окном редактирования (хотя на самом деле и результаты операций выводятся на него).
Документ является одновременно и программой, задающей на специальном входном языке алгоритмы решения нужной задачи, и результатами этого решения, представленными в форме чисел, символов, таблиц или графиков. Благодаря этому документ скорее напоминает текст книги по математическим или инженерно-техническим расчетам, чем текст обычной программы. Столь важное достоинство всех версий системы MathCAD сохранилось в новых версиях лишь с той разницей, что текст, формулы и таблицы теперь выводятся разными цветами, шрифтами и размерами.
1.8. Основы работы с блоками документов
Как уже отмечалось, документ состоит из отдельных блоков. Они могут быть различного типа: тексты (комментарии), формулы, графики, таблицы и т. д. Каждый блок занимает в текущем окне определенную область прямоугольной формы. Для конструирования блоков служат три встроенных в систему редактора: текстовый, формульный и графический.
Для выделения областей блоков можно проделать следующий эксперимент. Поместите курсор мыши (красный крестик при цветном дисплее) в нерабочую часть экрана. Перемещая мышь по диагонали, вы увидите, как на экране пунктирными черными линиями выделяется прямоугольник. Добейтесь, чтобы в него попало несколько объектов -- формул, таблиц, графиков. Все они тут же окажутся обведены прямоугольниками из пунктирных линий (см. рис. 1.12). Эти прямоугольники являются обычно невидимыми границами областей объектов.
Рис. 1.12. Документ с выделенными блоками
Используя быстрые клавиши задания команд вырезки (F3 или Ctrl + X) и вставки (F4 или Ctrl + V), можно перенести выделенные блоки в буфер обмена и поместить их на новое место, указанное курсором мыши. Это дает возможность быстрого наведения порядка с блоками. Рис. 1.13 показывает вид документа после нажатия клавиши F3.
Рис. 1.13. Вид документа, показанного на рис. 1.12, после нажатия клавиши F3
Нетрудно заметить, что выделенные пунктирной линией блоки исчезли. Если нажать клавишу F4 (не меняя положения курсора мыши), исчезнувшие блоки вновь появятся на своем месте, и вид документа будет подобен показанному ранее на рис. 1.12. Зацепив курсором мыши любой из выделенных блоков и нажав ее левую клавишу, можно (удерживая эту клавишу) перетаскивать блоки с одного места на другое.
Расположение блоков имеет принципиально важное значение. Как уже отмечалось, их выполнение происходит справа налево и сверху вниз. Поэтому блоки не должны взаимно перекрываться (хотя небольшое перекрытие не существенно). Указанный порядок исполнения блоков означает, что, например, при построении графика функции или таблицы ее значений вначале должны исполняться блоки, задающие саму функцию и пределы изменения аргумента, а уже затем блок, задающий вывод таблицы или построение графика функции. Все это следствие работы системы в интерпретирующем режиме.
Доступная область окна редактирования по горизонтали превышает видимую на экране. При этом область окна делится длинной линией на две части, левую и правую. Горизонтальными линиями документ делится на страницы.
Можно разместить некоторые вспомогательные вычисления в правой, невидимой, части окна, а в левую, видимую, вынести задание исходных данных и вывод результатов расчетов. Этот прием часто используется в пакетах применения системы, а также в учебно-демонстрационных программах. На рис. 1.14 показан пример подобного решения довольно сложной аэродинамической задачи по построению профиля крыла самолета и линий обтекания его воздушным потоком.
Рис. 1.14. Пример решения аэродинамической задачи (видимая часть решения)
Если, воспользовавшись полосами прокрутки, вывести в текущее окно обычно невидимую часть документа, на экране дисплея будет видна расчетная часть задачи (рис. 1.15). В этом случае она содержит довольно специфические вычисления над данными с применением аппарата вычислений в комплексной форме, поэтому нет смысла объяснять их.
Рис. 1.15. Вычисления в правой части документа представленного на рис. 1.14
Создание документов с невидимой расчетной частью осложняется необходимостью выполнения блоков в строго заданном порядке. Так, при сложных расчетах их результаты могут оказаться далеко внизу видимого текста документа. Заглядывая вперед, упомянем о двух приемах, облегчающих решение этой задачи. Первый -- использование оператора глобального присваивания (знак в виде трех горизонтальных черточек º). В этом случае присваивание может находиться в любой точке документа (например, в его начале или в самом конце). Второй прием -- расположение блоков по вертикали так, чтобы исполняемые в первую очередь блоки были чуть выше тех, которые будут исполняться позже.
Другой любопытный и полезный прием был использован в прежних версиях системы под MS-DOS -- выделение вычисления в невидимой правой части окна надписью /equations. В этом случае все вычисления после их логического вызова выполняются сверху вниз с возвратом к месту их вызова в левой части экрана. Из новой версии этот полезный прием по не совсем понятным мотивам исключен. Возможно, разработчики сочли, что вполне достаточно описанных выше приемов.
Интересно отметить, что с версией MathCAD PLUS 6.0 PRO можно использовать документы, подготовленные в среде ранних версий. При загрузке таких документов система сообщает, что они не из версии 6.0. Документы автоматически транслируются в формат, принятый для версии 6.0. К сожалению, это приводит к двум нежелательным последствием. Во-первых, документ может быть кратковременно не виден в окне редактирования, а во-вторых, блоки могут изменить свое местоположение. Достаточно прогнать документ линейкой прокрутки, и его блоки станут видимыми. Может потребоваться также некоторое редактирование документов -- перемещение блоков мышью, замена шрифтов, введение новых типов выделений и т. д.
В целом же документы ранних версий совместимы с новыми версиями MathCAD. На уровне записи формул и текстов обеспечивается полная совместимость. Это значит, что одинаковые по содержанию документы в разных версиях MathCAD будут иметь одинаковый вид.
1.9. Главное меню системы
Верхняя строка окна системы содержит указание на имя системы или текущего открытого окна. Следующая строка содержит опции главного меню. Перечислим их назначение:
File (Файл) -- работа с файлами, сетью Internet и электронной почтой;
Edit (Правка) -- редактирование документов;
Text (Текст) -- работа с текстовым редактором;
Math (Математика) -- управление процессом вычислений;
Graphics (Графика) -- работа с графическим редактором;
Symbolic (Символика) -- выбор операций символьного процессора;
Window (Окно) -- управление окнами системы;
Books (Книги) -- работа с электронными книгами;
Help (?) -- работа со справочной базой данных о системе.
Здесь и далее в скобках приведены названия опций главного меню, принятые в русскоязычной версии системы [14]. Это позволит владельцам этой системы без каких-либо трудностей пользоваться настоящей книгой.
Каждая опция главного меню может быть сделана активной. Для этого достаточно указать на нее курсором -- стрелкой мыши и нажать ее левую клавишу. Можно также нажать клавишу F10 и использовать клавиши перемещения курсора вправо и влево. Затем выбор фиксируется нажатием клавиши ввода Enter. Еще один быстрый путь входа в нужное подменю — нажатие клавиши Alt и одновременно клавиши с буквой, которая на экране подчеркнута снизу в названии нужной опции главного меню. Для всех опций главного меню это заглавная буква их имени.
Если какая-либо опция главного меню делается активной, она выводит ниспадающее подменю со списком доступных и недоступных (но возможных в дальнейшем) команд. Доступные в данный момент команды даны четким шрифтом, а недоступные -- шрифтом с характерным затенением, но позволяющим все же прочесть название операции. Перемещение по списку подменю и выбор нужной команды производятся аналогично тому, как это описано для главного меню, с той лишь разницей, что при управлении с клавиатуры используются клавиши перемещения курсора по вертикали.
Первая опция меню (квадратик без имени с черточкой) служит для стандартных операций с текущим окном системы, принятых в системе Windows. Если эта опция активна, то появляется подменю со следующими операциями:
Restore (Восстановить) -- восстановить окно приложения из пиктограммы;
Move (Переместить) -- переместить окно приложения;
Size (Размер) -- изменить размер окна приложения;
Minimize (Свернуть) -- свернуть окно в пиктограмму;
Maximize (Развернуть) -- перейти в полноэкранный режим;
Close (Закрыть [Alt + F4]) -- закрыть окно и закончить работу в приложении;
Switch To... (Переключиться в... [Ctrl +Esc ]) -- восстановить окно диспетчера программ;
Next (Следующий документ [Ctrl + F6]) -- перейти к следующему окну.
Не все из этих команд всегда доступны. Названия недоступных команд, как отмечалось, даны нечеткими (затененными) надписями. К примеру, если окно имеет максимальный размер, то команды Move, Size и Maximize недоступны.
Каждое окно документа также имеет подобное меню, инициализируемое квадратиком в левом верхнем углу раскрытого окна. Это меню имеет следующие опции:
Restore (Восстановить) -- восстановить окно документа из пиктограммы;
Move (Переместить) -- переместить окно документа;
Size (Размер) -- изменить размер окна документа;
Minimize (Свернуть) -- свернуть документ в пиктограмму;
Maximize (Развернуть) -- перейти в полноэкранный режим для документа;
Close (Закрыть [Ctrl + F4]) -- закрыть окно и закончить работу с документом;
Next (Следующий документ [Ctrl + F6]) -- активизировать следующий документ.
Система MathCAD может работать с восемью окнами, т. е. одновременно с восемью задачами. Окно каждой задачи образуется после загрузки текста ее документа. В дальнейшем операции с окнами будут описаны более подробно.
1.10. Особенности русскоязычной версии MathCAD
Русификация таких специфических систем, как математические, всегда была довольно спорной. В отличие, например, от текстовых редакторов имена большинство команд, операторов и функций математических систем стандартизированы на международном уровне и задаются на английском языке. Поэтому о сквозной русификации математических систем не может быть и речи.
Попытки перевести их на русский язык часто ведут к явным казусам. Так, при русификации электронных таблиц Microsoft Excel
едва ли удачной находкой можно назвать замену функции SUMM на СУММ или применение таких "исконно русских" имен экономических функций, как БЗ, ВНДОХ, НПЗ или АМГД (попробуйте сами догадаться, что они означают!). В MathCAD используется общепринятый синтаксис команд, операторов и функций, основанный на применении англоязычных имен для операторов и функций и принятый в математической литературе.
Попытки русификации систем MathCAD предпринимались еще в отношении старых версий системы под MS-DOS. Как и следовало ожидать, они оказались явно неудачными из-за невозможности совмещения ввода букв алфавита русского языка с вводом ряда математических спецсимволов, прежде всего греческих букв.
Гораздо успешнее прошла русификацию шестая версия системы MathCAD под Windows. Ýто вполне работоспособный продукт. И обусловлено это именно тем, что русификация носила ограниченный характер. В частности остались англоязычными все математические функции системы.
Русификации были подвергнуты наименования команд в главном меню и в его подменю, сообщения об ошибках, справочная база данных, примеры применения системы и встроенные в систему электронные книги. Это делает возможным и целесообразным применение локализованной версии в системе образования России, где незнание английского языка частью учащихся может заметно затруднить использование англоязычных версий MathCAD.
Впрочем, есть и иное мнение: работа с англоязычными системами способствует изучению английского языка. Пожалуй это не так! Пользователи, не знающие английского языка, просто запоминают неточное "русское" произношение английских слов. Другое дело, что освоить несколько десятков английских слов, с которыми волей не волей придется многократно сталкиваться любому пользователю ПК, не так уж и сложно. И, несомненно, полезно!
На рис. 1.16 представлен вид экрана для русскоязычной версии MathCAD. Нетрудно заметить, что за исключением надписей в меню, выполненных на русском языке, вид экрана остался подобным его виду для оригинальной версии. Учитывая, что большинство англоязычных команд главного меню общеизвестно, можно считать, что русификация их не была главной целью при доработке системы.
Рис.1.16. Вид экрана для русскоязычной версии MathCAD
Целесообразность русификации команд главного меню и подменю не является бесспорной, что уже отмечалось. К примеру, общепринятые команды символьной математики, такие как, Simplify или Factor, после перевода звучат как "Упростить" и "Разложить по степеням", что лишь частично соответствует их смыслу. К тому же утрачивается соответствие написания этих команд в меню и в тексте документа -- там они (при задании операций системы SmartMath) записываются с англоязычными именами.
Здесь важно отметить, что русификация никоим образом не затрагивает сами по себе документы системы MathCAD. Документы с текстовыми комментариями на любых языках позволяют готовить любые версии MathCAD, в том числе англоязычные и русифицированные. Для этого достаточно просто проинсталлировать в Windows наборы шрифтов нужного языка.
Несомненно, главную ценность в русифицированных версиях представляет перевод на русский язык сообщений справочной системы и электронных книг. На рис.1.17 показан вид окна справочной системы с индексным каталогом тем справок. Активизируя кнопки у каждого названия темы, можно вывести подробную справочную информацию о ней. Справочная система и электронные книги занимают большой объем и их перевод на русский язык представляется весьма целесообразным. Однако, справочная система MathCAD (даже русифицированная) не предназначена для систематического знакомства с системой и не заменяет обычных книг.
Рис. 1.17. Индексный каталог справочной системы русифицированной версии MathCAD
К сожалению, не подверглась русификации система орфографического контроля текстовых блоков. Для этого пришлось бы поместить в MathCAD одну из российских систем орфографического контроля. А это потребовало бы лицензирования такого включения и привело бы к удорожанию и без того довольно дорогой системы MathCAD. Поэтому орфографический контроль пока возможен только для англоязычных текстов.
С точки зрения подавляющего большинства пользователей, локализованным версиям MathCAD присущи два серьезных недостатка -- они дороги и имеют изощренную систему защиты. Защита русифицированной версии от копирования выполняется не только паролем (серийным номером), но и установкой электронного ключа в параллельный порт ПК. Он выполнен в виде переходника от разъема этого порта к фишке сигнального кабеля принтера.
Установка электронного ключа рядовым пользователем -- дело рискованное. А к чему приведет потеря электронного ключа, нетрудно догадаться: придется подсчитывать убытки или обращаться к поставщику системы с просьбой о замене ключа, которую он вправе не удовлетворить.
Видимо, из-за этого, а также из-за угрозы судебного разбирательства при копировании локализованных лицензионных версий, что отмечено в их описании, эти версии пока не попали на общедоступные CD-ROM. В то же время оригинальные англоязычные версии системы MathCAD имеются на десятках дешевых CD-ROM и даже свободно передаются по сети Internet. Естественно, в таких случаях эти версии MathCAD поставляются без какой-либо документации. Надо полагать, что данная книга во многом заменяет эту документацию и позволяет пользоваться системами класса MathCAD не только богатым "новым русским", но и большинству рядовых пользователей ПК.
Глава 12. ПАКЕТЫ ПРИМЕНЕНИЙ СИСТЕМЫ MathCAD
В этой главе описаны 10 пакетов применений интегрированных систем MathCAD для автоматизации математических и научно-технических расчетов. Пакеты составлены так, что они пригодны (разумеется, на уровне текстов документов) для любой версии системы MathCAD -- и под Windows, и даже под MS-DOS (версии 2.0--2.50).
Пакеты применений охватывают решения широкого круга практических задач в области математики, физики и электротехники, радиотехники и электроники [20—39] и являются альтернативой фирменным пакетам применений [14], стоимость каждого из которых составляет 95 долл. США. Описанные здесь пакеты поставляются на магнитном диске, прилагаемом к книге.
По отношению к системе MathCAD PLUS 6. 0 PRO пакеты применений выполняют ту же функцию, что и “шпаргалки” (QuickSheet), но примеры вычислений в них иные. Так что описанные в этой части примеры дополняют те, что предоставлены “шпаргалками”. Все примеры относятся к области численных расчетов.
В педагогической среде нередко звучат нарекания, что в системах MathCAD скрыты методы реализации численных расчетов и потому последние не наглядны. Такие нарекания абсурдны, поскольку именно MathCAD позволяет описать алгоритм любого численного метода на естественном математическом языке, не прибегая к таким (скорее программистским, чем математическим) понятиям, как условные переходы, циклы и т. д. (хотя реализация алгоритмов с ними также возможна с помощью аппарата ранжированных переменных).
При подготовке описанных здесь пакетов большое внимание уделялось реализации численных методов типовыми возможностями системы MathCAD, причем даже тех методов, которые реализованы встроенными функциями систем. Например, приведены примеры численного интегрирования и дифференцирования, вычисления специальных функций по рекуррентным формулам, решения дифференциальных уравнений и т. д. Это, во-первых, демонстрирует возможности системы MathCAD в наглядной реализации таких методов, во-вторых, позволяет решать относящиеся к ним задачи с использованием тех версий системы, у которых соответствующих функций нет, а в-третьих, дает заметное ускорение вычислений.
Пакеты применений MathCAD 6.0 имеют свою нумерацию от 1 до 10. Каждый документ пакета соответственно имеет двойную нумерацию. Поскольку документы являются примерами (examples) применения MathCAD их обозначения начинаются с буквы e. Например, документ e2-5 это пятый документ из второго пакета применений. Файлы документов имеют обозначения типа e2-5.mcd. Они размещены на прилагаемой к книге дискете.
Разбор помещенных на дискету пакетов применений позволит читателю существенно углубить свои знания о возможностях систем класса MathCAD и полнее использовать их в своей учебе, на практике и в научном творчестве. Он также позволит заметно уменьшить затраты времени на освоение системы, поскольку избавит вас от необходимости самостоятельного ввода документов. Впрочем, в разумных объемах он отнюдь не бесполезен! Поэтому примеры из предшествующих глав полезно ввести и опробовать самостоятельно.
Пакет 1. ГРАФИЧЕСКИЕ ВОЗМОЖНОСТИ
1.1. Специальные виды графиков
Графические возможности системы MathCAD довольно подробно описаны в главе 6 и в литературе [5--7, 11, 14]. Здесь дается дополнительная информация о графических возможностях системы, полезная для понимания приемов работы с графикой, широко используемых в большинстве описанных далее примеров применения системы MathCAD.
В документе е1.1 представлены некоторые примеры использования графических средств. Здесь рассматривается представление в виде графиков значений элементов векторов и матриц, а также графическое представление функции одной переменной, ее производной и определенного интеграла. Эти графики строятся в прямоугольной (декартовой) системе координат.
Для представления значений элементов вектора можно использовать график функции одной переменной, тогда как представление значений элементов матрицы требует построения такого числа кривых, которое равно числу строк матрицы. Ввиду простоты этих примеров не имеет смысла их подробно описывать – достаточно просто просмотреть. Для графиков интеграла и производной они задаются в виде функций пользователя.
1.2. Графики трех функций
На рис. 12.1 иллюстрируется построение на одном рисунке графиков трех функций: синусоиды sin(x), функции sin(x)/x и квадратичной параболы x^2. Эти функции заданы в первой (после титульной надписи) строке документа e1-2.
Рис. 12.1. Построение графиков трех функций (документ e1-2)
Возможность построения на одном рисунке графиков сразу нескольких функций очень полезна, особенно если необходимо сравнение этих графиков друг с другом. Нужно стремиться к выравниванию максимальных и минимальных значений функций. Например, с этой целью число x в квадрате в третьей функции делится на 100, поэтому при |x|=10 все три функции имеют одинаковое (равное 1) максимальное значение.
Для уменьшения характерной ступенчатости линий графиков необходимо, чтобы число узловых точек было не менее 100. Это и задает пределы и шаг изменения ранжированной переменной x. В нашем примере ее значение меняется от –10 до 10 с шагом 0.1.
MathCAD PLUS 6. 0 предоставляет три возможности выделения линий при
построении графиков нескольких функций: изменение цвета линий, изменение типа линий и пометка узловых точек различными знаками. Различная пометка узловых точек позволяет надежно идентифицировать ту или иную линию графика, тем более, что слева от графика помещены отрезки соответствующих линий с метками. Это особенно важно при распечатке графиков монохромными принтерами, поскольку при этом цветовое выделение отсутствует (хотя цвета выделяются различными градациями серого цвета).
Следует также помнить, что некоторые функции имеют особенности, которые могут исказить вид графика. Например, функция sin(x)/x при x = 0, где ее значение дает вычисляемую неопределенность 0/0 = 1. В нашем случае построение графика этой функции прошло благополучно, так как ранжированная переменная x не приняла точного значения x = 0 в середине графика. Надо, однако, быть готовыми к тому, что такая функция даст резкий провал при x = 0 (его можно наблюдать, задав целочисленные значения x).
1.3. Построение фигур Лиссажу
Для исследования периодических колебаний в электротехнике и радиотехнике широко используется электронный осциллограф. Он содержит электронно-лучевую трубку, электронный луч которой оставляет светящееся пятно на экране. В осциллографической трубке есть две системы пластин для отклонения луча: по оси X (горизонтальная развертка) и по оси Y (вертикальная развертка).
Подав на эти пластины синусоидальные напряжения с разными частотами, можно наблюдать так называемые фигуры Лиссажу. Если кратность частот выдерживается строго, фигуры получаются неподвижными, иначе же они вращаются.
Для моделирования неподвижных фигур Лиссажу с помощью системы MathCAD достаточно задать два вектора x и y, значения элементов которых вычисляются как синусоидальная и косинусоидальная функции. Это и показано на рис. 12.2, иллюстрирующем исполнение документа е1-3.
Рис. 12.2. Построение фигур Лиссажу
Параметры n1 и n2 задают кратность указанных составляющих некоторой условно единичной частоте. В итоге получается характерная плавная замкнутая кривая для сигналов с кратностью 4/5. Изменяя n1 и n2, можно получить множество иных фигур этого класса.
1.4. Построение графика функции в полярной системе координат
Построенная на рис. 12.2 фигура фактически является простейшим графиком в полярной системе координат, в которой положение каждой точки на плоскости задается двумя параметрами: длиной радиус-вектора, идущего из точки начала координат к заданной точке, и углом его относительно оси X.
На рис. 12.3 показано построение графика функции в полярной системе координат, заданное в документе е1-4. Длина радиус-вектора задается параметром r, а угол -- w. Эти параметры пересчитываются в координаты x и y Декартовой системы координат по формулам
x = r(w)cos(w) и y = r(w)sin(w).
Рис. 12.3. Построение графика функции в полярной системе координат
На рис .12.3 надо отметить два аспекта. Первый -- указание косинусной составляющей прямо по оси X и синусной -- по оси Y. Связано это с тем, что обычный способ задания функции соответствует все же Декартовой системе координат. Второй -- задание этих составляющих в параметрической форме, причем величина r, в свою очередь, является функцией угла w. Чтобы получить построение графика одного цикла для заданной фигуры, надо задать изменение w от 0 до 2×p. Это гарантирует, что построенная фигура будет замкнутой.
1.5. Построение графиков параметрически заданных функций
На рис. 12.4 показаны еще два примера построения графиков параметрически заданных функций. Первая функция имеет три сменных параметра a, b и l. Последний из них определяет размер "завитушек" фигур. Вторая функция имеет только два параметра a и l. Текущий угол обозначен как j.
Рис. 12.4. Графики двух функций, заданных параметрически (документ е1-5)
Этот рисунок иллюстрирует разнообразие типов графиков, описываемых параметрически заданными функциями. Изменяя параметры a, b и l, можно наблюдать множество различных видов графиков. Описание типов таких графиков есть в соответствующей литературе [24].
1.6. Построение графика раскручивающейся спирали
Еще один классический пример построения графика функции, заданной параметрически, показан на рис. 12.5. Здесь строится раскручивающаяся спираль.
Рис. 12.5. График раскручивающейся спирали (документ е1-6)
Амплитуды синусной и косинусной составляющих функции в этом случае определяются экспоненциальными составляющими, причем показатель степени экспоненты -- отрицательное число. Это означает, что в действительности спираль скручивается: построение начинается с верхней точки и заканчивается в центре поля графика.
1.7. Имитация спирали-галактики
Как известно, во Вселенной скопления звезд (галактики) и пылевые облака нередко также образуют спиралевидные фигуры. Рис. 12.6 иллюстрирует простейший прием описания такого скопления. В центре облака точек происходит их сгущение, после чего наблюдается спиралеобразное разбегание точек.
Рис. 12.6. График раскручивающейся спирали-галактики (документ е1-7)
Здесь также спираль фактически закручивается. В отличие от предыдущего примера, к числовым значениям элементов векторов X
и Y присоединяется случайная компонента, создаваемая функцией генерации случайных чисел rnd(r). Кроме того, при задании формата графика указывается построение его не сплошной линией, а точками. Это и создает картину случайного скопления точек-"звезд", переходящего в спираль.
Такая модель спиралеобразной галактики не имеет ничего общего даже с элементарной моделью галактики, учитывающей определенные законы взаимодействия отдельных объектов -- звезд. Тут дана просто математическая абстракция, пригодная для целей иллюстрации. Число точек здесь довольно велико, так что построение занимает много времени (около десяти секунд) даже на ПК класса 386/486.
1.8. Построение многолучевой звезды
Графики в полярной системе координат фактически строятся в Декартовой системе -- путем преобразования полярных координат в Декартовые. Положение точки в полярной системе координат (т. е. длину ее радиус- вектора r и его угол j) можно охарактеризовать комплексным числом
i×j
z = r × e или z = r × cos(j) + i × r × sin(j) = x + i × y.
Таким образом, переход из полярной системы координат в Декартовую происходит автоматически, если для каждой точки z
по горизонтальной оси откладывать ее действительную часть, а по вертикальной оси -- мнимую. На этом основано построение графика многолучевой звезды (см. рис. 12.7).
Рис. 12.7. Построение графика многолучевой звезды (документ е1-8)
Обратите внимание, что для расчета угла j (он явно не обозначен) используется функция floor. Параметр N задает число лучей звезды. При построении графика смежные узловые точки располагаются далеко одна от другой и соединяются друг с другом отрезками прямых. Их геометрическое месторасположение -- окружность. Нужно задать построение графика таким типом линий, который соединяет узловые точки.
1.9. Конформные преобразования на комплексной плоскости
Многие фигуры могут быть построены на комплексной плоскости указанием их узловых точек с последующим соединением этих точек отрезками прямых. Например, на рис. 12.8 слева подобным образом построена фигура квадрата. Координаты углов квадрата заданы комплексными значениями вектора из четырех чисел z.
Рис. 12.8. Построение квадрата до и после его конформных преобразований на комплексной плоскости (документ е1-9)
Как известно [24], узловые точки таких фигур могут быть подвергнуты так называемым конформным преобразованиям, проводимым на комплексной плоскости. Они ведут к изменению местоположения точек, что, в свою очередь, ведет к изменению вида фигур. Это и иллюстрирует рис. 12.8, на котором в итоге таких преобразований фигура квадрата превращается в фигуру ромба (см. фигуру справа). Описание самих конформных преобразований выходит за рамки данной книги.
1.10. Построение фрактальных кривых
В результате исследования взаимодействующих (например, взаимно притягивающихся по определенным правилам) объектов были разработаны модели их поведения. Они описывают группировку различных объектов, например снежинок, ледяных узоров на стекле, пылевых облаков, кристаллических образований и т. д. Не вдаваясь в довольно непростые тонкости поведения этих моделей, уже описанные довольно подробно и занимательно в [25], просто приведем пример построения так называемых фрактальных кривых второго порядка, заимствованный из одного демонстрационного примера системы MathCAD (см. рис. 12.9).
Рис. 12.9. Построение фрактальных кривых второго порядка (начало документа е1-10)
Не правда ли, причудливость форм этих объектов способна навести на философские размышления о таинствах окружающего нас мира? Изменяя параметр l, можно получить и другие кривые. Многие из них, возможно, представляют интерес для художников.
1.11. Построение сферы
В этом и в ряде последующих примеров приведены построения графиков 3D-поверхностей для систем MathCAD PLUS 6.0/PLUS 6.0 PRO. Они иллюстрируют типовые возможности трехмерной графики этих систем.
На рис. 12.10 показано построение в трехмерном пространстве сферы. Сфера строится из каркаса, причем число деления ее по вертикали N задается в начале построения. Затем вычисляются массивы опорных точек каркаса, которые представлены матрицами X, Y
и Z.
Рис. 12.10. Построение сферы (документ е1-11)
Используя различные форматы 3D-графиков, можно выполнить рисунок сферы в различных стилях, в том числе с цветной или черно-белой окраской. Однако в таком случае каркасное построение с применением алгоритма удаления невидимых линий дает, пожалуй, наиболее наглядное представление о характере этой простой объемной фигуры.
1.12. Построение фигуры вращением линии вокруг оси X
Интересные объемные фигуры можно получить, вращая некоторую кривую вокруг той или иной оси. При этом необходимо обеспечить пересчет координат всех узловых точек фигуры по известным из геометрии формулам. На рис. 12.11 показано построение такой фигуры вращением заданной функцией f(x) линии вокруг оси X.
Рис. 12.11. Построение фигуры вращением линии вокруг оси X (документ е1-12)
В документе на рис. 12.11 приведены все необходимые формулы для пересчета координат узловых точек фигуры при ее вращении. Даны также графики исходной кривой (слева внизу) и фигуры, полученной ее вращением (справа внизу). Фигура напоминает рюмку, лежащую на плоскости. Ее можно оживить раскраской, выбрав нужный формат 3D-графика.
1.13. Построение фигуры вращением линии вокруг оси Y
Так же можно построить фигуру, полученную вращением исходной кривой вокруг оси Y. Это демонстрирует документ e1.13, показанный на рис. 12.12.
Рис. 12.12. Построение фигуры вращением линии вокруг оси Y
Чтобы показать возможности задания различного стиля рисунков, в нашем случае фигура построена с удалением линий каркаса и вводом монохромной функциональной окраски. Нетрудно заметить, что это делает фигуру очень наглядной.
1.14. Построение графика вида 3D Scatter Plot
3D Scatter Plot -- вид трехмерных графиков, особенно удобный для представления пространственного расположения множества мелких объектов, условно называемых точками. На рис. 12.13 показано применение этого графика для построения N=100 точек, лежащих на пространственной спирали, напоминающей растянутую пружину.
Рис. 12.13. Построение графика вида 3D Scatter Plot для точек пространственной спирали
Для каждой точки в этом случае необходимо располагать тремя координатами X, Y
и Z. Их совокупность образует три одноименных вектора. Ввиду простоты алгоритма построения в более подробном его описании нет необходимости. Заметим лишь, что число точек N можно менять.
1.15. Построение графика поля градиента функции
Еще один особый вид графиков -- графики полей (например, магнитного, электростатического, гравитационного и т. д.). Новые версии MathCAD обладают возможностью построения таких графиков, что иллюстрирует рис. 12.14.
Рис. 12.14. Построение графика поля градиента функции (документ е1-15)
Алгоритм построения графика поля с вычислением градиента достаточно прост (см. рис. 12.14). График поля строится короткими стрелками, направление которых указывает на рост градиента. Нужно тщательно подбирать масштабы графика, чтобы он был нагляден; если стрелок мало, могут быть пропущены участки быстрого изменения поля, а если их много, то часть стрелок из-за наложения друг на друга смазывается и наглядность графика также нарушается.
1.16. Построение пространственной фигуры -- узлов, образованных толстыми "канатами"
О больших возможностях графики MathCAD PLUS 6.0 PRO свидетельствует пример, приведенный на рис.12.15. Он же иллюстрирует применение типовых матричных функций для описания и пространственного преобразования сложной трехмерной фигуры -- узлов, образованных толстыми “канатами”.
Рис. 12.15. Построение фигуры -- узлов, образованных толстыми "канатами" (начало документа е1-16)
Сама фигура, построенная по алгоритму, представленному на рис. 12.15, дана на рис. 12.16.
Рис. 12.16. Вид фигуры (конец документа е1-16)
Изменяя параметр K, можно получить множество других объемных фигур. Функциональная окраска (в нашем случае черно-белая с полутонами) придает фигуре весьма реалистичный вид. Этот пример наглядно показывает, что по возможностям графики система MathCAD PLUS 6.0 PRO уже приближается к системе Mathematica 2.2.2, лидеру среди систем символьной математики для персональных компьютеров.
Пакет 2. ПРОСТЕЙШИЕ ФОРМУЛЬНЫЕ ВЫЧИСЛЕНИЯ
2.1. Решения треугольников
Система MathCAD идеально приспособлена для расчетов по математическим формулам. Такие расчеты весьма наглядны и естественны, ими можно пользоваться практически при любых формулах. Это позволяет создавать комплекты документов для расчетов, не только заменяющие справочные материалы, но и содержащие "живые" примеры этих расчетов. Достаточно вместо содержащихся в примерах исходных данных подставить свои, как будет тут же получен новый результат.
Документ е2- 1 иллюстрирует решение довольно распространенной геометрической задачи -- вычисление по заданным параметрам треугольников их недостающих параметров. В документе представлены все пять возможных вариантов решения треугольников.
2.2. Вычисления по формулам двумерной геометрии
Большинство формул двумерной геометрии, описывающих параметры
объектов на плоскости, просты, и вычисления по ним в среде MathCAD элементарны. Тем не менее в пакете 2 представлен документ е2-2, позволяющий провести расчеты по наиболее известным и применяемым формулам двумерной геометрии.
Полезно обратить внимание на рисунки в центре документа, которые иллюстрируют преобразование Декартовых координат точек в полярные. Эти рисунки перенесены в текст документа из электронного справочника системы MathCAD. Ими придется пожертвовать, если документ используется для ранних версий системы, например 2.01, не имеющих электронного справочника и средств импорта графических файлов из других систем.
2.3. Вычисления по формулам трехмерной геометрии
Сказанное о геометрических вычислениях выше справедливо и для
трехмерной геометрии, хотя ее формулы могут быть несколько сложнее, чем формулы двумерной геометрии. В документе е2-3 представлены наиболее распространенные формулы трехмерной геометрии и даны примеры вычислений по ним.
Для сокращения длины документа в него не включены поясняющие рисунки (комментарии к формулам достаточно очевидны). При желании документ можно дополнить рисунками из электронного справочника, в котором есть и дополнительные примеры расчетов.
2.4. Финансово-экономические расчеты со сложными процентами
В наше время перехода к рыночным отношениям финансово-экономические расчеты могут интересовать многих читателей настоящей книги. MathCAD не содержит специальных функций для проведения финансово-экономических расчетов. Однако все они легко выполняются встроенными в систему средствами.
Документ е2- 4 иллюстрирует наиболее распространенные расчеты с единичным вкладом, которые основаны на применении сложных процентов, и их не так давно (в период государственной монополии на банковские расчеты и стабильных процентов годовых) можно было использовать для оценки финансовой ситуации с нашими вкладами на сберкнижках.
Сейчас, когда процент годовых постоянно меняется, такие расчеты способны вызвать лишь ностальгию по былым стабильным временам. Будем, однако, надеяться, что они окажутся вновь полезными для нас в недалеком будущем. Разумеется, вы можете подставить в них те параметры, которые соответствуют текущему положению дел в нашей рыночной экономике.
2.5. Финансовые операции с регулярными вкладами
Если ваша заработная плата превышает прожиточный минимум, простой житейский опыт подсказывает, что лучше не копить деньги "в чулке", а периодически (N раз в год) относить их в сбербанк. Тогда по этим деньгам будут быстрее набегать проценты.
Документ е2-5 показывает возможные ситуации при операциях с ежегодными регулярными вкладами. При таких операциях, разумеется, не имеет значения, какие деньги вы вкладываете (рубли, марки или доллары). Главное, чтобы это были какие-то одни денежные единицы.
2.6. Финансовые операции с начальным и регулярными вкладами
Если вы имели возможность внести некоторый начальный вклад и затем намерены регулярно пополнять его ежегодно N
раз, расчеты придется вести по несколько иным формулам. Они даны в документе е2-6.
Здесь особый интерес вызывает последний пример -- вычисление процента годовых. В странах со стабильной экономикой можно, вычислив этот процент, выбрать банк, удовлетворяющий требованиям клиента. К сожалению, еще раз надо подчеркнуть, что такие расчеты носят сугубо познавательный характер.
2.7. Операции с комплексными числами
Далее мы неоднократно будем встречаться с комплексными числами вида
z = Re(z)
+ Im(z) × i = a + b × i,
где i
-- мнимая единица (корень квадратный из -1). В документе е2- 7 можно найти примеры работы с комплексными числами.
Обратите внимание на то, что все операции (включая вычисления функций) с комплексными числами выполняются, как с обычными. Надо лишь перед началом операций задать значение мнимой единицы i (или j). Результатом операции является также комплексное число, причем функция Re(z)
возвращает действительную часть комплексного z, а Im(z) -- мнимую. Соответственно оператор |z| вычисляет модуль, а функция arg(z) -- аргумент (фазу) комплексного числа.
В документе е2-7 приведены два достаточно сложных (для их реализации на обычных языках программирования) примера применения комплексных операций -- решение системы линейных уравнений с комплексными коэффициентами и вычисление комплексного кругового интеграла. Эти примеры говорят о возможности применения вычислений с комплексными числами для решения серьезных математических и прикладных задач.
Пакет 3. РЕАЛИЗАЦИЯ НЕКОТОРЫХ ЧИСЛЕННЫХ МЕТОДОВ
3.1. Быстрые операции с полиномами-векторами
В математических расчетах широко применяются степенные многочлены -- полиномы вида
P(x) = an × xn + an-1 × xn-1 + ... + a1 × x1 + a0 .
Ценность полиномов заключается в том, что они могут достаточно точно аппроксимировать многие функции (особенно непрерывные) единообразным способом. При этом легко аналитически вычислять производные полиномов и интегралы с ними.
Коэффициенты полинома удобно задать как элементы вектора a. Тогда их запись (как элементов вектора) совпадает с общепринятой. При этом помимо своих коэффициентов полином характеризуется порядком n. В документе е3-1 представлены задание полинома P(x) и примеры выполнения ряда операций с полиномом: вычисление значений полинома по заданному аргументу x, вычисление производной полинома P'(x) и определенного интеграла с полиномом P(x)
в виде подынтегральной функции.
Для вычисления производной и интеграла используются аналитические выражения, что заметно уменьшает время вычислений и позволяет проводить их с предельно малой погрешностью. Все отмеченные вычисления оформлены в виде функций пользователя, это позволяет использовать эти функции в приложениях, связанных с применением полиномов.
3.2. Вычисление ортогональных полиномов
В математических расчетах широко применяются ортогональные полиномы Чебышева T(n, x) и U(n, x), Лежандра P(n, x), Лагерра L(n, x) и Эрмита H(n, x). Здесь n -- степень полинома, а x
-- аргумент. Вид полинома зависит от его типа и степени n. Однако вычислять значения ортогональных полиномов для каждой конкретной степени в большинстве случаев нецелесообразно.
Наиболее удобно вычислять полиномы — за исключением T(n, x), имеющих простое аналитическое представление, — параллельно с вычислением их коэффициентов по известным рекуррентным формулам, приведенным в [14]. Это и реализовано в документе е3-2.
Попутным результатом вычислений, представленных в документе е3-2, является
получение векторов значений полиномов для заданного x
при степени полинома от 0 до n. Рекуррентные формулы в этом случае не оформлены в виде функций пользователя, поскольку подобную возможность система MathCAD без использования средств программирования не предоставляет.
3.3. Быстрое дифференцирование табличных данных
Система MathCAD содержит оператор для выполнения численного дифференцирования для аналитически заданных функций. Однако часто функция задана рядом табличных значений и нужно найти значение ее производной для любого значения x, обычно лежащего между узловыми точками или совпадающего с абсциссой одного из узлов. Таким образом, необходимо наряду с дифференцированием выполнять функции интерполяции.
Эта задача легко решается при использовании известных формул численного дифференцирования с интерполяцией [26--28]. Они определены в документе, реализующем такие вычисления с применением формул численного дифференцирования по трем, четырем и пяти узловым точкам.
В конце этого документа показано вычисление производной с помощью оператора вычисления производной системы MathCAD. Это позволяет сравнить результаты вычисления производной различными методами. К примеру, вычисление производной по формуле численного дифференцирования по пяти точкам дает шесть верных знаков результата после десятичной точки. Это вполне приемлемо для практических вычислений. Формулы для меньшего числа узлов дают несколько меньшую точность. В целом вычисление производной по указанным формулам выполняется в несколько раз быстрее, чем по встроенному оператору дифференцирования -- за счет отказа от контроля погрешности вычислений и упрощения их алгоритма.
3.4. Быстрое дифференцирование аналитических функций
Оператор численного дифференцирования системы MathCAD выполняет дифференцирование по довольно сложному алгоритму, обеспечивающему вычисления производной с заданной погрешностью TOL. При этом происходит переход от формул для трех узлов к формулам для пяти узлов с изменением шага h для обеспечения заданной погрешности, что, естественно, приводит к большему времени вычислений.
Между тем для практических целей вполне достаточна погрешность вычислений в сотые или тысячные доли процента, что достигается при использовании формул численного дифференцирования для пяти узлов. В документе е3-4 дано задание трех функций пользователя, реализующих вычисления трех первых производных аналитически заданной функции y(x) по формулам численного дифференцирования для пяти узлов.
Можно заметить, что погрешность вычислений возрастает примерно на порядок с увеличением на единицу порядка производной. В документе е3-4 дано также построение графика заданной функции и трех ее производных. Вы можете попытаться построить графики производных с помощью оператора вычисления производной системы MathCAD и убедиться, что в этом случае построение графиков заняло гораздо больше времени при практически идентичных результатах. Таким образом, вычисление производных по фиксированным формулам обеспечивает сокращение времени вычислений. Оно также позволяет оценить приемлемость таких формул для каждого конкретного случая.
3.5. Интегрирование таблично заданных функций
Часто возникает необходимость в вычислении определенного интеграла для таблично заданной функции. Тогда прямое применение встроенного в систему оператора вычисления интеграла оказывается невозможным, так как он предполагает задание подынтегральной функции в аналитическом виде.
Документ е3-5 иллюстрирует четыре способа вычисления определенного интеграла при табличном задании подынтегральной функции. Первые два способа (методом трапеций и Симпсона) используют довольно хорошо известные формулы интегрирования табличных данных. Два других способа ориентированы на использование встроенного оператора вычисления интеграла. При этом таблично заданная функция интерполируется линейной зависимостью или набором сплайновых функций (полиномов третьей степени).
В качестве исходных данных взяты ординаты квадратичной параболы, что позволяет вычислить интеграл без этих ухищрений. Такое вычисление представлено для контроля в конце документа. Нетрудно заметить, что лишь интегрирование методом Симпсона и интегрирование со сплайн-интерполяцией дают полное совпадение с прямым интегрированием (не стоит забывать, что установленный формат цифровых данных выводит результат только с тремя значащими цифрами после десятичной точки).
3.6. Быстрое численное интегрирование аналитически заданной функции
Для ускорения вычислений определенных интегралов с аналитически заданной подынтегральной функцией также можно отказаться от сложного адаптивного алгоритма интегрирования, реализованного имеющимся в MathCAD оператором интегрирования. Вместо него можно воспользоваться одной из многоточечных прямых формул интегрирования, например Ньютона — Котесса, Гаусса или Уэддля.
Документ е3-6 показывает вычисление интеграла с применением двух шеститочечных формул -- Уэддля и Ньютона — Котесса. Обе формулы довольно просты и дают малую погрешность. Отрезок интегрирования [a, b] при их применении делится на равные отрезки с шириной h.
Использованные в этом документе формулы позволяют вычислять значения интеграла с точностью до 5--6 знаков после десятичной точки. При этом скорость вычислений возрастает в несколько раз по сравнению со скоростью вычисления интеграла по встроенному в систему MathCAD алгоритму с аналогичной точностью. Если функция имеет особенности, они не должны попадать на узловые точки. Вообще говоря, лучше применять такой метод интегрирования для достаточно гладких функций без особенностей.
3.7. Анализ сложной функции
Одна из самых распространенных математических задач, встречающихся при использовании математических средств, -- анализ сложных функций. Под анализом сложной функции одной действительной переменной F(x)
обычно подразумевается построение ее графика, грубая оценка по нему формы кривой F(x) и особенностей функции, уточнение значений корней и экстремумов функции. Все это иллюстрирует документ е3-7.
Выбранная для анализа функция в заданном отрезке изменения аргумента x [-10, 10] имеет пять корней и четыре экстремума. Построение графика функции позволяет грубо определить координаты точек функции, в которых наблюдаются эти особенности.
С помощью функции root можно последовательно уточнить значение каждого корня, т. е. значения x, при котором F(x) обращается в 0. Для приведенной в документе функции это придется повторить пять раз (по числу корней), каждый раз указывая начальное значение x, близкое к искомому. Для этого и нужна грубая оценка корней по графику.
Далее с помощью функции minerr
уточняются координаты точек для главного максимума функции и двух минимумов. В этом случае необходимо также указывать начальное значение x, достаточно близкое к искомому. Кроме того, надо задать примерное равенство F(x) = Fi, где Fi -- заранее недостижимое значение F(x). Оно должно превышать значение функции в точке максимума при поиске максимума и быть меньше значения функции в точке минимума при поиске минимума.
Для определения того, к какому классу ( максимуму или минимуму) относится найденный экстремум, рекомендуется вычислить значение F(x)
в трех точках: в точке экстремума и в двух близких точках по обе стороны от значения x в точке экстремума. Если эти значения меньше экстремального, значит, экстремум есть максимум, иначе же он минимум.
3.8. Раскройка ящика из железного листа
Полезность анализа функции можно пояснить примером, представляющим практическую ценность для садовода или строителя собственной баньки. Пусть вы решили скроить ящик для воды или продуктов из железного листа прямоугольной формы с шириной W и длиной L. Ящик создается отгибом краев листа на расстояние X.
Документ е3-8 поясняет решение столь актуальной задачи. На нем представлена формула для объема ящика V(X) и построена кривая функции F(X) = V(X) – V0, где V0 -- заданный объем ящика. Корни этой функции удовлетворяют решению следующей задачи: нахождение значений X для получения ящика заданного объема.
Вид функции F(X) показывает, что теоретически возможны три решения этой задачи. Все они и найдены с помощью функции root с подсказкой начального (уточняемого решением) значения X. Нетрудно понять, что действительно возможны два решения: ящик получается либо плоский с большой площадью дна и малой высотой, либо глубокий с малой площадью дна и большой высотой. Третье решение оказывается физически нереальным, поскольку ширина отгиба X
оказывается большей, чем половина ширины листа.
Если важно сэкономить материал, можно найти иное решение задачи -- определить ширину отгиба для получения ящика с максимальным объемом. Этот вариант решения также представлен в документе е3-8. Тут используется функция minerr в составе вычислительного блока, открываемого словом Given. В этом блоке задается система нелинейных уравнений в виде функции V(X), заведомо невыполнимого условия V(X)=100 и выражения XM = minerr(X). Перед началом решения задается начальное значение X=1. Функция minerr(X) ищет значение X, в максимальной степени удовлетворяющее условию получения заведомо недостижимо большого объема V=100.
Самому создателю ящика, разумеется, важно, в каких единицах заданы размеры листа (скажем, в метрах или дюймах). Однако на решение задачи это не влияет. К примеру, если размеры заданы в метрах, объем получится в кубических метрах и т. д.
3.9. Поиск глобального максимума методом Монте-Карло
Для многоэкстремальных функций часто требуется сразу вычислить значение глобального максимума или минимума. При этом, как правило, предполагается, что значение x для него неизвестно даже приблизительно, а анализ (или даже построение) графика нежелателен. Документ е3-9 показывает возможное решение такой задачи с применением метода Монте-Карло (случайного поиска).
В начале этого документа задана многоэкстремальная функция. График ее (приведенный исключительно ради наглядности) показывает, что функция действительно имеет ряд экстремумов -- как максимумов, так и минимумов. Глобальный максимум лежит приблизительно в отрезке изменения X от 1 до 2.
Далее в этом документе дана попытка вычисления максимума с помощью функции minerr при начальном значении X = 1. Эта попытка оказалась неудачной: вместо глобального максимума обнаружен локальный максимум, тут не представляющий интереса.
Метод Монте-Карло (заимствованный из правил карточной игры) означает просто многократное вычисление F(X) для случайных значений X, лежащих в отрезке от 0 до 5. Такие значения создает функция rnd(5) при ее многократном применении. Полученные значения F(X) каждый раз сравниваются друг с другом, причем, если новое значение максимально, запоминается значение Xo и сравнение идет со значением F(Xo). После N таких вычислений будет получено значение Xo, достаточно близкое к искомому. Затем уточнение X
с помощью функции minerr позволяет найти положение глобального максимума.
Этот метод относится к классу статистических методов, то есть существует конечная вероятность того, что решение будет неточным. Это возможно при малом начальном числе случайных испытаний N, поскольку (в силу случайности значений X) существует вероятность, что ни одно из значений X не попадет в область глобального максимума. Однако вероятность этого быстро уменьшается с ростом N. Здесь ситуация схожа со стрельбой по заданной мишени: известно, что при большом числе выстрелов, даже с учетом случайных отклонений пули или снаряда от точной траектории, мишень рано или поздно будет поражена.
Разумеется, в нашем иллюстрирующем метод Монте- Карло примере можно было бы поступить проще: задать более точно значение X и вычислить максимум с помощью функции minerr. Однако, особенно если рассматривается функция многих переменных, решение методом Монте-Карло может оказаться весьма полезным. Хотя бы потому, что тут не всегда возможно построение графика функции, и еще потому, что в таком случае метод Монте-Карло способен привести к заметному сокращению времени вычислений.
Этот метод часто используется и для приближенного интегрирования. Например, он может вычислять кратные интегралы с довольно каверзными подынтегральными функциями, при которых встроенный оператор вычисления определенных интегралов оказывается бесполезным.
3.10. Поиск минимума функции Розенброка
С помощью функции minerr возможен поиск экстремума и функций ряда переменных. Примером такой функции является функция Розенброка. Это типичная тестовая функция двух переменных, обычно применяемая для тестирования программ минимизации функций ряда переменных. Функция имеет очевидные значения x = y = 1 в точке минимума. Графическое представление функции напоминает "овраг", что затрудняет поиск минимума рядом простых методов.
На рис. 12.17 показан поиск минимума функции Розенброка с применением функции minerr. Поиск задается вычислительным блоком, открываемым словом Given. Фактически решается система уравнений. Два уравнения после слова Given приближенно задают условия минимума, третье уравнение (с функцией minerr) отыскивает решение, в максимальной степени удовлетворяющее заданным условиям минимума.
Рис. 12.17 Поиск минимума функции Розенброка (документ е3-10)
Следует отметить, что тут заведомо известно, что функция имеет минимум. Если бы этого не было, пришлось бы ввести условия на значения вторых производных функции по каждой переменной.
3.11. Вычисление собственных значений квадратных матриц и принадлежащих им векторов
В ряде областей науки и техники (например, в механике и электротехнике) важно вычисление собственных значений квадратных матриц M и принадлежащих им векторов. В системе MathCAD даже в версии 3.0 для этого служат встроенные функции eigenvals(M)
и eigenvec(M, z). Однако при их применении алгоритм вычисления собственных значений и принадлежащих им векторов скрыт от пользователя. Кроме того, эти функции отсутствуют в популярных ранних версиях системы.
По указанным причинам в документе е3-11 представлена реализация таких вычислений без применения функций eigenvals и eigenvec. Помимо вычисления собственных значений и принадлежащих им векторов в документе представлено составление характеристического полинома матрицы и построение его графика.
3.12. Вычисление специальных функций различными методами
Система MathCAD предоставляет удобные средства для вычисления различных специальных математических функций. Несколько позже мы рассмотрим наиболее удобное из этих средств -- вычисление функций по их интегральному представлению. А пока отметим применение других методов, представленное документом е3-12.
В редких случаях специальные функции могут быть представлены через элементарные функции, причем имеющее, как правило, частный характер (функции потому и называются специальными, что в общем случае не имеют представления через элементарные функции). К примеру, интегральная показательная функция En(x) для n = 0
имеет представление через экспоненциальную функцию; оно показано в начале документа е3-12.
Функция En(x)
для n = 1 может быть вычислена по ее представлению в виде бесконечного ряда. Однако, если точность вычислений ограничена разумными пределами, ряд можно сделать конечным. В документе е3-12 для вычисления этой функции используется ряд из десяти членов.
По значениям E0(x)
и E1(x)
можно вычислить En(x)
с помощью довольно простых рекуррентных формул. Объединение этих трех методов в документе е3-12 позволяет вычислять ряд интегральных показательных функций от нулевого до заданного порядка n.
Еще один из методов вычисления специальных функций основан на применении той или иной (чаще всего полиномиальной) аппроксимации функции. Нередко такая аппроксимация комбинируется с вычислением какой-либо вспомогательной функции. В конце документа е3-12 представлено вычисление двух важных функций статистики — Z(x) и P(x), характеризующих вероятность при нормальном распределении и значение интеграла вероятности. Функция Z(x)
определена аналитически и является вспомогательной для вычисления функции P(x) на базе ее полиномиальной аппроксимации.
Описанные методы вычислений применимы и ко многим другим специальным функциям. Необходимые представления для этих функций можно найти в справочной литературе [1, 27, 28].
3.13. Вычисление специальных функций с помощью интегрирования
Большинство специальных математических функций имеет интегральное представление. Если оно сводится к вычислению определенного интеграла с конечными пределами и подынтегральной функцией без особенностей (т. е. к вычислению несобственного интеграла), идеальным способом вычисления функции является ее задание в виде функции пользователя с интегральным представлением вычисляемой специальной функции.
Рис. 12.18 иллюстрирует такие вычисления на примере довольно распространенных специальных функций: интегральных гамма-синуса и гамма-косинуса, интегралов Френеля, полных эллиптических интегралов, неполной гамма-функции и дилогарифма. Видна лишь начальная часть документа е3-13, к которому относится этот рисунок.
Рис. 12.18. Вычисление специальных функций по их интегральному представлению (начало документа е3-13)
Если интегральное представление функции выражается несобственным интегралом (например, с бесконечным верхним или нижним пределом интегрирования), вычисление интеграла заметно усложняется и требует контроля правомерности используемых приближений (например, замены бесконечного предела интегрирования конечным пределом). В таких случаях, как правило, более предпочтительны иные методы вычисления специальных функций, описанные в документе е3-12.
Пакет 4. ИНТЕРПОЛЯЦИЯ, АППРОКСИМАЦИЯ И СГЛАЖИВАНИЕ ФУНКЦИЙ
4.1. Интерполяция по общей формуле Лагранжа
В этом пакете рассматриваются функции одной переменной вида y(x), как правило, заданные в табличном виде, т. е. рядом значений x и соответствующих им значений y. Именно так обычно задаются данные эксперимента, получаемые на различных физических или электронных измерительных установках.
Важной задачей математической обработки подобных данных является и их представление в виде некоторой математической зависимости, допускающей проведение над нею обычных математических операций, например вычисление y(x) при x, не совпадающих с исходными (узловыми) точками, интегрирование или дифференцирование функций, проведение их статистической обработки (сглаживания или фильтрации) и т. д.
Одной из самых распространенных задач такого рода является интерполяция таблично заданных функций, т. е. вычисление их значений в промежутках между узловыми точками. В математической литературе общепринято представление многих специальных функций в виде математических таблиц [14], ориентированных на интерполяцию по заданному числу узловых точек (обычно от 2 до 6).
В систему MathCAD встроены функции линейной и сплайн-интерполяции, при которых отдельно на каждом промежутке функция представляется отрезком прямой или кубическим многочленом. Последний вычисляется так, чтобы обеспечить стыковку в узловых точках как значений функции, так и ее первых двух производных (что и дает необходимую гладкость графика функции).
Эти мощные средства интерполяции имеют, однако, существенный недостаток: параметры интерполирующей функции различны на различных участках интерполяции. Другими словами, такая интерполяция не может быть сведена к одной интерполирующей формуле, что затрудняет интерполяцию математических таблиц, за исключением случая линейной интерполяции, дающей довольно низкую точность.
В пакете 4 представлен документ е4-1, задающий обобщенную формулу интерполяции методом Лагранжа. Эта формула синтезирует полином Лагранжа, используя два вектора: с координатами xi и yi узловых точек. Преимущества такого подхода в том, что число узловых точек и их расположение может быть любым (в том числе неравномерным), а для интерполяции используется единая интерполирующая формула f(x), к сожалению, довольно сложная.
При интерполяции полиномом Лагранжа степень полинома n однозначно связана с числом узловых точек. Она на единицу меньше этого числа. Значения ординат интерполирующей функции в узловых точках совпадают с ординатами узловых точек. Поэтому график интерполирующей функции f(x)
точно проходит через узловые точки. К сожалению, при высокой степени полинома (более 5--6) погрешность вычислений его значений заметно возрастает, поэтому выбор n выше 6 на практике нецелесообразен. А это означает, что функция y(x)
должна быть представлена небольшим числом достаточно точных значений. К недостаткам интерполяции по обобщенной формуле Лагранжа относится и довольно большое время вычислений, поскольку формула интерполяции достаточно сложна.
4.2. Интерполяция табличных данных по формулам Лагранжа
По указанным выше причинам для интерполяции таблиц более удобно использовать интерполяцию по прямым формулам Лагранжа, прямо представленным в виде многочлена с заранее вычисленными (по обобщенной формуле) коэффициентами. Этот вид интерполяции основан на применении полинома Лагранжа, коэффициенты которого выбираются таким образом, чтобы его значения в узловых точках совпадали со значениями y(x).
Наиболее просто интерполяция осуществляется при равномерном расположении узлов. Тогда один из узлов считается центральным, а приращение x от узла к узлу задается постоянным шагом интерполяции h. Прямые формулы интерполяции задаются как функции ординат исходной зависимости и параметра p = (x – xc)/h, где x -- заданное значение x, для которого вычисляется y(x), а xc -- абсцисса центрального узла.
В документе е4-2 приведена сводка функций пользователя вида fn(p, y), где p -- параметр смещения относительно центрального узла (см. выше), y -- вектор (i + 1) значений интерполируемой функции и i -- порядок интерполирующего полинома Лагранжа (в нашем случае от 1 для линейной интерполяции и до 5 при интерполяции полиномом пятой степени). Формулы интерполяции соответствуют приведенным в [28].
Документ е4- 2 является полностью готовым средством для интерполяции математических таблиц по 2--6 узловым точкам. Хотя существуют формулы интерполяции и для большего числа узлов, на практике они почти не применяются, поскольку имеют явно избыточную точность и применимы к таблицам, дающим значения функций с более чем шестью точными знаками.
4.3. Полиномиальная аппроксимация
Полином Лагранжа является достаточно сложной функцией. В ряде случаев для замены функции y(x) более простой зависимостью (т. е. для ее аппроксимации) применяют обычный степенной многочлен (полином). Число узловых точек (n + 1) и в этом случае определяет степень полинома n.
В документе е4-3 дана реализация полиномиальной аппроксимации. В начале этого документа формируется система уравнений по методу выбранных точек и обеспечивается ее решение, дающее вектор коэффициентов аппроксимирующего полинома. В конце документа заданы вычисление полинома P(x) и построение его графика с наложенными на него узловыми точками. Надо заметить, что и в этом случае график аппроксимирующего полинома точно проходит через узловые точки, что не удивительно, ведь для каждой совокупности точек существует единственный степенной многочлен, значения которого в узловых точках совпадают с ними.
4.4. Чебышевская аппроксимация
При табличном задании функции положение узловых точек определено заранее, и его практически нельзя изменить. Однако часто желательна аппроксимация аналитически заданных функций, призванная заменить эту функцию на более простую, например не содержащую сложных алгебраических или тригонометрических функций. Такая аппроксимация может преследовать и иную цель -- сокращение числа базовых функций для их последующей математической обработки.
Если некоторая функция F(x) задана аналитически, расположение узлов можно выбирать произвольно. Разумеется, возможно применение обычной полиномиальной аппроксимации и для аналитически заданной функции. Для этого достаточно вектор y
сформировать, вычисляя значения его элементов по аналитической формуле для y = F(x). Однако Чебышевская аппроксимация обладает повышенной точностью по сравнению со многими другими видами аппроксимации (например, полиномиальной) благодаря оптимальному выбору узлов с учетом кривизны изменения функции на заданном отрезке аппроксимации.
Весьма простая методика Чебышевской аппроксимации получается, если отрезок аппроксимации есть [-1, 1]. Это, однако, не препятствует аппроксимации на произвольном отрезке [a, b], просто тогда в начале аппроксимации надо использовать формулы приведения отрезка аппроксимации к [-1, 1], а затем пересчитывать значения функции в отрезок [a, b]. Чебышевская аппроксимация реализуется документом е4-4.
В этом документе представлены два подхода к Чебышевской аппроксимации. Первый связан с вычислением полинома Чебышева Tn(x), а второй -- с вычислением обычного полинома P(x). Графики этих полиномов с нанесенными на них узловыми точками, которые строит данный документ, показывают, что результаты аппроксимации в обоих случаях идентичны -- графики полиномов точно проходят через узловые точки.
4.5. Экспоненциальная регрессия
Часто требуется отыскать параметры какой-либо нелинейной зависимости f(x) таким образом, чтобы эта зависимость проходила через облако узловых точек с наименьшей среднеквадратичной погрешностью отклонения от них. Тогда говорят о нелинейной регрессии или (что то же самое) об аппроксимации или приближении функции методом наименьших квадратов. В этом случае число узловых точек может быть сколь угодно большим, и в процессе регрессии выполняется статистическая обработка данных.
Примером такого рода регрессии может служить экспоненциальная регрессия. Хотя с равным успехом можно заменой формулы регрессии выполнить ее для любого другого вида регрессии. Документ е4-5 дает представление о двух методах экспоненциальной регрессии, при которой исходная функция экспоненциальная и является функцией аргумента x и двух параметров a и b, т. е. представляется в виде f(x, a, b).
Первый метод заключается в решении системы нелинейных уравнений, в которую входят приближенные равенства f(x0, a, b) = y0 и выражение с функцией minerr(a, b), возвращающей значения a и b, при которых система решается с минимальной среднеквадратичной зависимостью.
Второй метод использует преобразования, сводящие нелинейную (экспоненциальную) регрессию к линейной. Последняя обеспечивается встроенными в систему MathCAD средствами довольно просто. Затем применяются обратные преобразования, дающие параметры a и b по найденным параметрам линейной регрессии. Мерой точности регрессии является коэффициент корреляции -- чем он ближе к 1, тем меньше погрешность найденных параметров a и b.
Задание функции регрессии в виде f(x, a, b)
необходимо для правильного решения системы нелинейных уравнений. В ранних версиях MathCAD 2.0/2.01 допускалось упрощенное задание функции регрессии в виде f(x) с включением в выражение для функции глобальных переменных (параметров) a и b. В последующих версиях алгоритм минимизации решения с помощью функции minerr требует более точного задания функции регрессии в указанном виде. После проведения регрессии функция f(x, a, b) может быть переопределена в более простом виде -- как f(x).
Рассматривая документ е4-5 можно заметить, что два способа регрессии дают заметно отличающиеся значения для параметров a
и b функции регрессии a × exp(b × x). Тут нет ничего неожиданного, поскольку характер статистической обработки непреобразованных данных при первом методе несколько отличается от него при обработке преобразованных данных во втором методе. Оба варианта регрессии дают (при графическом выводе данных) неуловимые различия, так что трудно отдать предпочтение тому или иному методу.
Документ е4-5 можно использовать и для других двухпараметрических уравнений регрессии, например, a × ln(b × x) или a + b/x и т. д. Надо лишь изменить запись функций f(x, a, b), f(x) и f1(x). Таблицы для перехода от нелинейной регрессии к линейной описаны в [1, 2].
4.6. Полиномиальная регрессия
Двухпараметрические функции регрессии, рассмотренные выше, хотя и охватывают большой набор зависимостей f(x, a, b), являются довольно простыми функциями, имеющими частное применение. Гораздо обширнее область применения полиномиальной регрессии, поскольку полином способен описать невообразимо большое число нелинейных зависимостей.
Полиномиальная регрессия отличается от полиномиальной аппроксимации тем, что при ней устраняется прямая зависимость между числом узлов и степенью полинома. Можно задать любую степень полинома n, тогда число узловых точек исходной зависимости должно превышать (n + 1). Если оно равно этому числу, то реализуется обычная полиномиальная аппроксимация. Таким образом, полиномиальная регрессия решает задачу приближения заданного облака точек более общим путем: она позволяет найти коэффициенты степенного многочлена заданной степени n, приближающего облако исходных данных с минимальной среднеквадратичной погрешностью.
Ввиду весьма широкого применения полиномиальной регрессии (заметим, что к ней сводится линейная и параболическая регрессии при n = 1 и 2) документ е4-6 разбит на две части. Видимая (левая) часть расположена вверху, а следом за нею идет невидимая (правая) часть, в которой сосредоточены все математические операции, необходимые для реализации регрессии. Видимая часть документа представлена на рас. 12.19.
Рис. 12.19. Пример полиномиальной регрессии
В этой части документа сосредоточены задание матрицы с двумя столбцами исходных точек (координаты x и y узловых точек), вывод результатов регрессии и построение графиков функции регрессии и узловых точек. В невидимой части документа сосредоточен математический аппарат реализации полиномиальной реакции.
4.7. Линейная регрессия общего вида
Описанные приемы проведения регрессии можно распространить на более сложные ее виды, когда функция регрессии состоит из совокупности более простых функций. Примером может служить линейная регрессия общего вида. При ней нужно найти значения ряда линейных множителей K1, K2, ..., Kn, при которых облако исходных точек приближается зависимостью
Y(x) = K1*F1(x) + K2*F2(x) + ... + Kn*Fn(x).
Сами функции F1(x), F2(x), ..., Fn(x)
могут быть нелинейными зависимостями, но исходная функция является линейной комбинацией этих функций. Разумеется, такая комбинация позволяет описать гораздо большее число типов зависимостей Y(x), чем просто линейная зависимость.
Документ е4-7 иллюстрирует технику проведения линейной регрессии общего вида. Функция Y(x) здесь является линейной комбинацией трех функций. Реализация линейной регрессии общего вида с помощью функции minerr практически та же, что и в ранее приведенных документах. График в конце документа показывает, что зависимость Y(x) действительно нелинейная и ее кривая проходит вблизи исходных точек, помеченных квадратиками.
4.8. Нелинейная регрессия общего вида
Столь же просто, как и для линейной регрессии общего вида, можно реализовать и нелинейную регрессию общего вида, которая заключается в вычислении ряда параметров k1, k2, ..., kn для функции регрессии вида
f(x, ki) = f1(x, ki) + f2(x, ki) + ... + fn(x, ki),
где ki означает ряд параметров k1, k2, ..., kn. Функции, входящие в функцию регрессии, в общем случае нелинейны. Документ е4-8 иллюстрирует проведение нелинейной регрессии. В конце документа задано построение функции регрессии и облака исходных точек. Документ е4-8 легко переделать для проведения нелинейной регрессии общего вида для любой другой функции регрессии.
4.9. Линейное сглаживание по пяти точкам
Еще один полезный вид статистической обработки функции y(x), заданной n
точками, заключается в статистической обработке каждой точки с учетом положения нескольких ближайших точек. Например, простейший способ такой обработки заключается в усреднении значений этой точки и нескольких других окружающих ее слева и справа точек. В результате будет получен вектор ys сглаженных значений y(x). Некоторую проблему представляет вычисление сглаженных значений точек, примыкающих к концевым. Однако теоретически получены формулы сглаживания и для этих точек.
Линейное сглаживание по пяти точкам реализует документ, показанный на рис. 12.20. На нем вначале задан вектор параболической зависимости, на которую наложены сильные случайные компоненты, создаваемые генератором случайных чисел. Далее заданы пять формул сглаживания: по две для крайних двух точек слева и справа и одна для других (эта формула просто находит среднее значение для центральной точки и окружающих ее четырех ближайших точек). Фактически кривая сглаживания состоит из ряда отрезков прямых линий, откуда и название -- "линейное сглаживание".
Рис. 4.9. Линейное сглаживание по пяти точкам (документ е4-9)
На приведенном рисунке видно, что сглаженная кривая проходит внутри облака точек и неплохо вписывается в него. При этом число сглаженных точек равно числу исходных точек (в нашем случае их 50). Разумеется, при таком большом числе сглаженных точек эффективность сглаживания оказывается заметно ниже, чем, например, при проведении регрессии с большим числом исходных точек.
4.10. Нелинейное сглаживание по семи точкам
Можно повысить эффективность сглаживания, увеличив число точек, используемых для статистической обработки заданной точки и перейдя к кривой сглаживания в виде отрезка полинома более высокой степени, чем 1. В документе е4-10 представлены формулы нелинейного сглаживания по семи точкам [1, 2, 28]. Этих формул семь: по три для крайних точек и одна для остальных.
Для нелинейных зависимостей, близких к параболическим или содержащих отрезки парабол, нелинейное сглаживание гораздо более эффективно, чем линейное. Тем не менее и здесь гладкость кривой сглаживания невелика.
По поводу целесообразности повторения процедуры сглаживания высказываются различные мнения. Одни считают, что повторное сглаживание делает кривую сглаживания более плавной. Другие не рекомендуют применение повторного сглаживания. В целом сглаживание — эффективный инструмент предварительной обработки исходных данных. Затем можно использовать более тонкие методы обработки данных, например их фильтрацию на основе спектрального анализа и синтеза, полиномиальную регрессию с применением полинома определенного порядка и т. д.
Пакет 5. РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХ И ИНТЕГРАЛЬНЫХ УРАВНЕНИЙ
5.1. Решение дифференциального уравнения первого порядка модифицированным методом Эйлера
Решение дифференциальных уравнений широко применяется в практике научно-технических расчетов. Это связано с тем, что дифференциальные уравнения (и системы из них) описывают поведение различных объектов в динамике, например переходные процессы в электронных схемах или работу часового маятника. Линейные дифференциальные уравнения имеют решения в виде специальных функций, например функций Бесселя. Однако многие физические системы нелинейны и описываются нелинейными дифференциальными уравнениями, не имеющими аналитического решения. В этом случае приходится использовать численные методы решения дифференциальных уравнений.
К сожалению, только в последних расширенных версиях системы MathCAD (PLUS 5.0/6.0) содержатся встроенные средства для численного решения дифференциальных уравнений и их систем. Они были описаны в главе 11. Все остальные версии таких средств не содержат, и для реализации решения этого класса задач приходится использовать известные методы численного решения дифференциальных уравнений и их систем, реализуя их средствами системы MathCAD.
С точки зрения освоения численных методов решения их реализация в системе MathCAD полезна и наглядна. Более того, она позволяет вмешиваться в алгоритмическую реализацию методов решения, что способствует созданию новых или улучшенных методов решения дифференциальных уравнений, ориентированных на решение интересующих пользователя задач.
Здесь рассматриваются только явные методы решения дифференциальных уравнений. Это означает, что очередную точку решения находят из данных предшествующей точки (или ряда предшествующих точек) путем экстраполяции решения тем или иным методом. Причем начальные значения x
и y должны быть заданы как нулевые условия x0 и y0.
Пусть необходимо решить дифференциальное уравнение первого порядка
y' = f(x, y).
Простейшим численным методом решения является простой метод Эйлера, при котором новую точку решения y(x) находят из формулы:
yi = yi-1 + h × f(xi-1, yi-1),
где h -- шаг приращения переменной x, i -- индекс, имеющий значения от 1 до N (N — число интервалов решения с шагом h).
К сожалению, этот метод настолько груб (погрешность порядка h), что погрешность решения нередко достигает нескольких процентов. Она такова, что на графиках точного и данного решений наблюдается заметное расхождение. По этой причине реализация простого метода Эйлера не приводится. Пользователь легко может выполнить ее самостоятельно.
Документ е5-1 дает реализацию более совершенного модифицированного метода Эйлера. Этот метод имеет погрешность порядка h2, так что при h = 0.1 она обычно не превышает 1%. Для решения многих практических задач такая погрешность уже вполне приемлема, во всяком случае, на рис. 5.1 точки точного решения для тестового примера укладываются на расчетную кривую почти точно.
Для решения другого (отличного от тестового) дифференциального уравнения достаточно изменить шаг h, число точек решения N, функцию f(x, y) и задать новые начальные значения для x и y. Обратите внимание, что здесь и далее само решение по взаимосвязанным рекуррентным формулам задается в векторном виде (это, вообще говоря, не обязательно). Сравнение результатов вычислений y с данными точного решения yi показывает, что для нашего тестового примера заметные расхождения в третьей цифре результатов после десятичной точки начинаются лишь в конце решения.
5.2. Решение дифференциального уравнения первого порядка методом Рунге — Кутта
Точность решения можно существенно повысить, переходя к методам решения дифференциального уравнения более высокого порядка. Так, широко используемый на практике метод Рунге — Кутта четвертого порядка дает погрешность решения порядка h-4 , что удовлетворяет самым придирчивым требованиям к точности численных методов. Метод Рунге — Кутта неоднократно подробно описывался [6, 8, 14]. Его реализация дана в документе е5-2.
Реализация метода Рунге — Кутта значительно сложнее, чем метода Эйлера (в том числе модифицированного). Чтобы не усложнять запись рекуррентных выражений в векторной форме, коэффициенты k1-k4
формул Рунге — Кутта заданы в виде функций пользователя.
Разумеется, из-за большей сложности реализации скорость вычислений при использовании метода Рунге — Кутта ниже, чем при использовании модифицированного метода Эйлера. В некоторых случаях его реализацию можно заметно упростить по сравнению с общей реализацией, представленной в документе на е5-2.
5.3. Реализация метода Рунге — Кутта со скрытым блоком решения
Метод Рунге — Кутта является хорошо апробированным и надежным
стандартным методом решения дифференциальных уравнений. Поэтому целесообразно такое построение документа, реализующего этот метод, при котором сама реализация метода убрана за пределы видимой части экрана. Это создает впечатление, что решение встроено в систему. На рис. 12.21 показана реализация метода Рунге — Кутта таким способом.
Рис. 12.21. Пример решения дифференциального уравнения методом Рунге — Кутта (первая часть документа е5-3)
Документ на рис. е5-3 состоит из двух частей. Первая часть (рис.12.21) содержит ввод исходных данных и вывод графика решения. Для решения надо задать функцию f(x, y), начальное startx и конечное endx значения x, число точек решения n
и начальное значение inity
переменной y. При построении графика функции указываются нижний (L) и верхний (U) пределы изменения искомой зависимости y(x).
Вторая часть документа (см. рис. 12.22) в действительности располагается справа от первой части и размещается в обычно невидимой части документа. Поэтому пользователь избавлен от созерцания тривиальных или просто не интересующих его математических формул и может сосредоточить внимание лишь на вводе исходных данных и функции f(x, y) и выводе результатов.
Рис. 12.22. Математическая реализация метода Рунге — Кутта
Рассматривая рис. 12.22 нетрудно сделать вывод о наглядности реализации метода Рунге — Кутта. По существу, приведенные уравнения повторяют известные формулы этого метода, часто встречающиеся в учебной литературе по численным методам решения дифференциальных уравнений.
5.4. Решение дифференциального уравнения второго порядка вида y'' = F(x, y, z)
Дифференциальные уравнения второго порядка имеют исключительно важное самостоятельное значение, поскольку описывают поведение многих колебательных систем, от механического маятника до электрического колебательного контура и квантово-механического резонатора. Эти уравнения могут иметь различный вид. Здесь рассматривается решение дифференциального уравнения y'' = F(x, y, z), где z = y'.
В документе е5-4 реализовано решение методом Рунге — Кутта. Система рекуррентных уравнений в векторной форме содержит уже три уравнения -- на одно больше, поскольку возрос порядок решаемого уравнения. Используются формулы решения, описанные в [28].
5.5. Решение дифференциального уравнения второго порядка вида
y''(t) + Ay'(t) + By(t) = C(t)
Поведение многих колебательных систем во времени описывается решением дифференциального уравнения следующего вида:
y''(t) + Ay'(t) + By(t) = C(t),
где t -- время, A и B -- константы и C(t) -- некоторая временная функция.
Документ е5-5 дает решение этого уравнения со скрытым в правой части документа (нижней на рисунке) вычислительным блоком, реализующим метод Рунге — Кутта. Преимущества такого представления документа обсуждались выше. Тестовый пример, приведенный в этом документе, дает представление о реакции типичной колебательной системы второго порядка на воздействие C(t) в виде скачка. Это решение описывает затухающие почти синусоидальные колебания.
5.6. Решение системы из двух дифференциальных уравнений модифицированным методом Эйлера
Поведение динамических систем второго порядка описывается либо дифференциальными уравнениями второго порядка, либо системой из двух дифференциальных уравнений первого порядка. В ряде случаев решение системы из двух дифференциальных уравнений первого порядка представляет самостоятельный интерес.
При отсутствии серьезных требований к погрешности вычислений вполне возможно применение для решения простого метода Эйлера. В последующем будет приведено немало примеров его применения для решения физических и электротехнических задач. Тем не менее из-за большой погрешности решения общая реализация этого метода (весьма простая) не приводится. Если к погрешности решения предъявляются умеренные требования, вполне подходящим является решение модифицированным методом Эйлера. Его реализация иллюстрируется документом е5-6. Решается следующая система дифференциальных уравнений:
y' = f1(x, y, z), z' = f2(x, y, z).
Обратите внимание, что для упрощения записи формул функции f1 и f2
заменены на F1 = f1 × d и F2 = f2 × d, где d = h/2. При смене функций f1 и f2
их следует заменять в составе функций F1
и F2, не забывая о необходимости умножения на d.
5.7. Решение системы дифференциальных уравнений методом Рунге — Кутта
Более точное решение системы из двух дифференциальных уравнений дает метод Рунге — Кутта. Далее рассматривается решение следующей системы:
x' = F(t, x, y), y' = G(t, x, y).
Здесь несколько изменены обозначения переменных -- они более удобны для анализа поведения динамических систем во времени t.
Поскольку такая система весьма распространена, реализация решения в документе е5-7 разбита на две части. В видимой (левой) части заданы лишь операции ввода исходных данных и вывода решения системы в виде функций x(t) и y(t). В невидимой (правой) части сосредоточена математическая реализация решения.
Графический вывод результатов решения дает весьма наглядную информацию о характере решения. Так, решение системы, представленной в данном документе, описывает периодические несинусоидальные колебания.
5.8. Решение интегрального уравнения Вольтерра первого рода
Помимо дифференциальных уравнений решения многих динамических систем описываются интегральными уравнениями. Среди них самые распространенные -- интегральные уравнения Вольтерра первого и второго рода. Документ е5-8 реализует численный метод решения интегрального уравнения Вольтерра первого рода.
Вид интегрального уравнения Вольтерра первого рода представлен в начале документа. Различные решения уравнения получаются при выборе различных функций k(x, s) и f(x). Тестовый пример имеет аналитическое решение, что позволяет на графике (в конце документа) сравнить результаты точного решения и приближенного. В пределах точности построения графиков результаты оказываются идентичными.
5.9. Решение интегрального уравнения Вольтерра второго рода
В документе е5-9 представлен вид интегрального уравнения Вольтерра второго рода (в начале документа), его решение численным методом и результаты решения в сравнении с аналитическим решением, полученным для тестового примера.
Решение интегральных уравнений -- довольно сложная задача. Для получения высокой точности может потребоваться большое число точек решения N. Так, на примере более сложного решения интегрального уравнения Вольтерра второго рода в его конце уже заметно расхождение точного и численного решений (см. график в конце документа). При больших N время вычисления может быть довольно продолжительным, особенно при вычислениях на ПК с невысокой тактовой частотой микропроцессора и без математического сопроцессора.
Пакет 6. СПЕКТРАЛЬНЫЕ СИНТЕЗ, АНАЛИЗ И ФИЛЬТРАЦИЯ
6.1. Гармонический синтез меандра
Одним из фундаментальных положений математики, ранее казавшимся абстрактным, а затем нашедшим широчайшее практическое применение, является возможность описания любой периодической функции, имеющей конечное число разрывов и непрерывность производных между ними, с помощью тригонометрического ряда Фурье [29, 30]:
N
Y(t) = å ak × sin(2pkf1t) + bk × cos(2pkf1t),
k=1
где k -- порядковый номер гармоники, f1 -- частота колебания. Этот ряд содержит бесконечное число косинусных и синусных составляющих -- гармоник, причем амплитуды этих составляющих ak
и bk являются коэффициентами Фурье, определяемыми интегральными выражениями, которые будут приведены несколько позднее.
Приведенный ряд содержит бесконечное число членов и при таком представлении оказывается бесполезным, поскольку время вычисления в этом случае также равно бесконечности. К счастью, амплитуды гармоник для реальных зависимостей y(t) довольно быстро уменьшаются по мере роста номера гармоники k. Поэтому на практике имеют дело с ограниченными по числу гармоник рядами Фурье.
Помимо упомянутой формы ряд Фурье можно представить в виде:
N
y(t) = å Mk × cos(2pkf1t + jk),
k=1
где амплитуда гармоник Mk
и их фаза jk определяются выражениями:
Mk =

и
jk = –arctan(bk/ak).
Преимущество ряда в этой форме в том, что для вычисления каждого члена ряда нужно лишь один раз обращаться к довольно медленному вычислению тригонометрической функции. В дальнейшем будут приведены формулы, позволяющие вычислять коэффициенты Фурье (либо амплитуды и фазы гармоник) для любой функции y(t). Это является задачей спектрального анализа. Здесь же мы рассмотрим обратную задачу -- синтеза зависимости y(t) путем вычисления ряда Фурье с ограниченным числом членов.
Теория спектрального анализа и синтеза хорошо развита, и для многих зависимостей y(t) заведомо известны значения коэффициентов Фурье или законы изменения (с частотой или номером гармоники) амплитуд и фаз гармоник. Это позволяет синтезировать наиболее распространенные зависимости y(t).
Документ е6-1 реализует синтез периодических прямоугольных импульсов со скважностью равной 2 (меандра). Ряд Фурье для таких импульсов содержит только синусные члены, причем только с нечетными k. Это упрощает синтез, который в документе е6-1 реализован для 3, 7 и 15 гармоник.
Меандр -- не самая удачная для синтеза зависимость, поскольку он содержит резкие скачки. Для не очень сведущего в математике пользователя удивительно, что такого рода зависимость вообще синтезируется из синусоид, которые таких скачков не содержат и представляют собою гладкие функции. Естественно, что для получения скачков нужно брать очень большое число гармоник. Тем не менее уже при 15 гармониках синтезированный сигнал напоминает меандр и отличается от него конечным временем перепада и характерной волнистостью. Она усиливается после быстрых перепадов и является проявлением так называемого эффекта Гиббса [30].
Эффект Гиббса, к сожалению, невозможно устранить ( и даже ослабить) лишь увеличением числа гармоник при синтезе. В этом случае просто возрастает частота волнообразных колебаний, но их относительная амплитуда меняется незначительно -- она доходит до 18% от амплитуды синтезируемых колебаний.
Проявление эффекта Гиббса -- явление крайне нежелательное. Он фактически вводит в синтезируемые колебания новые компоненты, на деле в нем отсутствующие. Это может замаскировать или сильно исказить компоненты колебания, которые интересуют исследователя. Поэтому обычно стремятся ослабить эффект Гиббса, даже за счет уменьшения точности синтеза. В дальнейшем будут обстоятельно рассмотрены приемы ослабления этого эффекта.
6.2. Гармонический синтез треугольных колебаний
Другой распространенный вид колебаний (сигналов) -- треугольные или пилообразные сигналы. Документ е6-2 иллюстрирует гармонический синтез такого сигнала по 3, 5 и 9 гармоникам. Рассматривая этот документ нетрудно заметить, что для синтеза такого сигнала достаточно меньшего числа гармоник, чем для меандра. И тут отчетливо проявляется эффект Гиббса.
В литературе можно найти множество примеров разложения в ряд Фурье самых разнообразных зависимостей y(t). Используя приведенные для них значения коэффициентов Фурье, можно синтезировать самые разнообразные зависимости (сигналы).
Может возникнуть вполне закономерный вопрос: зачем столь сложным способом синтезировать такие простые зависимости, если они легко описываются целиком или по частям с помощью простых аналитических выражений? Действительно, если нужно просто смоделировать сигнал как временную функцию, нет необходимости синтезировать его по множеству гармоник.
Однако существует большое количество теоретических методов анализа сигналов и практических устройств, основанных именно на спектральном подходе. Примером могут служить частотные фильтры и даже целые радиотехнические системы. При их анализе сигнал y(t) часто приходится разлагать в ряд Фурье для проведения в дальнейшем операций с гармониками. Имея сигнал y(t) уже в виде гармоник, можно заметно сократить время обработки сигнала и вообще убрать этап задания функции в виде временной зависимости.
6.3. Спектральный анализ методом Берга
Для некоторых простых зависимостей y(t)
амплитуды гармоник могут выражаться аналитически. Примером служат отрезки синусоиды, получаемые выделением только верхней ее части. На практике такие колебания широко используются в радиотехнике, где обрезание нижней части синусоиды обусловлено работой электронных приборов (например, ламп или транзисторов) в нелинейном режиме.
Доля периода синусоиды, используемой для анализа гармоник, оценивается углом отсечки q (далее он измеряется в радианах). Он, к примеру, равен p, если обрезается нижняя половина синусоиды. Удобно вычислять относительную амплитуду k-й гармоники (по отношению к усеченной амплитуде синусоидального импульса). Этот параметр для разных k впервые был вычислен Бергом.
В документе е6-3 представлены формулы для коэффициентов Берга a0 (относительная постоянная составляющая сигнала), a1 (относительная амплитуда первой гармоники) и an (относительная амплитуда n-й гармоники). Коэффициенты Берга являются функциями угла отсечки.
График в нижней части этого документа дает наглядное представление об изменении первых четырех коэффициентов Берга с изменением угла отсечки. Нетрудно заметить существование максимумов у этих зависимостей. Например, максимальная амплитуда первой гармоники будет при угле отсечки 120 градусов, второй гармоники -- 60 градусов и т. д. Знать эти углы полезно при проектировании умножителей частоты (например, удвоителей или утроителей), работа которых основана на фильтрации одной из высших гармоник.
6.4. Спектральный анализ методом пяти ординат
Два-три десятка лет назад проводить спектральный анализ вручную было весьма сложно, а доступ к ЭВМ имел далеко не каждый ученый или инженер. Поэтому были разработаны достаточно простые и эффективные методы спектрального анализа для различных частных ситуаций. К счастью, они не потеряли значения и сейчас. Более того, возможности таких математических систем, как MathCAD, позволяют вдохнуть в эти методы новую жизнь.
Наглядным примером тому служит спектральный анализ методом пяти ординат. Этот метод широко применяется по сей день для анализа устройств с малой нелинейностью передаточной характеристики, т. е. зависимости амплитуды выходного сигнала от входного. К таким устройствам относятся электронные усилители.
Вкратце суть метода такова. Если некое устройство (система) имеет передаточную характеристику y(x) с малой нелинейностью, то эту характеристику можно описать полиномом четвертой степени. Если входной сигнал
x(t) = X0 + Xmax × sin(2pft)
представляет собой гармоническое колебание, наложенное на пьедестал X0 и имеющее амплитуду Xmax и частоту f, можно получить аналитические формулы для постоянной составляющей реакции устройства и амплитуд первых четырех гармоник, выраженные через пять ординат передаточной характеристики с равномерным расположением на отрезке [X0 - Xmax, X0 + Xmax]. Методы построения передаточной характеристики усилителей будут описаны в дальнейшем. Затем можно рассчитать так называемый коэффициент гармоник или коэффициент нелинейных искажений.
Эти расчеты требуют тщательности, и их трудно провести для многих значений Xmax, например, с целью построения зависимости коэффициента гармоник Kg
от Xmax. Система MathCAD существенно упрощает такие расчеты. Их реализация представлена в документе е6-4.
Рис. 6.4. Реализация метода пяти ординат
В начале документа заданы векторы X
(входной сигнал) и Y (выходной сигнал). Обозначения их даны в обобщенном виде, т. к. это могут быть напряжения или токи, силы (в усилителе механических усилий) т. д. Принципиально важной является сплайн-аппроксимация передаточной характеристики, что позволяет задавать ее не пятью точками, а любым числом точек и не перестраивать каждый раз при смене Xmax. Предусмотрено построение графика передаточной характеристики.
Далее для 10 значений амплитуд входного сигнала вычисляются методом пяти ординат постоянные составляющие, амплитуды первых четырех гармоник и коэффициент нелинейных искажений. В итоге получается табличная и графическая зависимости коэффициента гармоник от амплитуды входного гармонического сигнала в отрезке ее значений от [0, Xmax]. Такая зависимость гораздо более информативна, чем разовый расчет коэффициента нелинейных искажений, которым нередко ограничиваются из-за сложности расчета.
6.5. Спектральный анализ методом 12 ординат
Если система сильно нелинейна, ее выходной сигнал при гармоническом сигнале на входе будет резко несинусоидальным. Тогда вычисления амплитуд четырех гармоник может оказаться неприемлемым, да и исходное представление выходного сигнала по пяти его значениям явно недостаточно. Для систем с такой нелинейностью используется также хорошо известный метод 12 ординат (см., например, [1, 2]).
Этот метод фактически является реализацией классического спектрального анализа (рассматриваемого чуть ниже), доведенного до простых и удобных даже для ручных вычислений формул. Реализация метода, полностью адекватная описанной в [2], представлена в документе е6-5.
При проведении анализа этим методом периодическая функция с периодом T = 1/f = 1 (т. е. безразмерным) задается своими 12 ординатами. Их расположение равномерно. Таким образом, функция просто задается вектором Y, имеющим 12 заданных элементов и один (начальный) нулевой. В результате анализа вычисляются коэффициенты Фурье от a1
до a5 и от b0 до b6.
Такое количество вычисленных коэффициентов Фурье достаточно для гармонического синтеза не очень сложных зависимостей y(t). Полученная в результате синтеза зависимость должна практически точно пройти через заданные узловые точки, что и подтверждается графиком в конце документа е6-5. Это является лучшей проверкой правильности всего комплекса вычислений, от спектрального анализа функции по ее 12 ординатам до синтеза по гармоническим составляющим.
6.6. Спектральный анализ прямоугольного импульса с применением БПФ
Встроенные в систему MathCAD средства быстрого преобразования Фурье (БПФ) существенно упрощают процедуру приближенного спектрального анализа. БПФ -- быстрый алгоритм переноса сведений о функции, заданной 2n отсчетами во временной области, в частотную область. Если речь идет о спектральном анализе функции y(t), ее нужно задавать действительными отсчетами и использовать функцию fft(V), где V -- вектор, элементы которого хранят отсчеты функции y(t). Результатом будет также вектор A с комплексными элементами — отсчетами в частотной области (их вдвое меньше, чем отсчетов во временной области). Фактически действительная и мнимая части этого вектора есть коэффициенты Фурье ak
и bk, что существенно упрощает их получение.
Документ е6-6 поясняет проведение спектрального анализа с применением функции fft прямого БПФ. В начале документа (левый верхний угол) задан вектор с восемью единичными отсчетами и с остальными (всего их 32) нулевыми. Затем вычислен вектор A
— результат БПФ. В заключение вычислены амплитуды гармоник и их фазы для представления импульса рядом Фурье. Завершает документ построение графиков амплитуд (модулей) и фаз первых десяти гармоник.
6.7. Спектральный анализ пилообразного импульса с применением БПФ
Чтобы лучше понять закономерности спектрального анализа, целесообразно провести его и для импульсов другой формы, например пилообразного импульса. Это иллюстрирует документ е6-7.
Казалось бы, наличие встроенных средств широко рекламируемого БПФ должно означать ориентацию спектрального анализа на их применение. Но это не так. БПФ имеет ряд серьезных недостатков: неясный для пользователя алгоритм, отсутствие средств подавления эффекта Гиббса и строгая привязка числа отсчетов y(t) к величине 2n (т. е. 2, 4, 8, 16, 32 и т. д.). БПФ дает хорошие результаты, когда взаимное преобразование (прямое и обратное) происходит без ограничения употребляемого при нем количества гармоник. Эти недостатки могут оказаться весьма существенными при проведении спектрального анализа и синтеза, когда наглядность их реализации принципиально важна.
6.8. Классические спектральный анализ и синтез
Рассмотрев некоторые частные аспекты спектральных анализа и синтеза, мы вплотную подошли к их классической реализации и методам ее улучшения. Прежде всего отметим, что MathCAD содержит средства, позволяющие провести спектральный анализ по классическому алгоритму, описанному в любом учебнике математики или в книгах по спектральному анализу.
В документе е6-8 дана реализация классического спектрального анализа довольно сложной функции с последующим ее синтезом. Функция задана вектором Yi с произвольным числом отсчетов (что само по себе важное преимущество перед БПФ). Для применения классических интегральных выражений для коэффициентов Фурье нужно располагать не дискретными отсчетами функции y(t), а ее аналитическим выражением. В нашем случае такое представление достигается применением линейной интерполяции функции между ее заданными вектором Yi узлами.
Слово "классические" тут означает, что коэффициенты Фурье вычисляются прямым интегрированием тем методом, который используется в MathCAD. Сравнение исходной зависимости y(t) с синтезируемой при числе гармоник 10 не дает повода к чрезмерному оптимизму. Синтезированная зависимость заметно отличается от исходной и имеет сильные колебания. Если уменьшить или увеличить число гармоник при синтезе, результат будет еще хуже.
Причин здесь несколько. Интегралы для коэффициентов Фурье вычисляются приближенно. Подынтегральные функции имеют быстро осциллирующие синусные и косинусные множители, что затрудняет интегрирование с малой заданной погрешностью. В итоге интегрирование идет довольно медленно, а точность вычислений оставляет желать лучшего. Эффект Гиббса не подавляется, поскольку его проявление связано с ограничением числа гармоник, которое имеет место при практической реализации данного алгоритма. Результаты анализа в значительной мере зависят от конкретной реализации интегрирования (к примеру, они различны у различных версий системы MathCAD). Время интегрирования довольно значительное.
6.9. Стандартные спектральный анализ и синтез
Итак, нас постигло некоторое разочарование при реализации классического спектрального анализа. Поэтому вернемся к численным методам спектрального анализа и рассмотрим так называемый стандартный спектральный анализ [2]. В его основе лежит вычисление интегралов, определяющих коэффициенты Фурье, простейшим численным методом прямоугольников.
Может показаться, что это большой шаг назад. И уж тем более трудно поверить, что такой метод является единственным научно обоснованным методом вычисления этих коэффициентов [29, 30]. Тем не менее это так. И понятно, почему. Если функция y(t) задана рядом дискретных отсчетов (вектор Yi), мы не имеем никакого права предполагать, что какая-либо интерполяция значений y(t) между узлами имеет преимущество перед постоянством y(t). Строгий теоретический анализ показывает, что синтез y(t) по максимальному для данного числа отсчетов количеству гармоник при интегрировании методом прямоугольников дает наименьшую среднеквадратичную погрешность.
Документ е6-9 показывает спектральные анализ и синтез стандартным методом (в варианте, описанном в [2]). Результаты синтеза показывают, что синтезированная кривая удачно описывает быстрые детали исходной зависимости. Явно видно сильное проявление эффекта Гиббса. Впрочем, нередко можно подобрать оптимальное число гармоник (или длительность отдельных участков исходной функции), при котором эффект Гиббса становится малозаметным. Однако это не более чем частный случай. Увеличение числа используемых для синтеза гармоник свыше N/2, где N-- число отсчетов функции, невозможно.
К достоинствам стандартного метода относится значительное ускорение спектрального анализа. Оно связано с тем, что интегрирование производится по простейшим формулам без использования алгоритмов и изменяющимся в его ходе шагом.
6.10. Стандартные спектральный анализ и синтез с коррекцией
Итак, стандартные анализ и синтез применимы для любого числа отсчетов функции, но не свободны от сильного проявления эффекта Гиббса. Известен ряд методов ослабления или подавления этого эффекта [2]. Отметим лишь самый простой способ -- коррекция амплитуды гармоник с помощью корректирующего множителя, постепенно ослабляющего высшие гармоники спектра.
Если умножить значение амплитуды каждой k--й гармоники на множитель sin( pk/N)/(pk/N), это будет фактически означать переход от формул интегрирования методом прямоугольников к формулам интегрирования методом трапеций -- с применением линейной интерполяции y(t). Само по себе это, как отмечалось выше, не является основанием для существенного повышения точности вычислений. Однако такой подход дает заметное ослабление эффекта Гиббса. Это иллюстрирует документ е6-10.
Помимо коррекции амплитуд гармоник в документе е6-10 приняты меры по ускорению времени вычислений. Так, при вычислении коэффициентов Ak
и Bk исключены бесполезные умножения на нулевые отсчеты функции -- их результат тождественно равен нулю. Для функций типа анализируемой с большим числом нулевых отсчетов только эта мера уменьшает время вычислений в несколько раз. Тот же прием использован и при гармоническом синтезе, если амплитуда какой-либо гармоники оказывается нулевой.
Как показывают графики в конце документа е6-10, синтезируемая функция достаточно полно совпадает с исходной, хотя после импульса остаются заметные колебания. Их можно еще уменьшить, используя умножение на корректирующий множитель в квадрате. Это означает переход к квадратичной интерполяции y(t) при интегрировании. К сожалению, при этом ухудшается точность синтеза в наиболее важной части -- соответствующей импульсу.
Хотя коррекция предполагает, что в формулах интегрирования используется линейная или квадратичная интерполяция между узлами, используются по-прежнему дискретные отсчеты, соответствующие исходному вектору Yi. Поэтому максимальное число гармоник, как и ранее, не может превосходить N/2.
6.11. Спектральные анализ и синтез с прямой линейной интерполяцией функции между узлами
Вместо того чтобы вводить корректирующие множители, имитирующие интерполяцию функции y(t) между узлами, можно прямо ввести такую интерполяцию. Тогда появляется возможность задавать произвольное число отсчетов y(t) по интерполируемой функции и получить сколь угодно большое число гармоник для ее синтеза. Впрочем, надо помнить, что интерполируемая функция идеально точно совпадает с исходной только тогда, когда число отсчетов равно числу узлов.
В других случаях отсчеты берутся с несколько иной функции -- на практике весьма близкой к исходной. Несмотря на эти оговорки, такой прием дает блестящие результаты: при достаточно большом числе выбранных для синтеза гармоник синтезируемая функция повторяет исходную, а эффект Гиббса исчезает почти полностью.
В документе е6-11 показана реализация этого метода, а также предусмотрены меры по уменьшению времени вычислений за счет отказа от умножений на 0. Как видно из примера этого документа, степень совпадения исходной и синтезируемой функций очень высока.
Во всех приведенных примерах использован достаточно сложный случай: импульс с маленькой полкой на линейном росте и резким спадом. В реальной ситуации функция y(t) чаще всего является довольно плавной и эффект Гиббса проявляется гораздо в меньшей мере, чем в примененном тестовом примере. Это говорит о том, что все описанные методы имеют право на жизнь.
6.12. Фильтрация аналоговых сигналов
Под фильтрацией подразумевается выделение полезного сигнала из его смеси с мешающим сигналом -- шумов. Наиболее распространенный тип фильтрации -- частотная фильтрация. Если известна область частот, занимаемых полезным сигналом, достаточно выделить эту область и подавить те области, которые заняты шумом.
Документ е6-12 иллюстрирует технику фильтрации с применение БПФ. В начале документа синтезируется двухчастотный сигнал, представленный 128 отсчетами вектора q. Затем к этому сигналу присоединяется шум с помощью генератора случайных чисел и формируется вектор из 128 отсчетов зашумленного сигнала. Используя прямое БПФ, сигнал с шумом преобразуется из временной области в частотную, что создает вектор f из 64 частотных составляющих. Затем выполняется фильтрующее преобразование, эффективность которого оценивается параметром фильтрации a. Отфильтрованный сигнал (вектор g) подвергается обратному БПФ и создает вектор выходного сигнала h.
В конце документа е6-12 сравниваются временные зависимости исходного и выходного сигнала. Хотя абсолютной идентичности между ними нет, видно, что выходной сигнал почти повторяет входной и в значительной мере избавлен от высокочастотных шумовых помех, маскирующих полезный сигнал.
6.13. Цифровая фильтрация с помощью БПФ
Аналоговые фильтры обычно имеют довольно сложную аппаратную реализацию. В них применяются громоздкие и нетехнологичные колебательные контуры или RC-цепи с интегральными операционными усилителями. Поэтому интенсивно развивается новый класс фильтрующих устройств -- цифровые фильтры. В них используются цифровые логические схемы, имеющие высокую степень интеграции, и применяются цифровые методы обработки сигналов.
Документ е6-13 поясняет реализацию алгоритмов цифровой фильтрации с помощью реализуемой цифровыми устройствами функции s(k, j). После ее определения синтезируется цифровой сигнал, содержащий низкочастотную компоненту в виде перепада и высокочастотную в виде меандра. Далее показана реализация фильтрующей операции -- свертки для двух типов фильтров, — широкополосного и узкополосного.
Тут идет речь не о фильтрации сигнала на фоне шумов, а о прохождении сложного составного сигнала через цифровые фильтры. Графики в конце документа иллюстрируют характер искажений сигнала при этом.
6.14. Фильтрация образа с применением двумерного БПФ
До сих пор мы приводили примеры применения одномерного БПФ. Однако возможно и двумерное преобразование Фурье, позволяющее решать более сложные задачи. Одна из таких задач -- восстановление образа трехмерных фигур, искаженного шумовым сигналом. Это типичная задача на сложную обработку изображений.
Система MathCAD PLUS 6.0 реализует двумерное БПФ, если в операциях БПФ использовать не векторы, а матрицы. Однако у ранних версий MathCAD таких возможностей нет. Поэтому мы откажемся от них и воспользуемся более наглядной реализацией двумерного БПФ с помощью одномерного БПФ. На рис. 6.14 показан документ, реализующий фильтрацию трехмерной поверхности с помощью двумерного БПФ. Этот прием для трехмерной поверхности реализует документ е6-14.
В начале документа создается матрица трехмерной поверхности M со случайными отклонениями каждой точки. Внизу слева построена эта поверхность. Она имеет вид пятна, в котором отдаленно угадываются общие контуры поверхности. Регулярность расположения точек-крестиков на ней вообще не заметна. В средней части документа показана реализация математического аппарата фильтрации. Рисунок справа внизу документа показывает результат фильтрации. На нем отчетливо видны не только общие формы поверхности (типа "выпуклый лист"), но и явная регулярность расположения точек. Это и есть результат фильтрации.
Полезно отметить, что графики трехмерной поверхности здесь также получены без применения стандартных средств построения трехмерных поверхностей системы. Поэтому без какой-либо доработки (кроме выбора шрифта комментариев) этот пример можно использовать и в ранних версиях системы MathCAD 2.0/2.04, не имеющих средств построения трехмерных фигур (а говоря точнее, он и взят из примеров для этих систем).
Пакет 7. ФИЗИЧЕСКИЕ РАСЧЕТЫ
7.1. Расчет атмосферного давления и плотности воздуха
В [32] приведены формулы, позволяющие рассчитать атмосферное давление и плотность воздуха на различных высотах h. Атмосферное давление вычисляется по двум формулам: упрощенной ph(h) при условии постоянства температуры воздуха и по точной p(h), учитывающей различие температуры. Эти формулы приведены в документе е7-1, позволяющие рассчитать атмосферное давление и плотность воздуха ro(h) на высотах от 0 (поверхность земли) до 11 км.
Результаты расчета представлены в наглядной графической форме и в форме таблиц. Можно заметить, что до высоты около 6 км вычисление давления по приближенной и уточненной формулам дает примерно одинаковые результаты.
7.2. Распад радиоактивного элемента
Интересные закономерности получаются, когда короткоживущий радиоактивный элемент A, распадаясь, создает долгоживущий, но также постепенно распадающийся элемент B. Временные функции распада -- экспоненциальные. Масса элемента A экспоненциально падает, переходя в массу элемента B, что ведет к начальному росту массы первого. Однако, поскольку элемент B также распадается, постепенно (но медленно) и его масса уменьшается, стремясь к нулю. В итоге зависимость массы B от времени имеет характерный максимум. Эти вычисления содержатся в документе е7-2.
Графики изменения массы элементов A и B подтверждают отмеченные выше закономерности радиоактивного распада. Следует указать, что временные зависимости распада не более чем удачные аппроксимации.
7.3. Мольная теплоемкость металлов по Дебаю
Мольная теплоемкость металлов по Дебаю задается в виде интеграла, не имеющего аналитического решения. Она является функцией верхнего предела интегрирования этого интеграла. Документ е7-3 показывает полезность применения встроенного в MathCAD оператора численного интегрирования для расчета мольной теплоемкости металлов.
В этом документе задана функция пользователя -- интеграл Дебая. Мольная теплоемкость представлена как функция универсальной газовой постоянной R и параметра z -- отношения абсолютной температуры к температуре Дебая.
7.4. Преодоление самолетом звукового барьера
Большинство из нас слышали в безоблачную погоду звуки, напоминающие "гром среди ясного неба". Почти наверняка это были либо отзвуки дальней грозы, либо звуки, создаваемые самолетом в момент преодоления звукового барьера. Известна функция M(u, h), определяющая так называемое число Маха, зависящее от скорости полета самолета u
и высоты полета h [32]. В момент преодоления звукового барьера значение M(u, h) становится равным 1. Скорость, на которой преодолевается звуковой барьер, падает с увеличением высоты полета.
Документ е7-4 содержит определение функции M(u, h). На верхнем графике показаны зависимости M(u, h) от u для четырех значений h, а также уровень единицы. Звуковой барьер преодолевается в момент, когда соответствующая зависимости M(u, h) кривая пересекает уровень единицы.
Более полезно знать не саму по себе зависимость M(u, h), а из условия M(u, h) = 1 получить зависимость скорости преодоления звукового барьера u(h) от высоты h. Для этого можно воспользоваться функцией поиска корня указанного условия. Это также сделано в конце документа е7-4.
7.5. Потеря энергии при торможении автомобиля
Когда мы слышим визг тормозов автомобиля, мы с ужасом следим, успеет ли он сбросить скорость и не настигнет ли нас до того, как мы отскочим. Полезно (скорее шоферу, чем нам) знать, как быстро автомобиль теряет энергию при торможении. Решение этой задачи для автомобиля с дисковым тормозным устройством представлено документом е7-5.
Процесс потери энергии в общем случае связан с решением нелинейного дифференциального уравнения. Физики любят использовать для такого решения простые конечно-разностные методы, при которых решение выражается рекуррентной формулой. Фактически они соответствуют решению простым методом Эйлера.
Именно так это решение выполнено в документе е7-5. Важно отметить, что в нашем расчете используются размерные величины (энергия определяется в джоулях). Для расчетов с размерными величинами в состав MathCAD входят файлы, содержащие глобальные определения размерных величин. В конце документа показан пример использования такого файла. В нем содержится определение многих размерных величин, относящихся к физике (их больше, чем это нужно для нашего конкретного примера).
7.6. Распространенные типы волн
Образование и распространение волн -- весьма частые явления в окружающем нас мире. Волны на поверхности воды, колебания маятника или струны -- все это примеры возникновения волновых процессов [32, 33]. Если амплитуда колебаний мала, то, скорее всего, они носят гармонический характер, самый распространенный в природе.
Документ е7-6 иллюстрирует два вида гармонических колебаний -- синусоидальные и косинусоидальные. Нетрудно заметить, что они абсолютно идентичны и отличаются лишь начальной фазой колебаний. Синусоидальные колебания начинаются с нулевого значения, а косинусоидальные с единичного.
Средний график документа е7-6 показывает случай, когда амплитуда высокочастотной волны является гармоническим колебанием. Этот случай соответствует амплитудной модуляции (АМ) высокочастотного колебания. Именно таков характер электромагнитных колебаний, порождаемых радиопередатчиками в диапазонах длинных, средних и коротких волн. Низкочастотные компоненты (при радиопередачах передается их спектр) несут информацию о разговорной речи и музыке, передаваемых радиовещательными станциями.
Эффект, напоминающий амплитудную модуляцию, может быть получен и при наложении двух гармонических колебаний с близкими частотами. Тогда появляется низкочастотная компонента, равная разности частот (см. пример в конце документа е7-6). Этот эффект мы часто наблюдаем при прослушивании радиопередач на наших радиоприемниках; все знают, что, когда принимаются две близко расположенные станции, возникает характерный свист.
7.7. Затухающие и нарастающие колебания
Поведение многих колебательных систем при малой амплитуде колебаний описывается линейным дифференциальным уравнением второго порядка вида:
y'' + 2dy' + w0 = 0,
где d -- параметр, характеризующий затухание (или просто затухание), а w0 -- частота собственных колебаний. В документе е7-7 используется аналитическое решение приведенного уравнения.
На графиках документа е7-7 представлены временные зависимости y(t) при различных значениях затухания. При 0
7.8. Колебания и резонанс в механической системе
Интересно поведение колебательных систем при воздействии на них внешних колебаний. Школьные учебники полны кошмарных примеров, напоминающих о необходимости практического знакомства с таким поведением систем. Например, многократно описывался случай, когда колона солдат, проходя строевым шагом через мост, так раскачала его, что он рухнул.
Явление резкого возрастания амплитуды колебаний в колебательных системах, на которые воздействуют внешние колебания с частотами, близкими к частоте собственных колебаний системы, получило название резонанса. А частота собственных колебаний поэтому часто называется резонансной.
Документ е7-8 сдержит пример, описывающий поведение механической системы под воздействием внешнего гармонического колебания. Поведение системы определяется амплитудой Ym вынужденных колебаний системы и их аргументом a
(сдвигом фаз колебаний системы относительно внешних колебаний). Эти параметры зависят от частоты внешних колебаний w
и коэффициента затухания системы d (декремента).
Графики в этом документе показывают, что при малых d < 0.25 на некоторой частоте амплитуда колебаний заметно возрастает. Это и есть проявление резонанса (в нашем случае механического). При наличии в системе затухания частота резонанса отличается от частоты собственных колебаний системы (в конце документа дана оценка и этого явления).
Не надо думать, что резонанс явление отрицательное. Напротив, он часто используется с большой пользой. Например резонанс в акустических системах позволяет повысить уровень звука на низких частотах. Но особенно эффективно резонанс используется в радиотехнических системах, например в радиоприемниках для выделения нужной (обычно довольно узкой) области частот, соответствующих принимаемому сигналу.
7.9. Диффузия из бесконечно тонкого слоя
Опустив тонкую пластинку из растворимого вещества в стакан с водой, мы будем наблюдать диффузию ее материала в другую среду -- воду. На использовании этого явления основана такая крупная область современной промышленности, как микроэлектроника. Всем известно, что именно благодаря диффузии в кремниевую подложку внедряются примеси, создающие элементы будущей микросхемы. Поэтому решение задач диффузии -- актуальная область математических расчетов и моделирования в физике и химии.
На рис. 12.23 показан документ, решающий задачу о диффузии вещества из бесконечно тонкого слоя в окружающую среду. Результатом расчета является получение распределения диффундирующего вещества в окружающей среде в различные моменты времени. График в конце документа показывает, как диффундирующее вещество постепенно проникает в окружающую среду и как меняется его концентрация в зависимости от расстояния от диффундирующего слоя в различные моменты времени.
Рис. 12.23. Моделирование диффузии из бесконечно тонкого слоя (документ е7-9)
Вообще говоря, диффузия описывается дифференциальным уравнением второго порядка, приведенным в начале документа. Оно позволяет найти функцию f(x, t) в каждый момент времени по ее значению в предшествующий момент. Здесь f-- концентрация диффундирующего материала, x
-- расстояние от слоя и t -- время. На рис. 12.23 это уравнение решается конечно-разностным методом, реализованным с помощью рекуррентной формулы.
7.10. Диффузия из толстой пластины
Рассмотренный выше пример моделирования диффузии несколько идеализирован, поскольку в действительности бесконечно тонкого слоя диффундирующего вещества не существует. Более реально выглядит случай, когда рассматривается диффузия из толстого слоя. Толстого в том смысле, что его толщину необходимо учитывать и что процессы диффузии происходят как вне этого слоя, так и внутри него.
Как и ранее, достаточно корректные результаты получаются при использовании решения задачи конечно-разностным методом. В документе е7-10 представлено решение такой задачи. Оно состоит из двух частей. Видимая содержит исходные данные и указания, тогда как в невидимой части (правой) задано решение конечно-разностным методом.
График на в этом документе иллюстрирует распределение концентрации диффундирующего вещества для трех моментов безразмерного времени -- 0, 10 и 30. Рекомендуется выбирать малыми шаг по x (k) и шаг по y (h). Это, однако, может привести к заметным затратам времени.
7.11. Расчет обтекания крыла воздушным потоком
Классической аэродинамической задачей является расчет структуры потока воздуха, обтекающего крыло самолета. Демонстрационный пример решения этой задачи входит в некоторые версии системы MathCAD, и его переработанный вариант приведен в документе е7-11.
Для построения профиля крыла и обтекающего его воздушного потока достаточно задать три параметра — a, b и c. В нашу задачу не входит обсуждение довольно сложного и специфического алгоритма решения подобной задачи, он скрыт от пользователя в невидимой правой части экрана. Однако отметим, что и эта задача решается конечно-разностным методом с применением аппарата функций комплексной переменной. Видимая часть документа содержит короткий текстовый комментарий, задание параметров a, b
и c и вывод графиков -- отдельно профиля крыла и обтекающего его воздушного потока.
Независимо от того, интересует вас решение этой задачи или нет, она дает прекрасный пример построения сложного графика на комплексной плоскости. График включает в себя построение замкнутой линии -- сечения крыла и линий "равного уровня", иллюстрирующих структуру воздушного потока.
7.12. Расчет движения снаряда
Пусть спортсмен мечет снаряд (например, диск или ядро) с некоторой начальной скоростью V0 и под углом Q к горизонту. По какому закону происходит полет снаряда, если пренебречь сопротивлением воздуха? Ответ общеизвестен -- по параболическому. Однако мы попытаемся ответить на этот вопрос моделированием движения, решая систему описывающих его дифференциальных уравнений численным методом Эйлера. Этот подход иллюстрирует документ е7-12.
Обратите внимание, что (как это принято в физических расчетах) операции происходят с размерными величинами. В результате моделирования получены траектория движения снаряда (зависимость высоты от расстояния по горизонтали), а также зависимость угла наклона траектории от расстояния по горизонтали. Как и следовало ожидать, траектория полета снаряда оказалась параболической.
7.13. Падение парашютиста
Рассмотрим значительно более сложный случай динамического движения: на высоте y0 из самолета выпрыгивает парашютист и в свободном полете падает вниз. Спустя 5 секунд он дергает кольцо парашюта и испытывает заметные перегрузки из-за раскрытия парашюта и резкого снижения скорости падения. Моделирование падения парашютиста основывается на решении нелинейной системы дифференциальных уравнений и требует учета сопротивления воздушной среды до и после открытия парашюта. Оно выполнено в документе е7-13.
В результате моделирования получены следующие зависимости: зависимость высоты парашютиста от времени, зависимость скорости и ускорения падения от времени и зависимость резкости (второй производной от скорости) падения от времени. Резкость падения характеризуют перегрузки, которые испытывает парашютист в полете. Они резко возрастают сразу после раскрытия парашюта, и это прекрасно известно всем, кто прыгал с парашютом. Если вас интересуют числовые данные величин, характеризующих падение парашютиста, выведите их в табличной форме.
Пакет 8. РАСЧЕТ ПАССИВНЫХ КОМПОНЕНТОВ ЭЛЕКТРО- И РАДИОСХЕМ
8.1. Расчет емкости различных объектов
Промышленность выпускает многие тысячи типов пассивных (т. е. не обладающих усилительными свойствами) компонентов электротехнических, радиотехнических и электронных устройств. Прежде всего это емкостные элементы (конденсаторы), индуктивные элементы (индукторы и катушки индуктивности) и линии передачи. Тем не менее разработчики таких устройств нередко вынуждены конструировать конденсаторы, индукторы и линии передачи самостоятельно.
Есть еще одно важное обстоятельство в пользу разработки пакетов применений для расчета таких элементов: они всегда содержатся в любом устройстве как паразитные параметры. Любой проводник, к примеру, имеет собственную емкость и индуктивность и часто ведет себя как линия передачи. Хотя эти параметры называются паразитными, их учет в ряде случаев принципиально важен. Пакеты применений по расчету емкости и индуктивности позволяют свести к минимуму поиск многочисленных формул для расчета этих параметров и провести нужные расчеты в считанные секунды.
Документ е8- 1 позволяет рассчитать емкость наиболее распространенных объектов -- шаров, дисков и проводников. Он содержит необходимые расчетные формулы и тестовые примеры. Для расчета емкости объекта достаточно подставить на место приведенных нужные значения исходных параметров для конкретного объекта.
В ряде случаев необходимо найти не емкость объекта саму по себе, а значение какого-либо конструктивного параметра, при котором емкость будет равна заданной величине. В документе е8-1 показан пример такого рода -- расчет расстояния между центрами двух шаров, при котором емкость конденсатора из двух шаров будет равна заданной величине. Для этого емкость следует задать как функцию заданного параметра и использовать для вычисления нужного параметра функцию поиска корня root.
Подобный подход достаточно универсален. Разумеется, нередко можно найти параметр из выражения для емкости путем простого аналитического преобразования этого выражения. Однако бывают случаи, когда такое преобразование слишком сложно или даже невозможно. Тогда применение численного метода вычисления становится предпочтительным; приведенный пример является хорошей иллюстрацией к сказанному.
8.2. Расчет емкости конденсаторов
Конденсаторы большой емкости обычно применяют готовыми (например, многослойные бумажные, керамические, пленочные или электролитические). В то же время конденсаторы малой емкости нередко проектируются разработчиком аппаратуры самостоятельно.
В документе е8-2 представлены формулы, позволяющие найти емкость семи наиболее распространенных конденсаторов: пластинчатого, дискового, трубчатого, сферического и в форме горшка. Представлены тестовые примеры расчета емкости.
Здесь, как и ранее, для расчета емкости под свои параметры достаточно подставить их на место исходных данных тестового примера, относящегося к соответствующему типу конденсатора.
8.3. Расчет индуктивности проводников и витков
Конструкции индуктивных элементов весьма разнообразны. Прежде всего следует различать два типа таких элементов -- без ферромагнитных сердечников и с ними. Конструкции индукторов для этих двух типов существенно различаются. Первые используются для изготовления индукторов с небольшой индуктивностью L, обычно примерно до 1 мГн, вторые — для индукторов с индуктивностью от долей мГн до единиц и даже десятков Гн.
Документ е8- 3 содержит формулы для расчета индуктивности отрезков провода (круглого и квадратного), витка из круглого провода и тонкопленочных круглого и квадратного витков. Знать их индуктивность необходимо и тогда, когда она является паразитной. Предполагается, что эти объекты находятся либо в свободном пространстве (или в воздухе), либо на достаточном удалении от других проводников или металлических предметов (например, шасси или экрана).
Тонкопленочные витки обычно создаются на поверхности диэлектрика. Предполагается, что магнитными свойствами он не обладает. Индуктивность сложных конструкций, например двух проводников различного диаметра, расположенных на одной линии, может быть просчитана суммированием индуктивности частей сложного объекта. Отсутствие в этом случае учета взаимной индуктивности может привести к заметной погрешности.
8.4. Расчет индуктивности катушек без сердечника
Индуктивности простейших элементов небольших размеров, что типично для электронных и радиотехнических устройств, обычно невелики и лежат в пределах от долей нГн примерно до 1 мкГн. Для увеличения индуктивности как правило используются многовитковые катушки.
Документ е8-4 служит для расчета индуктивности типовых многовитковых однослойных катушек индуктивности -- цилиндрической и квадратной стержневой конструкции и тороидальных с круглым и квадратным сечением тора.
Следует особо отметить, что в нашем случае тор должен быть изготовлен из немагнитного материала. Конструкции таких катушек используются довольно редко (по сравнению с тороидальными катушками на ферромагнитном торе -- они будут рассмотрены далее).
8.5. Расчет индуктивности тонкопленочных плоских катушек
Распространение печатной технологии изготовления электронных схем, а затем и микроэлектронной технологии привело к широкому применению тонкопленочных плоских катушек. Документ е8-5 обеспечивает расчет индуктивности таких катушек с круглой и квадратной формами витка спирали.
Для этих катушек часто бывает необходимо определить число витков w при заданной индуктивности L0 и заданных геометрических размерах катушки. Для этого достаточно записать выражение для индуктивности в виде L(w) и найти корень нелинейного уравнения L(w) - L0 = 0. Пример в конце документа рис. 8.5 иллюстрирует эту возможность.
8.6. Расчет индуктивности многослойных катушек
Для дальнейшего увеличения индуктивности приходится делать катушки многослойными и использовать ферромагнитные сердечники различного типа (как ферритовые, так и на основе металлических сплавов). Документ е8-6 позволяет рассчитать индуктивность наиболее распространенных катушек этого типа: тороидальных и цилиндрических, на П-образном, Ш-образном и броневом ферромагнитном сердечнике.
В конце документа приведен пример вычисления числа витков катушки на броневом сердечнике по заданной индуктивности L. Расчет выполняется численным методом с применением функции root.
8.7. Расчет проводных линий передачи
Линии передачи могут иметь различную конструкцию. В документе е8-7 приведены соотношения, позволяющие найти волновое сопротивление (основной параметр) для трех типов наиболее распространенных проводных линий передачи: коаксиальной линии в виде круглого проводника в центре круглого экрана, линии в виде круглого проводника, расположенного над проводящей плоскостью, и двухпроводной линии в виде двух круглых проводников одинакового диаметра, расположенных параллельно.
Здесь специально не рассмотрены "экзотические" типы линий, например коаксиальная со смещенным проводником или двухпроводная с квадратными проводниками или круглыми проводниками разного диаметра. Поскольку линии могут потребоваться с самым различным волновым сопротивлением, полезно иметь графические зависимости волнового сопротивления от какого-либо обобщенного параметра. Эти зависимости в документе е8-7 приведены для каждого из рассмотренных типов линий.
8.8. Расчет микрополосковой линии
Особое значение в связи с развитием печатного монтажа и созданием технологии тонкопленочных интегральных схем приобрели тонкопленочные линии передачи. Их конструкция очень проста: на диэлектрической пластине, покрытой с одной стороны металлической пленкой, с другой стороны располагается тонкая металлическая полоска. Расчет волнового сопротивления такой линии довольно сложен и ведется (в зависимости от сочетания параметров) по различным формулам [1, 2, 36].
В документе е8-8 представлена реализация этого расчета в среде системы MathCAD. Для перехода расчета от одной формулы к другой используется функция if с соответствующими условиями перехода. В начале документа определены (как функции пользователя) все необходимые для расчета вспомогательные формулы, после чего дается расчет волнового сопротивления Z0. В конце документа приведены графики зависимости волнового сопротивления микрополосковой линии от обобщенного параметра P для трех значений относительной диэлектрической проницаемости (она обозначена как E).
Пакет 9. РАСЧЕТ ЛИНЕЙНЫХ ЭЛЕКТРОННЫХ СХЕМ И СИСТЕМ
9.1. Расчеты простейших резисторных цепей
Линейные электронные, электротехнические и радиотехнические цепи имеют довольно развитый аппарат математического анализа. Поэтому большая часть задач по их расчету имеет аналитические решения. Мы начнем рассмотрение таких цепей с расчета элементарных резисторных цепей.
В документе е9-1 представлен расчет простейших резисторных цепей: последовательного и параллельного сопротивления резисторов, преобразования "звезды" в "треугольник" и наоборот, передачи энергии от источника постоянного тока в нагрузку-резистор.
График в конце этого документа иллюстрирует, как изменяются отдаваемая источником мощность в зависимости от потребляемой нагрузки и коэффициент полезного действия (КПД) в функции в зависимости от сопротивления нагрузки R. Отчетливо видно, что максимум мощности в нагрузке получается, если R
равно внутреннему сопротивлению источника постоянного напряжения r. При этом КПД составляет 0.5.
9.2. Расчет резистивных аттенюаторов
В электронных и радиотехнических устройствах широко применяются ослабители напряжения или мощности, называемые аттенюаторами. Важной при их проектировании является необходимость получения заданного входного Z0 и выходного Z1 сопротивлений. В документе е9-2 приведен расчет наиболее распространенных Т- и П-образных резисторных аттенюаторов по общеизвестным расчетным формулам [1, 2, 34].
В пп. 1 и 2 этого документа выполняется расчет ослабления (в децибелах), вносимого аттенюаторами с произвольными значениями резисторов и заданными Z0 и Z1. В пп. 3 и 4 выполнен расчет резисторов аттенюаторов под заданное безразмерное ослабление мощности N. При этом резисторы рассчитываются так, чтобы это ослабление получалось при заданном сопротивлении генератора RG и нагрузки RL.
9.3. Расчет импеданса RC- и RLC-цепей
Под импедансом понимается комплексное сопротивление цепей. В документе е9-3 представлен расчет импеданса для последовательно включенных резистора и конденсатора (RC-цепь), а также для последовательного включения R, L и C (RLC-цепь или последовательный колебательный контур).
Зависимости модуля и аргумента для импеданса Z(f)
последовательной RC-цепи носят монотонный характер. Начальный фазовый сдвиг равен p/2 и стремится к 0 при росте w. Входной импеданс на низких частотах имеет емкостной характер и резко возрастает при w, стремящемся к 0. На высоких частотах емкостная составляющая уменьшается и импеданс приближается к значению R.
Импеданс RLC-цепи имеет на некоторой частоте f0 минимальное значение (равное R). На этой частоте он имеет только действительную компоненту, поскольку фазовый сдвиг, создаваемый конденсатором, полностью компенсируется фазовым сдвигом катушки индуктивности. Такой случай описывает явление резонанса в последовательной RLC-цепи. Оно широко используется в практике для получения избирательных свойств. При малых R резонанс может привести к резкому уменьшению импеданса цепи и возрастанию тока в ней, если она подключена к источнику переменного синусоидального напряжения. При этом напряжение на C и L
могут многократно превосходить напряжения источника входного сигнала.
9.4. Расчет АЧХ и ФЧХ моста Винна — Робинсона
RC-цепи часто рассматриваются как четырехполюсники. При этом они характеризуются двумя важными параметрами: амплитудно-частотной характеристикой (АЧХ) и фазо-частотной (ФЧХ). Они являются зависимостью модуля коэффициента передачи цепи и вносимого ею фазового сдвига от частоты f источника входного гармонического сигнала.
Для большого числа RC-схем для АЧХ и ФЧХ получены аналитические зависимости, так что расчет этих характеристик сводится просто к определению нужных функций пользователя по известным математическим выражениям. В документе е9-4 представлен расчет АЧХ и ФЧХ моста Винна — Робинсона, широко применяемого для построения избирательных усилителей и RC
— генераторов синусоидальных колебаний.
Как видно из графика АЧХ моста Винна — Робинсона, коэффициент передачи этой цепи на некоторой частоте (w0 = 1/RC) обращается в нуль, а фазовый сдвиг имеет скачок от -p/2 до +p/2. Таким образом, эта цепь может использоваться для ослабления частот сигнала, близких к w0.
9.5. Расчет каскадов на биполярных транзисторах
В электронных и радиотехнических схемах важнейшее место занимают активные приборы, обладающие усилительными свойствами. Это электронные лампы, биполярные и полевые транзисторы, туннельные диоды и т. д. Усиление достигается путем преобразования энергии источников электропитания (обычно постоянного тока) в выходной сигнал под управлением входного сигнала.
Активные приборы -- устройства принципиально нелинейные. Однако если усиливаются малые сигналы, устройства для их усиления (усилители) можно считать линейными устройствами. Особенно распространены усилители на биполярных транзисторах. Три схемы включения их в усилительном режиме (с общей базой, общим эмиттером и общим коллектором) настолько общеизвестны, что мы не будем приводить их, полагая, что заинтересованный в расчете таких устройств читатель знает эти схемы. Речь идет об обобщенных схемах, в которых содержится единственный резистор на входе Rg и на выходе Rl (они учитывают сопротивление генератора и сопротивление нагрузки).
Для каждой из схем определяются следующие малосигнальные параметры для области средних частот:
n входное сопротивление Rin;
n выходное сопротивление Rout;
n коэффициент передачи по току Ki (отношение тока в нагрузке к току на входе);
n коэффициент усиления собственно каскада по напряжению Ku
(отношение напряжения на выходе к напряжению на входных зажимах);
n сквозной коэффициент усиления по напряжению Ke
(отношение напряжения на выходе к напряжению источника входного сигнала, Ke
В документе е9-5 даны формулы и примеры расчета усилительных каскадов на биполярных транзисторах.
9.6. Преобразование Лапласа
Среди методов расчета электрических цепей важное место принадлежит операторному методу [20]. При этом расчеты ведутся с применением оператора Лапласа p = iw (или s = iw), где i — мнимая единица, а w -- круговая частота. Операторные выражения существенно упрощают расчеты. Однако они требуют перехода от временных функций к операторным. Расчет выполняется с помощью преобразования Лапласа, при котором временная функция F(t) превращается в операторную F(p).
В документе е9-6 представлен интеграл, дающий преобразование Лапласа. Он не очень удобен для вычислений, поскольку содержит бесконечный верхний предел. Однако если F(t) становится нулевой при t>tmax, за бесконечность можно принять любое значение времени, т. е. задать inf>tmax.
В конце документа показан график преобразованной функции Хевисайда с нанесенными на него точками, полученными в результате расчета операторной функции по интегралу преобразования Лапласа. Сравнение точного решения с приближенным указывает на их близость.
9.7. Применение Z-преобразования
В некоторых случаях для расчета линейных систем используют так называемое z-преобразование. Не вникая в его тонкости, описанные в [35], рассмотрим важное применение такого преобразования -- расчет АЧХ и ФЧХ линейных систем, описанных z-функцией f(z). Оно дано в документе е9-7.
Построение зависимости фазового сдвига от частоты w
в данном примере затруднено тем, что фазовый сдвиг может быть большим. Если он достигает величины p, то линия, описывающая зависимость фазы от частоты, испытывает скачок на величину 2p. Не следует путать эту погрешность представления фазы с ее реальным скачком (возможным в некоторых схемах, см. приведенный ранее пример на построение АЧХ и ФЧХ моста Винна — Робинсона).
9.8. Вычисление характеристик системы по ее операторной функции
Если схема описана операторной функцией, по ней можно вычислить важнейшие характеристики линейной системы: АЧХ, ФЧХ и переходную характеристику (т. е. реакцию системы во времени на единичный скачок напряжения или тока на ее входе). Для вычисления АЧХ и ФЧХ достаточно заменить оператор p на величину iw, тогда модуль полученного выражения будет описывать АЧХ, а аргумент -- ФЧХ.
Построение АЧХ и ФЧХ для системы второго порядка, описанной операторной функцией, дано в документе е9-8. В нем представлено также построение по операторной функции передаточной характеристики системы. Для каждого значения времени t эта характеристика определяется интегралом с бесконечным пределом интегрирования:
?
2 ?
h(t) = -- ¦ (Re(y(jw)sin(wt)/w)dw
p ?
0
К счастью, у всех реальных систем АЧХ на высоких частотах имеет спад и при больших w>wmax принимает близкие к нулю значения. В нашем примере это происходит уже при w>5, что позволяет заменить бесконечный предел интегрирования на конечный.
Вычисление h(t) в документе е9-8 выполнено по этому алгоритму. Число 0.637 перед знаком интеграла есть значение 2/p. Рядом с графиком h(t)
выведена таблица времен t и значений h(t). Анализируемая цепь является цепью 2-го порядка и имеет специфические признаки заметно демпфированной цепи 2-го порядка -- характерный подъем АЧХ на некоторой частоте и переходную характеристику с небольшим выбросом.
9.9. Расчет АЧХ и ФЧХ линейной цепи по ее переходной характеристике
Выше был описан алгоритм построения переходной характеристики по ее АЧХ и ФЧХ. Однако на практике может встретиться обратная задача -- построения АЧХ и ФЧХ по переходной характеристике. Эта задача решаема для цепей с неминимально-фазовыми характеристиками, к которым относится подавляющее большинство реальных электронных цепей (за исключением мостовых).
Здесь уместно отметить, что переходная характеристика снимается экспериментально очень легко -- достаточно подать на вход системы скачок с малой длительностью фронта и получить с помощью осциллографа реакцию системы на этот скачок. Впрочем, для быстродействующих электронных и радиотехнических систем это приходится порою делать с помощью уникальной широкополосной аппаратуры; например, используя для наблюдения дорогой стробоскопический осциллограф, способный регистрировать субнаносекундные процессы.
Тем не менее это проще, чем снимать АЧХ и ФЧХ в широком диапазоне частот. Тут требуется целый набор измерительных генераторов синусоидального напряжения, вольтметров и измерителей фазы. Все измерения приходится делать по точкам, меняя эти приборы. Автоматизированные измерители АЧХ и ФЧХ существуют, но это крайне дорогие и редкие приборы (даже в сравнении со стробоскопическими осциллографами).
Все это делает практически полезным расчет АЧХ и ФЧХ по переходной характеристике системы h(t) или a(t) -- в литературе встречаются оба обозначения. В документе е9-9 представлена реализация эффективного численного алгоритма решения этой задачи (см. [6, 8]).
Как и следовало ожидать, для нашей системы 2-го порядка АЧХ имеет характерный подъем на высоких частотах, переходящий затем в спад. Фазовые углы ФЧХ определены в области от -p/2 до +p/2, так что скачок фазы на графике в этом документе связан с выходом ее за этот отрезок (а не с реальным скачком фазы).
9.10. Частотный анализ системы 2-го порядка
В теории автоматических устройств АЧХ и ФЧХ линейных систем часто отображают в логарифмическом масштабе частот, что позволяет лучше выявить некоторые закономерности поведения системы [35]. Например, на логарифмической АЧХ (ЛАЧХ) отчетливо видны характерные частоты, начиная с которых происходит спад коэффициента передачи системы в области высоких частот. Если система содержит несколько звеньев, ослабляющих высокие частоты, таких частот (и перегибов ЛАЧХ) может быть несколько.
Документ е9-10 является переработкой демонстрационного файла системы MathCAD. Он строит логарифмические АЧХ и ФЧХ системы 2-го порядка, заданной ее операторной функцией f(s). Графики АЧХ в двойном логарифмическом масштабе и ФЧХ в полулогарифмическом масштабе также представлены в этом документе. Из них можно сделать вывод, что такая система сильно демпфирована и потому не содержит подъема АЧХ в области высоких частот.
Поведение таких систем удобно оценивать и так называемыми диаграммами Боде, они дают представление о комплексном коэффициенте передачи на комплексной плоскости. При этом строится годограф системы -- геометрическое место точек комплексного коэффициента передачи. Построение годографа также показано в конце документа е9-10. По виду годографа и его положению относительно точки (1, 0) на комплексной плоскости можно судить о поведении системы и о ее устойчивости.
9.11. Расчет отклика системы с помощью интеграла Дюамеля
Перейдем к обсуждению несколько более сложного и практически важного вопроса -- о нахождении реакции системы с заданной переходной характеристикой a(t) на заданное входное воздействие (в виде также временной функции). Существует ряд способов вычисления реакции системы при этих условиях. Один из них -- применение интеграла Дюамеля (интеграла свертки или интеграла суперпозиции).
В задачу данной книги не входит рассмотрение теоретического обоснования этого метода -- его легко найти в соответствующей литературе [7, 20]. В документе е9-11 представлено решение подобной задачи для довольно часто встречающегося случая — вычисление реакции линейной интегрирующей RC на воздействие в виде двухэкспоненциального импульса. Такой импульс имеет участок быстрого нарастания напряжения u(t) и участок более медленного спада.
В этом документе представлены две формы интеграла Дюамеля (вообще же их четыре). Отличаются они тем, к какой из функций — a(t)
или u(t) — применяется операция вычисления производной. В нашем случае это безразлично, поскольку обе функции достаточно просты и обе формы интеграла дают идентичные результаты.
Для ускорения построения реакции y(t)
можно воспользоваться численным методом вычисления производной одной из функций -- a(t) или u(t). При этом из подынтегрального выражения на каждом интервале вычислений исчезает вычисление производной, что значительно ускоряет общие вычисления. Реализация такого приема дана в конце документа. Там же построены графики функций a(t), u(t) и реакции y(t). Можно заметить, что график y(t) похож на график входного воздействия u(t). Однако зависимость y(t) задержана относительно u(t) и наблюдается заметное уменьшение амплитуды выходного импульса относительно амплитуды входного импульса, а также возрастание времени роста y(t) до максимального значения. Эти искажения естественны для интегрирующей RC-цепи.
9.12. Свертка с помощью БПФ
Операция свертки, осуществляемая интегралом Дюамеля, может производиться и с помощью быстрого преобразования Фурье. Этот известный теоретикам алгоритм для практиков является довольно "экзотическим", поскольку БПФ достаточно сложная операция [31]. Однако, поскольку средства БПФ включены в систему MathCAD, мы рассмотрим и эту возможность.
Ее реализация представлена в документе е9-12. Речь идет о вычислении реакции линейной системы C(t) с переходной характеристикой h(t)
на входное воздействие p(t). Тут передаточная характеристика задана смещенным скачком (с 1 на 0), а входной сигнал -- линейно нарастающим перепадом. Операцию свертки осуществляет функция conv, введенная как функция пользователя.
Хотя по наглядности метод свертки с применением БПФ уступает рассмотренному выше методу с применением интеграла Дюамеля, можно констатировать обширные возможности БПФ в решении различных прикладных задач.
9.13. Расчет отклика системы на воздействие, заданное таблично
Расчет отклика линейной системы с произвольной формой переходной характеристики на произвольно заданное входное воздействие -- задача достаточно сложная. Ее решение облегчается, если передаточная характеристика и входное воздействие заданы в табличном виде, т. е. в виде ряда значений a(t) и u(t)
для фиксированных моментов времени t
на отрезке T. Наличие в системе MathCAD эффективного аппарата сплайн-интерполяции табличных данных позволяет с блеском решить такую задачу.
Документ е9-13 иллюстрирует сказанное. Векторы A
и U в нем задают узловые точки зависимостей a(t) и u(t) на отрезке времени T. Эти векторы должны быть одинаковой длины, а их элементы должны относиться к соответствующим одинаковым моментам времени. Далее проводится сплайн-интерполяция (с линейной экстраполяцией) зависимостей a(t) и u(t), что позволяет получить эти зависимости в непрерывном виде и использовать в интеграле свертки для вычисления реакции y(t).
Табличное задание u(t) облегчает вычисление производной u'(t) в численном виде, что, в свою очередь, ускоряет вычисления. Обратите внимание, что здесь u' -- имя функции пользователя, вычисляющей значение производной численным методом. В конце рис. 9.13 построены графические зависимости a(t), u(t) и y(t).
9.14. Моделирование реакции RC-цепи
Реакция цепи на заданное воздействие может быть вычислена также на основании решения дифференциального уравнения или системы дифференциальных уравнений, описывающих работу цепи. Здесь мы рассмотрим вычисление реакции интегрирующей RC-цепи на входное воздействие e(t) в виде одиночного треугольного импульса. Она определяется решением дифференциального уравнения первого порядка:
RC

Если перейти к безразмерному времени (t/RC), положив RC=1, то уравнение заметно упрощается и принимает вид:

Решение этого уравнения возможно методом Рунге — Кутта, который не очень прост в реализации. Однако для одного уравнения можно исключить отдельное вычисление коэффициентов K1 и K2 и получить единственную формулу для вычислений. На ее основе и составлен документ е9-14.
В этом документе показаны ( в виде графиков) временные зависимости входного воздействия и напряжений на емкости C
и резисторе R (в относительных единицах по отношению к амплитуде входного сигнала).
Пакет 10. РАСЧЕТ И МОДЕЛИРОВАНИЕ НЕЛИНЕЙНЫХ ЦЕПЕЙ
10.1. Моделирование логических функций
В электротехнических и радиотехнических приложениях важное место занимают нелинейные цепи и системы. Отклик таких систем на заданное воздействие зависит от уровня самого воздействия. Принцип суперпозиции (основа многих методов расчета, например спектральных) для нелинейных цепей не соблюдается. Эти цепи описываются нелинейными дифференциальными или интегрально-дифференциальными уравнениями, в большинстве случаев не имеющими аналитического решения. Все это делает численные методы расчета и моделирования таких цепей не только полезными, но и жизненно необходимыми.
Мы постепенно рассмотрим практическую реализацию этих методов в системе MathCAD. Однако надо прямо отметить одно важное обстоятельство: вряд ли разумно (хотя и возможно) применять MathCAD для расчета и моделирования электронных схем даже умеренной сложности. Для этого существуют мощные специализированные программные системы, такие, как MicroCAP, PSPICE, NAP-2, PCAD и др., которые позволяют автоматизировать ввод в таблично-топологическом или даже в графическом виде, составление и решение сложных систем дифференциальных или конечно-разностных уравнений, описывающих работу схем, вывод результатов расчетов (временных зависимостей, АЧХ, ФЧХ, спектрограмм и т. д.) в прекрасно оформленном графическом виде.
MathCAD полезна прежде всего на этапе составления моделей таких схем. Она позволяет эффектно, наглядно и быстро подобрать необходимые расчетные выражения, проверить их и сравнить друг с другом (что, кстати, не позволяют выполнить специализированные программы моделирования электронных схем). MathCAD удобно применять для моделирования простейших схем, когда решающим фактором являются не столько результаты моделирования, сколько наглядная иллюстрация математических методов и алгоритмов, по которым оно проводится.
Система MathCAD идеальна для подбора математического аппарата приближения временных зависимостей входных воздействий, подбора формул для аппроксимации нелинейных вольт-амперных и других характеристик нелинейных цепей и т. д. Она весьма полезна для моделирования схем на новых типах приборов (моделей которых нет в специализированных программах) и схем специального применения. Именно из этих соображений подобран материал настоящей главы.
Начнем с моделирования логических функций, которых, как ни странно (если учесть, что они есть в любом языке программирования, даже в Бейсике), нет в системе MathCAD. Однако эти функции очень легко моделируются с помощью функции Хевисайда -- формирования единичного скачка, если ее аргумент больше 0 и формирования нулевого значения, если аргумент a
равен нулю или отрицателен.
В документе е10-1 определены четыре важнейшие логические функции: отрицания not(a), логического умножения and(a, b), логического сложения or(a, b) и "исключающая ИЛИ" xor(a, b). Эти функции содержат параметры a и b
(функция not — один параметр), которые имеют логическое значение 0 (ДА), если численное значение параметра меньше 0.5, и логическое значение 1, если численное значение параметра больше 0.5.
Помимо моделирования логических функций документ е10-1 иллюстрирует моделирование нелинейной системы -- логического анализатора, использующего логическую функцию and. Входные сигналы здесь моделируются с помощью генератора случайных чисел с формой, близкой к реальной (они имеют линейно нарастающие участки роста и спада). Выходной сигнал дает реакцию анализатора на два входных сигнала.
10.2. Моделирование сигналов с помощью элементарных функций
Как и при анализе линейных цепей, анализ и моделирование нелинейных цепей часто сводятся к вычислению отклика цепи на заданное входное воздействие. Оно обычно представляется периодической временной зависимостью, например синусоидальной или в виде меандра. Для моделирования входных воздействий используются самые различные методы. При этом разработчики моделирующих программ нередко забывают, что комбинации элементарных функций порою позволяют предельно просто промоделировать периодические сигналы большинства из наиболее распространенных форм.
В документе е10- 2 даны примеры моделирования для шести сигналов: синусоидального, синусоидального с плавно ограниченными верхушками, синусоидального со ступеньками при переходе через нуль, меандра, треугольного и пилообразного напряжений. Во всех случаях используется всего одна или две элементарные функции, а для создания меандра – логическая функция if.
Можно лишь удивляться, что многие сигналы особой формы (кроме синусоиды и меандра) легко моделируются с помощью общеизвестных элементарных функций. Другие способы моделирования (с применением более сложных функций) также могут быть полезны, но они куда менее изящны, чем приведенные выше.
10.3. Статический анализ простейших нелинейных цепей
Статический анализ нелинейных цепей означает нахождение постоянных напряжений и токов в этих цепях в стационарном режиме их работы. К сожалению, за редчайшим исключением, даже для простейших цепей такой анализ невыполним аналитическими методами. Инженеры-электронщики предпочитают использовать довольно наглядные, но весьма неточные графические методы или довольно точные (но мало наглядные) численные методы. Система MathCAD позволяет реализовать оба подхода, что делает анализ весьма наглядным.
Мы рассмотрим такой подход при решении простейшей задачи -- вычисление напряжения на полупроводниковом диоде, который соединен последовательно с резистором R и источником постоянного напряжения E. Документ е10-3 содержит решение двух задач — вычисление напряжения на обычном полупроводниковом диоде с однозначной по напряжению вольт-амперной характеристикой (ВАХ) и на туннельном диоде с многозначной по напряжению N-образной ВАХ.
При рассмотрении первой задачи надо обратить внимание на естественность решения как в численном виде с помощью функции Find, решающей нелинейное уравнение статического режима, так и на решение графическим методом. Как это общепринято, графическое решение находится построением на одном графике нелинейной ВАХ и прямой линии нагрузки, наклон которой задается значением R. Точка их пересечения и есть решение задачи. Для ВАХ классической диодной формы решение всегда является единственным.
Менее тривиальным является решение для туннельного диода, N-образная ВАХ которого неоднозначна по напряжению. В документе е10-4 (задача 2) показан случай, когда ВАХ туннельного диода пересекается линией нагрузки сразу в трех точках. Две из них (на участках с положительным наклоном) устойчивы, так что цепь может работать в триггерном режиме (как известно, триггер -- это электронное устройство с двумя состояниями устойчивого равновесия). Третье состояние неустойчиво.
С помощью функции root в конце документа найдены все три напряжения, соответствующие трем точкам пересечения ВАХ нагрузочной прямой. Начальные значения напряжения V (они нужны для инициирования поиска корня с помощью функции root) взяты из грубого графического решения задачи.
10.4. Построение характеристик мощных полевых транзисторов
К самым распространенным активным приборам нелинейных схем относятся биполярные и полевые транзисторы. Они являются трехполюсными управляемыми приборами и имеют управляемые ВАХ. Поэтому их ВАХ описываются (в отличие от диодов) целым семейством характеристик. Для примера остановимся на перспективных мощных полевых транзисторах. Они имеют вольт-амперные характеристики вида I(UG, UC), где I — ток стока, UG -- напряжение на затворе (исток считаем заземленным) и UC -- напряжение на стоке.
Документ е10-4 иллюстрирует построение семейства ВАХ мощного полевого МДП--транзистора КП901 на основе аппроксимации семейства ВАХ аналитическим выражением, приведенным в [37]. Помимо семейства ВАХ строится и статическая передаточная характеристика -- зависимость тока стока от напряжения на затворе при постоянном напряжении на стоке (в нашем примере — 30 В).
Вторая часть документа строит семейство ВАХ и передаточную характеристику для другого класса этих приборов -- так называемых V-МДП-транзисторов с вертикальным каналом типа КП912. Здесь используются другие формулы аппроксимации, а в остальном задача решается так же, как и для приборов КП901.
10.5. Расчет сквозной динамической характеристики каскада на мощном полевом транзисторе
Теперь предположим, что мощный МДП--транзистор находится в составе каскада -- его сток через резистор RC подключен к источнику постоянного напряжения EC, а на затвор подано медленно изменяющееся напряжение UG. Требуется построить сквозную динамическую передаточную характеристику такого каскада, т. е. зависимость напряжения на стоке от напряжения на затворе.
Это гораздо более сложная задача, чем построение статических ВАХ и передаточных характеристик, которые строятся для неизменных напряжений на стоке и затворе. Тут изменение напряжения на затворе меняет ток стока и (из-за падения напряжения на резисторе RC) напряжение на стоке. В итоге ток стока можно определить, только используя графические или численные (итерационные) методы.
Верхняя часть документа е10-5 иллюстрирует построение семейства статических ВАХ и линии нагрузки резистора RC на одном графике. Фактически это и есть решение задачи в графическом виде. Для каждой кривой ВАХ (с соответствующим UG) можно найти UC в точке пересечения кривой с линией нагрузки. Это придется сделать для всех кривых, с тем чтобы получить достаточное число точек зависимости UC(UG).
Вторая часть документа е10-5 показывает решение задачи численным методом. В заключение строится передаточная характеристика каскада. Видно, что она нелинейна. Если подать на вход каскада синусоидальный сигнал с постоянным смещением, получим усилитель гармонических сигналов. Из-за нелинейности передаточной характеристики такой усилитель вносит нелинейные искажения. Ранее рассмотренный документ е6-4 позволяет по заданной передаточной характеристике провести спектральный анализ выходного напряжения, рассчитать амплитуду первой и трех высших гармоник, а также коэффициента нелинейных искажений.
10.6. Расчет диодного выпрямителя
Для построения источников электропитания от сети переменного тока широко используются диодные выпрямители -- от простейшего однополупериодного до мостового и многофазных диодных выпрямителей. Их расчет достаточно сложен, поскольку при работе выпрямителя на сглаживающий конденсатор фильтра диоды выпрямителей открыты лишь на часть рабочего полупериода, причем она характеризуется углом отсечки Q. Вычисление угла отсечки возможно только численным методом. Соответствующие расчеты даны в документе е10-6.
В начале документа заданы исходные данные и выполнен расчет угла отсечки (в радианах). Затем задан ряд вспомогательных функций, реализующих расчет выпрямителя хорошо известным методом Терентьева. Расчет завершатся вычислением напряжений и токов силового трансформатора и емкости конденсатора фильтра (по заданному коэффициенту пульсаций Kp). Такой расчет представляет собой пример полностью завершенного расчета достаточно распространенного нелинейного устройства, каким является диодный выпрямитель.
10.7. Моделирование реакции нелинейной системы на гармоническое воздействие
Пусть нелинейная цепь с передаточной характеристикой вида y(x), где x и y могут быть различными величинами (например, токами или напряжениями для электронных схем), находится под воздействием гармонического сигнала. Надо вычислить временную реакцию цепи, т. е. временную зависимость выходного сигнала y(t). Численный метод вычисления реакции описан в [1, 2] и основан на спектральном подходе.
Этот метод реализует документ е10-7. Данные о передаточной характеристике представлены в виде двух векторов X
и Y, элементы которых несут значения функции y(x). Для получения плавной зависимости y(x)
используется сплайн-интерполяция совместно с параболической экстраполяцией.
В результате вычислений по заданной постоянной составляющей воздействия X0, амплитуде переменной составляющей Xm и числу интервалов разбивки рабочей области передаточной характеристики N вычисляются амплитуды m гармоник и коэффициент гармоник Kg. В конце документа выведена таблица амплитуд гармоник и построены передаточная характеристика и временная зависимость реакции системы. На ней отчетливо видно заметное обрезание верхней части выходного напряжения, обусловленное нелинейностью передаточной характеристики.
10.8. Моделирование нелинейной RC-цепи
Моделирование нелинейных RC-цепей чаще всего реализуется решением дифференциального уравнения, описывающего работу цепи. Документ е10-8 обеспечивает моделирование нелинейной интегрирующей цепи простейшим методом решения дифференциальных уравнений — методом Эйлера. При большом числе точек (50--100) этот метод дает вполне приемлемую в практике погрешность вычислений, а его простота позволяет провести моделирование достаточно быстро. В конце документа приведены графики входного воздействия и реакции цепи.
10.9. Моделирование генератора гармонических колебаний на туннельном диоде
Пусть туннельный диод подключен к источнику постоянного напряжения E через последовательно соединенные резистор R и индуктор L. Пусть далее R и E выбраны так, что рабочая точка туннельного диода находится на падающем участке N-образной ВАХ туннельного диода. Это обстоятельство принципиально важно, поскольку дифференциальная малосигнальная проводимость туннельного диода тогда является отрицательной. Физически это означает, что туннельный диод отдает энергию во внешнюю цепь.
Если учесть емкость C туннельного диода (совместно с емкостью монтажа и нагрузочной емкостью), такая схема будет описываться следующей системой нелинейных дифференциальных уравнений [6, 8]:


Нелинейность этой системы обусловлена тем, что во втором уравнении ток туннельного диода I(u) нелинейно зависит от напряжения на нем и емкости C -- u. Зависимость I(u) есть N-образная вольт-амперная характеристика туннельного диода.
Документ е10-9 позволяет рассчитать переходные процессы при включении рассмотренной схемы таблично заданной N-образной ВАХ туннельного диода. Она
задается своими табличными значениями -- элементами векторов U и I. N-образная ВАХ получается сплайн-интерполяцией с кубической экстраполяцией. Решение системы дифференциальных уравнений обеспечивается методом Эйлера.
Результаты моделирования в этом документе представлены в двух формах. Первая имеет вид фазового портрета -- положение каждой точки решения отмечается на графике в плоскости ВАХ. Для чисто гармонических колебаний предельный цикл колебаний на фазовой плоскости должен иметь форму эллипса. Его отличие от эллипса небольшое, что, с одной стороны, говорит о заметном влиянии нелинейности, а с другой -- о почти гармоническом характере колебаний. Вторая форма -- временные зависимости напряжения на туннельном диоде и тока в цепи резистора R. Эти зависимости близки к гармоническим.
Следует отметить, что область применения документа е10-9 неизмеримо шире, чем моделирование конкретной схемы генератора на туннельном диоде. Практически с его помощью можно моделировать основную цепь на любом приборе с N- или L-образной ВАХ (например, индуктивный релаксатор на лавинном транзисторе, генераторы на N- и L-диодах и транзисторах, их аналогах и т. д.). Достаточно лишь задать данные их ВАХ и соответствующие исходные данные. Это относится и к двум следующим документам.
10.10. Моделирование цепи с туннельным диодом в режиме релаксационных автоколебаний
Документ е10-10 почти ничем не отличается от документа е10-9. Отличие лишь в большем значении индуктивности L и меньшем значении емкости C. Этих отличий, однако, достаточно для существенного изменения режима работы цепи.
Колебания теперь возникают более резко, фазовый портрет начинается сразу с предельного цикла, форма которого резко отличается от эллиптической. Соответственно, сильно отличаются от гармонической и форма напряжения на туннельном диоде, и форма тока, текущего через резистор R. Колебания при этом относятся к типу релаксационных и возникают сами по себе, без какого-либо внешнего воздействия. Практически после первого цикла колебаний устанавливается их стационарный режим.
10.11. Моделирование ждущего релаксатора на туннельном диоде
Еще более интересные результаты можно получить, используя импульсное питание цепи на туннельном диоде. Тут напряжение питания можно задать зависимостью ei(t) в виде прямоугольного импульса, наложенного на постоянное напряжение -- пьедестал. Напряжение выбирается так, что рабочая точка попадает на первую восходящую ветвь N-образной ВАХ и оказывается стабильной. При этом цепь устойчива и колебания не генерируются. При появлении импульса рабочая точка попадает на падающий участок, и развивается процесс генерации одного полного цикла колебаний. Цепь, таким образом, выполняет функции ждущего релаксационного генератора. Он формирует импульс на выходе только после его запуска входным (запускающим) импульсом.
Документ е10- 11 иллюстрирует моделирование ждущего релаксатора на туннельном диоде (или ином приборе с N-образной ВАХ). Нетрудно заметить, что форма одного периода колебаний в ждущем релаксаторе практически аналогична форме колебаний у автоколебательного релаксатора.
Приведенные выше примеры наглядно показывают, что даже незначительное изменение параметров одной и той же цепи на туннельном диоде способно резко (и даже качественно) изменить режимы ее работы. При этом цепь может выполнять практически любую функцию электронного устройства: нелинейного преобразователя, усилителя и генератора гармонических колебаний, автоколебательного и ждущего релаксатора и двухстабильного устройства -- триггера.
Заключение
Итак, мы довольно полно рассмотрели новейшую универсальную математическую систему MathCAD PLUS 6.0 PRO. Приведенные данные убедительно свидетельствуют, что эта система достигла весьма высокого уровня развития: самые изысканные математические возможности здесь сочетаются с естественным и удобным пользовательским интерфейсом и богатыми возможностями графики.
Означает ли это, что предыдущие версии системы (начиная с версии MathCAD 3.0) потеряли свое значение? Вероятно, нет, по крайней мере до тех пор, пока все еще много пользователей имеют доступ лишь к персональным компьютерам с ОЗУ емкостью менее 8 Мбайт. Для многих их них возможности профессиональной версии MathCAD PLUS 6.0 PRO явно избыточны, и их вполне удовлетворит работа с версиями MathCAD 3.0 или 4.0.
Хотелось бы высказать одно важное пожелание разработчикам системы MathCAD. Было бы очень полезно, чтобы все функции (а не только избранные) символьного ядра системы были доступны, например, с помощью тех же команд, которые содержит система Maple V R3/R4. Эту возможность можно было бы ввести в состав весьма удачно реализованных программных блоков. Трудно даже представить, насколько тогда возросли бы возможности системы MathCAD, она превратилась бы в одну из самых мощных систем компьютерной алгебры, сохранив свой уникальный математически ориентированный пользовательский интерфейс.
К сожалению, в отличие от самих версий системы MathCAD электронные книги для новой версии системы (PLUS 6.0 PRO) с примерами ее применения у нас крайне дефицитны и мало распространены. А на русском языке их пока практически нет.
Между тем пользователь системы нуждается не только в учебных примерах работы с системой и в знакомстве с ее пользовательским интерфейсом и набором операторов и функций (чему посвящена большая часть настоящей книги), но и в примерах решения реальных и массовых математических и иных задач. Этих примеров все еще явно недостаточно в существующей литературе по системе MathCAD. Заключительная глава этой книги частично устраняет этот пробел. Однако, разработка новых пакетов применений MathCAD и электронных книг остается одной из важнейших задач внедрения систем MathCAD в практику учебных и научно-технических расчетов.
Глава 1. ОСНОВЫ РАБОТЫ С СИСТЕМОЙ MathCAD PLUS 6.0 PRO
1.1. История создания и основные возможности системы
Одной из основных областей применения ПК и поныне являются математические и научно-технические расчеты, в том числе выполнявшиеся ранее на микрокалькуляторах [1]. Бесспорным лидером среди массовых ПК стали IBM-совместимые ПК 486DX/Pentium/Pentium Pro, называемые так по типу используемых в них микропроцессоров. На них и ориентированы современные математические системы.
Само по себе появление компьютеров не упрощало математические расчеты, а лишь позволяло резко повысить скорость их выполнения и сложность решаемых задач. Пользователям ПК, прежде чем начинать такие расчеты, нужно было изучать сами компьютеры, языки программирования и довольно сложные методы вычислений, применять и подстраивать под свои цели программы для решения расчетных задач на языках Бейсик [2 ] или Паскаль. Поневоле ученому и инженеру, физику, химику и математику приходилось становиться программистом, порою довольно посредственным.
Такая порочная практика стала исчезать лишь после появления интегрированных математических программных систем для научно-технических расчетов: Eureka [3], PC MatLAB [4], MathCAD под MS-DOS [5--7, 11], Maple V [12], Mathematica 2 или 3 [13] и др. Большое количество подобных разработок свидетельствует о значительном интересе к ним во всем мире.
Широкую известность и заслуженную популярность еще в середине 80- х годов приобрели интегрированные системы для автоматизации математических расчетов класса MathCAD, разработанные фирмой MathSoft, (США). По сей день они остаются единственными математическими системами, в которых описание решения математических задач задается с помощью привычных математических формул и знаков. Такой же вид имеют и результаты вычислений. Так что системы MathCAD вполне оправдывают аббревиатуру CAD (Computer Aided Design), говорящую о принадлежности к наиболее сложным и продвинутым системам автоматического проектирования -- САПР. Можно сказать, что MathCAD — своего рода САПР в математике [7, 8].
С самого своего появления системы класса MathCAD имели удобный пользовательский интерфейс -- совокупность средств общения с пользователем. У этой системы есть и эффективные средства типовой научной графики, они просты в применении и интуитивно понятны. Словом, системы MathCAD ориентированы на массового пользователя, от ученика начальных классов до академика.
В последнее время особый интерес проявляется к системам, способным выполнять не только числовые, но и аналитические вычисления. В 80-е годы школа советского академика Глушкова внесла большой вклад в разработку таких программных систем (язык Аналитик) и в создание инженерных мини-ЭВМ, аппаратно реализующих аналитические вычисления (серия "Мир"). К сожалению, эти ЭВМ были вытеснены вначале машинами класса ЕС-ЭВМ, а затем и персональными компьютерами, и теперь мы наблюдаем развитие нового поколения зарубежных систем компьютерной алгебры, ориентированных на современные массовые ПК
[9 — 13].
Многие известные математические программы для ПК класса IBM PC -- от некогда популярного языка символьных вычислений Reduce [18] до мощной, быстрой и легко развиваемой системы MatLAB под MS-DOS — имели примитивный интерфейс, заимствованный из опыта начинающих программистов и любителей "дедушки" Бейсика, в новых версиях почитаемого и поныне. А системы с более современным (в конце 80-х годов) многооконным интерфейсом, например Eureka фирмы Borland [3], серьезному математику казались примитивными.
Неплохо бы соединить приятное с полезным! К такому выводу первой пришла фирма MathSoft (США) -- разработчик подлинного шедевра среди математических систем (MathCAD). Из обзоров автора [6--8] и его справочной книги [5] многие читатели уже знают, что отличительной чертой интегрированных математических систем MathCAD является подготовка документов, которые объединяют задание исходных данных, математическое описание их обработки и результаты вычислений (в виде числовых данных, таблиц и графиков). Текст документа в MathCAD почти ничем не отличается от текста научных статей. Удачно решена в MathCAD проблема передачи изменений численных данных в формулах по всей цепочке вычислений.
В начале 90-х годов произошло давно ожидаемое событие: серьезная математика в виде интегрированной системы MathCAD 3.0 прорвалась в окна системы Windows [11]! После этого почти все фирмы -- разработчики программных средств наперегонки бросились дорабатывать свои программы под Windows.
Ко времени выпуска MathCAD 3.0 под Windows далеко не каждый наш пользователь имел под рукой ПК класса 386 или 486 с установленной на нем операционной системой Windows. Однако обзор западной литературы по информатике и тенденций развития вычислительной техники убедительно показывал, что система Windows стремительно выдвинулась на роль лидера среди современных операционных систем для персональных компьютеров. Большинство серьезных программных продуктов перерабатывается под Windows 3.1/3.11, а сейчас уже под 32-разрядную (в основном) операционную систему Windows 95. В то же время количество программ под MS- DOS стремительно сокращается.
На Западе уже давно прекращен серийный выпуск ПК на микропроцессорах 386 и сворачивается производство ПК на процессоре 486. В России ситуация также изменилась. Новое поколение ПК -- это машины серии Pentium/ Pentium Pro. Стоимость их постоянно снижается, и машины этого класса становятся доступными не только для организаций, но и для дома. Наиболее часто приобретаемыми ПК уже стали на машины с микропроцессорами класса 486DX4-100 и Pentium 100/133.
Именно на машины этого класса и ориентированы версии MathCAD 6.0 и PLUS 6.0 PRO, хотя, в принципе, вполне возможна их работа и на ПК с микропроцессором 386.
Тем более, что пользователи, работающие с системой MathCAD под MS-DOS, всегда ощущали определенный дискомфорт из-за присущих ей принципиальных пороков, унаследованных от операционной системы MS- DOS. К примеру, при альтернативной кодировке символов знакогенераторов дисплея и принтера пропадала большая часть греческих букв, широко используемых в математических формулах. Много недоразумений возникало с печатью документов принтерами, искажались некоторые математические спецзнаки, нарушались форматы таблиц и т. д. Качество печати также оставляло желать лучшего. Шрифты не имели сменных наборов стилей, их размеры были фиксированными.
Не только профессионалы-аналитики, но и просто любители и почитатели математики быстро теряли интерес к системе, как только возникала необходимость в выполнении даже простейших символьных вычислений, нужных для этого средств версии системы MathCAD под MS-DOS были попросту лишены. Да и набор математических формул (не говоря уже об их поиске в справочных книгах) был занятием далеко не самым легким и приятным, поскольку требовал знания десятков комбинаций различных клавиш.
Опыт работы автора даже с первой системой MathCAD 3.0 под Windows позволяет сделать вывод, что студенты, аспиранты, инженеры и ученые получили в свои руки превосходный инструмент для повседневной работы. Теперь для написания научной статьи или диссертации они могут обойтись только системой MathCAD под Windows и встроенными в Windows средствами.
К средствам новых версий MathCAD относятся настройка под любой мало-мальски известный тип печатающего устройства, богатый набор шрифтов, возможность использования всех инструментов Windows, прекрасная графика и современный многооконный интерфейс. А в новейшую версию MathCAD PLUS 6.0 PRO добавлены эффективные средства оформления документов в цвете, создания анимационных (движущихся) графиков и звукового сопровождения. Тут же текстовый, формульный и графический редакторы, объединенные с мощным вычислительным потенциалом. Отсюда и название таких систем — интегрированные.
Математики, физики и ученые из других, смежных отраслей науки давно мечтали о математически ориентированном языке программирования для записи алгоритмов решения математических и научно-технических задач в наиболее удобной, компактной и доступной для понимания форме. Для этого они пытались приспособить различные языки программирования высокого уровня -- Фортран, Алгол, Бейсик, Паскаль и др. Но их попытки так и не увенчались успехом -- программы на этих языках, увы, ничем не напоминали привычные математические и физические символы и формулы, с которыми все привыкли работать и с помощью которых описываются решения математических задач.
Выпустив за какие-то три года целую серию систем MathCAD, ориентированных под Windows и имеющих некоторые средства для выполнения символьных операций компьютерной алгебры, фирма MathSoft наглядно показала свое несомненное лидерство в быстрой разработке популярных математических систем. Этому способствовало привлечение к разработкам систем MathCAD известной компании Waterloo Maple Software --
создательницы одной из самых мощных и интеллектуальных систем компьютерной алгебры Maple V [12].
Совсем недавно лидером среди систем компьютерной алгебры признавалась система Mathematica 2 фирмы Wolfram [13]. Но сегодня ей на пятки уже наступает упомянутая система Maple V R3 с реализацией под Windows [12]. Появилась и новая реализации этих систем – Maple V R4.
Впрочем, уже есть и новая мощная версия системы Mathematica 3. Однако все эти системы имеют явную избыточность средств символьной математики, что удобно для математиков высшей квалификации, но отнюдь не для массового пользователя.
Оставаясь по-прежнему мощной системой для численных расчетов, MathCAD начиная с версии 3.0 приобрела возможности выполнения некоторых символьных операций, т. е. стала системой компьютерной алгебры. Для этого по лицензии от фирмы Maple в систему MathCAD было введено урезанное ядро символьных операций от системы Maple V. Число таких операций, доступных пользователю из меню, тщательно оптимизировалось и было ограничено тем разумным минимумом, который необходим массовому пользователю. Тем не менее символьные возможности систем расширялись от версии к версии, наиболее полно они представлены в версии MathCAD PLUS 6.0 PRO.
Начиная с версии 4.0 система MathCAD стала 32-разрядной. Это означает, что для ее работы задействованы самые быстрые и эффективные команды современных микропроцессоров, прежде всего класса Pentium и Pentium Pro. В результате, несмотря на заметное увеличение математических возможностей, скорость действия системы не только не уменьшилась, но и заметно возросла.
Помимо ориентации под Windows новые версии системы MathCAD содержат множество усовершенствований: удобное и простое управление мышью, более совершенный редактор документов, возможность выполнения наиболее распространенных символьных вычислений, встроенные электронные книги, мощную систему помощи и возможность работы одновременно с восемью документами (задачами).
Предусмотрен импорт любых графических изображений -- от простых и специальных графиков функций до многокрасочных репродукций художественных произведений. Введены средства анимации рисунков и проигрывания видео-- файлов со звуковым стереофоническим сопровождением. Это значительно улучшает визуализацию самых сложных расчетов.
Справочная база данных о системе в MathCAD PLUS 6.0 PRO реализована гораздо полнее, чем в ранних версиях. Она дает возможность ознакомления с основными возможностями MathCAD, разумеется, если пользователь хорошо владеет английским языком. В русифицированных версиях MathCAD справочная база данных реализована на русском языке, что является главным побудительным мотивом к применению таких версий.
Особый интерес представляют встроенные в систему электронные книги, содержащие справки и примеры применений системы по ряду разделов математики, механики, физики, электротехники и радиотехники, а также по интерфейсу системы. Справки содержат математические формулы и иллюстрации. Можно выделить нужную справку -- формулу или рисунок -- и перенести ее в текст документа. В сочетании с возможностью импорта графических файлов из других графических систем (таких, как VISIO, AutoCAD, PCAD, TurboCAD и др.) это позволяет готовить документы, содержащие наряду с расчетной частью высококачественные иллюстрации.
Существенно улучшена графика системы. В ранних версиях при построении графиков функций перечисление ýòèõ функций шло в одну строчку. Это приводило к смещению графика от левой части экрана вправо. Кроме того, было неясно (особенно при монохромном дисплее и распечатке документов не цветным принтером), к какой функции относится та или иная кривая.
Эти недостатки устранены в новой версии. Теперь имена перечисляемых функций располагаются друг под другом вместе с указаниями на тип линии, ее цвет (в виде короткого отрезка соответствующих цвета и типа) и наличие меток того или иного типа (кружки, крестики, квадратики и т. д.). Существенно упростились перемещение рисунков и изменение их размеров (с помощью мыши), повысилась точность позиционирования рисунков.
Пользователи будут приятно удивлены тем, что все версии MathCAD под Windows позволяют работать как с латинскими буквами, так и кириллицей (буквами русского алфавита), греческим алфавитом и вообще с любыми символами, доступными в Windows. Более того, благодаря применению масштабируемых TTF-шрифтов можно управлять как размером символов, так и их стилем (делая буквы прямыми или наклонными, тонкими или жирными). Все это дает возможность готовить документы и электронные книги высокого качества и на английском, и на русском языках. Эта возможность есть как в русифицированных, так и в англоязычных версиях MathCAD.
Впрочем, не стоит забывать, что это достоинство -- результат работы системы в среде Windows, которая также русифицирована. Греческие символы и математические спецзнаки раньше были недоступны в текстовых комментариях, теперь же и этот недостаток полностью устранен.
Последние версии системы MathCAD дают новые средства для подготовки сложных документов. В них предусмотрено красочное выделение отдельных формул, многовариантный вызов одних документов из других, возможность закрытия “на замок” отдельных частей документов, гипертекстовые и гипермедиа-переходы и т. д. Это позволяет создавать превосходные обучающие программы и целые книги по любым курсам, базирующимся на математическом аппарате. Здесь же реализуется удобное и наглядное объектно-ориентированное программирование сложнейших задач, при котором программа составляется автоматически по заданию пользователя, а само задание формулируется на естественном математическом языке общения с системой.
Сейчас для обучения работе с системой фирма MathSoft предлагает набор простых и коротких примеров решения типовых математических задач. Поэтому наряду с электронными книгами по расчетам (BookSampler) и интерфейсу (Desktop Reference) и самоучителем (Tutorial) MathCAD содержит множество коротких примеров QuickSheet – шпаргалок [14], с которыми можно быстро ознакомиться перед решением той или иной проблемы. Большое количество таких новых примеров описано и в настоящей книге (см. главу 12). При этом они не повторяют, а дополняют имеющиеся в документах примеры применения MathCAD.
С выходом настоящей книги заинтересованный читатель получает достаточно полную информацию как о самих системах класса MathCAD, так и о практике их применения в массовых общетехнических и математических расчетах. Более подробные сведения о разных версиях систем класса MathCAD содержатся в главе 11.
На сегодняшний день пользователь имеет большой выбор систем этого класса. Если он располагает лишь не очень мощным ПК с процессором 386 и емкостью ОЗУ 2 Мбайта, ему вполне подойдет MathCAD 3.0. На среднем по нынешним временам ПК 486DX с ОЗУ 4 Мбайта разместится система MathCAD 4.0 или 5.0. Пользователи, предпочитающие современные ПК, могут воспользоваться более мощными версиями PLUS 5.0 и PLUS 6.0 PRO.
1.2. Инсталляция и запуск системы
Системы MathCAD поставляются на магнитных дисках, а в последнее время в основном на CD-ROM. Для установки системы MathCAD PLUS 6.0 PRO нужен ПК класса 386/486/Pentium/Pentium Pro с емкостью ОЗУ не менее 8 Мбайт. На ПК должна быть установлена операционная система класса Windows 3.1/3.11 (правильнее рассматривать ее как графическую надстройку над MS-DOS), Windows 95 или Windows NT. Объем оперативной памяти должна быть не меньше 12 Мбайт, а свободное пространство на диске — 20 Мбайт. При этом еще 3 Мбайта свободного пространства должно быть в том разделе жесткого дика, где установлена операционная система Windows.
Вообще говоря, для работы системы MathCAD математический сопроцессор не нужен. Однако его наличие ускоряет выполнение многих цифровых вычислений и построение графиков. Начиная с процессоров 486DX математический сопроцессор встраивается в центральный процессор, что дает наибольшее повышение производительности для таких операций.
Следует также учитывать, что начиная с версии MathCAD 4.0 система ориентирована на использование быстрых 32-разрядных команд микропроцессоров 386/486/Pentium. Поэтому Windows 3.1/3.11 должна быть дополнена системой Win32s, которая может инсталлироваться как отдельно, так и с различными приложениями, в том числе MathCAD 4.0 и выше. 32-разрядные операционные системы Windows 95 и Windows NT не требуют инсталляции Win32s, поскольку изначально ориентированы на возможность работы с 32-разрядными приложениями.
Как отмечалось, новые версии MathCAD дополнены возможностью вывода анимационных изображений, получивших название “живого” видео. Однако для реализации этой возможности также нужно дополнительное программное обеспечение в виде видеосистемы Microsoft Video for Windows 1.0/1.1. Эта программа может инсталлироваться отдельно или (если она ранее не была установлена) в процессе инсталляции системы MathCAD. А для реализации звукового сопровождения необходимо оснащение ПК аудиоадаптером, совместимым со звуковыми картами класса Sound Blaster, и звуковыми колонками.
С учетом отмеченных особенностей инсталляция системы не вызывает особых проблем и проходит гладко. Если возникают специфические трудности (как правило, при неудачной и нетиповой конфигурации ПК), следует ознакомиться с довольно детальной инструкцией по инсталляции, приведенной в файле readme.
После инсталляции в рабочем окне системы Windows вы обнаружите пиктограмму с изображением счетов и надписью MathCAD PLUS 6.0 PRO. Будучи открытым, окно этой пиктограммы примет вид, показанный на рис. 1.1.
Рис. 1.1. Группа пиктограмм системы MathCAD PLUS 6.0 PRO
То, что система MathCAD PLUS 6. 0 PRO профессиональная, вовсе не означает, что для обычных пользователей работа с ней будет в чем-то сложнее, чем с упрощенной версией MathCAD 6.0. Все эти версии имеют одинаковый пользовательский интерфейс и отличаются лишь полнотой набора встроенных операторов и функций и объемом сопроводительной документации. Так что вопреки логике работа с версией "PRO" проще для любого пользователя, ведь именно эта версия содержит наиболее мощный справочно-информационный раздел и обладает наибольшими возможностями немедленного применения.
В прежних версиях MathCAD под Windows пиктограмма запуска имела вид калькулятора. Некоторые пользователи поневоле из-за этого отождествляли MathCAD с микрокалькулятором в Windows. Однако они отличаются примерно так же, как космический “челнок” отличается от бумажного голубка, сотворенного руками ребенка! Видимо, учтя это, MathSoft изменила пиктограмму, изобразив ее в виде счетов, -- вряд ли кто-либо заподозрит, что MathCAD PLUS 6.0 PRO уподобляется этаким большим электронным счетам.
В дальнейшем, говоря о системе MathCAD, мы будем подразумевать ее последнюю оригинальную англоязычную версию -- MathCAD PLUS 6.0 PRO. Номер версии будет указываться только в том случае, если соответствующий материал относится именно к ней. При этом практически весь материал глав 1–10 в равной мере относится ко всем версиям систем MathCAD под Windows.
Запустив MathCAD из Windows, вы обнаружите окно, некий гибрид типового окна Windows-программ и диалогового окна, столь привычного для пользователям ранних версий MathCAD. Вид этого окна сразу после загрузки системы показан на рис. 1.2.
Рис. 1.2. Окно системы MathCAD
Обычно при первой загрузке системы ее окно появляется не полностью открытым (на рис. 1.2 под ним видны пиктограммы других приложений менеджера программ Windows 3.11).
Как известно, Windows -- многозадачная система, позволяющая быстро переключаться с решения одной задачи на решение другой (в частности, путем одновременного нажатия клавиш Alt и Tab). Возможно также управление окнами различных приложений. Для этого в правом верхнем углу окна MathCAD помещены два квадратика с черными треугольниками, вершины которых обращены вверх и вниз. Если указать курсором мыши на треугольник с вершиной, обращенной вверх, и щелкнуть левой клавишей мыши, то окно системы распахнется во весь экран. То же действие с треугольником, вершина которого обращена вниз, ведет к свертыванию окна системы -- оно превратится в пиктограмму. Кнопка с двумя треугольниками переключает размер окна с неполного на полное и обратно.
С помощью клавиш Alt и Tab можно быстро переключаться в Windows из одного приложения в другое, например из текстового редактора или программы Autocad в MathCAD. При этом (что является принципиальным отличием от работы в среде MS- DOS) работа каждого приложения временно прекращается в том состоянии, какое было перед переключением окон. С этого же состояния приложение начинает работать, как только его окно делается активным.
1.3. Основы пользовательского интерфейса
Под интерфейсом пользователя подразумевается совокупность средств графической оболочки MathCAD, обеспечивающих легкое управление системой как с помощью клавиатуры, так и с помощью мыши. Под управлением понимается и просто набор необходимых символов, формул, текстовых комментариев и т. д., и возможность полной подготовки в среде MathCAD документов (WorkSheets) и электронных книг с последующим их запуском в реальном времени.
Пользовательский интерфейс системы создан так, что пользователь, имеющий элементарные навыки работы с Windows-приложениями, может сразу начать работу с MathCAD. Интерфейс системы внешне очень напоминает интерфейс широко известных текстовых приложений Word 6.0/7.0 под Windows. Это, в частности, позволило несколько сократить описание общепринятых для Windows-приложений деталей работы с ними.
Окно редактирования
Сразу после запуска система готова к созданию документа с необходимыми пользователю вычислениями. Соответствующее окно редактирования получает название Untitled:N, где N — порядковый номер документа. Он начинается с цифры 1, максимальный номер окна — 8.
Основную часть экрана занимает окно редактирования, первоначально пустое. Линейки на нижней и правой кромке текущего окна, так называемые полосы прокрутки, предназначены для перемещения (скроллинга) изображения на экране по горизонтали и вертикали. Для этого достаточно установить курсор-стрелку мыши на квадратике со стрелкой, указывающей направление перемещения, и нажать левую клавишу мыши. При этом будет обеспечено плавное, перемещение изображения в окне. Можно перемещать изображение намного быстрее, установив курсор-стрелку в поле линейки и также нажав клавишу мыши. При этом длина линейки соответствует полной длине документа, так что курсором можно сразу приблизительно указать на часть документа, выводимую в окно.
Вверху окна видно несколько строк с основными элементами интерфейса. Верхняя строка — строка заголовка. Она отображает название загруженного или вводимого с клавиатуры документа. В левой части строки помещена стандартная кнопка управления окном, а в правой части -- кнопки свертывания окна в пиктограмму и развертывания его во весь экран.
Если используется русифицированная версия Windows, то левая кнопка выведет на экран меню с русскими названиями опций. Дело в том, что эти кнопки типичны для всех Windows-приложений. Они относятся не к системе MathCAD как таковой, а ко всей системе Windows.
Главное меню и наборные панели
Вторая строка окна системы -- главное меню. Оно будет описано в дальнейшем, пока же отметим, что работа с документами MathCAD обычно не требует обязательного использования возможностей главного меню, т. к. основные из них дублируются пиктограммами управления.
Вместо столбикового переключателя математических знаков, применяемого в более ранних версиях MathCAD под Windows, в шестой версии используются более удобные перемещаемые наборные панели (в оригинале Palletes -- палитры) с такими знаками. Они служат для вывода заготовок -- шаблонов математических знаков (цифр, знаков арифметических операций, матриц, знаков интегралов, производных и т. д.).
Пиктограммы вывода наборных панелей занимают третью сверху строку окна системы (см. рис. 1.3, на котором оставлены только эти пиктограммы). Наборные панели появляются в окне редактирования документов при активизации соответствующих пиктограмм -- первая линия пиктограмм управления системой. На рис. 1.3 представлены все наборные панели, причем рядом с ними повторены соответствующие пиктограммы их вызова. Интересующимся полезно знать, что пиктограммы повторяют рисунки в справочном разделе и демонстрируют возможность переноса рисунков из него в окно редактирования. Как это делается, рассмотрим позже.
Рис. 1.3. Наборные панели системы MathCAD
Наборные панели намного удобнее столбикового переключателя в прежних версиях системы, у которого был виден лишь один столбец с математическими знаками. На наборной панели, помимо того, что на ней одновременно видны все математические знаки (причем они отчетливо различимы), можно вывести или все панели сразу, или в нужном количестве (рис. 1.3). Для установки с их помощью необходимого шаблона (объекта) достаточно поместить курсор в желаемое место окна редактирования (красный крестик на цветном дисплее) и затем активизировать пиктограмму нужного шаблона, установив на него курсор мыши и нажав ее левую клавишу.
Применение пиктограмм для вывода шаблонов математических знаков очень удобно, поскольку не надо запоминать разнообразные сочетания клавиш, используемые для ввода специальных математических символов. Впрочем, и эта возможность сохранена, так что привыкшие к работе с клавиатурой пользователи, имевшие дело с более ранними версиями системы MathCAD (в том числе под MS-DOS), могут воспользоваться навыками виртуозного набора формул и при работе с новой версией системы.
Любую наборную панель можно переместить в удобное место экрана, уцепившись за ее верхнюю часть курсором мыши. Перемещая панель, левую клавишу мыши нужно держать нажатой. В верхнем левом углу каждой наборной панели помещена маленькая кнопка со знаком минус, служащая для устранения панели с экрана, как только она становится ненужной.
Большинство кнопок на наборных панелях вводят общепринятые и специальные математические знаки и операторы, выводя их шаблоны в месте расположения курсора на документе. Позже мы последовательно рассмотрим все эти знаки, в том числе на первый взгляд неочевидные.
Панель инструментов
Четвертую строку окна системы занимает панель инструментов (Toolbox). Она содержит несколько групп пиктограмм управления, каждая из которых дублирует одну из важнейших операций главного меню. Глядя на эти пиктограммы (см. рис. 1.2), можно легко уяснить их функции. Стоит только остановить курсор мыши на любой из этих пиктограмм, как в желтом окошечке появится текст, объясняющий функции пиктограммы.
Надо отметить, что строки с пиктограммами тоже можно мышью свернуть в наборную панель и поместить в любое место экрана. Такую панель легко закрыть с помощью кнопки с жирным знаком минус. Так интерфейс системы модифицируется, и пользователь может подстроить его под свой вкус. Рассмотрим действие пиктограмм управления.
Пиктограммы операций с файлами
Документы системы MathCAD являются файлами. Файлы можно создавать, загружать (открывать), записывать и распечатывать принтером. Соответственно файловые операции представлены в инструментальной панели первой группой из четырех пиктограмм:
New (Создать) -- создание нового документа с очисткой окна редактирования;
Open (Открыть) -- загрузка ранее созданного документа из диалогового окна;
Save (Сохранить) -- запись текущего документа с его именем;
Print (Печать) -- распечатка документа на принтере.
Ниже мы рассмотрим эти операции более подробно.
Пиктограммы операций редактирования
Во время подготовки документов их приходится видоизменять и дополнять — редактировать. Следующие четыре пиктограммы служат для выполнения операций редактирования документов:
Undo (Отменить) -- отмена предшествующей операции редактирования;
Cut (Вырезать) -- перенос выделенной части документа в буфер обмена (Clipboard) с очисткой этой части документа;
Copy (Копировать) -- копирование выделенной части документа в буфер обмена с сохранением выделенной части документа;
Paste (Вставить) -- перенос содержимого буфера обмена в окно редактирования на место вставки.
Три последние операции связаны с применением буфера обмена. Его возможности и назначение хорошо известны пользователям Windows. Он предназначен для временного хранения данных и их переноса из одной части документа в другую либо для организации обмена данными между различными приложениями.
Пиктограммы размещения блоков
Здесь уместно отметить, что документы состоят из различных блоков: текстовых, формульных, графических и т. д. Блоки просматриваются системой, интерпретируются и исполняются. Просмотр идет справа налево и снизу вверх. Две операции размещения блоков представлены пиктограммами следующей группы:
Align Horizontal (Выровнять по горизонтали) -- блоки выравниваются по горизонтали;
Align Vertical (Выровнять по вертикали) -- блоки выравниваются по вертикали.
Эти пиктограммы изображают блоки и указанные варианты их размещения. Определенное размещение блоков в некоторых случаях имеет значение. Например, нередко результат операции желательно разместить в одной строке с заданием на операцию. А размещение блоков по вертикали характерно для больших документов.
Пиктограммы текстовых операций
Один из видов блоков -- текстовые блоки (или области -- Regions). Обычно с их помощью создаются неисполняемые текстовые комментарии с включенными в них (при необходимости) математическими формулами. Для создания и контроля текстовых блоков служат пиктограммы:
Create Text Region (Создать текстовую область ["]) -- создание текстовой области малого размера с шириной, меньшей полной ширины строки;
Create Text Paragraph (Создать текстовый параграф [Ctrl+T]) -- создание текстовой области под параграф с шириной, равной максимальной ширине строки;
Check Speling (Проверить орфографию) -- включение грамматического контроля (пока даже для русских версий MathCAD доступна проверка орфографии только англоязычных текстов).
Первая операция (пиктограмма с заглавной буквой A) используется для задания небольших комментариев, тогда как вторая операция позволяет готовить объемные тексты. К сожалению, грамматический контроль (пиктограмма с буквами ABC над птичкой) возможен только для англоязычных текстов.
Пиктограммы установки режимов работы
Просмотр, интерпретация и исполнение блоков могут выполняться в автоматическом или ручном режиме. Обычно пользователи предпочитают автоматический режим. Для переключения режимов работы служит группа из двух пиктограмм:
Automatic Mode (Автоматический режим) -- включение режима автоматической работы;
Live Symbolic (Символьный процессор) -- включение режима SmartMath для “интеллектуальных” символьных операций.
Применение символьных операций связано с повышенными затратами аппаратных ресурсов, в частности памяти. Поэтому предусмотрено включение режима символьных операция только тогда, когда это необходимо. На кнопке-пиктограмме первой операции помещено изображение лампочки, а на второй -- академической шапочки.
Пиктограммы операций с выражениями
Формульные блоки часто являются вычисляемыми выражениями или выражениями, входящими в состав заданных пользователем новых функций. Для работы с выражениями служат пиктограммы:
Calculate (Пересчитать) -- вычисление выделенного выражения;
Choose Function (Вставить функции) – вставить функцию из списка, появляющегося в диалоговом окне.
Если документы большие, то при их изменениях не всегда выгодно запускать вычисления с самого начала. Операция Calculate (Пересчитать) позволяет запускать вычисления для выделенных блоков, что может уменьшить время вычислений. Пиктограмма первой операции представляет собою изображение знака =, а второй -- f(x).
Пиктограммы размера и вывода единиц измерения
Следующие две пиктограммы задают:
Zoom (Масштаб) -- управление размером (масштабом) экрана;
Insert Utit (Вставить единицы) – вставку размерных единиц.
Хотя прямой связи между этими операциями нет, соответствующие пиктограммы расположены рядом. Управление размером экрана (пиктограмма имеет вид лупы со значком ±) полезно при просмотре больших документов, поскольку их ширина и длина могут превосходить размеры видимой в окне редактирования области. Пиктограмма второй операции имеет вид мерной кружки.
Пиктограммы работы со справочной базой данных о системе
Заключительная группа из двух пиктограмм задает обращение к примерам применения и встроенной справочной базе данных системы:
Quick Sheets (Шпаргалки) -- быстрый вызов примеров применения системы;
Help (Справка) -- вызов справочной базы данных о системе.
Указанных операций вполне достаточно для работы с документами без применения других возможностей главного меню. Пиктограммы этих операций имеют вид вопросительного знака (наклонного для первой операции и жирного прямого для второй).
Другие элементы пользовательского интерфейса
Пятая строка верхней части экрана содержит типовые средства управления шрифтами: переключатели типа символов, набора фонтов шрифта и размеров шрифта, три пиктограммы типа шрифтов (полужирный курсив и подчеркивание), а также три пиктограммы расположения букв в строке (рядом, надстрочное и подстрочное).
До тех пор пока не начат набор элементов документа, часть описанных пиктограмм находится в пассивном состоянии. В частности, в окнах переключателей панели форматирования нет надписей. Пиктограммы и переключатели становятся активными, как только появляется необходимость в их использовании.
Внизу экрана кроме полосы горизонтальной прокрутки расположена еще одна строка – строка состояния. В ней выводится служебная информация, краткие комментарии, номер страницы документа и др. Эта информация полезна для оперативной оценки состояния системы в ходе работы с нею.
Вид окна системы может меняться. В дальнейшем будет показано, что возможно удаление отдельных деталей интерфейса, например строки с пиктограммами вывода наборных панелей, инструментальной панели и панели управления шрифтами. Если все окна документов закрыты, может резко сократиться и число позиций главного меню (см. рис. 1.4). Исчезают те позиции, которые не имеют смысла при отсутствии редактируемого документа.
Рис. 1.4. Вид окна системы MathCAD при всех закрытых окнах документов
Указанные объекты интерфейса можно перемещать по экрану с помощью мыши. Например, можно поместить строку форматирования рядом с пиктограммами наборных панелей, вынести в любое место экрана инструментальную панель и т. д. Таким образом, интерфейс несложно подстраивать под запросы пользователя.
Изложение всех возможностей управления системой MathCAD под Windows потребует описания большей части возможностей Windows. К счастью, большая часть правил работы с Windows одинакова для любого приложения, работающего в системе, и интуитивно предсказуема. К примеру, для изменения размера окна достаточно установить курсор-стрелку мыши на пограничную линию окна. Вид курсора изменится: стрелка станет двусторонней. Если теперь нажать и удерживать левую клавишу мыши, то можно перемещать границу окна, меняя его размеры. Точно так же (установив стрелку-курсор на верхнюю титульную линию окна) можно плавно перемещать окно по всему экрану.
На этом мы закончим рассмотрение возможностей пользовательского интерфейса MathCAD и посоветуем читателю получше узнать общие правила работы с приложениями под Windows, прежде чем всерьез осваивать работу с MathCAD.
1.4. Особенности интерфейса при запуске из Windows 95
Рассмотрим некоторые особенности работы системы MathCAD в ставшей популярной и массовой операционной системе Windows 95.
Windows 95 построена таким образом, что она несколько меняет вид некоторых компонентов пользовательского интерфейса. Это хорошо заметно на рис. 1.5, где показан вид экрана системы Windows 95 с загруженным приложением MathCAD.
Рис. 1.5. Окно системы MathCAD на рабочем столе операционной системы Windows 95
Первое, что бросается в глаза, -- более мелкие надписи, относящиеся к главному меню. Модернизации подверглась и строка заголовка -- в правой ее части видны три маленькие кнопки-пиктограммы для сворачивания окна в пиктограмму, увеличения или уменьшения размеров окна и завершения работы с приложением. Они характерны для окон всех приложений Windows 95. В остальном вид окна MathCAD остался прежним. Строка задач (Task Bar) с кнопкой Пуск обычно при работе с Windows 95 остается видимой. На этой панели появляются названия работающих приложений, которые (если их несколько) можно переключать. Кнопка Пуск выводит главное меню Windows 95.
1.5. Входной язык системы MathCAD
Отличительной чертой MathCAD является работа с так называемыми документами. Документы объединяют описание математического алгоритма решения задачи (или ряда задач) с текстовыми комментариями и результатами вычислений, заданными в форме символов, чисел, таблиц или графиков. В оригинале документы системы MathCAD названы английским словом Sheets.
Уникальное свойство MathCAD — возможность описания математических алгоритмов в естественной математической форме с применением общепринятой символики для математических знаков, таких, например, как квадратный корень, знак деления в виде горизонтальной черты, знак интеграла и т. д. Это делает документ, видимый на экране дисплея, чрезвычайно похожим на странички текста из математических книг и научных статей.
Такой подход значительно облегчает восприятие математической сущности решаемой задачи и избавляет пользователя от изучения некоторого промежуточного языка программирования (например, Фортрана, Бейсика, Паскаля и т. д.). Можно сказать, что в MathCAD методы решения математических задач без их программирования доведены до совершенства.
Разумеется, это не означает, что в системе нет своего языка программирования. В действительности он есть, но это математически ориентированный особый язык программирования сверхвысокого уровня, используемый в основном как входной язык для диалога с системой. В подавляющем большинстве расчетных задач этот язык позволяет задать их решение в виде вводимых математических формул и указать тип желаемых результатов (таблицы или графики). Специальные приемы введены лишь для задания циклического изменения переменных и создания так называемых ранжированных переменных.
По существу, входной язык системы — промежуточное звено между скрытым от пользователя истинным языком программирования и текстом документа, видимым в окне дисплея. По мере того как пользователь создает (средствами текстового, формульного и графического редакторов) в окне дисплея объекты (тексты, формулы, таблицы и графики), система сама составляет программу, которая хранится в ОЗУ до тех пор, пока не будет сохранена на диске в виде файла с расширением .mcd. Текст такого файла, прочитанный любым текстовым редактором, фактически является обычной программой. Однако важно подчеркнуть, что от пользователя не требуется знать язык программирования, достаточно освоить приближенный к естественному входной язык системы.
В версии MathCAD 6.0 резко снижены требования к знанию даже входного языка. Практически все операторы можно вводить мышью, а большинство математических функций (например, sin, cos, exp и т. д.) имеют естественную форму задания, например, sin(x) так и вводится как sin(x). К тому же есть возможность выбора из списка, имеющегося в специальном окне, что уменьшает вероятность ошибок при вводе документов.
Работа с системой приобрела характер визуального объектно-ориентированного программирования. При этом решающим является задание объектов, а программу составляет сама система. Более того, в MathCAD (к сожалению, не для символьных операций) эффективно решена проблема сквозной передачи данных от одного объекта к другому, например от одного математического выражения к другому, от него к таблицам, от таблиц к графикам и т. д. Поэтому изменение в любой формуле или в задании входных данных тут же ведет к пересчету задачи по всей цепи взаимодействия объектов.
Лучшее враг хорошего! Это в полной мере можно сказать о входном языке предшествующих версий MathCAD. Этот язык был доведен до такого "совершенства", что в нем исчезли многие основополагающие средства программирования, например циклы, условные выражения, процедуры и т. д., в их привычном для программистов виде. В результате пользователь, привыкший к обычному программированию, испытывал большие неудобства от замены этих средств непривычными средствами системы MathCAD. Тем более, что иногда описание задачи в общепринятом на языках программирования виде оказывается предпочтительным и более коротким.
Некоторые критики системы MathCAD, как правило, даже не работающие с нею, говорят, что реализация решения математических задач в среде MathCAD отучает пользователя от познания фундаментальных основ реализации математических численных методов обычными средствами программирования. Это обвинение абсолютно абсурдно. MathCAD как раз и позволяет описать любые алгоритмы реализации численных методов привычным для математиков языком обычных формул.
Впрочем, версии MathCAD 6.0 и PLUS 6.0 PRO избавились и от этого "недостатка". В них включены важнейшие средства программирования и предусмотрена возможность задания программных блоков -- процедур с общепринятыми операторами программирования. В совокупности с иными средствами входного языка это делает его необычайно гибким, мощным и наглядным.
Входной язык системы MathCAD -- интерпретирующего типа. В интерпретаторах, например в Бейсике, листинг программы пользователя просматривается сверху вниз (а в пределах строки — слева направо), и любые указания в программе тут же выполняются. Так же просматриваются и блоки в системе MathCAD. Как только блок опознается, система автоматически запускает внутренние подпрограммы выполнения необходимых действий, например вычисления по формуле, вывод таблицы значений вектора, построение рисунка по его шаблону и т. д. В общем, это напоминает интерпретацию высшего уровня, при которой пользователь не опускается до таких мелочей, как составление необходимых подпрограмм, хотя, как отмечалось, теперь и это возможно.
Интерпретаторы работают медленно, поэтому не случайно, что пользователи, работавшие со старыми версиями MathCAD, отмечали медлительность систем, особенно при сложных вычислениях и при построении графиков. Медлительность является и следствием работы систем в графическом режиме, когда малейшее изменение содержания экрана требует его полной перерисовки.
Начиная с версии MathCAD PLUS 5.0 в систему введена возможность ее расширения функциями, которые задаются обычными программами на языке Cи или Cи++. Однако это не позволяет эффективно и просто решить проблему расширения возможностей системы. На Cи или Cи++ хорошо программируют системные программисты, но они весьма редко разбираются в сути математических задач. Обычные пользователи, освоив возможности MathCAD, не захотят вернуться к тому, от чего ушли, -- к программированию на достаточно сложном языке.
В связи с этим в версиях MathCAD PLUS 6.0 и MathCAD PLUS 6.0 PRO появилась весьма изящная возможность записи встроенных в документ программных модулей, реализующих типовые управляющие структуры и записанных в столь милом для программистов виде обычных программ. Так что теперь MathCAD предоставляет им полную возможность для самовыражения.
1.6. Простейшие приемы работы
В простейшем случае работа с системой MathCAD сводится к подготовке в окне редактирования задания на вычисления и заданию форматов их результатов. Для этого используются различные приемы подготовки блоков; пока мы рассмотрим лишь вычислительные блоки. В дальнейшем дополним эту возможность вводом текстовых комментариев и графиков.
Формульный редактор
Фактически система MathCAD интегрирует в себе три редактора: формульный, текстовый и графический. Для запуска формульного редактора достаточно установить курсор мыши в любом свободном месте окна редактирования и щелкнуть левой клавишей. Появится визир в виде маленького красного крестика. Его можно перемещать клавишами перемещения курсора. Визир указывает место, с которого можно начинать набор формул -- вычислительных блоков.
Наборные панели (палитры) и шаблоны
Подготовка вычислительных блоков облегчается благодаря выводу шаблона при задании того или иного оператора. Для этого в шестой версии MathCAD служат наборные панели с набором шаблонов различных математических символов.
Допустим, мы желаем вычислить определенный интеграл. Для этого вначале надо вывести панель операторов математического анализа, ее пиктограмма в строке инструментов имеет знаки интеграла и производной. Затем следует установить курсор мыши в то место экрана, куда выводится шаблон, и на панели сделать активной пиктограмму с изображением знака определенного интеграла. Все это показано на рис. 1.6.
Рис. 1.6. Задание шаблона определенного интеграла
В составе сложных шаблонов часто встречаются шаблоны для ввода отдельных данных. Они имеют вид небольших черных квадратиков. В шаблоне интеграла их четыре: для ввода верхнего предела интегрирования, для ввода нижнего предела интегрирования, для задания подынтегральной функции и для указания имени переменной, по которой идет интегрирование. На рис. 1.6 шаблон интеграла показан в верхнем левом углу окна редактирования документа.
Для ввода данных можно указать курсором мыши на нужный шаблон данных и щелчком левой ее клавиши ввести их. На рис. 1.7 отражен момент ввода знака квадратного корня для задания подынтегральной функции. Перед этим были заполнены шаблоны верхнего (1) и нижнего (0) пределов интегрирования.
Рис. 1.7. Начало заполнения шаблона интеграла
Для ввода этого знака требуется совершить следующие действия:
· установив курсор мыши в стороне от места ввода, вывести панель набора арифметических операторов;
· подвести курсор мыши под шаблон ввода функции и щелкнуть левой клавишей для фиксации начала ввода;
· активизировать (мышью) кнопку со знаком квадратного корня;
· провести ввод выражения под знаком квадратного корня (при этом возможно редактирование данных с помощью стандартных операций редактирования).
Затем таким же способом надо заполнить остальные шаблоны, т. е. ввести пределы интегрирования и имя переменной, по которой производится интегрирование. Установив знак равенства после полученного выражения, можно сразу увидеть результат вычисления интеграла (см. рис. 1.8).
Рис. 1.8. Пример ввода и вычисления определенного интеграла
Так же выполняются любые другие разовые вычисления, как простые, так и сложные. Разумеется, есть возможность задавать шаблоны для вычислительных блоков и с клавишного пульта, о чем речь пойдет чуть ниже.
При задании сложных вычислений работа системы может быть долгой. Для прерывания работы можно нажать клавишу Esc. MathCAD выведет надпись о прерывании вычислений и небольшое окно с двумя командами: OK -- подтвердить прерывание и Cancel (Отмена) -- отменить прерывание. После прерывания можно возобновить работу, нажав клавишу F9 или сделав активной пиктограмму с изображением жирного знака равенства.
Выделение и редактирование объектов
Важной при редактировании математических выражений является возможность выделения их целиком или в виде отдельных фрагментов. По существу, это означает замену одномерного маркера в виде синей вертикальной черты на маркер двумерный в виде выделяющего часть выражения прямоугольника.
На рис. 1.7 показано выделение шаблона под запись подкоренного выражения. Обычно выделения в выражениях задаются рамкой — четырехугольником из темно-синих отрезков прямых. Рамка имеет характерный срез на правом верхнем углу. Он указывает, что дальнейший набор формулы пойдет вправо.
Выделение фрагментов математических выражений необходимо для изменения шрифтов, которыми набирается выражение. Например, для изменения шрифта в математических формулах достаточно выделить одну букву, установив выделение в виде жирной вертикальной черты сразу после буквы. Затем можно воспользоваться средствами модификации шрифтов (рис. 1.9). Обратите внимание на результат этих операций и сравните размеры символов в документе на рис. 1.8 и 1.9.
Рис. 1.9. Модификация размеров шрифта
Следует отметить, что изменение параметров и типов шрифтов для определенных объектов (например, переменных или констант) действует для них глобально. Так, если увеличить размеры обозначения какой-либо переменной, то все обозначения других переменных тоже будут увеличены. Для локального изменения размеров надо выделить соответствующий блок документа и только затем изменить шрифт.
О конструировании и редактировании математических выражений можно говорить много и долго [14]. Однако в целом это процесс интуитивный и учитывает тонкости конструирования математических выражений. Главное здесь практика! Мы еще вернемся к описанию некоторых правил конструирования математических выражений (формул).
1.7. Загрузка, распечатка и сохранение документа
Наряду с вводом своих простых документов с клавиатуры бывает полезно опробовать в работе ранее созданные (в том числе демонстрационные) документы. Для этого достаточно активизировать вторую пиктограмму панелей инструментов (с изображением открывающейся папки) или воспользоваться командой Open (Открыть) опции File (Файл) главного меню системы. Тогда появится диалоговое окно поиска файла загружаемого документа (см. рис. 1.10).
Рис. 1.10. Диалоговое окно поиска файла документа
Диалоговое окно поиска файлов -- типичное для Windows-приложений. С его помощью можно установить накопитель, просмотреть файловую систему текущего диска, установить каталог и найти файл. Затем, после активизации кнопки OK диалогового окна, документ будет загружен и с ним можно начинать работу, например просматривая его листинг. Обычно по умолчанию работа идет в автоматическом режиме, так что в документе будут представлены не только задание, но и результаты вычислений.
Вид документа в большом окне MathCAD (рис. 1.11) при использовании обычных средств подготовки документов ничем не отличается от вида документа в более ранних версиях систем 2.0--2.50, ориентированных под MS-DOS.
Рис. 1.11. Окно системы MathCAD с загруженным в него документом
На рис. 1.11 сразу же бросается в глаза естественность записи математических выражений. Хотя здесь пока не использованы никакие средства для повышения выразительности документов, их вид можно сделать самым изысканным, если воспользоваться всеми средствами подготовки документов в новых версиях. Новые версии позволяют делать цветовые и иные выделения не только в текстовых блоках, но и в формульных и графических. Это намного повышает наглядность документов.
Среди указанных средств прежде всего следует отметить возможность выделения блоков и текстовых фрагментов. Для выделения текстов надо установить курсор мыши в нужном месте (в начало текста) и нажать ее левую клавишу. Появится выделение начала фрагмента в виде тонкой красной вертикальной черты. Ее можно перемещать клавишами перемещения курсора. Сам блок выделяется черной рамкой.
Затем, нажав и удерживая левую клавишу мыши, можно выделять фрагменты текста, перемещая мышь по горизонтали и по вертикали. Фрагмент может быть отдельным символом, словом, строкой или даже группой строк. На рис. 1.11 так выделено первое слово названия документа. После выделения текста можно менять параметры шрифтов: их тип, вид, размер и цвет.
Большую часть экрана (рис. 1.11) занимает окно, предназначенное для ввода документов, с которыми работает система. Будем называть его окном редактирования (хотя на самом деле и результаты операций выводятся на него).
Документ является одновременно и программой, задающей на специальном входном языке алгоритмы решения нужной задачи, и результатами этого решения, представленными в форме чисел, символов, таблиц или графиков. Благодаря этому документ скорее напоминает текст книги по математическим или инженерно-техническим расчетам, чем текст обычной программы. Столь важное достоинство всех версий системы MathCAD сохранилось в новых версиях лишь с той разницей, что текст, формулы и таблицы теперь выводятся разными цветами, шрифтами и размерами.
1.8. Основы работы с блоками документов
Как уже отмечалось, документ состоит из отдельных блоков. Они могут быть различного типа: тексты (комментарии), формулы, графики, таблицы и т. д. Каждый блок занимает в текущем окне определенную область прямоугольной формы. Для конструирования блоков служат три встроенных в систему редактора: текстовый, формульный и графический.
Для выделения областей блоков можно проделать следующий эксперимент. Поместите курсор мыши (красный крестик при цветном дисплее) в нерабочую часть экрана. Перемещая мышь по диагонали, вы увидите, как на экране пунктирными черными линиями выделяется прямоугольник. Добейтесь, чтобы в него попало несколько объектов -- формул, таблиц, графиков. Все они тут же окажутся обведены прямоугольниками из пунктирных линий (см. рис. 1.12). Эти прямоугольники являются обычно невидимыми границами областей объектов.
Рис. 1.12. Документ с выделенными блоками
Используя быстрые клавиши задания команд вырезки (F3 или Ctrl + X) и вставки (F4 или Ctrl + V), можно перенести выделенные блоки в буфер обмена и поместить их на новое место, указанное курсором мыши. Это дает возможность быстрого наведения порядка с блоками. Рис. 1.13 показывает вид документа после нажатия клавиши F3.
Рис. 1.13. Вид документа, показанного на рис. 1.12, после нажатия клавиши F3
Нетрудно заметить, что выделенные пунктирной линией блоки исчезли. Если нажать клавишу F4 (не меняя положения курсора мыши), исчезнувшие блоки вновь появятся на своем месте, и вид документа будет подобен показанному ранее на рис. 1.12. Зацепив курсором мыши любой из выделенных блоков и нажав ее левую клавишу, можно (удерживая эту клавишу) перетаскивать блоки с одного места на другое.
Расположение блоков имеет принципиально важное значение. Как уже отмечалось, их выполнение происходит справа налево и сверху вниз. Поэтому блоки не должны взаимно перекрываться (хотя небольшое перекрытие не существенно). Указанный порядок исполнения блоков означает, что, например, при построении графика функции или таблицы ее значений вначале должны исполняться блоки, задающие саму функцию и пределы изменения аргумента, а уже затем блок, задающий вывод таблицы или построение графика функции. Все это следствие работы системы в интерпретирующем режиме.
Доступная область окна редактирования по горизонтали превышает видимую на экране. При этом область окна делится длинной линией на две части, левую и правую. Горизонтальными линиями документ делится на страницы.
Можно разместить некоторые вспомогательные вычисления в правой, невидимой, части окна, а в левую, видимую, вынести задание исходных данных и вывод результатов расчетов. Этот прием часто используется в пакетах применения системы, а также в учебно-демонстрационных программах. На рис. 1.14 показан пример подобного решения довольно сложной аэродинамической задачи по построению профиля крыла самолета и линий обтекания его воздушным потоком.
Рис. 1.14. Пример решения аэродинамической задачи (видимая часть решения)
Если, воспользовавшись полосами прокрутки, вывести в текущее окно обычно невидимую часть документа, на экране дисплея будет видна расчетная часть задачи (рис. 1.15). В этом случае она содержит довольно специфические вычисления над данными с применением аппарата вычислений в комплексной форме, поэтому нет смысла объяснять их.
Рис. 1.15. Вычисления в правой части документа представленного на рис. 1.14
Создание документов с невидимой расчетной частью осложняется необходимостью выполнения блоков в строго заданном порядке. Так, при сложных расчетах их результаты могут оказаться далеко внизу видимого текста документа. Заглядывая вперед, упомянем о двух приемах, облегчающих решение этой задачи. Первый -- использование оператора глобального присваивания (знак в виде трех горизонтальных черточек º). В этом случае присваивание может находиться в любой точке документа (например, в его начале или в самом конце). Второй прием -- расположение блоков по вертикали так, чтобы исполняемые в первую очередь блоки были чуть выше тех, которые будут исполняться позже.
Другой любопытный и полезный прием был использован в прежних версиях системы под MS-DOS -- выделение вычисления в невидимой правой части окна надписью /equations. В этом случае все вычисления после их логического вызова выполняются сверху вниз с возвратом к месту их вызова в левой части экрана. Из новой версии этот полезный прием по не совсем понятным мотивам исключен. Возможно, разработчики сочли, что вполне достаточно описанных выше приемов.
Интересно отметить, что с версией MathCAD PLUS 6.0 PRO можно использовать документы, подготовленные в среде ранних версий. При загрузке таких документов система сообщает, что они не из версии 6.0. Документы автоматически транслируются в формат, принятый для версии 6.0. К сожалению, это приводит к двум нежелательным последствием. Во-первых, документ может быть кратковременно не виден в окне редактирования, а во-вторых, блоки могут изменить свое местоположение. Достаточно прогнать документ линейкой прокрутки, и его блоки станут видимыми. Может потребоваться также некоторое редактирование документов -- перемещение блоков мышью, замена шрифтов, введение новых типов выделений и т. д.
В целом же документы ранних версий совместимы с новыми версиями MathCAD. На уровне записи формул и текстов обеспечивается полная совместимость. Это значит, что одинаковые по содержанию документы в разных версиях MathCAD будут иметь одинаковый вид.
1.9. Главное меню системы
Верхняя строка окна системы содержит указание на имя системы или текущего открытого окна. Следующая строка содержит опции главного меню. Перечислим их назначение:
File (Файл) -- работа с файлами, сетью Internet и электронной почтой;
Edit (Правка) -- редактирование документов;
Text (Текст) -- работа с текстовым редактором;
Math (Математика) -- управление процессом вычислений;
Graphics (Графика) -- работа с графическим редактором;
Symbolic (Символика) -- выбор операций символьного процессора;
Window (Окно) -- управление окнами системы;
Books (Книги) -- работа с электронными книгами;
Help (?) -- работа со справочной базой данных о системе.
Здесь и далее в скобках приведены названия опций главного меню, принятые в русскоязычной версии системы [14]. Это позволит владельцам этой системы без каких-либо трудностей пользоваться настоящей книгой.
Каждая опция главного меню может быть сделана активной. Для этого достаточно указать на нее курсором -- стрелкой мыши и нажать ее левую клавишу. Можно также нажать клавишу F10 и использовать клавиши перемещения курсора вправо и влево. Затем выбор фиксируется нажатием клавиши ввода Enter. Еще один быстрый путь входа в нужное подменю — нажатие клавиши Alt и одновременно клавиши с буквой, которая на экране подчеркнута снизу в названии нужной опции главного меню. Для всех опций главного меню это заглавная буква их имени.
Если какая-либо опция главного меню делается активной, она выводит ниспадающее подменю со списком доступных и недоступных (но возможных в дальнейшем) команд. Доступные в данный момент команды даны четким шрифтом, а недоступные -- шрифтом с характерным затенением, но позволяющим все же прочесть название операции. Перемещение по списку подменю и выбор нужной команды производятся аналогично тому, как это описано для главного меню, с той лишь разницей, что при управлении с клавиатуры используются клавиши перемещения курсора по вертикали.
Первая опция меню (квадратик без имени с черточкой) служит для стандартных операций с текущим окном системы, принятых в системе Windows. Если эта опция активна, то появляется подменю со следующими операциями:
Restore (Восстановить) -- восстановить окно приложения из пиктограммы;
Move (Переместить) -- переместить окно приложения;
Size (Размер) -- изменить размер окна приложения;
Minimize (Свернуть) -- свернуть окно в пиктограмму;
Maximize (Развернуть) -- перейти в полноэкранный режим;
Close (Закрыть [Alt + F4]) -- закрыть окно и закончить работу в приложении;
Switch To... (Переключиться в... [Ctrl +Esc ]) -- восстановить окно диспетчера программ;
Next (Следующий документ [Ctrl + F6]) -- перейти к следующему окну.
Не все из этих команд всегда доступны. Названия недоступных команд, как отмечалось, даны нечеткими (затененными) надписями. К примеру, если окно имеет максимальный размер, то команды Move, Size и Maximize недоступны.
Каждое окно документа также имеет подобное меню, инициализируемое квадратиком в левом верхнем углу раскрытого окна. Это меню имеет следующие опции:
Restore (Восстановить) -- восстановить окно документа из пиктограммы;
Move (Переместить) -- переместить окно документа;
Size (Размер) -- изменить размер окна документа;
Minimize (Свернуть) -- свернуть документ в пиктограмму;
Maximize (Развернуть) -- перейти в полноэкранный режим для документа;
Close (Закрыть [Ctrl + F4]) -- закрыть окно и закончить работу с документом;
Next (Следующий документ [Ctrl + F6]) -- активизировать следующий документ.
Система MathCAD может работать с восемью окнами, т. е. одновременно с восемью задачами. Окно каждой задачи образуется после загрузки текста ее документа. В дальнейшем операции с окнами будут описаны более подробно.
1.11. Особенности русскоязычной версии MathCAD
Русификация таких специфических систем, как математические, всегда была довольно спорной. В отличие, например, от текстовых редакторов имена большинство команд, операторов и функций математических систем стандартизированы на международном уровне и задаются на английском языке. Поэтому о сквозной русификации математических систем не может быть и речи.
Попытки перевести их на русский язык часто ведут к явным казусам. Так, при русификации электронных таблиц Microsoft Excel
едва ли удачной находкой можно назвать замену функции SUMM на СУММ или применение таких "исконно русских" имен экономических функций, как БЗ, ВНДОХ, НПЗ или АМГД (попробуйте сами догадаться, что они означают!). В MathCAD используется общепринятый синтаксис команд, операторов и функций, основанный на применении англоязычных имен для операторов и функций и принятый в математической литературе.
Попытки русификации систем MathCAD предпринимались еще в отношении старых версий системы под MS-DOS. Как и следовало ожидать, они оказались явно неудачными из-за невозможности совмещения ввода букв алфавита русского языка с вводом ряда математических спецсимволов, прежде всего греческих букв.
Гораздо успешнее прошла русификацию шестая версия системы MathCAD под Windows. Ýто вполне работоспособный продукт. И обусловлено это именно тем, что русификация носила ограниченный характер. В частности остались англоязычными все математические функции системы.
Русификации были подвергнуты наименования команд в главном меню и в его подменю, сообщения об ошибках, справочная база данных, примеры применения системы и встроенные в систему электронные книги. Это делает возможным и целесообразным применение локализованной версии в системе образования России, где незнание английского языка частью учащихся может заметно затруднить использование англоязычных версий MathCAD.
Впрочем, есть и иное мнение: работа с англоязычными системами способствует изучению английского языка. Пожалуй это не так! Пользователи, не знающие английского языка, просто запоминают неточное "русское" произношение английских слов. Другое дело, что освоить несколько десятков английских слов, с которыми волей не волей придется многократно сталкиваться любому пользователю ПК, не так уж и сложно. И, несомненно, полезно!
На рис. 1.16 представлен вид экрана для русскоязычной версии MathCAD. Нетрудно заметить, что за исключением надписей в меню, выполненных на русском языке, вид экрана остался подобным его виду для оригинальной версии. Учитывая, что большинство англоязычных команд главного меню общеизвестно, можно считать, что русификация их не была главной целью при доработке системы.
Рис.1.16. Вид экрана для русскоязычной версии MathCAD
Целесообразность русификации команд главного меню и подменю не является бесспорной, что уже отмечалось. К примеру, общепринятые команды символьной математики, такие как, Simplify или Factor, после перевода звучат как "Упростить" и "Разложить по степеням", что лишь частично соответствует их смыслу. К тому же утрачивается соответствие написания этих команд в меню и в тексте документа -- там они (при задании операций системы SmartMath) записываются с англоязычными именами.
Здесь важно отметить, что русификация никоим образом не затрагивает сами по себе документы системы MathCAD. Документы с текстовыми комментариями на любых языках позволяют готовить любые версии MathCAD, в том числе англоязычные и русифицированные. Для этого достаточно просто проинсталлировать в Windows наборы шрифтов нужного языка.
Несомненно, главную ценность в русифицированных версиях представляет перевод на русский язык сообщений справочной системы и электронных книг. На рис.1.17 показан вид окна справочной системы с индексным каталогом тем справок. Активизируя кнопки у каждого названия темы, можно вывести подробную справочную информацию о ней. Справочная система и электронные книги занимают большой объем и их перевод на русский язык представляется весьма целесообразным. Однако, справочная система MathCAD (даже русифицированная) не предназначена для систематического знакомства с системой и не заменяет обычных книг.
Рис. 1.17. Индексный каталог справочной системы русифицированной версии MathCAD
К сожалению, не подверглась русификации система орфографического контроля текстовых блоков. Для этого пришлось бы поместить в MathCAD одну из российских систем орфографического контроля. А это потребовало бы лицензирования такого включения и привело бы к удорожанию и без того довольно дорогой системы MathCAD. Поэтому орфографический контроль пока возможен только для англоязычных текстов.
С точки зрения подавляющего большинства пользователей, локализованным версиям MathCAD присущи два серьезных недостатка -- они дороги и имеют изощренную систему защиты. Защита русифицированной версии от копирования выполняется не только паролем (серийным номером), но и установкой электронного ключа в параллельный порт ПК. Он выполнен в виде переходника от разъема этого порта к фишке сигнального кабеля принтера.
Установка электронного ключа рядовым пользователем -- дело рискованное. А к чему приведет потеря электронного ключа, нетрудно догадаться: придется подсчитывать убытки или обращаться к поставщику системы с просьбой о замене ключа, которую он вправе не удовлетворить.
Видимо, из-за этого, а также из-за угрозы судебного разбирательства при копировании локализованных лицензионных версий, что отмечено в их описании, эти версии пока не попали на общедоступные CD-ROM. В то же время оригинальные англоязычные версии системы MathCAD имеются на десятках дешевых CD-ROM и даже свободно передаются по сети Internet. Естественно, в таких случаях эти версии MathCAD поставляются без какой-либо документации. Надо полагать, что данная книга во многом заменяет эту документацию и позволяет пользоваться системами класса MathCAD не только богатым "новым русским", но и большинству рядовых пользователей ПК.
Глава 12. ПАКЕТЫ ПРИМЕНЕНИЙ СИСТЕМЫ MathCAD
В этой главе описаны 10 пакетов применений интегрированных систем MathCAD для автоматизации математических и научно-технических расчетов. Пакеты составлены так, что они пригодны (разумеется, на уровне текстов документов) для любой версии системы MathCAD -- и под Windows, и даже под MS-DOS (версии 2.0--2.50).
Пакеты применений охватывают решения широкого круга практических задач в области математики, физики и электротехники, радиотехники и электроники [20—39] и являются альтернативой фирменным пакетам применений [14], стоимость каждого из которых составляет 95 долл. США. Описанные здесь пакеты поставляются на магнитном диске, прилагаемом к книге.
По отношению к системе MathCAD PLUS 6. 0 PRO пакеты применений выполняют ту же функцию, что и “шпаргалки” (QuickSheet), но примеры вычислений в них иные. Так что описанные в этой части примеры дополняют те, что предоставлены “шпаргалками”. Все примеры относятся к области численных расчетов.
В педагогической среде нередко звучат нарекания, что в системах MathCAD скрыты методы реализации численных расчетов и потому последние не наглядны. Такие нарекания абсурдны, поскольку именно MathCAD позволяет описать алгоритм любого численного метода на естественном математическом языке, не прибегая к таким (скорее программистским, чем математическим) понятиям, как условные переходы, циклы и т. д. (хотя реализация алгоритмов с ними также возможна с помощью аппарата ранжированных переменных).
При подготовке описанных здесь пакетов большое внимание уделялось реализации численных методов типовыми возможностями системы MathCAD, причем даже тех методов, которые реализованы встроенными функциями систем. Например, приведены примеры численного интегрирования и дифференцирования, вычисления специальных функций по рекуррентным формулам, решения дифференциальных уравнений и т. д. Это, во-первых, демонстрирует возможности системы MathCAD в наглядной реализации таких методов, во-вторых, позволяет решать относящиеся к ним задачи с использованием тех версий системы, у которых соответствующих функций нет, а в-третьих, дает заметное ускорение вычислений.
Пакеты применений MathCAD 6.0 имеют свою нумерацию от 1 до 10. Каждый документ пакета соответственно имеет двойную нумерацию. Поскольку документы являются примерами (examples) применения MathCAD их обозначения начинаются с буквы e. Например, документ e2-5 это пятый документ из второго пакета применений. Файлы документов имеют обозначения типа e2-5.mcd. Они размещены на прилагаемой к книге дискете.
Разбор помещенных на дискету пакетов применений позволит читателю существенно углубить свои знания о возможностях систем класса MathCAD и полнее использовать их в своей учебе, на практике и в научном творчестве. Он также позволит заметно уменьшить затраты времени на освоение системы, поскольку избавит вас от необходимости самостоятельного ввода документов. Впрочем, в разумных объемах он отнюдь не бесполезен! Поэтому примеры из предшествующих глав полезно ввести и опробовать самостоятельно.
Пакет 1. ГРАФИЧЕСКИЕ ВОЗМОЖНОСТИ
1.1. Специальные виды графиков
Графические возможности системы MathCAD довольно подробно описаны в главе 6 и в литературе [5--7, 11, 14]. Здесь дается дополнительная информация о графических возможностях системы, полезная для понимания приемов работы с графикой, широко используемых в большинстве описанных далее примеров применения системы MathCAD.
В документе е1.1 представлены некоторые примеры использования графических средств. Здесь рассматривается представление в виде графиков значений элементов векторов и матриц, а также графическое представление функции одной переменной, ее производной и определенного интеграла. Эти графики строятся в прямоугольной (декартовой) системе координат.
Для представления значений элементов вектора можно использовать график функции одной переменной, тогда как представление значений элементов матрицы требует построения такого числа кривых, которое равно числу строк матрицы. Ввиду простоты этих примеров не имеет смысла их подробно описывать – достаточно просто просмотреть. Для графиков интеграла и производной они задаются в виде функций пользователя.
1.2. Графики трех функций
На рис. 12.1 иллюстрируется построение на одном рисунке графиков трех функций: синусоиды sin(x), функции sin(x)/x и квадратичной параболы x^2. Эти функции заданы в первой (после титульной надписи) строке документа e1-2.
Рис. 12.1. Построение графиков трех функций (документ e1-2)
Возможность построения на одном рисунке графиков сразу нескольких функций очень полезна, особенно если необходимо сравнение этих графиков друг с другом. Нужно стремиться к выравниванию максимальных и минимальных значений функций. Например, с этой целью число x в квадрате в третьей функции делится на 100, поэтому при |x|=10 все три функции имеют одинаковое (равное 1) максимальное значение.
Для уменьшения характерной ступенчатости линий графиков необходимо, чтобы число узловых точек было не менее 100. Это и задает пределы и шаг изменения ранжированной переменной x. В нашем примере ее значение меняется от –10 до 10 с шагом 0.1.
MathCAD PLUS 6. 0 предоставляет три возможности выделения линий при
построении графиков нескольких функций: изменение цвета линий, изменение типа линий и пометка узловых точек различными знаками. Различная пометка узловых точек позволяет надежно идентифицировать ту или иную линию графика, тем более, что слева от графика помещены отрезки соответствующих линий с метками. Это особенно важно при распечатке графиков монохромными принтерами, поскольку при этом цветовое выделение отсутствует (хотя цвета выделяются различными градациями серого цвета).
Следует также помнить, что некоторые функции имеют особенности, которые могут исказить вид графика. Например, функция sin(x)/x при x = 0, где ее значение дает вычисляемую неопределенность 0/0 = 1. В нашем случае построение графика этой функции прошло благополучно, так как ранжированная переменная x не приняла точного значения x = 0 в середине графика. Надо, однако, быть готовыми к тому, что такая функция даст резкий провал при x = 0 (его можно наблюдать, задав целочисленные значения x).
1.3. Построение фигур Лиссажу
Для исследования периодических колебаний в электротехнике и радиотехнике широко используется электронный осциллограф. Он содержит электронно-лучевую трубку, электронный луч которой оставляет светящееся пятно на экране. В осциллографической трубке есть две системы пластин для отклонения луча: по оси X (горизонтальная развертка) и по оси Y (вертикальная развертка).
Подав на эти пластины синусоидальные напряжения с разными частотами, можно наблюдать так называемые фигуры Лиссажу. Если кратность частот выдерживается строго, фигуры получаются неподвижными, иначе же они вращаются.
Для моделирования неподвижных фигур Лиссажу с помощью системы MathCAD достаточно задать два вектора x и y, значения элементов которых вычисляются как синусоидальная и косинусоидальная функции. Это и показано на рис. 12.2, иллюстрирующем исполнение документа е1-3.
Рис. 12.2. Построение фигур Лиссажу
Параметры n1 и n2 задают кратность указанных составляющих некоторой условно единичной частоте. В итоге получается характерная плавная замкнутая кривая для сигналов с кратностью 4/5. Изменяя n1 и n2, можно получить множество иных фигур этого класса.
1.4. Построение графика функции в полярной системе координат
Построенная на рис. 12.2 фигура фактически является простейшим графиком в полярной системе координат, в которой положение каждой точки на плоскости задается двумя параметрами: длиной радиус-вектора, идущего из точки начала координат к заданной точке, и углом его относительно оси X.
На рис. 12.3 показано построение графика функции в полярной системе координат, заданное в документе е1-4. Длина радиус-вектора задается параметром r, а угол -- w. Эти параметры пересчитываются в координаты x и y Декартовой системы координат по формулам
x = r(w)cos(w) и y = r(w)sin(w).
Рис. 12.3. Построение графика функции в полярной системе координат
На рис .12.3 надо отметить два аспекта. Первый -- указание косинусной составляющей прямо по оси X и синусной -- по оси Y. Связано это с тем, что обычный способ задания функции соответствует все же Декартовой системе координат. Второй -- задание этих составляющих в параметрической форме, причем величина r, в свою очередь, является функцией угла w. Чтобы получить построение графика одного цикла для заданной фигуры, надо задать изменение w от 0 до 2×p. Это гарантирует, что построенная фигура будет замкнутой.
1.5. Построение графиков параметрически заданных функций
На рис. 12.4 показаны еще два примера построения графиков параметрически заданных функций. Первая функция имеет три сменных параметра a, b и l. Последний из них определяет размер "завитушек" фигур. Вторая функция имеет только два параметра a и l. Текущий угол обозначен как j.
Рис. 12.4. Графики двух функций, заданных параметрически (документ е1-5)
Этот рисунок иллюстрирует разнообразие типов графиков, описываемых параметрически заданными функциями. Изменяя параметры a, b и l, можно наблюдать множество различных видов графиков. Описание типов таких графиков есть в соответствующей литературе [24].
1.6. Построение графика раскручивающейся спирали
Еще один классический пример построения графика функции, заданной параметрически, показан на рис. 12.5. Здесь строится раскручивающаяся спираль.
Рис. 12.5. График раскручивающейся спирали (документ е1-6)
Амплитуды синусной и косинусной составляющих функции в этом случае определяются экспоненциальными составляющими, причем показатель степени экспоненты -- отрицательное число. Это означает, что в действительности спираль скручивается: построение начинается с верхней точки и заканчивается в центре поля графика.
1.7. Имитация спирали-галактики
Как известно, во Вселенной скопления звезд (галактики) и пылевые облака нередко также образуют спиралевидные фигуры. Рис. 12.6 иллюстрирует простейший прием описания такого скопления. В центре облака точек происходит их сгущение, после чего наблюдается спиралеобразное разбегание точек.
Рис. 12.6. График раскручивающейся спирали-галактики (документ е1-7)
Здесь также спираль фактически закручивается. В отличие от предыдущего примера, к числовым значениям элементов векторов X
и Y присоединяется случайная компонента, создаваемая функцией генерации случайных чисел rnd(r). Кроме того, при задании формата графика указывается построение его не сплошной линией, а точками. Это и создает картину случайного скопления точек-"звезд", переходящего в спираль.
Такая модель спиралеобразной галактики не имеет ничего общего даже с элементарной моделью галактики, учитывающей определенные законы взаимодействия отдельных объектов -- звезд. Тут дана просто математическая абстракция, пригодная для целей иллюстрации. Число точек здесь довольно велико, так что построение занимает много времени (около десяти секунд) даже на ПК класса 386/486.
1.8. Построение многолучевой звезды
Графики в полярной системе координат фактически строятся в Декартовой системе -- путем преобразования полярных координат в Декартовые. Положение точки в полярной системе координат (т. е. длину ее радиус- вектора r и его угол j) можно охарактеризовать комплексным числом
i×j
z = r × e или z = r × cos(j) + i × r × sin(j) = x + i × y.
Таким образом, переход из полярной системы координат в Декартовую происходит автоматически, если для каждой точки z
по горизонтальной оси откладывать ее действительную часть, а по вертикальной оси -- мнимую. На этом основано построение графика многолучевой звезды (см. рис. 12.7).
Рис. 12.7. Построение графика многолучевой звезды (документ е1-8)
Обратите внимание, что для расчета угла j (он явно не обозначен) используется функция floor. Параметр N задает число лучей звезды. При построении графика смежные узловые точки располагаются далеко одна от другой и соединяются друг с другом отрезками прямых. Их геометрическое месторасположение -- окружность. Нужно задать построение графика таким типом линий, который соединяет узловые точки.
1.9. Конформные преобразования на комплексной плоскости
Многие фигуры могут быть построены на комплексной плоскости указанием их узловых точек с последующим соединением этих точек отрезками прямых. Например, на рис. 12.8 слева подобным образом построена фигура квадрата. Координаты углов квадрата заданы комплексными значениями вектора из четырех чисел z.
Рис. 12.8. Построение квадрата до и после его конформных преобразований на комплексной плоскости (документ е1-9)
Как известно [24], узловые точки таких фигур могут быть подвергнуты так называемым конформным преобразованиям, проводимым на комплексной плоскости. Они ведут к изменению местоположения точек, что, в свою очередь, ведет к изменению вида фигур. Это и иллюстрирует рис. 12.8, на котором в итоге таких преобразований фигура квадрата превращается в фигуру ромба (см. фигуру справа). Описание самих конформных преобразований выходит за рамки данной книги.
1.10. Построение фрактальных кривых
В результате исследования взаимодействующих (например, взаимно притягивающихся по определенным правилам) объектов были разработаны модели их поведения. Они описывают группировку различных объектов, например снежинок, ледяных узоров на стекле, пылевых облаков, кристаллических образований и т. д. Не вдаваясь в довольно непростые тонкости поведения этих моделей, уже описанные довольно подробно и занимательно в [25], просто приведем пример построения так называемых фрактальных кривых второго порядка, заимствованный из одного демонстрационного примера системы MathCAD (см. рис. 12.9).
Рис. 12.9. Построение фрактальных кривых второго порядка (начало документа е1-10)
Не правда ли, причудливость форм этих объектов способна навести на философские размышления о таинствах окружающего нас мира? Изменяя параметр l, можно получить и другие кривые. Многие из них, возможно, представляют интерес для художников.
1.11. Построение сферы
В этом и в ряде последующих примеров приведены построения графиков 3D-поверхностей для систем MathCAD PLUS 6.0/PLUS 6.0 PRO. Они иллюстрируют типовые возможности трехмерной графики этих систем.
На рис. 12.10 показано построение в трехмерном пространстве сферы. Сфера строится из каркаса, причем число деления ее по вертикали N задается в начале построения. Затем вычисляются массивы опорных точек каркаса, которые представлены матрицами X, Y
и Z.
Рис. 12.10. Построение сферы (документ е1-11)
Используя различные форматы 3D-графиков, можно выполнить рисунок сферы в различных стилях, в том числе с цветной или черно-белой окраской. Однако в таком случае каркасное построение с применением алгоритма удаления невидимых линий дает, пожалуй, наиболее наглядное представление о характере этой простой объемной фигуры.
1.12. Построение фигуры вращением линии вокруг оси X
Интересные объемные фигуры можно получить, вращая некоторую кривую вокруг той или иной оси. При этом необходимо обеспечить пересчет координат всех узловых точек фигуры по известным из геометрии формулам. На рис. 12.11 показано построение такой фигуры вращением заданной функцией f(x) линии вокруг оси X.
Рис. 12.11. Построение фигуры вращением линии вокруг оси X (документ е1-12)
В документе на рис. 12.11 приведены все необходимые формулы для пересчета координат узловых точек фигуры при ее вращении. Даны также графики исходной кривой (слева внизу) и фигуры, полученной ее вращением (справа внизу). Фигура напоминает рюмку, лежащую на плоскости. Ее можно оживить раскраской, выбрав нужный формат 3D-графика.
1.13. Построение фигуры вращением линии вокруг оси Y
Так же можно построить фигуру, полученную вращением исходной кривой вокруг оси Y. Это демонстрирует документ e1.13, показанный на рис. 12.12.
Рис. 12.12. Построение фигуры вращением линии вокруг оси Y
Чтобы показать возможности задания различного стиля рисунков, в нашем случае фигура построена с удалением линий каркаса и вводом монохромной функциональной окраски. Нетрудно заметить, что это делает фигуру очень наглядной.
1.14. Построение графика вида 3D Scatter Plot
3D Scatter Plot -- вид трехмерных графиков, особенно удобный для представления пространственного расположения множества мелких объектов, условно называемых точками. На рис. 12.13 показано применение этого графика для построения N=100 точек, лежащих на пространственной спирали, напоминающей растянутую пружину.
Рис. 12.13. Построение графика вида 3D Scatter Plot для точек пространственной спирали
Для каждой точки в этом случае необходимо располагать тремя координатами X, Y
и Z. Их совокупность образует три одноименных вектора. Ввиду простоты алгоритма построения в более подробном его описании нет необходимости. Заметим лишь, что число точек N можно менять.
1.15. Построение графика поля градиента функции
Еще один особый вид графиков -- графики полей (например, магнитного, электростатического, гравитационного и т. д.). Новые версии MathCAD обладают возможностью построения таких графиков, что иллюстрирует рис. 12.14.
Рис. 12.14. Построение графика поля градиента функции (документ е1-15)
Алгоритм построения графика поля с вычислением градиента достаточно прост (см. рис. 12.14). График поля строится короткими стрелками, направление которых указывает на рост градиента. Нужно тщательно подбирать масштабы графика, чтобы он был нагляден; если стрелок мало, могут быть пропущены участки быстрого изменения поля, а если их много, то часть стрелок из-за наложения друг на друга смазывается и наглядность графика также нарушается.
1.16. Построение пространственной фигуры -- узлов, образованных толстыми "канатами"
О больших возможностях графики MathCAD PLUS 6.0 PRO свидетельствует пример, приведенный на рис.12.15. Он же иллюстрирует применение типовых матричных функций для описания и пространственного преобразования сложной трехмерной фигуры -- узлов, образованных толстыми “канатами”.
Рис. 12.15. Построение фигуры -- узлов, образованных толстыми "канатами" (начало документа е1-16)
Сама фигура, построенная по алгоритму, представленному на рис. 12.15, дана на рис. 12.16.
Рис. 12.16. Вид фигуры (конец документа е1-16)
Изменяя параметр K, можно получить множество других объемных фигур. Функциональная окраска (в нашем случае черно-белая с полутонами) придает фигуре весьма реалистичный вид. Этот пример наглядно показывает, что по возможностям графики система MathCAD PLUS 6.0 PRO уже приближается к системе Mathematica 2.2.2, лидеру среди систем символьной математики для персональных компьютеров.
Пакет 2. ПРОСТЕЙШИЕ ФОРМУЛЬНЫЕ ВЫЧИСЛЕНИЯ
2.1. Решения треугольников
Система MathCAD идеально приспособлена для расчетов по математическим формулам. Такие расчеты весьма наглядны и естественны, ими можно пользоваться практически при любых формулах. Это позволяет создавать комплекты документов для расчетов, не только заменяющие справочные материалы, но и содержащие "живые" примеры этих расчетов. Достаточно вместо содержащихся в примерах исходных данных подставить свои, как будет тут же получен новый результат.
Документ е2- 1 иллюстрирует решение довольно распространенной геометрической задачи -- вычисление по заданным параметрам треугольников их недостающих параметров. В документе представлены все пять возможных вариантов решения треугольников.
2.2. Вычисления по формулам двумерной геометрии
Большинство формул двумерной геометрии, описывающих параметры
объектов на плоскости, просты, и вычисления по ним в среде MathCAD элементарны. Тем не менее в пакете 2 представлен документ е2-2, позволяющий провести расчеты по наиболее известным и применяемым формулам двумерной геометрии.
Полезно обратить внимание на рисунки в центре документа, которые иллюстрируют преобразование Декартовых координат точек в полярные. Эти рисунки перенесены в текст документа из электронного справочника системы MathCAD. Ими придется пожертвовать, если документ используется для ранних версий системы, например 2.01, не имеющих электронного справочника и средств импорта графических файлов из других систем.
2.3. Вычисления по формулам трехмерной геометрии
Сказанное о геометрических вычислениях выше справедливо и для
трехмерной геометрии, хотя ее формулы могут быть несколько сложнее, чем формулы двумерной геометрии. В документе е2-3 представлены наиболее распространенные формулы трехмерной геометрии и даны примеры вычислений по ним.
Для сокращения длины документа в него не включены поясняющие рисунки (комментарии к формулам достаточно очевидны). При желании документ можно дополнить рисунками из электронного справочника, в котором есть и дополнительные примеры расчетов.
2.4. Финансово-экономические расчеты со сложными процентами
В наше время перехода к рыночным отношениям финансово-экономические расчеты могут интересовать многих читателей настоящей книги. MathCAD не содержит специальных функций для проведения финансово-экономических расчетов. Однако все они легко выполняются встроенными в систему средствами.
Документ е2- 4 иллюстрирует наиболее распространенные расчеты с единичным вкладом, которые основаны на применении сложных процентов, и их не так давно (в период государственной монополии на банковские расчеты и стабильных процентов годовых) можно было использовать для оценки финансовой ситуации с нашими вкладами на сберкнижках.
Сейчас, когда процент годовых постоянно меняется, такие расчеты способны вызвать лишь ностальгию по былым стабильным временам. Будем, однако, надеяться, что они окажутся вновь полезными для нас в недалеком будущем. Разумеется, вы можете подставить в них те параметры, которые соответствуют текущему положению дел в нашей рыночной экономике.
2.5. Финансовые операции с регулярными вкладами
Если ваша заработная плата превышает прожиточный минимум, простой житейский опыт подсказывает, что лучше не копить деньги "в чулке", а периодически (N раз в год) относить их в сбербанк. Тогда по этим деньгам будут быстрее набегать проценты.
Документ е2-5 показывает возможные ситуации при операциях с ежегодными регулярными вкладами. При таких операциях, разумеется, не имеет значения, какие деньги вы вкладываете (рубли, марки или доллары). Главное, чтобы это были какие-то одни денежные единицы.
2.6. Финансовые операции с начальным и регулярными вкладами
Если вы имели возможность внести некоторый начальный вклад и затем намерены регулярно пополнять его ежегодно N
раз, расчеты придется вести по несколько иным формулам. Они даны в документе е2-6.
Здесь особый интерес вызывает последний пример -- вычисление процента годовых. В странах со стабильной экономикой можно, вычислив этот процент, выбрать банк, удовлетворяющий требованиям клиента. К сожалению, еще раз надо подчеркнуть, что такие расчеты носят сугубо познавательный характер.
2.7. Операции с комплексными числами
Далее мы неоднократно будем встречаться с комплексными числами вида
z = Re(z)
+ Im(z) × i = a + b × i,
где i
-- мнимая единица (корень квадратный из -1). В документе е2- 7 можно найти примеры работы с комплексными числами.
Обратите внимание на то, что все операции (включая вычисления функций) с комплексными числами выполняются, как с обычными. Надо лишь перед началом операций задать значение мнимой единицы i (или j). Результатом операции является также комплексное число, причем функция Re(z)
возвращает действительную часть комплексного z, а Im(z) -- мнимую. Соответственно оператор |z| вычисляет модуль, а функция arg(z) -- аргумент (фазу) комплексного числа.
В документе е2-7 приведены два достаточно сложных (для их реализации на обычных языках программирования) примера применения комплексных операций -- решение системы линейных уравнений с комплексными коэффициентами и вычисление комплексного кругового интеграла. Эти примеры говорят о возможности применения вычислений с комплексными числами для решения серьезных математических и прикладных задач.
Пакет 3. РЕАЛИЗАЦИЯ НЕКОТОРЫХ ЧИСЛЕННЫХ МЕТОДОВ
3.1. Быстрые операции с полиномами-векторами
В математических расчетах широко применяются степенные многочлены -- полиномы вида
P(x) = an × xn + an-1 × xn-1 + ... + a1 × x1 + a0 .
Ценность полиномов заключается в том, что они могут достаточно точно аппроксимировать многие функции (особенно непрерывные) единообразным способом. При этом легко аналитически вычислять производные полиномов и интегралы с ними.
Коэффициенты полинома удобно задать как элементы вектора a. Тогда их запись (как элементов вектора) совпадает с общепринятой. При этом помимо своих коэффициентов полином характеризуется порядком n. В документе е3-1 представлены задание полинома P(x) и примеры выполнения ряда операций с полиномом: вычисление значений полинома по заданному аргументу x, вычисление производной полинома P'(x) и определенного интеграла с полиномом P(x)
в виде подынтегральной функции.
Для вычисления производной и интеграла используются аналитические выражения, что заметно уменьшает время вычислений и позволяет проводить их с предельно малой погрешностью. Все отмеченные вычисления оформлены в виде функций пользователя, это позволяет использовать эти функции в приложениях, связанных с применением полиномов.
3.2. Вычисление ортогональных полиномов
В математических расчетах широко применяются ортогональные полиномы Чебышева T(n, x) и U(n, x), Лежандра P(n, x), Лагерра L(n, x) и Эрмита H(n, x). Здесь n -- степень полинома, а x
-- аргумент. Вид полинома зависит от его типа и степени n. Однако вычислять значения ортогональных полиномов для каждой конкретной степени в большинстве случаев нецелесообразно.
Наиболее удобно вычислять полиномы — за исключением T(n, x), имеющих простое аналитическое представление, — параллельно с вычислением их коэффициентов по известным рекуррентным формулам, приведенным в [14]. Это и реализовано в документе е3-2.
Попутным результатом вычислений, представленных в документе е3-2, является
получение векторов значений полиномов для заданного x
при степени полинома от 0 до n. Рекуррентные формулы в этом случае не оформлены в виде функций пользователя, поскольку подобную возможность система MathCAD без использования средств программирования не предоставляет.
3.3. Быстрое дифференцирование табличных данных
Система MathCAD содержит оператор для выполнения численного дифференцирования для аналитически заданных функций. Однако часто функция задана рядом табличных значений и нужно найти значение ее производной для любого значения x, обычно лежащего между узловыми точками или совпадающего с абсциссой одного из узлов. Таким образом, необходимо наряду с дифференцированием выполнять функции интерполяции.
Эта задача легко решается при использовании известных формул численного дифференцирования с интерполяцией [26--28]. Они определены в документе, реализующем такие вычисления с применением формул численного дифференцирования по трем, четырем и пяти узловым точкам.
В конце этого документа показано вычисление производной с помощью оператора вычисления производной системы MathCAD. Это позволяет сравнить результаты вычисления производной различными методами. К примеру, вычисление производной по формуле численного дифференцирования по пяти точкам дает шесть верных знаков результата после десятичной точки. Это вполне приемлемо для практических вычислений. Формулы для меньшего числа узлов дают несколько меньшую точность. В целом вычисление производной по указанным формулам выполняется в несколько раз быстрее, чем по встроенному оператору дифференцирования -- за счет отказа от контроля погрешности вычислений и упрощения их алгоритма.
3.4. Быстрое дифференцирование аналитических функций
Оператор численного дифференцирования системы MathCAD выполняет дифференцирование по довольно сложному алгоритму, обеспечивающему вычисления производной с заданной погрешностью TOL. При этом происходит переход от формул для трех узлов к формулам для пяти узлов с изменением шага h для обеспечения заданной погрешности, что, естественно, приводит к большему времени вычислений.
Между тем для практических целей вполне достаточна погрешность вычислений в сотые или тысячные доли процента, что достигается при использовании формул численного дифференцирования для пяти узлов. В документе е3-4 дано задание трех функций пользователя, реализующих вычисления трех первых производных аналитически заданной функции y(x) по формулам численного дифференцирования для пяти узлов.
Можно заметить, что погрешность вычислений возрастает примерно на порядок с увеличением на единицу порядка производной. В документе е3-4 дано также построение графика заданной функции и трех ее производных. Вы можете попытаться построить графики производных с помощью оператора вычисления производной системы MathCAD и убедиться, что в этом случае построение графиков заняло гораздо больше времени при практически идентичных результатах. Таким образом, вычисление производных по фиксированным формулам обеспечивает сокращение времени вычислений. Оно также позволяет оценить приемлемость таких формул для каждого конкретного случая.
3.5. Интегрирование таблично заданных функций
Часто возникает необходимость в вычислении определенного интеграла для таблично заданной функции. Тогда прямое применение встроенного в систему оператора вычисления интеграла оказывается невозможным, так как он предполагает задание подынтегральной функции в аналитическом виде.
Документ е3-5 иллюстрирует четыре способа вычисления определенного интеграла при табличном задании подынтегральной функции. Первые два способа (методом трапеций и Симпсона) используют довольно хорошо известные формулы интегрирования табличных данных. Два других способа ориентированы на использование встроенного оператора вычисления интеграла. При этом таблично заданная функция интерполируется линейной зависимостью или набором сплайновых функций (полиномов третьей степени).
В качестве исходных данных взяты ординаты квадратичной параболы, что позволяет вычислить интеграл без этих ухищрений. Такое вычисление представлено для контроля в конце документа. Нетрудно заметить, что лишь интегрирование методом Симпсона и интегрирование со сплайн-интерполяцией дают полное совпадение с прямым интегрированием (не стоит забывать, что установленный формат цифровых данных выводит результат только с тремя значащими цифрами после десятичной точки).
3.6. Быстрое численное интегрирование аналитически заданной функции
Для ускорения вычислений определенных интегралов с аналитически заданной подынтегральной функцией также можно отказаться от сложного адаптивного алгоритма интегрирования, реализованного имеющимся в MathCAD оператором интегрирования. Вместо него можно воспользоваться одной из многоточечных прямых формул интегрирования, например Ньютона — Котесса, Гаусса или Уэддля.
Документ е3-6 показывает вычисление интеграла с применением двух шеститочечных формул -- Уэддля и Ньютона — Котесса. Обе формулы довольно просты и дают малую погрешность. Отрезок интегрирования [a, b] при их применении делится на равные отрезки с шириной h.
Использованные в этом документе формулы позволяют вычислять значения интеграла с точностью до 5--6 знаков после десятичной точки. При этом скорость вычислений возрастает в несколько раз по сравнению со скоростью вычисления интеграла по встроенному в систему MathCAD алгоритму с аналогичной точностью. Если функция имеет особенности, они не должны попадать на узловые точки. Вообще говоря, лучше применять такой метод интегрирования для достаточно гладких функций без особенностей.
3.7. Анализ сложной функции
Одна из самых распространенных математических задач, встречающихся при использовании математических средств, -- анализ сложных функций. Под анализом сложной функции одной действительной переменной F(x)
обычно подразумевается построение ее графика, грубая оценка по нему формы кривой F(x) и особенностей функции, уточнение значений корней и экстремумов функции. Все это иллюстрирует документ е3-7.
Выбранная для анализа функция в заданном отрезке изменения аргумента x [-10, 10] имеет пять корней и четыре экстремума. Построение графика функции позволяет грубо определить координаты точек функции, в которых наблюдаются эти особенности.
С помощью функции root можно последовательно уточнить значение каждого корня, т. е. значения x, при котором F(x) обращается в 0. Для приведенной в документе функции это придется повторить пять раз (по числу корней), каждый раз указывая начальное значение x, близкое к искомому. Для этого и нужна грубая оценка корней по графику.
Далее с помощью функции minerr
уточняются координаты точек для главного максимума функции и двух минимумов. В этом случае необходимо также указывать начальное значение x, достаточно близкое к искомому. Кроме того, надо задать примерное равенство F(x) = Fi, где Fi -- заранее недостижимое значение F(x). Оно должно превышать значение функции в точке максимума при поиске максимума и быть меньше значения функции в точке минимума при поиске минимума.
Для определения того, к какому классу ( максимуму или минимуму) относится найденный экстремум, рекомендуется вычислить значение F(x)
в трех точках: в точке экстремума и в двух близких точках по обе стороны от значения x в точке экстремума. Если эти значения меньше экстремального, значит, экстремум есть максимум, иначе же он минимум.
3.8. Раскройка ящика из железного листа
Полезность анализа функции можно пояснить примером, представляющим практическую ценность для садовода или строителя собственной баньки. Пусть вы решили скроить ящик для воды или продуктов из железного листа прямоугольной формы с шириной W и длиной L. Ящик создается отгибом краев листа на расстояние X.
Документ е3-8 поясняет решение столь актуальной задачи. На нем представлена формула для объема ящика V(X) и построена кривая функции F(X) = V(X) – V0, где V0 -- заданный объем ящика. Корни этой функции удовлетворяют решению следующей задачи: нахождение значений X для получения ящика заданного объема.
Вид функции F(X) показывает, что теоретически возможны три решения этой задачи. Все они и найдены с помощью функции root с подсказкой начального (уточняемого решением) значения X. Нетрудно понять, что действительно возможны два решения: ящик получается либо плоский с большой площадью дна и малой высотой, либо глубокий с малой площадью дна и большой высотой. Третье решение оказывается физически нереальным, поскольку ширина отгиба X
оказывается большей, чем половина ширины листа.
Если важно сэкономить материал, можно найти иное решение задачи -- определить ширину отгиба для получения ящика с максимальным объемом. Этот вариант решения также представлен в документе е3-8. Тут используется функция minerr в составе вычислительного блока, открываемого словом Given. В этом блоке задается система нелинейных уравнений в виде функции V(X), заведомо невыполнимого условия V(X)=100 и выражения XM = minerr(X). Перед началом решения задается начальное значение X=1. Функция minerr(X) ищет значение X, в максимальной степени удовлетворяющее условию получения заведомо недостижимо большого объема V=100.
Самому создателю ящика, разумеется, важно, в каких единицах заданы размеры листа (скажем, в метрах или дюймах). Однако на решение задачи это не влияет. К примеру, если размеры заданы в метрах, объем получится в кубических метрах и т. д.
3.9. Поиск глобального максимума методом Монте-Карло
Для многоэкстремальных функций часто требуется сразу вычислить значение глобального максимума или минимума. При этом, как правило, предполагается, что значение x для него неизвестно даже приблизительно, а анализ (или даже построение) графика нежелателен. Документ е3-9 показывает возможное решение такой задачи с применением метода Монте-Карло (случайного поиска).
В начале этого документа задана многоэкстремальная функция. График ее (приведенный исключительно ради наглядности) показывает, что функция действительно имеет ряд экстремумов -- как максимумов, так и минимумов. Глобальный максимум лежит приблизительно в отрезке изменения X от 1 до 2.
Далее в этом документе дана попытка вычисления максимума с помощью функции minerr при начальном значении X = 1. Эта попытка оказалась неудачной: вместо глобального максимума обнаружен локальный максимум, тут не представляющий интереса.
Метод Монте-Карло (заимствованный из правил карточной игры) означает просто многократное вычисление F(X) для случайных значений X, лежащих в отрезке от 0 до 5. Такие значения создает функция rnd(5) при ее многократном применении. Полученные значения F(X) каждый раз сравниваются друг с другом, причем, если новое значение максимально, запоминается значение Xo и сравнение идет со значением F(Xo). После N таких вычислений будет получено значение Xo, достаточно близкое к искомому. Затем уточнение X
с помощью функции minerr позволяет найти положение глобального максимума.
Этот метод относится к классу статистических методов, то есть существует конечная вероятность того, что решение будет неточным. Это возможно при малом начальном числе случайных испытаний N, поскольку (в силу случайности значений X) существует вероятность, что ни одно из значений X не попадет в область глобального максимума. Однако вероятность этого быстро уменьшается с ростом N. Здесь ситуация схожа со стрельбой по заданной мишени: известно, что при большом числе выстрелов, даже с учетом случайных отклонений пули или снаряда от точной траектории, мишень рано или поздно будет поражена.
Разумеется, в нашем иллюстрирующем метод Монте- Карло примере можно было бы поступить проще: задать более точно значение X и вычислить максимум с помощью функции minerr. Однако, особенно если рассматривается функция многих переменных, решение методом Монте-Карло может оказаться весьма полезным. Хотя бы потому, что тут не всегда возможно построение графика функции, и еще потому, что в таком случае метод Монте-Карло способен привести к заметному сокращению времени вычислений.
Этот метод часто используется и для приближенного интегрирования. Например, он может вычислять кратные интегралы с довольно каверзными подынтегральными функциями, при которых встроенный оператор вычисления определенных интегралов оказывается бесполезным.
3.10. Поиск минимума функции Розенброка
С помощью функции minerr возможен поиск экстремума и функций ряда переменных. Примером такой функции является функция Розенброка. Это типичная тестовая функция двух переменных, обычно применяемая для тестирования программ минимизации функций ряда переменных. Функция имеет очевидные значения x = y = 1 в точке минимума. Графическое представление функции напоминает "овраг", что затрудняет поиск минимума рядом простых методов.
На рис. 12.17 показан поиск минимума функции Розенброка с применением функции minerr. Поиск задается вычислительным блоком, открываемым словом Given. Фактически решается система уравнений. Два уравнения после слова Given приближенно задают условия минимума, третье уравнение (с функцией minerr) отыскивает решение, в максимальной степени удовлетворяющее заданным условиям минимума.
Рис. 12.17 Поиск минимума функции Розенброка (документ е3-10)
Следует отметить, что тут заведомо известно, что функция имеет минимум. Если бы этого не было, пришлось бы ввести условия на значения вторых производных функции по каждой переменной.
3.11. Вычисление собственных значений квадратных матриц и принадлежащих им векторов
В ряде областей науки и техники (например, в механике и электротехнике) важно вычисление собственных значений квадратных матриц M и принадлежащих им векторов. В системе MathCAD даже в версии 3.0 для этого служат встроенные функции eigenvals(M)
и eigenvec(M, z). Однако при их применении алгоритм вычисления собственных значений и принадлежащих им векторов скрыт от пользователя. Кроме того, эти функции отсутствуют в популярных ранних версиях системы.
По указанным причинам в документе е3-11 представлена реализация таких вычислений без применения функций eigenvals и eigenvec. Помимо вычисления собственных значений и принадлежащих им векторов в документе представлено составление характеристического полинома матрицы и построение его графика.
3.12. Вычисление специальных функций различными методами
Система MathCAD предоставляет удобные средства для вычисления различных специальных математических функций. Несколько позже мы рассмотрим наиболее удобное из этих средств -- вычисление функций по их интегральному представлению. А пока отметим применение других методов, представленное документом е3-12.
В редких случаях специальные функции могут быть представлены через элементарные функции, причем имеющее, как правило, частный характер (функции потому и называются специальными, что в общем случае не имеют представления через элементарные функции). К примеру, интегральная показательная функция En(x) для n = 0
имеет представление через экспоненциальную функцию; оно показано в начале документа е3-12.
Функция En(x)
для n = 1 может быть вычислена по ее представлению в виде бесконечного ряда. Однако, если точность вычислений ограничена разумными пределами, ряд можно сделать конечным. В документе е3-12 для вычисления этой функции используется ряд из десяти членов.
По значениям E0(x)
и E1(x)
можно вычислить En(x)
с помощью довольно простых рекуррентных формул. Объединение этих трех методов в документе е3-12 позволяет вычислять ряд интегральных показательных функций от нулевого до заданного порядка n.
Еще один из методов вычисления специальных функций основан на применении той или иной (чаще всего полиномиальной) аппроксимации функции. Нередко такая аппроксимация комбинируется с вычислением какой-либо вспомогательной функции. В конце документа е3-12 представлено вычисление двух важных функций статистики — Z(x) и P(x), характеризующих вероятность при нормальном распределении и значение интеграла вероятности. Функция Z(x)
определена аналитически и является вспомогательной для вычисления функции P(x) на базе ее полиномиальной аппроксимации.
Описанные методы вычислений применимы и ко многим другим специальным функциям. Необходимые представления для этих функций можно найти в справочной литературе [1, 27, 28].
3.13. Вычисление специальных функций с помощью интегрирования
Большинство специальных математических функций имеет интегральное представление. Если оно сводится к вычислению определенного интеграла с конечными пределами и подынтегральной функцией без особенностей (т. е. к вычислению несобственного интеграла), идеальным способом вычисления функции является ее задание в виде функции пользователя с интегральным представлением вычисляемой специальной функции.
Рис. 12.18 иллюстрирует такие вычисления на примере довольно распространенных специальных функций: интегральных гамма-синуса и гамма-косинуса, интегралов Френеля, полных эллиптических интегралов, неполной гамма-функции и дилогарифма. Видна лишь начальная часть документа е3-13, к которому относится этот рисунок.
Рис. 12.18. Вычисление специальных функций по их интегральному представлению (начало документа е3-13)
Если интегральное представление функции выражается несобственным интегралом (например, с бесконечным верхним или нижним пределом интегрирования), вычисление интеграла заметно усложняется и требует контроля правомерности используемых приближений (например, замены бесконечного предела интегрирования конечным пределом). В таких случаях, как правило, более предпочтительны иные методы вычисления специальных функций, описанные в документе е3-12.
Пакет 4. ИНТЕРПОЛЯЦИЯ, АППРОКСИМАЦИЯ И СГЛАЖИВАНИЕ ФУНКЦИЙ
4.1. Интерполяция по общей формуле Лагранжа
В этом пакете рассматриваются функции одной переменной вида y(x), как правило, заданные в табличном виде, т. е. рядом значений x и соответствующих им значений y. Именно так обычно задаются данные эксперимента, получаемые на различных физических или электронных измерительных установках.
Важной задачей математической обработки подобных данных является и их представление в виде некоторой математической зависимости, допускающей проведение над нею обычных математических операций, например вычисление y(x) при x, не совпадающих с исходными (узловыми) точками, интегрирование или дифференцирование функций, проведение их статистической обработки (сглаживания или фильтрации) и т. д.
Одной из самых распространенных задач такого рода является интерполяция таблично заданных функций, т. е. вычисление их значений в промежутках между узловыми точками. В математической литературе общепринято представление многих специальных функций в виде математических таблиц [14], ориентированных на интерполяцию по заданному числу узловых точек (обычно от 2 до 6).
В систему MathCAD встроены функции линейной и сплайн-интерполяции, при которых отдельно на каждом промежутке функция представляется отрезком прямой или кубическим многочленом. Последний вычисляется так, чтобы обеспечить стыковку в узловых точках как значений функции, так и ее первых двух производных (что и дает необходимую гладкость графика функции).
Эти мощные средства интерполяции имеют, однако, существенный недостаток: параметры интерполирующей функции различны на различных участках интерполяции. Другими словами, такая интерполяция не может быть сведена к одной интерполирующей формуле, что затрудняет интерполяцию математических таблиц, за исключением случая линейной интерполяции, дающей довольно низкую точность.
В пакете 4 представлен документ е4-1, задающий обобщенную формулу интерполяции методом Лагранжа. Эта формула синтезирует полином Лагранжа, используя два вектора: с координатами xi и yi узловых точек. Преимущества такого подхода в том, что число узловых точек и их расположение может быть любым (в том числе неравномерным), а для интерполяции используется единая интерполирующая формула f(x), к сожалению, довольно сложная.
При интерполяции полиномом Лагранжа степень полинома n однозначно связана с числом узловых точек. Она на единицу меньше этого числа. Значения ординат интерполирующей функции в узловых точках совпадают с ординатами узловых точек. Поэтому график интерполирующей функции f(x)
точно проходит через узловые точки. К сожалению, при высокой степени полинома (более 5--6) погрешность вычислений его значений заметно возрастает, поэтому выбор n выше 6 на практике нецелесообразен. А это означает, что функция y(x)
должна быть представлена небольшим числом достаточно точных значений. К недостаткам интерполяции по обобщенной формуле Лагранжа относится и довольно большое время вычислений, поскольку формула интерполяции достаточно сложна.
4.2. Интерполяция табличных данных по формулам Лагранжа
По указанным выше причинам для интерполяции таблиц более удобно использовать интерполяцию по прямым формулам Лагранжа, прямо представленным в виде многочлена с заранее вычисленными (по обобщенной формуле) коэффициентами. Этот вид интерполяции основан на применении полинома Лагранжа, коэффициенты которого выбираются таким образом, чтобы его значения в узловых точках совпадали со значениями y(x).
Наиболее просто интерполяция осуществляется при равномерном расположении узлов. Тогда один из узлов считается центральным, а приращение x от узла к узлу задается постоянным шагом интерполяции h. Прямые формулы интерполяции задаются как функции ординат исходной зависимости и параметра p = (x – xc)/h, где x -- заданное значение x, для которого вычисляется y(x), а xc -- абсцисса центрального узла.
В документе е4-2 приведена сводка функций пользователя вида fn(p, y), где p -- параметр смещения относительно центрального узла (см. выше), y -- вектор (i + 1) значений интерполируемой функции и i -- порядок интерполирующего полинома Лагранжа (в нашем случае от 1 для линейной интерполяции и до 5 при интерполяции полиномом пятой степени). Формулы интерполяции соответствуют приведенным в [28].
Документ е4- 2 является полностью готовым средством для интерполяции математических таблиц по 2--6 узловым точкам. Хотя существуют формулы интерполяции и для большего числа узлов, на практике они почти не применяются, поскольку имеют явно избыточную точность и применимы к таблицам, дающим значения функций с более чем шестью точными знаками.
4.3. Полиномиальная аппроксимация
Полином Лагранжа является достаточно сложной функцией. В ряде случаев для замены функции y(x) более простой зависимостью (т. е. для ее аппроксимации) применяют обычный степенной многочлен (полином). Число узловых точек (n + 1) и в этом случае определяет степень полинома n.
В документе е4-3 дана реализация полиномиальной аппроксимации. В начале этого документа формируется система уравнений по методу выбранных точек и обеспечивается ее решение, дающее вектор коэффициентов аппроксимирующего полинома. В конце документа заданы вычисление полинома P(x) и построение его графика с наложенными на него узловыми точками. Надо заметить, что и в этом случае график аппроксимирующего полинома точно проходит через узловые точки, что не удивительно, ведь для каждой совокупности точек существует единственный степенной многочлен, значения которого в узловых точках совпадают с ними.
4.4. Чебышевская аппроксимация
При табличном задании функции положение узловых точек определено заранее, и его практически нельзя изменить. Однако часто желательна аппроксимация аналитически заданных функций, призванная заменить эту функцию на более простую, например не содержащую сложных алгебраических или тригонометрических функций. Такая аппроксимация может преследовать и иную цель -- сокращение числа базовых функций для их последующей математической обработки.
Если некоторая функция F(x) задана аналитически, расположение узлов можно выбирать произвольно. Разумеется, возможно применение обычной полиномиальной аппроксимации и для аналитически заданной функции. Для этого достаточно вектор y
сформировать, вычисляя значения его элементов по аналитической формуле для y = F(x). Однако Чебышевская аппроксимация обладает повышенной точностью по сравнению со многими другими видами аппроксимации (например, полиномиальной) благодаря оптимальному выбору узлов с учетом кривизны изменения функции на заданном отрезке аппроксимации.
Весьма простая методика Чебышевской аппроксимации получается, если отрезок аппроксимации есть [-1, 1]. Это, однако, не препятствует аппроксимации на произвольном отрезке [a, b], просто тогда в начале аппроксимации надо использовать формулы приведения отрезка аппроксимации к [-1, 1], а затем пересчитывать значения функции в отрезок [a, b]. Чебышевская аппроксимация реализуется документом е4-4.
В этом документе представлены два подхода к Чебышевской аппроксимации. Первый связан с вычислением полинома Чебышева Tn(x), а второй -- с вычислением обычного полинома P(x). Графики этих полиномов с нанесенными на них узловыми точками, которые строит данный документ, показывают, что результаты аппроксимации в обоих случаях идентичны -- графики полиномов точно проходят через узловые точки.
4.5. Экспоненциальная регрессия
Часто требуется отыскать параметры какой-либо нелинейной зависимости f(x) таким образом, чтобы эта зависимость проходила через облако узловых точек с наименьшей среднеквадратичной погрешностью отклонения от них. Тогда говорят о нелинейной регрессии или (что то же самое) об аппроксимации или приближении функции методом наименьших квадратов. В этом случае число узловых точек может быть сколь угодно большим, и в процессе регрессии выполняется статистическая обработка данных.
Примером такого рода регрессии может служить экспоненциальная регрессия. Хотя с равным успехом можно заменой формулы регрессии выполнить ее для любого другого вида регрессии. Документ е4-5 дает представление о двух методах экспоненциальной регрессии, при которой исходная функция экспоненциальная и является функцией аргумента x и двух параметров a и b, т. е. представляется в виде f(x, a, b).
Первый метод заключается в решении системы нелинейных уравнений, в которую входят приближенные равенства f(x0, a, b) = y0 и выражение с функцией minerr(a, b), возвращающей значения a и b, при которых система решается с минимальной среднеквадратичной зависимостью.
Второй метод использует преобразования, сводящие нелинейную (экспоненциальную) регрессию к линейной. Последняя обеспечивается встроенными в систему MathCAD средствами довольно просто. Затем применяются обратные преобразования, дающие параметры a и b по найденным параметрам линейной регрессии. Мерой точности регрессии является коэффициент корреляции -- чем он ближе к 1, тем меньше погрешность найденных параметров a и b.
Задание функции регрессии в виде f(x, a, b)
необходимо для правильного решения системы нелинейных уравнений. В ранних версиях MathCAD 2.0/2.01 допускалось упрощенное задание функции регрессии в виде f(x) с включением в выражение для функции глобальных переменных (параметров) a и b. В последующих версиях алгоритм минимизации решения с помощью функции minerr требует более точного задания функции регрессии в указанном виде. После проведения регрессии функция f(x, a, b) может быть переопределена в более простом виде -- как f(x).
Рассматривая документ е4-5 можно заметить, что два способа регрессии дают заметно отличающиеся значения для параметров a
и b функции регрессии a × exp(b × x). Тут нет ничего неожиданного, поскольку характер статистической обработки непреобразованных данных при первом методе несколько отличается от него при обработке преобразованных данных во втором методе. Оба варианта регрессии дают (при графическом выводе данных) неуловимые различия, так что трудно отдать предпочтение тому или иному методу.
Документ е4-5 можно использовать и для других двухпараметрических уравнений регрессии, например, a × ln(b × x) или a + b/x и т. д. Надо лишь изменить запись функций f(x, a, b), f(x) и f1(x). Таблицы для перехода от нелинейной регрессии к линейной описаны в [1, 2].
4.6. Полиномиальная регрессия
Двухпараметрические функции регрессии, рассмотренные выше, хотя и охватывают большой набор зависимостей f(x, a, b), являются довольно простыми функциями, имеющими частное применение. Гораздо обширнее область применения полиномиальной регрессии, поскольку полином способен описать невообразимо большое число нелинейных зависимостей.
Полиномиальная регрессия отличается от полиномиальной аппроксимации тем, что при ней устраняется прямая зависимость между числом узлов и степенью полинома. Можно задать любую степень полинома n, тогда число узловых точек исходной зависимости должно превышать (n + 1). Если оно равно этому числу, то реализуется обычная полиномиальная аппроксимация. Таким образом, полиномиальная регрессия решает задачу приближения заданного облака точек более общим путем: она позволяет найти коэффициенты степенного многочлена заданной степени n, приближающего облако исходных данных с минимальной среднеквадратичной погрешностью.
Ввиду весьма широкого применения полиномиальной регрессии (заметим, что к ней сводится линейная и параболическая регрессии при n = 1 и 2) документ е4-6 разбит на две части. Видимая (левая) часть расположена вверху, а следом за нею идет невидимая (правая) часть, в которой сосредоточены все математические операции, необходимые для реализации регрессии. Видимая часть документа представлена на рас. 12.19.
Рис. 12.19. Пример полиномиальной регрессии
В этой части документа сосредоточены задание матрицы с двумя столбцами исходных точек (координаты x и y узловых точек), вывод результатов регрессии и построение графиков функции регрессии и узловых точек. В невидимой части документа сосредоточен математический аппарат реализации полиномиальной реакции.
4.7. Линейная регрессия общего вида
Описанные приемы проведения регрессии можно распространить на более сложные ее виды, когда функция регрессии состоит из совокупности более простых функций. Примером может служить линейная регрессия общего вида. При ней нужно найти значения ряда линейных множителей K1, K2, ..., Kn, при которых облако исходных точек приближается зависимостью
Y(x) = K1*F1(x) + K2*F2(x) + ... + Kn*Fn(x).
Сами функции F1(x), F2(x), ..., Fn(x)
могут быть нелинейными зависимостями, но исходная функция является линейной комбинацией этих функций. Разумеется, такая комбинация позволяет описать гораздо большее число типов зависимостей Y(x), чем просто линейная зависимость.
Документ е4-7 иллюстрирует технику проведения линейной регрессии общего вида. Функция Y(x) здесь является линейной комбинацией трех функций. Реализация линейной регрессии общего вида с помощью функции minerr практически та же, что и в ранее приведенных документах. График в конце документа показывает, что зависимость Y(x) действительно нелинейная и ее кривая проходит вблизи исходных точек, помеченных квадратиками.
4.8. Нелинейная регрессия общего вида
Столь же просто, как и для линейной регрессии общего вида, можно реализовать и нелинейную регрессию общего вида, которая заключается в вычислении ряда параметров k1, k2, ..., kn для функции регрессии вида
f(x, ki) = f1(x, ki) + f2(x, ki) + ... + fn(x, ki),
где ki означает ряд параметров k1, k2, ..., kn. Функции, входящие в функцию регрессии, в общем случае нелинейны. Документ е4-8 иллюстрирует проведение нелинейной регрессии. В конце документа задано построение функции регрессии и облака исходных точек. Документ е4-8 легко переделать для проведения нелинейной регрессии общего вида для любой другой функции регрессии.
4.9. Линейное сглаживание по пяти точкам
Еще один полезный вид статистической обработки функции y(x), заданной n
точками, заключается в статистической обработке каждой точки с учетом положения нескольких ближайших точек. Например, простейший способ такой обработки заключается в усреднении значений этой точки и нескольких других окружающих ее слева и справа точек. В результате будет получен вектор ys сглаженных значений y(x). Некоторую проблему представляет вычисление сглаженных значений точек, примыкающих к концевым. Однако теоретически получены формулы сглаживания и для этих точек.
Линейное сглаживание по пяти точкам реализует документ, показанный на рис. 12.20. На нем вначале задан вектор параболической зависимости, на которую наложены сильные случайные компоненты, создаваемые генератором случайных чисел. Далее заданы пять формул сглаживания: по две для крайних двух точек слева и справа и одна для других (эта формула просто находит среднее значение для центральной точки и окружающих ее четырех ближайших точек). Фактически кривая сглаживания состоит из ряда отрезков прямых линий, откуда и название -- "линейное сглаживание".
Рис. 4.9. Линейное сглаживание по пяти точкам (документ е4-9)
На приведенном рисунке видно, что сглаженная кривая проходит внутри облака точек и неплохо вписывается в него. При этом число сглаженных точек равно числу исходных точек (в нашем случае их 50). Разумеется, при таком большом числе сглаженных точек эффективность сглаживания оказывается заметно ниже, чем, например, при проведении регрессии с большим числом исходных точек.
4.10. Нелинейное сглаживание по семи точкам
Можно повысить эффективность сглаживания, увеличив число точек, используемых для статистической обработки заданной точки и перейдя к кривой сглаживания в виде отрезка полинома более высокой степени, чем 1. В документе е4-10 представлены формулы нелинейного сглаживания по семи точкам [1, 2, 28]. Этих формул семь: по три для крайних точек и одна для остальных.
Для нелинейных зависимостей, близких к параболическим или содержащих отрезки парабол, нелинейное сглаживание гораздо более эффективно, чем линейное. Тем не менее и здесь гладкость кривой сглаживания невелика.
По поводу целесообразности повторения процедуры сглаживания высказываются различные мнения. Одни считают, что повторное сглаживание делает кривую сглаживания более плавной. Другие не рекомендуют применение повторного сглаживания. В целом сглаживание — эффективный инструмент предварительной обработки исходных данных. Затем можно использовать более тонкие методы обработки данных, например их фильтрацию на основе спектрального анализа и синтеза, полиномиальную регрессию с применением полинома определенного порядка и т. д.
Пакет 5. РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХ И ИНТЕГРАЛЬНЫХ УРАВНЕНИЙ
5.1. Решение дифференциального уравнения первого порядка модифицированным методом Эйлера
Решение дифференциальных уравнений широко применяется в практике научно-технических расчетов. Это связано с тем, что дифференциальные уравнения (и системы из них) описывают поведение различных объектов в динамике, например переходные процессы в электронных схемах или работу часового маятника. Линейные дифференциальные уравнения имеют решения в виде специальных функций, например функций Бесселя. Однако многие физические системы нелинейны и описываются нелинейными дифференциальными уравнениями, не имеющими аналитического решения. В этом случае приходится использовать численные методы решения дифференциальных уравнений.
К сожалению, только в последних расширенных версиях системы MathCAD (PLUS 5.0/6.0) содержатся встроенные средства для численного решения дифференциальных уравнений и их систем. Они были описаны в главе 11. Все остальные версии таких средств не содержат, и для реализации решения этого класса задач приходится использовать известные методы численного решения дифференциальных уравнений и их систем, реализуя их средствами системы MathCAD.
С точки зрения освоения численных методов решения их реализация в системе MathCAD полезна и наглядна. Более того, она позволяет вмешиваться в алгоритмическую реализацию методов решения, что способствует созданию новых или улучшенных методов решения дифференциальных уравнений, ориентированных на решение интересующих пользователя задач.
Здесь рассматриваются только явные методы решения дифференциальных уравнений. Это означает, что очередную точку решения находят из данных предшествующей точки (или ряда предшествующих точек) путем экстраполяции решения тем или иным методом. Причем начальные значения x
и y должны быть заданы как нулевые условия x0 и y0.
Пусть необходимо решить дифференциальное уравнение первого порядка
y' = f(x, y).
Простейшим численным методом решения является простой метод Эйлера, при котором новую точку решения y(x) находят из формулы:
yi = yi-1 + h × f(xi-1, yi-1),
где h -- шаг приращения переменной x, i -- индекс, имеющий значения от 1 до N (N — число интервалов решения с шагом h).
К сожалению, этот метод настолько груб (погрешность порядка h), что погрешность решения нередко достигает нескольких процентов. Она такова, что на графиках точного и данного решений наблюдается заметное расхождение. По этой причине реализация простого метода Эйлера не приводится. Пользователь легко может выполнить ее самостоятельно.
Документ е5-1 дает реализацию более совершенного модифицированного метода Эйлера. Этот метод имеет погрешность порядка h2, так что при h = 0.1 она обычно не превышает 1%. Для решения многих практических задач такая погрешность уже вполне приемлема, во всяком случае, на рис. 5.1 точки точного решения для тестового примера укладываются на расчетную кривую почти точно.
Для решения другого (отличного от тестового) дифференциального уравнения достаточно изменить шаг h, число точек решения N, функцию f(x, y) и задать новые начальные значения для x и y. Обратите внимание, что здесь и далее само решение по взаимосвязанным рекуррентным формулам задается в векторном виде (это, вообще говоря, не обязательно). Сравнение результатов вычислений y с данными точного решения yi показывает, что для нашего тестового примера заметные расхождения в третьей цифре результатов после десятичной точки начинаются лишь в конце решения.
5.2. Решение дифференциального уравнения первого порядка методом Рунге — Кутта
Точность решения можно существенно повысить, переходя к методам решения дифференциального уравнения более высокого порядка. Так, широко используемый на практике метод Рунге — Кутта четвертого порядка дает погрешность решения порядка h-4 , что удовлетворяет самым придирчивым требованиям к точности численных методов. Метод Рунге — Кутта неоднократно подробно описывался [6, 8, 14]. Его реализация дана в документе е5-2.
Реализация метода Рунге — Кутта значительно сложнее, чем метода Эйлера (в том числе модифицированного). Чтобы не усложнять запись рекуррентных выражений в векторной форме, коэффициенты k1-k4
формул Рунге — Кутта заданы в виде функций пользователя.
Разумеется, из-за большей сложности реализации скорость вычислений при использовании метода Рунге — Кутта ниже, чем при использовании модифицированного метода Эйлера. В некоторых случаях его реализацию можно заметно упростить по сравнению с общей реализацией, представленной в документе на е5-2.
5.3. Реализация метода Рунге — Кутта со скрытым блоком решения
Метод Рунге — Кутта является хорошо апробированным и надежным
стандартным методом решения дифференциальных уравнений. Поэтому целесообразно такое построение документа, реализующего этот метод, при котором сама реализация метода убрана за пределы видимой части экрана. Это создает впечатление, что решение встроено в систему. На рис. 12.21 показана реализация метода Рунге — Кутта таким способом.
Рис. 12.21. Пример решения дифференциального уравнения методом Рунге — Кутта (первая часть документа е5-3)
Документ на рис. е5-3 состоит из двух частей. Первая часть (рис.12.21) содержит ввод исходных данных и вывод графика решения. Для решения надо задать функцию f(x, y), начальное startx и конечное endx значения x, число точек решения n
и начальное значение inity
переменной y. При построении графика функции указываются нижний (L) и верхний (U) пределы изменения искомой зависимости y(x).
Вторая часть документа (см. рис. 12.22) в действительности располагается справа от первой части и размещается в обычно невидимой части документа. Поэтому пользователь избавлен от созерцания тривиальных или просто не интересующих его математических формул и может сосредоточить внимание лишь на вводе исходных данных и функции f(x, y) и выводе результатов.
Рис. 12.22. Математическая реализация метода Рунге — Кутта
Рассматривая рис. 12.22 нетрудно сделать вывод о наглядности реализации метода Рунге — Кутта. По существу, приведенные уравнения повторяют известные формулы этого метода, часто встречающиеся в учебной литературе по численным методам решения дифференциальных уравнений.
5.4. Решение дифференциального уравнения второго порядка вида y'' = F(x, y, z)
Дифференциальные уравнения второго порядка имеют исключительно важное самостоятельное значение, поскольку описывают поведение многих колебательных систем, от механического маятника до электрического колебательного контура и квантово-механического резонатора. Эти уравнения могут иметь различный вид. Здесь рассматривается решение дифференциального уравнения y'' = F(x, y, z), где z = y'.
В документе е5-4 реализовано решение методом Рунге — Кутта. Система рекуррентных уравнений в векторной форме содержит уже три уравнения -- на одно больше, поскольку возрос порядок решаемого уравнения. Используются формулы решения, описанные в [28].
5.5. Решение дифференциального уравнения второго порядка вида
y''(t) + Ay'(t) + By(t) = C(t)
Поведение многих колебательных систем во времени описывается решением дифференциального уравнения следующего вида:
y''(t) + Ay'(t) + By(t) = C(t),
где t -- время, A и B -- константы и C(t) -- некоторая временная функция.
Документ е5-5 дает решение этого уравнения со скрытым в правой части документа (нижней на рисунке) вычислительным блоком, реализующим метод Рунге — Кутта. Преимущества такого представления документа обсуждались выше. Тестовый пример, приведенный в этом документе, дает представление о реакции типичной колебательной системы второго порядка на воздействие C(t) в виде скачка. Это решение описывает затухающие почти синусоидальные колебания.
5.6. Решение системы из двух дифференциальных уравнений модифицированным методом Эйлера
Поведение динамических систем второго порядка описывается либо дифференциальными уравнениями второго порядка, либо системой из двух дифференциальных уравнений первого порядка. В ряде случаев решение системы из двух дифференциальных уравнений первого порядка представляет самостоятельный интерес.
При отсутствии серьезных требований к погрешности вычислений вполне возможно применение для решения простого метода Эйлера. В последующем будет приведено немало примеров его применения для решения физических и электротехнических задач. Тем не менее из-за большой погрешности решения общая реализация этого метода (весьма простая) не приводится. Если к погрешности решения предъявляются умеренные требования, вполне подходящим является решение модифицированным методом Эйлера. Его реализация иллюстрируется документом е5-6. Решается следующая система дифференциальных уравнений:
y' = f1(x, y, z), z' = f2(x, y, z).
Обратите внимание, что для упрощения записи формул функции f1 и f2
заменены на F1 = f1 × d и F2 = f2 × d, где d = h/2. При смене функций f1 и f2
их следует заменять в составе функций F1
и F2, не забывая о необходимости умножения на d.
5.7. Решение системы дифференциальных уравнений методом Рунге — Кутта
Более точное решение системы из двух дифференциальных уравнений дает метод Рунге — Кутта. Далее рассматривается решение следующей системы:
x' = F(t, x, y), y' = G(t, x, y).
Здесь несколько изменены обозначения переменных -- они более удобны для анализа поведения динамических систем во времени t.
Поскольку такая система весьма распространена, реализация решения в документе е5-7 разбита на две части. В видимой (левой) части заданы лишь операции ввода исходных данных и вывода решения системы в виде функций x(t) и y(t). В невидимой (правой) части сосредоточена математическая реализация решения.
Графический вывод результатов решения дает весьма наглядную информацию о характере решения. Так, решение системы, представленной в данном документе, описывает периодические несинусоидальные колебания.
5.8. Решение интегрального уравнения Вольтерра первого рода
Помимо дифференциальных уравнений решения многих динамических систем описываются интегральными уравнениями. Среди них самые распространенные -- интегральные уравнения Вольтерра первого и второго рода. Документ е5-8 реализует численный метод решения интегрального уравнения Вольтерра первого рода.
Вид интегрального уравнения Вольтерра первого рода представлен в начале документа. Различные решения уравнения получаются при выборе различных функций k(x, s) и f(x). Тестовый пример имеет аналитическое решение, что позволяет на графике (в конце документа) сравнить результаты точного решения и приближенного. В пределах точности построения графиков результаты оказываются идентичными.
5.9. Решение интегрального уравнения Вольтерра второго рода
В документе е5-9 представлен вид интегрального уравнения Вольтерра второго рода (в начале документа), его решение численным методом и результаты решения в сравнении с аналитическим решением, полученным для тестового примера.
Решение интегральных уравнений -- довольно сложная задача. Для получения высокой точности может потребоваться большое число точек решения N. Так, на примере более сложного решения интегрального уравнения Вольтерра второго рода в его конце уже заметно расхождение точного и численного решений (см. график в конце документа). При больших N время вычисления может быть довольно продолжительным, особенно при вычислениях на ПК с невысокой тактовой частотой микропроцессора и без математического сопроцессора.
Пакет 6. СПЕКТРАЛЬНЫЕ СИНТЕЗ, АНАЛИЗ И ФИЛЬТРАЦИЯ
6.1. Гармонический синтез меандра
Одним из фундаментальных положений математики, ранее казавшимся абстрактным, а затем нашедшим широчайшее практическое применение, является возможность описания любой периодической функции, имеющей конечное число разрывов и непрерывность производных между ними, с помощью тригонометрического ряда Фурье [29, 30]:
N
Y(t) = å ak × sin(2pkf1t) + bk × cos(2pkf1t),
k=1
где k -- порядковый номер гармоники, f1 -- частота колебания. Этот ряд содержит бесконечное число косинусных и синусных составляющих -- гармоник, причем амплитуды этих составляющих ak
и bk являются коэффициентами Фурье, определяемыми интегральными выражениями, которые будут приведены несколько позднее.
Приведенный ряд содержит бесконечное число членов и при таком представлении оказывается бесполезным, поскольку время вычисления в этом случае также равно бесконечности. К счастью, амплитуды гармоник для реальных зависимостей y(t) довольно быстро уменьшаются по мере роста номера гармоники k. Поэтому на практике имеют дело с ограниченными по числу гармоник рядами Фурье.
Помимо упомянутой формы ряд Фурье можно представить в виде:
N
y(t) = å Mk × cos(2pkf1t + jk),
k=1
где амплитуда гармоник Mk
и их фаза jk определяются выражениями:
Mk =

и
jk = –arctan(bk/ak).
Преимущество ряда в этой форме в том, что для вычисления каждого члена ряда нужно лишь один раз обращаться к довольно медленному вычислению тригонометрической функции. В дальнейшем будут приведены формулы, позволяющие вычислять коэффициенты Фурье (либо амплитуды и фазы гармоник) для любой функции y(t). Это является задачей спектрального анализа. Здесь же мы рассмотрим обратную задачу -- синтеза зависимости y(t) путем вычисления ряда Фурье с ограниченным числом членов.
Теория спектрального анализа и синтеза хорошо развита, и для многих зависимостей y(t) заведомо известны значения коэффициентов Фурье или законы изменения (с частотой или номером гармоники) амплитуд и фаз гармоник. Это позволяет синтезировать наиболее распространенные зависимости y(t).
Документ е6-1 реализует синтез периодических прямоугольных импульсов со скважностью равной 2 (меандра). Ряд Фурье для таких импульсов содержит только синусные члены, причем только с нечетными k. Это упрощает синтез, который в документе е6-1 реализован для 3, 7 и 15 гармоник.
Меандр -- не самая удачная для синтеза зависимость, поскольку он содержит резкие скачки. Для не очень сведущего в математике пользователя удивительно, что такого рода зависимость вообще синтезируется из синусоид, которые таких скачков не содержат и представляют собою гладкие функции. Естественно, что для получения скачков нужно брать очень большое число гармоник. Тем не менее уже при 15 гармониках синтезированный сигнал напоминает меандр и отличается от него конечным временем перепада и характерной волнистостью. Она усиливается после быстрых перепадов и является проявлением так называемого эффекта Гиббса [30].
Эффект Гиббса, к сожалению, невозможно устранить ( и даже ослабить) лишь увеличением числа гармоник при синтезе. В этом случае просто возрастает частота волнообразных колебаний, но их относительная амплитуда меняется незначительно -- она доходит до 18% от амплитуды синтезируемых колебаний.
Проявление эффекта Гиббса -- явление крайне нежелательное. Он фактически вводит в синтезируемые колебания новые компоненты, на деле в нем отсутствующие. Это может замаскировать или сильно исказить компоненты колебания, которые интересуют исследователя. Поэтому обычно стремятся ослабить эффект Гиббса, даже за счет уменьшения точности синтеза. В дальнейшем будут обстоятельно рассмотрены приемы ослабления этого эффекта.
6.2. Гармонический синтез треугольных колебаний
Другой распространенный вид колебаний (сигналов) -- треугольные или пилообразные сигналы. Документ е6-2 иллюстрирует гармонический синтез такого сигнала по 3, 5 и 9 гармоникам. Рассматривая этот документ нетрудно заметить, что для синтеза такого сигнала достаточно меньшего числа гармоник, чем для меандра. И тут отчетливо проявляется эффект Гиббса.
В литературе можно найти множество примеров разложения в ряд Фурье самых разнообразных зависимостей y(t). Используя приведенные для них значения коэффициентов Фурье, можно синтезировать самые разнообразные зависимости (сигналы).
Может возникнуть вполне закономерный вопрос: зачем столь сложным способом синтезировать такие простые зависимости, если они легко описываются целиком или по частям с помощью простых аналитических выражений? Действительно, если нужно просто смоделировать сигнал как временную функцию, нет необходимости синтезировать его по множеству гармоник.
Однако существует большое количество теоретических методов анализа сигналов и практических устройств, основанных именно на спектральном подходе. Примером могут служить частотные фильтры и даже целые радиотехнические системы. При их анализе сигнал y(t) часто приходится разлагать в ряд Фурье для проведения в дальнейшем операций с гармониками. Имея сигнал y(t) уже в виде гармоник, можно заметно сократить время обработки сигнала и вообще убрать этап задания функции в виде временной зависимости.
6.3. Спектральный анализ методом Берга
Для некоторых простых зависимостей y(t)
амплитуды гармоник могут выражаться аналитически. Примером служат отрезки синусоиды, получаемые выделением только верхней ее части. На практике такие колебания широко используются в радиотехнике, где обрезание нижней части синусоиды обусловлено работой электронных приборов (например, ламп или транзисторов) в нелинейном режиме.
Доля периода синусоиды, используемой для анализа гармоник, оценивается углом отсечки q (далее он измеряется в радианах). Он, к примеру, равен p, если обрезается нижняя половина синусоиды. Удобно вычислять относительную амплитуду k-й гармоники (по отношению к усеченной амплитуде синусоидального импульса). Этот параметр для разных k впервые был вычислен Бергом.
В документе е6-3 представлены формулы для коэффициентов Берга a0 (относительная постоянная составляющая сигнала), a1 (относительная амплитуда первой гармоники) и an (относительная амплитуда n-й гармоники). Коэффициенты Берга являются функциями угла отсечки.
График в нижней части этого документа дает наглядное представление об изменении первых четырех коэффициентов Берга с изменением угла отсечки. Нетрудно заметить существование максимумов у этих зависимостей. Например, максимальная амплитуда первой гармоники будет при угле отсечки 120 градусов, второй гармоники -- 60 градусов и т. д. Знать эти углы полезно при проектировании умножителей частоты (например, удвоителей или утроителей), работа которых основана на фильтрации одной из высших гармоник.
6.4. Спектральный анализ методом пяти ординат
Два-три десятка лет назад проводить спектральный анализ вручную было весьма сложно, а доступ к ЭВМ имел далеко не каждый ученый или инженер. Поэтому были разработаны достаточно простые и эффективные методы спектрального анализа для различных частных ситуаций. К счастью, они не потеряли значения и сейчас. Более того, возможности таких математических систем, как MathCAD, позволяют вдохнуть в эти методы новую жизнь.
Наглядным примером тому служит спектральный анализ методом пяти ординат. Этот метод широко применяется по сей день для анализа устройств с малой нелинейностью передаточной характеристики, т. е. зависимости амплитуды выходного сигнала от входного. К таким устройствам относятся электронные усилители.
Вкратце суть метода такова. Если некое устройство (система) имеет передаточную характеристику y(x) с малой нелинейностью, то эту характеристику можно описать полиномом четвертой степени. Если входной сигнал
x(t) = X0 + Xmax × sin(2pft)
представляет собой гармоническое колебание, наложенное на пьедестал X0 и имеющее амплитуду Xmax и частоту f, можно получить аналитические формулы для постоянной составляющей реакции устройства и амплитуд первых четырех гармоник, выраженные через пять ординат передаточной характеристики с равномерным расположением на отрезке [X0 - Xmax, X0 + Xmax]. Методы построения передаточной характеристики усилителей будут описаны в дальнейшем. Затем можно рассчитать так называемый коэффициент гармоник или коэффициент нелинейных искажений.
Эти расчеты требуют тщательности, и их трудно провести для многих значений Xmax, например, с целью построения зависимости коэффициента гармоник Kg
от Xmax. Система MathCAD существенно упрощает такие расчеты. Их реализация представлена в документе е6-4.
Рис. 6.4. Реализация метода пяти ординат
В начале документа заданы векторы X
(входной сигнал) и Y (выходной сигнал). Обозначения их даны в обобщенном виде, т. к. это могут быть напряжения или токи, силы (в усилителе механических усилий) т. д. Принципиально важной является сплайн-аппроксимация передаточной характеристики, что позволяет задавать ее не пятью точками, а любым числом точек и не перестраивать каждый раз при смене Xmax. Предусмотрено построение графика передаточной характеристики.
Далее для 10 значений амплитуд входного сигнала вычисляются методом пяти ординат постоянные составляющие, амплитуды первых четырех гармоник и коэффициент нелинейных искажений. В итоге получается табличная и графическая зависимости коэффициента гармоник от амплитуды входного гармонического сигнала в отрезке ее значений от [0, Xmax]. Такая зависимость гораздо более информативна, чем разовый расчет коэффициента нелинейных искажений, которым нередко ограничиваются из-за сложности расчета.
6.5. Спектральный анализ методом 12 ординат
Если система сильно нелинейна, ее выходной сигнал при гармоническом сигнале на входе будет резко несинусоидальным. Тогда вычисления амплитуд четырех гармоник может оказаться неприемлемым, да и исходное представление выходного сигнала по пяти его значениям явно недостаточно. Для систем с такой нелинейностью используется также хорошо известный метод 12 ординат (см., например, [1, 2]).
Этот метод фактически является реализацией классического спектрального анализа (рассматриваемого чуть ниже), доведенного до простых и удобных даже для ручных вычислений формул. Реализация метода, полностью адекватная описанной в [2], представлена в документе е6-5.
При проведении анализа этим методом периодическая функция с периодом T = 1/f = 1 (т. е. безразмерным) задается своими 12 ординатами. Их расположение равномерно. Таким образом, функция просто задается вектором Y, имеющим 12 заданных элементов и один (начальный) нулевой. В результате анализа вычисляются коэффициенты Фурье от a1
до a5 и от b0 до b6.
Такое количество вычисленных коэффициентов Фурье достаточно для гармонического синтеза не очень сложных зависимостей y(t). Полученная в результате синтеза зависимость должна практически точно пройти через заданные узловые точки, что и подтверждается графиком в конце документа е6-5. Это является лучшей проверкой правильности всего комплекса вычислений, от спектрального анализа функции по ее 12 ординатам до синтеза по гармоническим составляющим.
6.6. Спектральный анализ прямоугольного импульса с применением БПФ
Встроенные в систему MathCAD средства быстрого преобразования Фурье (БПФ) существенно упрощают процедуру приближенного спектрального анализа. БПФ -- быстрый алгоритм переноса сведений о функции, заданной 2n отсчетами во временной области, в частотную область. Если речь идет о спектральном анализе функции y(t), ее нужно задавать действительными отсчетами и использовать функцию fft(V), где V -- вектор, элементы которого хранят отсчеты функции y(t). Результатом будет также вектор A с комплексными элементами — отсчетами в частотной области (их вдвое меньше, чем отсчетов во временной области). Фактически действительная и мнимая части этого вектора есть коэффициенты Фурье ak
и bk, что существенно упрощает их получение.
Документ е6-6 поясняет проведение спектрального анализа с применением функции fft прямого БПФ. В начале документа (левый верхний угол) задан вектор с восемью единичными отсчетами и с остальными (всего их 32) нулевыми. Затем вычислен вектор A
— результат БПФ. В заключение вычислены амплитуды гармоник и их фазы для представления импульса рядом Фурье. Завершает документ построение графиков амплитуд (модулей) и фаз первых десяти гармоник.
6.7. Спектральный анализ пилообразного импульса с применением БПФ
Чтобы лучше понять закономерности спектрального анализа, целесообразно провести его и для импульсов другой формы, например пилообразного импульса. Это иллюстрирует документ е6-7.
Казалось бы, наличие встроенных средств широко рекламируемого БПФ должно означать ориентацию спектрального анализа на их применение. Но это не так. БПФ имеет ряд серьезных недостатков: неясный для пользователя алгоритм, отсутствие средств подавления эффекта Гиббса и строгая привязка числа отсчетов y(t) к величине 2n (т. е. 2, 4, 8, 16, 32 и т. д.). БПФ дает хорошие результаты, когда взаимное преобразование (прямое и обратное) происходит без ограничения употребляемого при нем количества гармоник. Эти недостатки могут оказаться весьма существенными при проведении спектрального анализа и синтеза, когда наглядность их реализации принципиально важна.
6.8. Классические спектральный анализ и синтез
Рассмотрев некоторые частные аспекты спектральных анализа и синтеза, мы вплотную подошли к их классической реализации и методам ее улучшения. Прежде всего отметим, что MathCAD содержит средства, позволяющие провести спектральный анализ по классическому алгоритму, описанному в любом учебнике математики или в книгах по спектральному анализу.
В документе е6-8 дана реализация классического спектрального анализа довольно сложной функции с последующим ее синтезом. Функция задана вектором Yi с произвольным числом отсчетов (что само по себе важное преимущество перед БПФ). Для применения классических интегральных выражений для коэффициентов Фурье нужно располагать не дискретными отсчетами функции y(t), а ее аналитическим выражением. В нашем случае такое представление достигается применением линейной интерполяции функции между ее заданными вектором Yi узлами.
Слово "классические" тут означает, что коэффициенты Фурье вычисляются прямым интегрированием тем методом, который используется в MathCAD. Сравнение исходной зависимости y(t) с синтезируемой при числе гармоник 10 не дает повода к чрезмерному оптимизму. Синтезированная зависимость заметно отличается от исходной и имеет сильные колебания. Если уменьшить или увеличить число гармоник при синтезе, результат будет еще хуже.
Причин здесь несколько. Интегралы для коэффициентов Фурье вычисляются приближенно. Подынтегральные функции имеют быстро осциллирующие синусные и косинусные множители, что затрудняет интегрирование с малой заданной погрешностью. В итоге интегрирование идет довольно медленно, а точность вычислений оставляет желать лучшего. Эффект Гиббса не подавляется, поскольку его проявление связано с ограничением числа гармоник, которое имеет место при практической реализации данного алгоритма. Результаты анализа в значительной мере зависят от конкретной реализации интегрирования (к примеру, они различны у различных версий системы MathCAD). Время интегрирования довольно значительное.
6.9. Стандартные спектральный анализ и синтез
Итак, нас постигло некоторое разочарование при реализации классического спектрального анализа. Поэтому вернемся к численным методам спектрального анализа и рассмотрим так называемый стандартный спектральный анализ [2]. В его основе лежит вычисление интегралов, определяющих коэффициенты Фурье, простейшим численным методом прямоугольников.
Может показаться, что это большой шаг назад. И уж тем более трудно поверить, что такой метод является единственным научно обоснованным методом вычисления этих коэффициентов [29, 30]. Тем не менее это так. И понятно, почему. Если функция y(t) задана рядом дискретных отсчетов (вектор Yi), мы не имеем никакого права предполагать, что какая-либо интерполяция значений y(t) между узлами имеет преимущество перед постоянством y(t). Строгий теоретический анализ показывает, что синтез y(t) по максимальному для данного числа отсчетов количеству гармоник при интегрировании методом прямоугольников дает наименьшую среднеквадратичную погрешность.
Документ е6-9 показывает спектральные анализ и синтез стандартным методом (в варианте, описанном в [2]). Результаты синтеза показывают, что синтезированная кривая удачно описывает быстрые детали исходной зависимости. Явно видно сильное проявление эффекта Гиббса. Впрочем, нередко можно подобрать оптимальное число гармоник (или длительность отдельных участков исходной функции), при котором эффект Гиббса становится малозаметным. Однако это не более чем частный случай. Увеличение числа используемых для синтеза гармоник свыше N/2, где N-- число отсчетов функции, невозможно.
К достоинствам стандартного метода относится значительное ускорение спектрального анализа. Оно связано с тем, что интегрирование производится по простейшим формулам без использования алгоритмов и изменяющимся в его ходе шагом.
6.10. Стандартные спектральный анализ и синтез с коррекцией
Итак, стандартные анализ и синтез применимы для любого числа отсчетов функции, но не свободны от сильного проявления эффекта Гиббса. Известен ряд методов ослабления или подавления этого эффекта [2]. Отметим лишь самый простой способ -- коррекция амплитуды гармоник с помощью корректирующего множителя, постепенно ослабляющего высшие гармоники спектра.
Если умножить значение амплитуды каждой k--й гармоники на множитель sin( pk/N)/(pk/N), это будет фактически означать переход от формул интегрирования методом прямоугольников к формулам интегрирования методом трапеций -- с применением линейной интерполяции y(t). Само по себе это, как отмечалось выше, не является основанием для существенного повышения точности вычислений. Однако такой подход дает заметное ослабление эффекта Гиббса. Это иллюстрирует документ е6-10.
Помимо коррекции амплитуд гармоник в документе е6-10 приняты меры по ускорению времени вычислений. Так, при вычислении коэффициентов Ak
и Bk исключены бесполезные умножения на нулевые отсчеты функции -- их результат тождественно равен нулю. Для функций типа анализируемой с большим числом нулевых отсчетов только эта мера уменьшает время вычислений в несколько раз. Тот же прием использован и при гармоническом синтезе, если амплитуда какой-либо гармоники оказывается нулевой.
Как показывают графики в конце документа е6-10, синтезируемая функция достаточно полно совпадает с исходной, хотя после импульса остаются заметные колебания. Их можно еще уменьшить, используя умножение на корректирующий множитель в квадрате. Это означает переход к квадратичной интерполяции y(t) при интегрировании. К сожалению, при этом ухудшается точность синтеза в наиболее важной части -- соответствующей импульсу.
Хотя коррекция предполагает, что в формулах интегрирования используется линейная или квадратичная интерполяция между узлами, используются по-прежнему дискретные отсчеты, соответствующие исходному вектору Yi. Поэтому максимальное число гармоник, как и ранее, не может превосходить N/2.
6.11. Спектральные анализ и синтез с прямой линейной интерполяцией функции между узлами
Вместо того чтобы вводить корректирующие множители, имитирующие интерполяцию функции y(t) между узлами, можно прямо ввести такую интерполяцию. Тогда появляется возможность задавать произвольное число отсчетов y(t) по интерполируемой функции и получить сколь угодно большое число гармоник для ее синтеза. Впрочем, надо помнить, что интерполируемая функция идеально точно совпадает с исходной только тогда, когда число отсчетов равно числу узлов.
В других случаях отсчеты берутся с несколько иной функции -- на практике весьма близкой к исходной. Несмотря на эти оговорки, такой прием дает блестящие результаты: при достаточно большом числе выбранных для синтеза гармоник синтезируемая функция повторяет исходную, а эффект Гиббса исчезает почти полностью.
В документе е6-11 показана реализация этого метода, а также предусмотрены меры по уменьшению времени вычислений за счет отказа от умножений на 0. Как видно из примера этого документа, степень совпадения исходной и синтезируемой функций очень высока.
Во всех приведенных примерах использован достаточно сложный случай: импульс с маленькой полкой на линейном росте и резким спадом. В реальной ситуации функция y(t) чаще всего является довольно плавной и эффект Гиббса проявляется гораздо в меньшей мере, чем в примененном тестовом примере. Это говорит о том, что все описанные методы имеют право на жизнь.
6.12. Фильтрация аналоговых сигналов
Под фильтрацией подразумевается выделение полезного сигнала из его смеси с мешающим сигналом -- шумов. Наиболее распространенный тип фильтрации -- частотная фильтрация. Если известна область частот, занимаемых полезным сигналом, достаточно выделить эту область и подавить те области, которые заняты шумом.
Документ е6-12 иллюстрирует технику фильтрации с применение БПФ. В начале документа синтезируется двухчастотный сигнал, представленный 128 отсчетами вектора q. Затем к этому сигналу присоединяется шум с помощью генератора случайных чисел и формируется вектор из 128 отсчетов зашумленного сигнала. Используя прямое БПФ, сигнал с шумом преобразуется из временной области в частотную, что создает вектор f из 64 частотных составляющих. Затем выполняется фильтрующее преобразование, эффективность которого оценивается параметром фильтрации a. Отфильтрованный сигнал (вектор g) подвергается обратному БПФ и создает вектор выходного сигнала h.
В конце документа е6-12 сравниваются временные зависимости исходного и выходного сигнала. Хотя абсолютной идентичности между ними нет, видно, что выходной сигнал почти повторяет входной и в значительной мере избавлен от высокочастотных шумовых помех, маскирующих полезный сигнал.
6.13. Цифровая фильтрация с помощью БПФ
Аналоговые фильтры обычно имеют довольно сложную аппаратную реализацию. В них применяются громоздкие и нетехнологичные колебательные контуры или RC-цепи с интегральными операционными усилителями. Поэтому интенсивно развивается новый класс фильтрующих устройств -- цифровые фильтры. В них используются цифровые логические схемы, имеющие высокую степень интеграции, и применяются цифровые методы обработки сигналов.
Документ е6-13 поясняет реализацию алгоритмов цифровой фильтрации с помощью реализуемой цифровыми устройствами функции s(k, j). После ее определения синтезируется цифровой сигнал, содержащий низкочастотную компоненту в виде перепада и высокочастотную в виде меандра. Далее показана реализация фильтрующей операции -- свертки для двух типов фильтров, — широкополосного и узкополосного.
Тут идет речь не о фильтрации сигнала на фоне шумов, а о прохождении сложного составного сигнала через цифровые фильтры. Графики в конце документа иллюстрируют характер искажений сигнала при этом.
6.14. Фильтрация образа с применением двумерного БПФ
До сих пор мы приводили примеры применения одномерного БПФ. Однако возможно и двумерное преобразование Фурье, позволяющее решать более сложные задачи. Одна из таких задач -- восстановление образа трехмерных фигур, искаженного шумовым сигналом. Это типичная задача на сложную обработку изображений.
Система MathCAD PLUS 6.0 реализует двумерное БПФ, если в операциях БПФ использовать не векторы, а матрицы. Однако у ранних версий MathCAD таких возможностей нет. Поэтому мы откажемся от них и воспользуемся более наглядной реализацией двумерного БПФ с помощью одномерного БПФ. На рис. 6.14 показан документ, реализующий фильтрацию трехмерной поверхности с помощью двумерного БПФ. Этот прием для трехмерной поверхности реализует документ е6-14.
В начале документа создается матрица трехмерной поверхности M со случайными отклонениями каждой точки. Внизу слева построена эта поверхность. Она имеет вид пятна, в котором отдаленно угадываются общие контуры поверхности. Регулярность расположения точек-крестиков на ней вообще не заметна. В средней части документа показана реализация математического аппарата фильтрации. Рисунок справа внизу документа показывает результат фильтрации. На нем отчетливо видны не только общие формы поверхности (типа "выпуклый лист"), но и явная регулярность расположения точек. Это и есть результат фильтрации.
Полезно отметить, что графики трехмерной поверхности здесь также получены без применения стандартных средств построения трехмерных поверхностей системы. Поэтому без какой-либо доработки (кроме выбора шрифта комментариев) этот пример можно использовать и в ранних версиях системы MathCAD 2.0/2.04, не имеющих средств построения трехмерных фигур (а говоря точнее, он и взят из примеров для этих систем).
Пакет 7. ФИЗИЧЕСКИЕ РАСЧЕТЫ
7.1. Расчет атмосферного давления и плотности воздуха
В [32] приведены формулы, позволяющие рассчитать атмосферное давление и плотность воздуха на различных высотах h. Атмосферное давление вычисляется по двум формулам: упрощенной ph(h) при условии постоянства температуры воздуха и по точной p(h), учитывающей различие температуры. Эти формулы приведены в документе е7-1, позволяющие рассчитать атмосферное давление и плотность воздуха ro(h) на высотах от 0 (поверхность земли) до 11 км.
Результаты расчета представлены в наглядной графической форме и в форме таблиц. Можно заметить, что до высоты около 6 км вычисление давления по приближенной и уточненной формулам дает примерно одинаковые результаты.
7.2. Распад радиоактивного элемента
Интересные закономерности получаются, когда короткоживущий радиоактивный элемент A, распадаясь, создает долгоживущий, но также постепенно распадающийся элемент B. Временные функции распада -- экспоненциальные. Масса элемента A экспоненциально падает, переходя в массу элемента B, что ведет к начальному росту массы первого. Однако, поскольку элемент B также распадается, постепенно (но медленно) и его масса уменьшается, стремясь к нулю. В итоге зависимость массы B от времени имеет характерный максимум. Эти вычисления содержатся в документе е7-2.
Графики изменения массы элементов A и B подтверждают отмеченные выше закономерности радиоактивного распада. Следует указать, что временные зависимости распада не более чем удачные аппроксимации.
7.3. Мольная теплоемкость металлов по Дебаю
Мольная теплоемкость металлов по Дебаю задается в виде интеграла, не имеющего аналитического решения. Она является функцией верхнего предела интегрирования этого интеграла. Документ е7-3 показывает полезность применения встроенного в MathCAD оператора численного интегрирования для расчета мольной теплоемкости металлов.
В этом документе задана функция пользователя -- интеграл Дебая. Мольная теплоемкость представлена как функция универсальной газовой постоянной R и параметра z -- отношения абсолютной температуры к температуре Дебая.
7.4. Преодоление самолетом звукового барьера
Большинство из нас слышали в безоблачную погоду звуки, напоминающие "гром среди ясного неба". Почти наверняка это были либо отзвуки дальней грозы, либо звуки, создаваемые самолетом в момент преодоления звукового барьера. Известна функция M(u, h), определяющая так называемое число Маха, зависящее от скорости полета самолета u
и высоты полета h [32]. В момент преодоления звукового барьера значение M(u, h) становится равным 1. Скорость, на которой преодолевается звуковой барьер, падает с увеличением высоты полета.
Документ е7-4 содержит определение функции M(u, h). На верхнем графике показаны зависимости M(u, h) от u для четырех значений h, а также уровень единицы. Звуковой барьер преодолевается в момент, когда соответствующая зависимости M(u, h) кривая пересекает уровень единицы.
Более полезно знать не саму по себе зависимость M(u, h), а из условия M(u, h) = 1 получить зависимость скорости преодоления звукового барьера u(h) от высоты h. Для этого можно воспользоваться функцией поиска корня указанного условия. Это также сделано в конце документа е7-4.
7.5. Потеря энергии при торможении автомобиля
Когда мы слышим визг тормозов автомобиля, мы с ужасом следим, успеет ли он сбросить скорость и не настигнет ли нас до того, как мы отскочим. Полезно (скорее шоферу, чем нам) знать, как быстро автомобиль теряет энергию при торможении. Решение этой задачи для автомобиля с дисковым тормозным устройством представлено документом е7-5.
Процесс потери энергии в общем случае связан с решением нелинейного дифференциального уравнения. Физики любят использовать для такого решения простые конечно-разностные методы, при которых решение выражается рекуррентной формулой. Фактически они соответствуют решению простым методом Эйлера.
Именно так это решение выполнено в документе е7-5. Важно отметить, что в нашем расчете используются размерные величины (энергия определяется в джоулях). Для расчетов с размерными величинами в состав MathCAD входят файлы, содержащие глобальные определения размерных величин. В конце документа показан пример использования такого файла. В нем содержится определение многих размерных величин, относящихся к физике (их больше, чем это нужно для нашего конкретного примера).
7.6. Распространенные типы волн
Образование и распространение волн -- весьма частые явления в окружающем нас мире. Волны на поверхности воды, колебания маятника или струны -- все это примеры возникновения волновых процессов [32, 33]. Если амплитуда колебаний мала, то, скорее всего, они носят гармонический характер, самый распространенный в природе.
Документ е7-6 иллюстрирует два вида гармонических колебаний -- синусоидальные и косинусоидальные. Нетрудно заметить, что они абсолютно идентичны и отличаются лишь начальной фазой колебаний. Синусоидальные колебания начинаются с нулевого значения, а косинусоидальные с единичного.
Средний график документа е7-6 показывает случай, когда амплитуда высокочастотной волны является гармоническим колебанием. Этот случай соответствует амплитудной модуляции (АМ) высокочастотного колебания. Именно таков характер электромагнитных колебаний, порождаемых радиопередатчиками в диапазонах длинных, средних и коротких волн. Низкочастотные компоненты (при радиопередачах передается их спектр) несут информацию о разговорной речи и музыке, передаваемых радиовещательными станциями.
Эффект, напоминающий амплитудную модуляцию, может быть получен и при наложении двух гармонических колебаний с близкими частотами. Тогда появляется низкочастотная компонента, равная разности частот (см. пример в конце документа е7-6). Этот эффект мы часто наблюдаем при прослушивании радиопередач на наших радиоприемниках; все знают, что, когда принимаются две близко расположенные станции, возникает характерный свист.
7.7. Затухающие и нарастающие колебания
Поведение многих колебательных систем при малой амплитуде колебаний описывается линейным дифференциальным уравнением второго порядка вида:
y'' + 2dy' + w0 = 0,
где d -- параметр, характеризующий затухание (или просто затухание), а w0 -- частота собственных колебаний. В документе е7-7 используется аналитическое решение приведенного уравнения.
На графиках документа е7-7 представлены временные зависимости y(t) при различных значениях затухания. При 0
7.8. Колебания и резонанс в механической системе
Интересно поведение колебательных систем при воздействии на них внешних колебаний. Школьные учебники полны кошмарных примеров, напоминающих о необходимости практического знакомства с таким поведением систем. Например, многократно описывался случай, когда колона солдат, проходя строевым шагом через мост, так раскачала его, что он рухнул.
Явление резкого возрастания амплитуды колебаний в колебательных системах, на которые воздействуют внешние колебания с частотами, близкими к частоте собственных колебаний системы, получило название резонанса. А частота собственных колебаний поэтому часто называется резонансной.
Документ е7-8 сдержит пример, описывающий поведение механической системы под воздействием внешнего гармонического колебания. Поведение системы определяется амплитудой Ym вынужденных колебаний системы и их аргументом a
(сдвигом фаз колебаний системы относительно внешних колебаний). Эти параметры зависят от частоты внешних колебаний w
и коэффициента затухания системы d (декремента).
Графики в этом документе показывают, что при малых d < 0.25 на некоторой частоте амплитуда колебаний заметно возрастает. Это и есть проявление резонанса (в нашем случае механического). При наличии в системе затухания частота резонанса отличается от частоты собственных колебаний системы (в конце документа дана оценка и этого явления).
Не надо думать, что резонанс явление отрицательное. Напротив, он часто используется с большой пользой. Например резонанс в акустических системах позволяет повысить уровень звука на низких частотах. Но особенно эффективно резонанс используется в радиотехнических системах, например в радиоприемниках для выделения нужной (обычно довольно узкой) области частот, соответствующих принимаемому сигналу.
7.9. Диффузия из бесконечно тонкого слоя
Опустив тонкую пластинку из растворимого вещества в стакан с водой, мы будем наблюдать диффузию ее материала в другую среду -- воду. На использовании этого явления основана такая крупная область современной промышленности, как микроэлектроника. Всем известно, что именно благодаря диффузии в кремниевую подложку внедряются примеси, создающие элементы будущей микросхемы. Поэтому решение задач диффузии -- актуальная область математических расчетов и моделирования в физике и химии.
На рис. 12.23 показан документ, решающий задачу о диффузии вещества из бесконечно тонкого слоя в окружающую среду. Результатом расчета является получение распределения диффундирующего вещества в окружающей среде в различные моменты времени. График в конце документа показывает, как диффундирующее вещество постепенно проникает в окружающую среду и как меняется его концентрация в зависимости от расстояния от диффундирующего слоя в различные моменты времени.
Рис. 12.23. Моделирование диффузии из бесконечно тонкого слоя (документ е7-9)
Вообще говоря, диффузия описывается дифференциальным уравнением второго порядка, приведенным в начале документа. Оно позволяет найти функцию f(x, t) в каждый момент времени по ее значению в предшествующий момент. Здесь f-- концентрация диффундирующего материала, x
-- расстояние от слоя и t -- время. На рис. 12.23 это уравнение решается конечно-разностным методом, реализованным с помощью рекуррентной формулы.
7.10. Диффузия из толстой пластины
Рассмотренный выше пример моделирования диффузии несколько идеализирован, поскольку в действительности бесконечно тонкого слоя диффундирующего вещества не существует. Более реально выглядит случай, когда рассматривается диффузия из толстого слоя. Толстого в том смысле, что его толщину необходимо учитывать и что процессы диффузии происходят как вне этого слоя, так и внутри него.
Как и ранее, достаточно корректные результаты получаются при использовании решения задачи конечно-разностным методом. В документе е7-10 представлено решение такой задачи. Оно состоит из двух частей. Видимая содержит исходные данные и указания, тогда как в невидимой части (правой) задано решение конечно-разностным методом.
График на в этом документе иллюстрирует распределение концентрации диффундирующего вещества для трех моментов безразмерного времени -- 0, 10 и 30. Рекомендуется выбирать малыми шаг по x (k) и шаг по y (h). Это, однако, может привести к заметным затратам времени.
7.11. Расчет обтекания крыла воздушным потоком
Классической аэродинамической задачей является расчет структуры потока воздуха, обтекающего крыло самолета. Демонстрационный пример решения этой задачи входит в некоторые версии системы MathCAD, и его переработанный вариант приведен в документе е7-11.
Для построения профиля крыла и обтекающего его воздушного потока достаточно задать три параметра — a, b и c. В нашу задачу не входит обсуждение довольно сложного и специфического алгоритма решения подобной задачи, он скрыт от пользователя в невидимой правой части экрана. Однако отметим, что и эта задача решается конечно-разностным методом с применением аппарата функций комплексной переменной. Видимая часть документа содержит короткий текстовый комментарий, задание параметров a, b
и c и вывод графиков -- отдельно профиля крыла и обтекающего его воздушного потока.
Независимо от того, интересует вас решение этой задачи или нет, она дает прекрасный пример построения сложного графика на комплексной плоскости. График включает в себя построение замкнутой линии -- сечения крыла и линий "равного уровня", иллюстрирующих структуру воздушного потока.
7.12. Расчет движения снаряда
Пусть спортсмен мечет снаряд (например, диск или ядро) с некоторой начальной скоростью V0 и под углом Q к горизонту. По какому закону происходит полет снаряда, если пренебречь сопротивлением воздуха? Ответ общеизвестен -- по параболическому. Однако мы попытаемся ответить на этот вопрос моделированием движения, решая систему описывающих его дифференциальных уравнений численным методом Эйлера. Этот подход иллюстрирует документ е7-12.
Обратите внимание, что (как это принято в физических расчетах) операции происходят с размерными величинами. В результате моделирования получены траектория движения снаряда (зависимость высоты от расстояния по горизонтали), а также зависимость угла наклона траектории от расстояния по горизонтали. Как и следовало ожидать, траектория полета снаряда оказалась параболической.
7.13. Падение парашютиста
Рассмотрим значительно более сложный случай динамического движения: на высоте y0 из самолета выпрыгивает парашютист и в свободном полете падает вниз. Спустя 5 секунд он дергает кольцо парашюта и испытывает заметные перегрузки из-за раскрытия парашюта и резкого снижения скорости падения. Моделирование падения парашютиста основывается на решении нелинейной системы дифференциальных уравнений и требует учета сопротивления воздушной среды до и после открытия парашюта. Оно выполнено в документе е7-13.
В результате моделирования получены следующие зависимости: зависимость высоты парашютиста от времени, зависимость скорости и ускорения падения от времени и зависимость резкости (второй производной от скорости) падения от времени. Резкость падения характеризуют перегрузки, которые испытывает парашютист в полете. Они резко возрастают сразу после раскрытия парашюта, и это прекрасно известно всем, кто прыгал с парашютом. Если вас интересуют числовые данные величин, характеризующих падение парашютиста, выведите их в табличной форме.
Пакет 8. РАСЧЕТ ПАССИВНЫХ КОМПОНЕНТОВ ЭЛЕКТРО- И РАДИОСХЕМ
8.1. Расчет емкости различных объектов
Промышленность выпускает многие тысячи типов пассивных (т. е. не обладающих усилительными свойствами) компонентов электротехнических, радиотехнических и электронных устройств. Прежде всего это емкостные элементы (конденсаторы), индуктивные элементы (индукторы и катушки индуктивности) и линии передачи. Тем не менее разработчики таких устройств нередко вынуждены конструировать конденсаторы, индукторы и линии передачи самостоятельно.
Есть еще одно важное обстоятельство в пользу разработки пакетов применений для расчета таких элементов: они всегда содержатся в любом устройстве как паразитные параметры. Любой проводник, к примеру, имеет собственную емкость и индуктивность и часто ведет себя как линия передачи. Хотя эти параметры называются паразитными, их учет в ряде случаев принципиально важен. Пакеты применений по расчету емкости и индуктивности позволяют свести к минимуму поиск многочисленных формул для расчета этих параметров и провести нужные расчеты в считанные секунды.
Документ е8- 1 позволяет рассчитать емкость наиболее распространенных объектов -- шаров, дисков и проводников. Он содержит необходимые расчетные формулы и тестовые примеры. Для расчета емкости объекта достаточно подставить на место приведенных нужные значения исходных параметров для конкретного объекта.
В ряде случаев необходимо найти не емкость объекта саму по себе, а значение какого-либо конструктивного параметра, при котором емкость будет равна заданной величине. В документе е8-1 показан пример такого рода -- расчет расстояния между центрами двух шаров, при котором емкость конденсатора из двух шаров будет равна заданной величине. Для этого емкость следует задать как функцию заданного параметра и использовать для вычисления нужного параметра функцию поиска корня root.
Подобный подход достаточно универсален. Разумеется, нередко можно найти параметр из выражения для емкости путем простого аналитического преобразования этого выражения. Однако бывают случаи, когда такое преобразование слишком сложно или даже невозможно. Тогда применение численного метода вычисления становится предпочтительным; приведенный пример является хорошей иллюстрацией к сказанному.
8.2. Расчет емкости конденсаторов
Конденсаторы большой емкости обычно применяют готовыми (например, многослойные бумажные, керамические, пленочные или электролитические). В то же время конденсаторы малой емкости нередко проектируются разработчиком аппаратуры самостоятельно.
В документе е8-2 представлены формулы, позволяющие найти емкость семи наиболее распространенных конденсаторов: пластинчатого, дискового, трубчатого, сферического и в форме горшка. Представлены тестовые примеры расчета емкости.
Здесь, как и ранее, для расчета емкости под свои параметры достаточно подставить их на место исходных данных тестового примера, относящегося к соответствующему типу конденсатора.
8.3. Расчет индуктивности проводников и витков
Конструкции индуктивных элементов весьма разнообразны. Прежде всего следует различать два типа таких элементов -- без ферромагнитных сердечников и с ними. Конструкции индукторов для этих двух типов существенно различаются. Первые используются для изготовления индукторов с небольшой индуктивностью L, обычно примерно до 1 мГн, вторые — для индукторов с индуктивностью от долей мГн до единиц и даже десятков Гн.
Документ е8- 3 содержит формулы для расчета индуктивности отрезков провода (круглого и квадратного), витка из круглого провода и тонкопленочных круглого и квадратного витков. Знать их индуктивность необходимо и тогда, когда она является паразитной. Предполагается, что эти объекты находятся либо в свободном пространстве (или в воздухе), либо на достаточном удалении от других проводников или металлических предметов (например, шасси или экрана).
Тонкопленочные витки обычно создаются на поверхности диэлектрика. Предполагается, что магнитными свойствами он не обладает. Индуктивность сложных конструкций, например двух проводников различного диаметра, расположенных на одной линии, может быть просчитана суммированием индуктивности частей сложного объекта. Отсутствие в этом случае учета взаимной индуктивности может привести к заметной погрешности.
8.4. Расчет индуктивности катушек без сердечника
Индуктивности простейших элементов небольших размеров, что типично для электронных и радиотехнических устройств, обычно невелики и лежат в пределах от долей нГн примерно до 1 мкГн. Для увеличения индуктивности как правило используются многовитковые катушки.
Документ е8-4 служит для расчета индуктивности типовых многовитковых однослойных катушек индуктивности -- цилиндрической и квадратной стержневой конструкции и тороидальных с круглым и квадратным сечением тора.
Следует особо отметить, что в нашем случае тор должен быть изготовлен из немагнитного материала. Конструкции таких катушек используются довольно редко (по сравнению с тороидальными катушками на ферромагнитном торе -- они будут рассмотрены далее).
8.5. Расчет индуктивности тонкопленочных плоских катушек
Распространение печатной технологии изготовления электронных схем, а затем и микроэлектронной технологии привело к широкому применению тонкопленочных плоских катушек. Документ е8-5 обеспечивает расчет индуктивности таких катушек с круглой и квадратной формами витка спирали.
Для этих катушек часто бывает необходимо определить число витков w при заданной индуктивности L0 и заданных геометрических размерах катушки. Для этого достаточно записать выражение для индуктивности в виде L(w) и найти корень нелинейного уравнения L(w) - L0 = 0. Пример в конце документа рис. 8.5 иллюстрирует эту возможность.
8.6. Расчет индуктивности многослойных катушек
Для дальнейшего увеличения индуктивности приходится делать катушки многослойными и использовать ферромагнитные сердечники различного типа (как ферритовые, так и на основе металлических сплавов). Документ е8-6 позволяет рассчитать индуктивность наиболее распространенных катушек этого типа: тороидальных и цилиндрических, на П-образном, Ш-образном и броневом ферромагнитном сердечнике.
В конце документа приведен пример вычисления числа витков катушки на броневом сердечнике по заданной индуктивности L. Расчет выполняется численным методом с применением функции root.
8.7. Расчет проводных линий передачи
Линии передачи могут иметь различную конструкцию. В документе е8-7 приведены соотношения, позволяющие найти волновое сопротивление (основной параметр) для трех типов наиболее распространенных проводных линий передачи: коаксиальной линии в виде круглого проводника в центре круглого экрана, линии в виде круглого проводника, расположенного над проводящей плоскостью, и двухпроводной линии в виде двух круглых проводников одинакового диаметра, расположенных параллельно.
Здесь специально не рассмотрены "экзотические" типы линий, например коаксиальная со смещенным проводником или двухпроводная с квадратными проводниками или круглыми проводниками разного диаметра. Поскольку линии могут потребоваться с самым различным волновым сопротивлением, полезно иметь графические зависимости волнового сопротивления от какого-либо обобщенного параметра. Эти зависимости в документе е8-7 приведены для каждого из рассмотренных типов линий.
8.8. Расчет микрополосковой линии
Особое значение в связи с развитием печатного монтажа и созданием технологии тонкопленочных интегральных схем приобрели тонкопленочные линии передачи. Их конструкция очень проста: на диэлектрической пластине, покрытой с одной стороны металлической пленкой, с другой стороны располагается тонкая металлическая полоска. Расчет волнового сопротивления такой линии довольно сложен и ведется (в зависимости от сочетания параметров) по различным формулам [1, 2, 36].
В документе е8-8 представлена реализация этого расчета в среде системы MathCAD. Для перехода расчета от одной формулы к другой используется функция if с соответствующими условиями перехода. В начале документа определены (как функции пользователя) все необходимые для расчета вспомогательные формулы, после чего дается расчет волнового сопротивления Z0. В конце документа приведены графики зависимости волнового сопротивления микрополосковой линии от обобщенного параметра P для трех значений относительной диэлектрической проницаемости (она обозначена как E).
Пакет 9. РАСЧЕТ ЛИНЕЙНЫХ ЭЛЕКТРОННЫХ СХЕМ И СИСТЕМ
9.1. Расчеты простейших резисторных цепей
Линейные электронные, электротехнические и радиотехнические цепи имеют довольно развитый аппарат математического анализа. Поэтому большая часть задач по их расчету имеет аналитические решения. Мы начнем рассмотрение таких цепей с расчета элементарных резисторных цепей.
В документе е9-1 представлен расчет простейших резисторных цепей: последовательного и параллельного сопротивления резисторов, преобразования "звезды" в "треугольник" и наоборот, передачи энергии от источника постоянного тока в нагрузку-резистор.
График в конце этого документа иллюстрирует, как изменяются отдаваемая источником мощность в зависимости от потребляемой нагрузки и коэффициент полезного действия (КПД) в функции в зависимости от сопротивления нагрузки R. Отчетливо видно, что максимум мощности в нагрузке получается, если R
равно внутреннему сопротивлению источника постоянного напряжения r. При этом КПД составляет 0.5.
9.2. Расчет резистивных аттенюаторов
В электронных и радиотехнических устройствах широко применяются ослабители напряжения или мощности, называемые аттенюаторами. Важной при их проектировании является необходимость получения заданного входного Z0 и выходного Z1 сопротивлений. В документе е9-2 приведен расчет наиболее распространенных Т- и П-образных резисторных аттенюаторов по общеизвестным расчетным формулам [1, 2, 34].
В пп. 1 и 2 этого документа выполняется расчет ослабления (в децибелах), вносимого аттенюаторами с произвольными значениями резисторов и заданными Z0 и Z1. В пп. 3 и 4 выполнен расчет резисторов аттенюаторов под заданное безразмерное ослабление мощности N. При этом резисторы рассчитываются так, чтобы это ослабление получалось при заданном сопротивлении генератора RG и нагрузки RL.
9.3. Расчет импеданса RC- и RLC-цепей
Под импедансом понимается комплексное сопротивление цепей. В документе е9-3 представлен расчет импеданса для последовательно включенных резистора и конденсатора (RC-цепь), а также для последовательного включения R, L и C (RLC-цепь или последовательный колебательный контур).
Зависимости модуля и аргумента для импеданса Z(f)
последовательной RC-цепи носят монотонный характер. Начальный фазовый сдвиг равен p/2 и стремится к 0 при росте w. Входной импеданс на низких частотах имеет емкостной характер и резко возрастает при w, стремящемся к 0. На высоких частотах емкостная составляющая уменьшается и импеданс приближается к значению R.
Импеданс RLC-цепи имеет на некоторой частоте f0 минимальное значение (равное R). На этой частоте он имеет только действительную компоненту, поскольку фазовый сдвиг, создаваемый конденсатором, полностью компенсируется фазовым сдвигом катушки индуктивности. Такой случай описывает явление резонанса в последовательной RLC-цепи. Оно широко используется в практике для получения избирательных свойств. При малых R резонанс может привести к резкому уменьшению импеданса цепи и возрастанию тока в ней, если она подключена к источнику переменного синусоидального напряжения. При этом напряжение на C и L
могут многократно превосходить напряжения источника входного сигнала.
9.4. Расчет АЧХ и ФЧХ моста Винна — Робинсона
RC-цепи часто рассматриваются как четырехполюсники. При этом они характеризуются двумя важными параметрами: амплитудно-частотной характеристикой (АЧХ) и фазо-частотной (ФЧХ). Они являются зависимостью модуля коэффициента передачи цепи и вносимого ею фазового сдвига от частоты f источника входного гармонического сигнала.
Для большого числа RC-схем для АЧХ и ФЧХ получены аналитические зависимости, так что расчет этих характеристик сводится просто к определению нужных функций пользователя по известным математическим выражениям. В документе е9-4 представлен расчет АЧХ и ФЧХ моста Винна — Робинсона, широко применяемого для построения избирательных усилителей и RC
— генераторов синусоидальных колебаний.
Как видно из графика АЧХ моста Винна — Робинсона, коэффициент передачи этой цепи на некоторой частоте (w0 = 1/RC) обращается в нуль, а фазовый сдвиг имеет скачок от -p/2 до +p/2. Таким образом, эта цепь может использоваться для ослабления частот сигнала, близких к w0.
9.5. Расчет каскадов на биполярных транзисторах
В электронных и радиотехнических схемах важнейшее место занимают активные приборы, обладающие усилительными свойствами. Это электронные лампы, биполярные и полевые транзисторы, туннельные диоды и т. д. Усиление достигается путем преобразования энергии источников электропитания (обычно постоянного тока) в выходной сигнал под управлением входного сигнала.
Активные приборы -- устройства принципиально нелинейные. Однако если усиливаются малые сигналы, устройства для их усиления (усилители) можно считать линейными устройствами. Особенно распространены усилители на биполярных транзисторах. Три схемы включения их в усилительном режиме (с общей базой, общим эмиттером и общим коллектором) настолько общеизвестны, что мы не будем приводить их, полагая, что заинтересованный в расчете таких устройств читатель знает эти схемы. Речь идет об обобщенных схемах, в которых содержится единственный резистор на входе Rg и на выходе Rl (они учитывают сопротивление генератора и сопротивление нагрузки).
Для каждой из схем определяются следующие малосигнальные параметры для области средних частот:
n входное сопротивление Rin;
n выходное сопротивление Rout;
n коэффициент передачи по току Ki (отношение тока в нагрузке к току на входе);
n коэффициент усиления собственно каскада по напряжению Ku
(отношение напряжения на выходе к напряжению на входных зажимах);
n сквозной коэффициент усиления по напряжению Ke
(отношение напряжения на выходе к напряжению источника входного сигнала, Ke
В документе е9-5 даны формулы и примеры расчета усилительных каскадов на биполярных транзисторах.
9.6. Преобразование Лапласа
Среди методов расчета электрических цепей важное место принадлежит операторному методу [20]. При этом расчеты ведутся с применением оператора Лапласа p = iw (или s = iw), где i — мнимая единица, а w -- круговая частота. Операторные выражения существенно упрощают расчеты. Однако они требуют перехода от временных функций к операторным. Расчет выполняется с помощью преобразования Лапласа, при котором временная функция F(t) превращается в операторную F(p).
В документе е9-6 представлен интеграл, дающий преобразование Лапласа. Он не очень удобен для вычислений, поскольку содержит бесконечный верхний предел. Однако если F(t) становится нулевой при t>tmax, за бесконечность можно принять любое значение времени, т. е. задать inf>tmax.
В конце документа показан график преобразованной функции Хевисайда с нанесенными на него точками, полученными в результате расчета операторной функции по интегралу преобразования Лапласа. Сравнение точного решения с приближенным указывает на их близость.
9.7. Применение Z-преобразования
В некоторых случаях для расчета линейных систем используют так называемое z-преобразование. Не вникая в его тонкости, описанные в [35], рассмотрим важное применение такого преобразования -- расчет АЧХ и ФЧХ линейных систем, описанных z-функцией f(z). Оно дано в документе е9-7.
Построение зависимости фазового сдвига от частоты w
в данном примере затруднено тем, что фазовый сдвиг может быть большим. Если он достигает величины p, то линия, описывающая зависимость фазы от частоты, испытывает скачок на величину 2p. Не следует путать эту погрешность представления фазы с ее реальным скачком (возможным в некоторых схемах, см. приведенный ранее пример на построение АЧХ и ФЧХ моста Винна — Робинсона).
9.8. Вычисление характеристик системы по ее операторной функции
Если схема описана операторной функцией, по ней можно вычислить важнейшие характеристики линейной системы: АЧХ, ФЧХ и переходную характеристику (т. е. реакцию системы во времени на единичный скачок напряжения или тока на ее входе). Для вычисления АЧХ и ФЧХ достаточно заменить оператор p на величину iw, тогда модуль полученного выражения будет описывать АЧХ, а аргумент -- ФЧХ.
Построение АЧХ и ФЧХ для системы второго порядка, описанной операторной функцией, дано в документе е9-8. В нем представлено также построение по операторной функции передаточной характеристики системы. Для каждого значения времени t эта характеристика определяется интегралом с бесконечным пределом интегрирования:
?
2 ?
h(t) = -- ¦ (Re(y(jw)sin(wt)/w)dw
p ?
0
К счастью, у всех реальных систем АЧХ на высоких частотах имеет спад и при больших w>wmax принимает близкие к нулю значения. В нашем примере это происходит уже при w>5, что позволяет заменить бесконечный предел интегрирования на конечный.
Вычисление h(t) в документе е9-8 выполнено по этому алгоритму. Число 0.637 перед знаком интеграла есть значение 2/p. Рядом с графиком h(t)
выведена таблица времен t и значений h(t). Анализируемая цепь является цепью 2-го порядка и имеет специфические признаки заметно демпфированной цепи 2-го порядка -- характерный подъем АЧХ на некоторой частоте и переходную характеристику с небольшим выбросом.
9.9. Расчет АЧХ и ФЧХ линейной цепи по ее переходной характеристике
Выше был описан алгоритм построения переходной характеристики по ее АЧХ и ФЧХ. Однако на практике может встретиться обратная задача -- построения АЧХ и ФЧХ по переходной характеристике. Эта задача решаема для цепей с неминимально-фазовыми характеристиками, к которым относится подавляющее большинство реальных электронных цепей (за исключением мостовых).
Здесь уместно отметить, что переходная характеристика снимается экспериментально очень легко -- достаточно подать на вход системы скачок с малой длительностью фронта и получить с помощью осциллографа реакцию системы на этот скачок. Впрочем, для быстродействующих электронных и радиотехнических систем это приходится порою делать с помощью уникальной широкополосной аппаратуры; например, используя для наблюдения дорогой стробоскопический осциллограф, способный регистрировать субнаносекундные процессы.
Тем не менее это проще, чем снимать АЧХ и ФЧХ в широком диапазоне частот. Тут требуется целый набор измерительных генераторов синусоидального напряжения, вольтметров и измерителей фазы. Все измерения приходится делать по точкам, меняя эти приборы. Автоматизированные измерители АЧХ и ФЧХ существуют, но это крайне дорогие и редкие приборы (даже в сравнении со стробоскопическими осциллографами).
Все это делает практически полезным расчет АЧХ и ФЧХ по переходной характеристике системы h(t) или a(t) -- в литературе встречаются оба обозначения. В документе е9-9 представлена реализация эффективного численного алгоритма решения этой задачи (см. [6, 8]).
Как и следовало ожидать, для нашей системы 2-го порядка АЧХ имеет характерный подъем на высоких частотах, переходящий затем в спад. Фазовые углы ФЧХ определены в области от -p/2 до +p/2, так что скачок фазы на графике в этом документе связан с выходом ее за этот отрезок (а не с реальным скачком фазы).
9.10. Частотный анализ системы 2-го порядка
В теории автоматических устройств АЧХ и ФЧХ линейных систем часто отображают в логарифмическом масштабе частот, что позволяет лучше выявить некоторые закономерности поведения системы [35]. Например, на логарифмической АЧХ (ЛАЧХ) отчетливо видны характерные частоты, начиная с которых происходит спад коэффициента передачи системы в области высоких частот. Если система содержит несколько звеньев, ослабляющих высокие частоты, таких частот (и перегибов ЛАЧХ) может быть несколько.
Документ е9-10 является переработкой демонстрационного файла системы MathCAD. Он строит логарифмические АЧХ и ФЧХ системы 2-го порядка, заданной ее операторной функцией f(s). Графики АЧХ в двойном логарифмическом масштабе и ФЧХ в полулогарифмическом масштабе также представлены в этом документе. Из них можно сделать вывод, что такая система сильно демпфирована и потому не содержит подъема АЧХ в области высоких частот.
Поведение таких систем удобно оценивать и так называемыми диаграммами Боде, они дают представление о комплексном коэффициенте передачи на комплексной плоскости. При этом строится годограф системы -- геометрическое место точек комплексного коэффициента передачи. Построение годографа также показано в конце документа е9-10. По виду годографа и его положению относительно точки (1, 0) на комплексной плоскости можно судить о поведении системы и о ее устойчивости.
9.11. Расчет отклика системы с помощью интеграла Дюамеля
Перейдем к обсуждению несколько более сложного и практически важного вопроса -- о нахождении реакции системы с заданной переходной характеристикой a(t) на заданное входное воздействие (в виде также временной функции). Существует ряд способов вычисления реакции системы при этих условиях. Один из них -- применение интеграла Дюамеля (интеграла свертки или интеграла суперпозиции).
В задачу данной книги не входит рассмотрение теоретического обоснования этого метода -- его легко найти в соответствующей литературе [7, 20]. В документе е9-11 представлено решение подобной задачи для довольно часто встречающегося случая — вычисление реакции линейной интегрирующей RC на воздействие в виде двухэкспоненциального импульса. Такой импульс имеет участок быстрого нарастания напряжения u(t) и участок более медленного спада.
В этом документе представлены две формы интеграла Дюамеля (вообще же их четыре). Отличаются они тем, к какой из функций — a(t)
или u(t) — применяется операция вычисления производной. В нашем случае это безразлично, поскольку обе функции достаточно просты и обе формы интеграла дают идентичные результаты.
Для ускорения построения реакции y(t)
можно воспользоваться численным методом вычисления производной одной из функций -- a(t) или u(t). При этом из подынтегрального выражения на каждом интервале вычислений исчезает вычисление производной, что значительно ускоряет общие вычисления. Реализация такого приема дана в конце документа. Там же построены графики функций a(t), u(t) и реакции y(t). Можно заметить, что график y(t) похож на график входного воздействия u(t). Однако зависимость y(t) задержана относительно u(t) и наблюдается заметное уменьшение амплитуды выходного импульса относительно амплитуды входного импульса, а также возрастание времени роста y(t) до максимального значения. Эти искажения естественны для интегрирующей RC-цепи.
9.12. Свертка с помощью БПФ
Операция свертки, осуществляемая интегралом Дюамеля, может производиться и с помощью быстрого преобразования Фурье. Этот известный теоретикам алгоритм для практиков является довольно "экзотическим", поскольку БПФ достаточно сложная операция [31]. Однако, поскольку средства БПФ включены в систему MathCAD, мы рассмотрим и эту возможность.
Ее реализация представлена в документе е9-12. Речь идет о вычислении реакции линейной системы C(t) с переходной характеристикой h(t)
на входное воздействие p(t). Тут передаточная характеристика задана смещенным скачком (с 1 на 0), а входной сигнал -- линейно нарастающим перепадом. Операцию свертки осуществляет функция conv, введенная как функция пользователя.
Хотя по наглядности метод свертки с применением БПФ уступает рассмотренному выше методу с применением интеграла Дюамеля, можно констатировать обширные возможности БПФ в решении различных прикладных задач.
9.13. Расчет отклика системы на воздействие, заданное таблично
Расчет отклика линейной системы с произвольной формой переходной характеристики на произвольно заданное входное воздействие -- задача достаточно сложная. Ее решение облегчается, если передаточная характеристика и входное воздействие заданы в табличном виде, т. е. в виде ряда значений a(t) и u(t)
для фиксированных моментов времени t
на отрезке T. Наличие в системе MathCAD эффективного аппарата сплайн-интерполяции табличных данных позволяет с блеском решить такую задачу.
Документ е9-13 иллюстрирует сказанное. Векторы A
и U в нем задают узловые точки зависимостей a(t) и u(t) на отрезке времени T. Эти векторы должны быть одинаковой длины, а их элементы должны относиться к соответствующим одинаковым моментам времени. Далее проводится сплайн-интерполяция (с линейной экстраполяцией) зависимостей a(t) и u(t), что позволяет получить эти зависимости в непрерывном виде и использовать в интеграле свертки для вычисления реакции y(t).
Табличное задание u(t) облегчает вычисление производной u'(t) в численном виде, что, в свою очередь, ускоряет вычисления. Обратите внимание, что здесь u' -- имя функции пользователя, вычисляющей значение производной численным методом. В конце рис. 9.13 построены графические зависимости a(t), u(t) и y(t).
9.14. Моделирование реакции RC-цепи
Реакция цепи на заданное воздействие может быть вычислена также на основании решения дифференциального уравнения или системы дифференциальных уравнений, описывающих работу цепи. Здесь мы рассмотрим вычисление реакции интегрирующей RC-цепи на входное воздействие e(t) в виде одиночного треугольного импульса. Она определяется решением дифференциального уравнения первого порядка:
RC

Если перейти к безразмерному времени (t/RC), положив RC=1, то уравнение заметно упрощается и принимает вид:

Решение этого уравнения возможно методом Рунге — Кутта, который не очень прост в реализации. Однако для одного уравнения можно исключить отдельное вычисление коэффициентов K1 и K2 и получить единственную формулу для вычислений. На ее основе и составлен документ е9-14.
В этом документе показаны ( в виде графиков) временные зависимости входного воздействия и напряжений на емкости C
и резисторе R (в относительных единицах по отношению к амплитуде входного сигнала).
Пакет 10. РАСЧЕТ И МОДЕЛИРОВАНИЕ НЕЛИНЕЙНЫХ ЦЕПЕЙ
10.1. Моделирование логических функций
В электротехнических и радиотехнических приложениях важное место занимают нелинейные цепи и системы. Отклик таких систем на заданное воздействие зависит от уровня самого воздействия. Принцип суперпозиции (основа многих методов расчета, например спектральных) для нелинейных цепей не соблюдается. Эти цепи описываются нелинейными дифференциальными или интегрально-дифференциальными уравнениями, в большинстве случаев не имеющими аналитического решения. Все это делает численные методы расчета и моделирования таких цепей не только полезными, но и жизненно необходимыми.
Мы постепенно рассмотрим практическую реализацию этих методов в системе MathCAD. Однако надо прямо отметить одно важное обстоятельство: вряд ли разумно (хотя и возможно) применять MathCAD для расчета и моделирования электронных схем даже умеренной сложности. Для этого существуют мощные специализированные программные системы, такие, как MicroCAP, PSPICE, NAP-2, PCAD и др., которые позволяют автоматизировать ввод в таблично-топологическом или даже в графическом виде, составление и решение сложных систем дифференциальных или конечно-разностных уравнений, описывающих работу схем, вывод результатов расчетов (временных зависимостей, АЧХ, ФЧХ, спектрограмм и т. д.) в прекрасно оформленном графическом виде.
MathCAD полезна прежде всего на этапе составления моделей таких схем. Она позволяет эффектно, наглядно и быстро подобрать необходимые расчетные выражения, проверить их и сравнить друг с другом (что, кстати, не позволяют выполнить специализированные программы моделирования электронных схем). MathCAD удобно применять для моделирования простейших схем, когда решающим фактором являются не столько результаты моделирования, сколько наглядная иллюстрация математических методов и алгоритмов, по которым оно проводится.
Система MathCAD идеальна для подбора математического аппарата приближения временных зависимостей входных воздействий, подбора формул для аппроксимации нелинейных вольт-амперных и других характеристик нелинейных цепей и т. д. Она весьма полезна для моделирования схем на новых типах приборов (моделей которых нет в специализированных программах) и схем специального применения. Именно из этих соображений подобран материал настоящей главы.
Начнем с моделирования логических функций, которых, как ни странно (если учесть, что они есть в любом языке программирования, даже в Бейсике), нет в системе MathCAD. Однако эти функции очень легко моделируются с помощью функции Хевисайда -- формирования единичного скачка, если ее аргумент больше 0 и формирования нулевого значения, если аргумент a
равен нулю или отрицателен.
В документе е10-1 определены четыре важнейшие логические функции: отрицания not(a), логического умножения and(a, b), логического сложения or(a, b) и "исключающая ИЛИ" xor(a, b). Эти функции содержат параметры a и b
(функция not — один параметр), которые имеют логическое значение 0 (ДА), если численное значение параметра меньше 0.5, и логическое значение 1, если численное значение параметра больше 0.5.
Помимо моделирования логических функций документ е10-1 иллюстрирует моделирование нелинейной системы -- логического анализатора, использующего логическую функцию and. Входные сигналы здесь моделируются с помощью генератора случайных чисел с формой, близкой к реальной (они имеют линейно нарастающие участки роста и спада). Выходной сигнал дает реакцию анализатора на два входных сигнала.
10.2. Моделирование сигналов с помощью элементарных функций
Как и при анализе линейных цепей, анализ и моделирование нелинейных цепей часто сводятся к вычислению отклика цепи на заданное входное воздействие. Оно обычно представляется периодической временной зависимостью, например синусоидальной или в виде меандра. Для моделирования входных воздействий используются самые различные методы. При этом разработчики моделирующих программ нередко забывают, что комбинации элементарных функций порою позволяют предельно просто промоделировать периодические сигналы большинства из наиболее распространенных форм.
В документе е10- 2 даны примеры моделирования для шести сигналов: синусоидального, синусоидального с плавно ограниченными верхушками, синусоидального со ступеньками при переходе через нуль, меандра, треугольного и пилообразного напряжений. Во всех случаях используется всего одна или две элементарные функции, а для создания меандра – логическая функция if.
Можно лишь удивляться, что многие сигналы особой формы (кроме синусоиды и меандра) легко моделируются с помощью общеизвестных элементарных функций. Другие способы моделирования (с применением более сложных функций) также могут быть полезны, но они куда менее изящны, чем приведенные выше.
10.3. Статический анализ простейших нелинейных цепей
Статический анализ нелинейных цепей означает нахождение постоянных напряжений и токов в этих цепях в стационарном режиме их работы. К сожалению, за редчайшим исключением, даже для простейших цепей такой анализ невыполним аналитическими методами. Инженеры-электронщики предпочитают использовать довольно наглядные, но весьма неточные графические методы или довольно точные (но мало наглядные) численные методы. Система MathCAD позволяет реализовать оба подхода, что делает анализ весьма наглядным.
Мы рассмотрим такой подход при решении простейшей задачи -- вычисление напряжения на полупроводниковом диоде, который соединен последовательно с резистором R и источником постоянного напряжения E. Документ е10-3 содержит решение двух задач — вычисление напряжения на обычном полупроводниковом диоде с однозначной по напряжению вольт-амперной характеристикой (ВАХ) и на туннельном диоде с многозначной по напряжению N-образной ВАХ.
При рассмотрении первой задачи надо обратить внимание на естественность решения как в численном виде с помощью функции Find, решающей нелинейное уравнение статического режима, так и на решение графическим методом. Как это общепринято, графическое решение находится построением на одном графике нелинейной ВАХ и прямой линии нагрузки, наклон которой задается значением R. Точка их пересечения и есть решение задачи. Для ВАХ классической диодной формы решение всегда является единственным.
Менее тривиальным является решение для туннельного диода, N-образная ВАХ которого неоднозначна по напряжению. В документе е10-4 (задача 2) показан случай, когда ВАХ туннельного диода пересекается линией нагрузки сразу в трех точках. Две из них (на участках с положительным наклоном) устойчивы, так что цепь может работать в триггерном режиме (как известно, триггер -- это электронное устройство с двумя состояниями устойчивого равновесия). Третье состояние неустойчиво.
С помощью функции root в конце документа найдены все три напряжения, соответствующие трем точкам пересечения ВАХ нагрузочной прямой. Начальные значения напряжения V (они нужны для инициирования поиска корня с помощью функции root) взяты из грубого графического решения задачи.
10.4. Построение характеристик мощных полевых транзисторов
К самым распространенным активным приборам нелинейных схем относятся биполярные и полевые транзисторы. Они являются трехполюсными управляемыми приборами и имеют управляемые ВАХ. Поэтому их ВАХ описываются (в отличие от диодов) целым семейством характеристик. Для примера остановимся на перспективных мощных полевых транзисторах. Они имеют вольт-амперные характеристики вида I(UG, UC), где I — ток стока, UG -- напряжение на затворе (исток считаем заземленным) и UC -- напряжение на стоке.
Документ е10-4 иллюстрирует построение семейства ВАХ мощного полевого МДП--транзистора КП901 на основе аппроксимации семейства ВАХ аналитическим выражением, приведенным в [37]. Помимо семейства ВАХ строится и статическая передаточная характеристика -- зависимость тока стока от напряжения на затворе при постоянном напряжении на стоке (в нашем примере — 30 В).
Вторая часть документа строит семейство ВАХ и передаточную характеристику для другого класса этих приборов -- так называемых V-МДП-транзисторов с вертикальным каналом типа КП912. Здесь используются другие формулы аппроксимации, а в остальном задача решается так же, как и для приборов КП901.
10.5. Расчет сквозной динамической характеристики каскада на мощном полевом транзисторе
Теперь предположим, что мощный МДП--транзистор находится в составе каскада -- его сток через резистор RC подключен к источнику постоянного напряжения EC, а на затвор подано медленно изменяющееся напряжение UG. Требуется построить сквозную динамическую передаточную характеристику такого каскада, т. е. зависимость напряжения на стоке от напряжения на затворе.
Это гораздо более сложная задача, чем построение статических ВАХ и передаточных характеристик, которые строятся для неизменных напряжений на стоке и затворе. Тут изменение напряжения на затворе меняет ток стока и (из-за падения напряжения на резисторе RC) напряжение на стоке. В итоге ток стока можно определить, только используя графические или численные (итерационные) методы.
Верхняя часть документа е10-5 иллюстрирует построение семейства статических ВАХ и линии нагрузки резистора RC на одном графике. Фактически это и есть решение задачи в графическом виде. Для каждой кривой ВАХ (с соответствующим UG) можно найти UC в точке пересечения кривой с линией нагрузки. Это придется сделать для всех кривых, с тем чтобы получить достаточное число точек зависимости UC(UG).
Вторая часть документа е10-5 показывает решение задачи численным методом. В заключение строится передаточная характеристика каскада. Видно, что она нелинейна. Если подать на вход каскада синусоидальный сигнал с постоянным смещением, получим усилитель гармонических сигналов. Из-за нелинейности передаточной характеристики такой усилитель вносит нелинейные искажения. Ранее рассмотренный документ е6-4 позволяет по заданной передаточной характеристике провести спектральный анализ выходного напряжения, рассчитать амплитуду первой и трех высших гармоник, а также коэффициента нелинейных искажений.
10.6. Расчет диодного выпрямителя
Для построения источников электропитания от сети переменного тока широко используются диодные выпрямители -- от простейшего однополупериодного до мостового и многофазных диодных выпрямителей. Их расчет достаточно сложен, поскольку при работе выпрямителя на сглаживающий конденсатор фильтра диоды выпрямителей открыты лишь на часть рабочего полупериода, причем она характеризуется углом отсечки Q. Вычисление угла отсечки возможно только численным методом. Соответствующие расчеты даны в документе е10-6.
В начале документа заданы исходные данные и выполнен расчет угла отсечки (в радианах). Затем задан ряд вспомогательных функций, реализующих расчет выпрямителя хорошо известным методом Терентьева. Расчет завершатся вычислением напряжений и токов силового трансформатора и емкости конденсатора фильтра (по заданному коэффициенту пульсаций Kp). Такой расчет представляет собой пример полностью завершенного расчета достаточно распространенного нелинейного устройства, каким является диодный выпрямитель.
10.7. Моделирование реакции нелинейной системы на гармоническое воздействие
Пусть нелинейная цепь с передаточной характеристикой вида y(x), где x и y могут быть различными величинами (например, токами или напряжениями для электронных схем), находится под воздействием гармонического сигнала. Надо вычислить временную реакцию цепи, т. е. временную зависимость выходного сигнала y(t). Численный метод вычисления реакции описан в [1, 2] и основан на спектральном подходе.
Этот метод реализует документ е10-7. Данные о передаточной характеристике представлены в виде двух векторов X
и Y, элементы которых несут значения функции y(x). Для получения плавной зависимости y(x)
используется сплайн-интерполяция совместно с параболической экстраполяцией.
В результате вычислений по заданной постоянной составляющей воздействия X0, амплитуде переменной составляющей Xm и числу интервалов разбивки рабочей области передаточной характеристики N вычисляются амплитуды m гармоник и коэффициент гармоник Kg. В конце документа выведена таблица амплитуд гармоник и построены передаточная характеристика и временная зависимость реакции системы. На ней отчетливо видно заметное обрезание верхней части выходного напряжения, обусловленное нелинейностью передаточной характеристики.
10.8. Моделирование нелинейной RC-цепи
Моделирование нелинейных RC-цепей чаще всего реализуется решением дифференциального уравнения, описывающего работу цепи. Документ е10-8 обеспечивает моделирование нелинейной интегрирующей цепи простейшим методом решения дифференциальных уравнений — методом Эйлера. При большом числе точек (50--100) этот метод дает вполне приемлемую в практике погрешность вычислений, а его простота позволяет провести моделирование достаточно быстро. В конце документа приведены графики входного воздействия и реакции цепи.
10.9. Моделирование генератора гармонических колебаний на туннельном диоде
Пусть туннельный диод подключен к источнику постоянного напряжения E через последовательно соединенные резистор R и индуктор L. Пусть далее R и E выбраны так, что рабочая точка туннельного диода находится на падающем участке N-образной ВАХ туннельного диода. Это обстоятельство принципиально важно, поскольку дифференциальная малосигнальная проводимость туннельного диода тогда является отрицательной. Физически это означает, что туннельный диод отдает энергию во внешнюю цепь.
Если учесть емкость C туннельного диода (совместно с емкостью монтажа и нагрузочной емкостью), такая схема будет описываться следующей системой нелинейных дифференциальных уравнений [6, 8]:


Нелинейность этой системы обусловлена тем, что во втором уравнении ток туннельного диода I(u) нелинейно зависит от напряжения на нем и емкости C -- u. Зависимость I(u) есть N-образная вольт-амперная характеристика туннельного диода.
Документ е10-9 позволяет рассчитать переходные процессы при включении рассмотренной схемы таблично заданной N-образной ВАХ туннельного диода. Она
задается своими табличными значениями -- элементами векторов U и I. N-образная ВАХ получается сплайн-интерполяцией с кубической экстраполяцией. Решение системы дифференциальных уравнений обеспечивается методом Эйлера.
Результаты моделирования в этом документе представлены в двух формах. Первая имеет вид фазового портрета -- положение каждой точки решения отмечается на графике в плоскости ВАХ. Для чисто гармонических колебаний предельный цикл колебаний на фазовой плоскости должен иметь форму эллипса. Его отличие от эллипса небольшое, что, с одной стороны, говорит о заметном влиянии нелинейности, а с другой -- о почти гармоническом характере колебаний. Вторая форма -- временные зависимости напряжения на туннельном диоде и тока в цепи резистора R. Эти зависимости близки к гармоническим.
Следует отметить, что область применения документа е10-9 неизмеримо шире, чем моделирование конкретной схемы генератора на туннельном диоде. Практически с его помощью можно моделировать основную цепь на любом приборе с N- или L-образной ВАХ (например, индуктивный релаксатор на лавинном транзисторе, генераторы на N- и L-диодах и транзисторах, их аналогах и т. д.). Достаточно лишь задать данные их ВАХ и соответствующие исходные данные. Это относится и к двум следующим документам.
10.10. Моделирование цепи с туннельным диодом в режиме релаксационных автоколебаний
Документ е10-10 почти ничем не отличается от документа е10-9. Отличие лишь в большем значении индуктивности L и меньшем значении емкости C. Этих отличий, однако, достаточно для существенного изменения режима работы цепи.
Колебания теперь возникают более резко, фазовый портрет начинается сразу с предельного цикла, форма которого резко отличается от эллиптической. Соответственно, сильно отличаются от гармонической и форма напряжения на туннельном диоде, и форма тока, текущего через резистор R. Колебания при этом относятся к типу релаксационных и возникают сами по себе, без какого-либо внешнего воздействия. Практически после первого цикла колебаний устанавливается их стационарный режим.
10.11. Моделирование ждущего релаксатора на туннельном диоде
Еще более интересные результаты можно получить, используя импульсное питание цепи на туннельном диоде. Тут напряжение питания можно задать зависимостью ei(t) в виде прямоугольного импульса, наложенного на постоянное напряжение -- пьедестал. Напряжение выбирается так, что рабочая точка попадает на первую восходящую ветвь N-образной ВАХ и оказывается стабильной. При этом цепь устойчива и колебания не генерируются. При появлении импульса рабочая точка попадает на падающий участок, и развивается процесс генерации одного полного цикла колебаний. Цепь, таким образом, выполняет функции ждущего релаксационного генератора. Он формирует импульс на выходе только после его запуска входным (запускающим) импульсом.
Документ е10- 11 иллюстрирует моделирование ждущего релаксатора на туннельном диоде (или ином приборе с N-образной ВАХ). Нетрудно заметить, что форма одного периода колебаний в ждущем релаксаторе практически аналогична форме колебаний у автоколебательного релаксатора.
Приведенные выше примеры наглядно показывают, что даже незначительное изменение параметров одной и той же цепи на туннельном диоде способно резко (и даже качественно) изменить режимы ее работы. При этом цепь может выполнять практически любую функцию электронного устройства: нелинейного преобразователя, усилителя и генератора гармонических колебаний, автоколебательного и ждущего релаксатора и двухстабильного устройства -- триггера.
Заключение
Итак, мы довольно полно рассмотрели новейшую универсальную математическую систему MathCAD PLUS 6.0 PRO. Приведенные данные убедительно свидетельствуют, что эта система достигла весьма высокого уровня развития: самые изысканные математические возможности здесь сочетаются с естественным и удобным пользовательским интерфейсом и богатыми возможностями графики.
Означает ли это, что предыдущие версии системы (начиная с версии MathCAD 3.0) потеряли свое значение? Вероятно, нет, по крайней мере до тех пор, пока все еще много пользователей имеют доступ лишь к персональным компьютерам с ОЗУ емкостью менее 8 Мбайт. Для многих их них возможности профессиональной версии MathCAD PLUS 6.0 PRO явно избыточны, и их вполне удовлетворит работа с версиями MathCAD 3.0 или 4.0.
Хотелось бы высказать одно важное пожелание разработчикам системы MathCAD. Было бы очень полезно, чтобы все функции (а не только избранные) символьного ядра системы были доступны, например, с помощью тех же команд, которые содержит система Maple V R3/R4. Эту возможность можно было бы ввести в состав весьма удачно реализованных программных блоков. Трудно даже представить, насколько тогда возросли бы возможности системы MathCAD, она превратилась бы в одну из самых мощных систем компьютерной алгебры, сохранив свой уникальный математически ориентированный пользовательский интерфейс.
К сожалению, в отличие от самих версий системы MathCAD электронные книги для новой версии системы (PLUS 6.0 PRO) с примерами ее применения у нас крайне дефицитны и мало распространены. А на русском языке их пока практически нет.
Между тем пользователь системы нуждается не только в учебных примерах работы с системой и в знакомстве с ее пользовательским интерфейсом и набором операторов и функций (чему посвящена большая часть настоящей книги), но и в примерах решения реальных и массовых математических и иных задач. Этих примеров все еще явно недостаточно в существующей литературе по системе MathCAD. Заключительная глава этой книги частично устраняет этот пробел. Однако, разработка новых пакетов применений MathCAD и электронных книг остается одной из важнейших задач внедрения систем MathCAD в практику учебных и научно-технических расчетов.
ГГлава 2. РАБОТА С ФАЙЛАМИ
2.1. Опция File главного меню
Опция File (Файл) главного меню служит для работы с файлами документов. Файлом называют имеющую имя упорядоченную совокупность данных или кодов программ, размещенную на том или ином носителе. Как уже отмечалось, файлы документов в MathCAD имеют расширение .mcd, которое указывается сразу после имени файла. Такие файлы имеют текстовый формат и их легко прочитать и модифицировать любым текстовым редактором.
Файлы документов содержат полный текст программы, выводящей документ в окно редактирования, с указаниями координат расположения блоков, фактического содержания и характера выполняемых операций, форматов предоставления информации и т. д. Таким образом, файл является, по сути, программой, записанной на внутреннем языке программирования системы. Файлы могут содержать и результаты вычислений. Предусмотрена возможность записи документов и в особом формате RTF, созданном для хранения сложных многокомпонентных данных (содержащих тексты и графики).
Важно отметить, что даже при записи документов со сложными рисунками используется не запись их BitMap-копии, а именно программы вывода документа. Поэтому файлы с расширением .mcd невелики по размеру и их легко передавать по современным средствам телекоммуникаций, например по сети Internet.
Помимо обычных операций по работе с файлами (их запись на диск и загрузка с диска) предусмотрены возможности распечатки документов принтерами различного типа. Если сделать опцию File (Файл)
главного меню активной, появится ниспадающее меню (см. рис. 2.1).
Рис. 2.1. Ниспадающее меню опции File
Оно содержит ряд команд, разбитых на группы. В первую группу входят следующие операции по работе с файлами документов:
New (Создать [F7]) -- открыть окно для нового документа;
Open... (Открыть... [F5]) -- открыть существующий документ;
Save (Сохранить [F6]) -- сохранить на диске текущий документ;
Save as... (Сохранить как...) -- сохранить на диске текущий документ под новым именем или путем доступа;
Export Worksheet... (Экспорт...) -- сохранить рабочий документ в формате RTF;
Insert... (Вставить документ...) -- вставить в документ новый фрагмент с диска;
Close (Закрыть [Ctrl + F4]) -- закрыть документ.
Вторая группа команд служит для работы с телекоммуникационными средствами:
Open URL... (Интернет...) -- открыть документ Mathcad, доступный через Интернет;
Get From Notes... (Получить из Notes...) -- открыть документ Mathcad, хранящийся в базе данных Lotus Notes;
Save In Notes... (Сохранить в Notes...) -- сохранить документ Mathcad в существующей базе данных Lotus Notes;
Mail... (Послать почту...) -- отправить текущий документ по электронной почте.
Третья группа команд относится к так называемым файлам конфигурации системы. Это особые файлы, хранящие данные о текущей конфигурации системы, например о режимах ее работы, форматах представления чисел и графиков и т. д. Если пользователь намерен изменить конфигурацию системы, он должен изменить основной конфигурационный файл либо создать новый с новыми установками конфигурации. Для этого и служат команды, назначение которых более подробно будет описано ниже:
Save Configuration... (Сохранить конфигурацию...) -- записать текущую конфигурацию среды MathCAD в файл конфигурации;
Execute configuration file... (Применить конфигурацию...) -- выполнить файл конфигурации.
Четвертая группа представлена одной операцией:
Associate Filename... (Присоединить к файлу...) -- связать выделенную переменную с файлом данных.
Пятая группа содержит три команды, относящиеся к печати документов принтером:
Page Setup... (Параметры страницы...) -- установить левый и правый отступы на странице;
Print Preview... (Просмотр...) -- предварительно просмотреть документ перед печатью;
Print document... (Печать... [Ctrl + O]) -- распечатать документ.
Последняя из этих операций позволяет распечатать весь текст документа с комментариями, математическими формулами, таблицами и графиками. Печать производится принтерами в графическом режиме и не очень быстро. Зато печатаются все шрифты и математические спецзнаки. Можно печатать и части документа.
Шестая группа представлена командой
Exit (Выход [Alt + F4]) -- выйти из среды MathCAD.
Вернемся к широко используемым командам первой группы и рассмотрим их более подробно. Заметим, что некоторые из них могут быстро вводится нажатием функциональных клавиш (они указаны в квадратных скобках после наименования операции).
2.2. Подготовка к вводу нового документа (New Document [F7]).
Команда New Document (Создать) обычно используется, когда пользователь намерен создать новый документ. Она выводит на экран новое чистое текущее окно редактирования (их всего восемь) и переводит систему в режим редактирования. При этом графический курсор -- маленький крестик (красный при работе с цветным дисплеем) -- устанавливается в верхний левый угол окна с небольшим отступом от краев. Становятся доступными все операции ввода объектов документа и их редактирования. Текущий документ приобретает имя Untitled: (в переводе "Безымянный") и возле этого имени в верхней части окна указывается номер документа (от 1 до 8).
Поскольку MathCAD -- многооконная система, возможно существование нескольких окон с именем Untitled. Список, содержащий до восьми имен документов, с которыми пользователь работал последнее время, хранится системой и выводится в конце списка команд опции File (Файл)
главного меню.
Обычно после применения этой операции пользователь начинает ввод документа и его редактирование, используя для этого оконный редактор. Система имеет три редактора: редактор текстовых комментариев, редактор математических формул и редактор графических объектов. Позже мы обсудим их возможности более подробно.
Команда New (Создать) дублируется пиктограммой в виде чистого листка, помещенной в панель инструментов. Разумеется, ее применение возможно только в том случае, когда эта панель (строка с пиктограммами) присутствует.
2.3. Ввод документа с диска (Open Document... [F5])
Команда Open Document... (Открыть...)
служит для загрузки документа. При исполнении этой команде появляется диалоговое окно выбора файла (рис. 2.2). К аналогичному действию приводит активизация пиктограммы в виде открывающейся папки в инструментальном ящике системы.
Рис. 2.2. Окно выбора файлов и меню выбора дисковода
В этом окне с помощью меню выбора дисков и вертикального слайдера можно пройтись по всем именам дисков, их каталогам и файлам текущего каталога, чтобы выбрать нужный файл для загрузки. Имя файла и каталога можно указать в двух первых позициях окна. Для выбора файла или каталога используются мышь и клавиши перемещения курсора. Выбор завершается нажатием клавиши Enter или указанием курсора мыши на изображение клавиши OK в окне выбора файлов с последующим нажатием левой клавиши мыши. Это приводит к загрузке документа в текущее окно системы. Использование клавиши Cancel позволяет отказаться от выбранной команды.
Можно поступить и иначе: указав курсором мыши на нужный файл, быстро нажать дважды на левую клавишу мыши. Активизация курсором мыши клавиши Cancel диалогового окна (или нажатие реальной клавиши Esc) ведет к отказу от операций выбора файла.
После загрузки файла с документом его текст появляется в текущем окне и по умолчанию начинается исполнение документа в режиме автоматических вычислений. Можно отключить этот режим, тогда загруженный документ не будет исполняться до подачи команды на вычисления.
Для вызова одного из ранее использовавшихся документов достаточно указать курсором мыши его имя в списке, размещенном под командами позиции File (Файл) главного меню. Щелкнув левой клавишей мыши, можно загрузить выбранный файл в текущее окно редактирования.
При работе со многими документами возможна ситуация, когда все восемь окон окажутся уже заполненными. Тогда загрузка нового файла становится невозможной и система выводит сообщение об этом с предложением о закрытии окон командой Close (Закрыть).
2.4. Запись документа на диск без переименования (Save [F6])
Эта операция записывает файл на диск с использованием его текущего имени и учетом всех изменений, которые вводились в документ в ходе его редактирования, доработки или дополнения. Такая операция удобна, если вы совершенствуете ранее созданный и имеющий свое имя документ.
Следует с осторожностью пользоваться этой командой в том случае, когда вы модернизируете какой-либо документ, но желаете сохранить оригинал. В случае применения операции Save (Сохранить)
исходный файл-оригинал будет заменен новым; чтобы этого не произошло, следует пользоваться командой записи Save As... (Сохранить как...), описанной в следующем разделе.
Командой Save (Сохранить) рекомендуется пользоваться периодически при подготовке сложных документов. Это позволяет сохранить все изменения в документах и избежать потери документа при ошибочных действиях, например при случайном выключении компьютера до записи файла.
В предшествующих версиях команда Save (Сохранить) обозначалась как Save Document. Команда Save (Сохранить)
выполняется без выдачи каких-либо предупредительных сообщений.
2.5. Запись документа на диск с переименованием (Save As...)
Операция Save As... (Сохранить как...)
отличается от предыдущей тем, что перед записью файла на диск в диалоговом окне появляется запрос на ввод имени файла (рис. 2.3), что позволяет задать любое имя, в том числе отличное от имени дорабатываемого файла-оригинала. Тем самым можно отдельно записать доработанный документ и сохранить оригинал.
Рис. 2.3. Диалоговое окно для записи файла с указанием его имени
Имя файла может быть коротким, без указания пути доступа. Тогда файл будет помещен в текущий каталог. Однако можно указать и полное имя файла, например:
d:\wmcad\book\demo.mcd
Тогда файл demo.mcd будет записан на диск d в подкаталог book, имеющего в каталоге wmcad.
Такая операция особенно полезна при доработке и модификации файлов, например, входящих в комплект поставки системы, когда надо сохранить оригинальные файлы в неприкосновенности. Для этого достаточно записать измененные файлы под новыми именами. MathCAD не предусматривает создания резервного bak-файла при использовании команды Save (Сохранить). Поэтому надо внимательно следить за ее использованием и применять команду Save As... (Сохранить как...), когда есть подозрения даже в случайной модификации исходных файлов.
Диалоговое окно команды Save As ... (Сохранить как...) в целом подобно диалоговому окну команды Open... (Открыть...). Однако есть небольшое исключение -- появилась кнопка Help, дающая подсказку, как пользоваться диалоговым окном.
2.6. Создание файлов формата .RTF (Export WorkSheet...)
Документы MathCAD обычно объединяют в себе текстовые сообщения, математические формулы, таблицы, графики и т. д. Для файлов с таким многокомпонентным содержимым существует специальный формат -- .RTF (Rich Text Format). Он обеспечивает запись объектов исходного документа с сохранением его разнотипных объектов.
Версия MathCAD PLUS 6.0 содержит специальную команду для записи файлов в стандарте RTF -- Export WorkSheet... (Экспорт...)
. Это позволяет наладить обмен данными с программами, поддерживающими такой стандарт. Например, можно вставить документ MathCAD прямо в статью или книгу, текст которой готовится в редакторе Word 7.0 для Windows, поддерживающем импорт файлов формата .RTF.
К сожалению, испытание этой команды показало, что, хотя все блоки документов MathCAD действительно записываются в файл, их взаимное расположение по горизонтали нарушается -- блоки при просмотре их в среде Word 7.0 оказываются расположенными только по вертикали. Причем текстовые блоки редактируются текстовым редактором, а графические -- графическим.
При исполнении команды Export WorkSheet... (Экспорт) появляется диалоговое окно, практически идентичное описанному для команды Save As... (Сохранить как...). В нем надо задать имя файла того документа, в который производится экспорт, его каталог и имя дискового накопителя.
2.7. Закрытие документа (Close Document [Ctrl + F4]).
Эта операция закрывает окно с текущим документом, и система переходит к работе с окном предшествующего документа (либо к пустому первому окну, если другие документы не вводились).
Как уже отмечалось, система MathCAD для работы с каждым документом создает свое окно. Возможно задание до восьми окон с номерами от 1 до 8. Текущее окно обычно видно на переднем плане. Если все окна уже использованы, то попытка загрузки еще одного документа станет невозможной (о чем будет выведено соответствующее сообщение). Команда Close Document (Закрыть) позволяет убрать ставшее ненужным окно текущего документа и освободить память для ввода новых документов.
Если какой-либо из документов в закрываемых окнах подвергался модификации, то система спросит, надо ли записывать документ на диск (рис. 2.4).
Рис. 2.4. Диалоговое окно, появляющееся при закрытии окна модифицированного документа
Если документ не модифицировался, соответствующее окно просто закрывается. Окно, показанное на рис. 2.4, создает система Windows. Поэтому надписи на его кнопках могут быть на русском языке, если установлена русифицированная версия Windows. Закрыть окно также можно, используя кнопку с треугольником, острие которого обращено вниз, или команду Close (Закрыть) меню управления окном.
Следует помнить, что каждый загруженный документ занимает определенный объем памяти. Поэтому команда Close Document (Закрыть)
является эффективным средством освобождения памяти, особенно когда закрывается окно с большим документом.
Опыт показал, что иногда при заполнении всех окон вместо команды Close Document (Закрыть) удобнее просто задать выход из системы с помощью команды Exit (Выход). Тогда все окна, содержащие документы, не подвергнутые модификации, закроются автоматически (см. ниже). Закрытие модифицированных документов сопровождается запросом о том, желаете ли вы сохранить документ в измененном виде или нет. Затем надо вновь загрузить MathCAD.
Быстро закрыть окна по одному без выхода из системы MathCAD можно, нажимая клавиши Ctrl и F4 (каждое такое нажатие закрывает очередное окно).
2.8. Объединение документов (Insert Document...)
Операция Insert Document... (Вставить документ...)
позволяет вставить в текущий документ другой документ. Место вставки должно предварительно быть указано графическим курсором и располагаться на свободной строке. Не нужно заботиться о том, чтобы в текущем документе было достаточно места для подключения другого документа. Необходимое для этого число строк резервируется автоматически в ходе загрузки подключаемого документа.
При использовании этой команды появляется диалоговое окно Открыть документ, аналогичное описанному для команды Open Document... (Открыть...) и содержащее каталог файлов. Файл подключаемого документа можно выбрать из этого каталога или сразу указать его имя.
Команда Insert Document... (Вставить документ...)
позволяет готовить структурно независимые документы и при необходимости объединять их в один документ. Это соответствует концепции структурного программирования и позволяет пользователю готовить отдельно библиотеки решений наиболее важных для него задач и алгоритмов, включаемые (когда это нужно) в состав различных документов.
2.9. Общение со средствами телекоммуникаций
Новая возможность шестой версии системы MathCAD — поддержка средств телекоммуникаций. Непременным условием для этого является оснащение ПК модемом и выполнение соответствующих инсталляции.
Особое значение сейчас приобрела мировая глобальная сеть Internet. Для получения документов MathCAD из этой сети используется команда Open URL... (Интернет...) опции File (Файл) главного меню. С помощью команд Get From Notes... (Получить из Notes...) и Save to Notes... (Сохранить в Notes...)
можно получать документы из базы данных Notes или записывать документы в эту базу данных. Наконец, с помощью команды Mail... (Послать почту...) можно осуществить сеанс общения по электронной почте.
Работа с этими командами довольно проста -- используются диалоговые окна для указания имени абонента, установки параметров связи и т. д. К сожалению, для большинства наших пользователей все это пока недоступно (по крайней мере, в столь специфической системе, как MathCAD). Если ПК не имеет модема, то попытка обратиться к приведенным выше программам будет сопровождаться выдачей сообщения об отсутствии модема и невозможности использования телекоммуникационных средств.
2.10. Запись конфигурации (Save Configuration)
В ходе подготовки документов и их редактирования часто приходится изменять текущие параметры системы, например тип, размеры и цвет надписей, форматы задания чисел и графиков, режимы работы системы и т. д. Словом, приходится изменять конфигурацию системы. Эта конфигурация сохраняется при записи документа на диск.
Однако часто пользователю хочется сохранить удобную для него конфигурацию для последующей работы с другими документами. Для этого служит команда записи конфигурации Save Configuration... (Сохранить конфигурацию...). Сведения о конфигурации записываются в специальный конфигурационный файл и автоматически считываются при новой загрузке системы.
Если нежелательна установка измененной конфигурации, можно задать при ее записи свое имя конфигурационного файла. Тогда для ввода измененной конфигурации надо считать этот файл. При исполнении такой команды появляется диалоговое окно, аналогичное окну команды Save As... (Сохранить как...). Работа с этим окном уже описывалась.
2.11. Исполнение конфигурационного файла (Execute Configuration File...)
Как уже отмечалось, автоматически считывается и исполняется только основной конфигурационный файл с именем mcad.mcc. Для установки произвольной конфигурации, сведения о которой хранятся в других файлах, надо считать соответствующий файл, который затем исполняется и задает новую конфигурацию. Именно для этого служит команда Execute Configuration File... (Применить конфигурацию...). При ее исполнении появляется диалоговое окно, подобное описанному для команды Open... (Открыть...). С его помощью можно легко найти и загрузить нужный конфигурационный файл.
2.12. Ассоциирование типов файлов (Associate Filename...)
Это типичная для Windows операция позволяет установить ассоциативную связь между расширением имен файлов и действиями системы. К примеру, можно задать ассоциацию так, что вызов любого файла с расширением .mcd вызовет загрузку системы MathCAD с одновременной загрузкой этого файла.
Следует отметить, что эта операция может выполняться прямо из системы Windows без предварительной загрузки системы MathCAD.
При исполнении команды Asociate Filename... (Присоединить к файлу...) -- появляется диалоговое окно установки ассоциирования файлов (рис. 2.5).
Рис. 2.5. Установки для ассоциирования файлов
С помощью этого окна можно придать выбранному файлу статус ассоциированного с системой MathCAD, достаточно нажать (разумеется, мышью) клавишу Associate диалогового окна, расположенную в его левой части. Нажав клавишу Dissociate, можно снять с файла статус ассоциированного с системой. Клавиша Close закрывает окно.
2.13. Установка параметров страницы при печати (Page Setup...)
Печать документов -- важная возможность системы. В общем случае она предполагает установку параметров печатаемой страницы, ее предварительный просмотр и затем уже печать на выбранном типе принтера с возможной коррекцией ее параметров.
Команда Page Setup... (Параметры страницы...)
служит для установки параметров печатаемых страниц. При ее исполнении появляется диалоговое окно, показанное на рис. 2.6 в центре экрана.
Рис. 2.6. Диалоговое окно установки параметров печатаемой страницы
Следует отметить, что это окно принадлежит системе Windows. Непосредственно подлежит установке ширина отступа (поля) со всех сторон бумажного листа: Left (левый), Right (правый), Top (верхний) и Botton (нижний). Отступы устанавливаются в дюймах. Кнопки Headers... и Footers... позволяют ввести надписи вверху и внизу документа при его печати -- так называемые колонтитулы. Кнопка (Отмена) отменяет эту операцию, а OK фиксирует ее данные.
2.14. Предварительный просмотр страниц печати (Print Preview...)
Даже одна страница большого документа не видна полностью на экране дисплея. Поэтому перед печатью полезно просмотреть расположение элементов документа на странице. Для этого служит команда Print Preview... (Просмотр...), которая выводит контрольное окно с изображением будущей напечатанной страницы (см. рис. 2.7). Такая весьма полезная команда появилась в системах MathCAD начиная с версии 5.0.
Рис. 2.7. Предварительный просмотр страницы печати
Вверху окна видны кнопки управления просмотром страницы. Они становятся активными только в том случае, если просматривается объемный документ, не помещающийся на одной стандартной странице (формат A4). Треугольники на этих кнопках показывают на возможное направление просмотра. Внизу окна контроля имеются кнопки Print (Печать) для запуска печати, Close (Закрыть) для выхода из просмотра и закрытия диалогового окна и Page Setup... (Страница...) для вызова диалогового окна установки параметров страницы (описывалось выше).
2.15. Печать документов (Print...)
Команда Print... (Печать...) служит для запуска печати. Нередко эта команда используется как основная для печати, если формат страницы и установки принтера были обеспечены ранее и устраивают пользователя. Команда Print... (Печать...)
имеет в панели инструментов дублирующую пиктограмму с изображением принтера.
При запуске команды Print... (Печать...)
появляется диалоговое окно, показанное на рис. 2.8. Это окно также не принадлежит системе MathCAD -- используется стандартное окно печати Windows.
Рис. 2.8. Окна печати и установки параметров принтера
Есть возможность вывода из окна печати диалогового окна установки параметров принтера. Оно также показано на рис. 2.8 (справа). Поскольку различные принтеры имеют различное программное обеспечение (драйверы) печати, вид этих окон может заметно отличаться от приведенного.
При печати прежде всего следует установить тип принтера -- Windows позволяет осуществлять печать с помощью принтеров нескольких типов. Один из них задан как рабочий (основной). В диалоговом окне можно указать диапазон страниц печати, число копий и разрешение принтера. В целом диалог с компьютером при осуществлении этой операции прост и нагляден.
При печати, как правило, сохраняется вид исходного документа. Разумеется, если он многостраничный, то печатаются отдельные страницы (они разделены характерной пунктирной линией). Современные принтеры (особенно лазерные и струйные) имеют более высокое разрешение при печати, чем разрешение дисплея. Поэтому качество отпечатанного документа у них выше, чем видимое на экране. Для получения цветных распечаток следует применять цветные принтеры.
Документы MathCAD могут иметь двойную ширину и большую длину. Тогда вначале печатаются все страницы левой половины широкого документа, а затем уже страницы правой половины, даже если они пустые (разумеется, при этом принтер вытолкнет пустой лист). Склеив страницы, вы получите полную распечатку документа.
К сожалению, с печатью документов могут возникнуть трудности. Прежние версии MathCAD конфликтовали с другой математической системой -- Mathematica 2.2.2. После ее инсталляции ранее установленная система MathCAD теряла способность печати документов. Отказ в печати документов наблюдался и при работе англоязычных версий MathCAD PLUS 6.0/6.0 PRO в среде операционной системы Windows 95 (хотя в среде Windows 3.1/3.11 этого не наблюдалось). Полезно внимательно изучить рекомендации по устранению этих проблем в документации системы и в файле readme.
2.16. Выход из системы (Exit)
Команда Exit (Выход) используется при полном окончании работы с системой. Перед этой операцией необходимо побеспокоиться, чтобы все загруженные ранее документы, подвергавшиеся редактированию и модификации, были сохранены на диске с помощью команд Save Document As... (Сохранить как...) или Save Document (Сохранить). Тогда при использовании команды Exit (Выход)
можно наблюдать последовательное исчезновение окон документов. Если пользователь забыл записать какой-либо документ на диск, система сообщит об этом, выдав запрос. Нужно ответить Y, если документ нужно сохранить, и N, если сохранение не требуется.
После выхода из системы MathCAD происходит возврат в среду Windows. Не следует применять эту команду, если вам необходимо временно выйти из системы. Тогда лучше свернуть MathCAD в пиктограмму, активизировав курсором мыши треугольник, вершина которого обращена вниз. Можно также воспользоваться переключателем программ Windows, нажимая клавиши Alt и Tab и выбирая программу по названию, появляющемуся в верхней части экрана. Исключением из этого правила является описанный выше прием очистки всех окон с помощью команды выхода из системы. При этом выход из системы и ее повторная загрузка займут меньше времени, чем последовательная очистка всех окон.
Глава 3. РЕДАКТИРОВАНИЕ ДОКУМЕНТОВ (Edit)
3.1. Общие приемы редактирования документов
Редактирование документов в ранних версиях системы MathCAD под MS-DOS было в определенном смысле искусством. Следовало помнить десятки сочетаний клавиш для ввода математических спецсимволов, шаблонов и греческих букв, правила стирания и вставки знаков в формулы и т. д. Все эти правила (несмотря на явные элементы их интуитивности) быстро забывались, и пользователю приходилось рыться в документах для их поиска или действительно полагаться на свою интуицию. Нередко это вело к тому, что замена в формуле какой-либо переменной или показателя степени легче обеспечивалась повторным набором блока целиком, а вовсе не применением напрочь забытых приемов редактирования.
Подобный недостаток почти полностью устранен в новой версии системы — в основном благодаря возможности конструирования формул с помощью мыши и готовых наборов (палитр) специальных математических символов. В то же время сохранены все правила редактирования и ввода объектов, к которым привыкли пользователи ранних версий системы MathCAD.
Большая часть процессов редактирования производится непосредственно с отображением объектов в текущем окне редактора. Разумеется, редактирование возможно только после ввода в текущее окно редактора одного или ряда шаблонов объектов. В противном случае часть операций редактирования осуществить будет нельзя и в меню редактирования Edit (Правка)
такие команды будут указаны затененным шрифтом.
Ввод объектов (математических выражений, текстовых комментариев, графиков и др.) в текущее окно редактора производится по-разному. Он будет неоднократно описан по мере изложения последующего материала книги (см. также раздел 1.6).
Здесь ограничимся парой простых примеров. Например, для задания переменной x=1 и вычисления значения функции sin(x) можно воспользоваться вводом с клавиатуры:
Нажимаемая Изображение Комментарий
клавиша в окне
x x Ввод имени переменной
: x := Ввод символа присваивания :=
1 x := 1 Ввод числовой константы 1
Enter Фиксация ввода, скачок курсора
s s Ввод имени функции sin
i si
n sin
( sin( Ввод левой скобки (
x sin(x Ввод имени переменной x
) sin(x) Ввод правой скобки )
= sin(x) = Ввод знака вывода =
Enter sin(x) = 0.841 Вычисление sin(x)=sin(1)
Даже на этом простом примере видны некоторые особенности ввода и используемого системой MathCAD входного языка общения с системой. Так, символ присваивания := отличен от обычно используемого в математике знака равенства =. Это обстоятельство связано с тем, что знак равенства интерпретируется в математических выражениях по контексту. Например, x = y означает либо присвоение переменной x значения ранее определенной переменной y, либо просто факт логического равенства значения x значению y.
Такая двойственность недопустима в машинных программах. Поэтому в системе MathCAD знак = используется как знак вывода результатов вычислений, а для присваивания переменным значений используется знак :=. Наконец, для обозначения отношения величин x и y
как равенства используется жирный знак равенства.
Далее интересно отметить, что для ввода знака :=
используется клавиша с двоеточием (:). А клавиатурный знак \, к примеру, вводит обычное изображение квадратного корня. Если мы хотим создать вектор с именем V, элементы которого имеют значения от 1 до 5, придется набрать:
V : 1 ; 5
На экране дисплея в текущем окне появится:
V := 1 .. 5
Здесь клавиша, содержащая точку с запятой (;), вводит символ перечисления значений "от до" в виде двух точек (..). Этот прием придает переменной V статус ранжированной переменной.
Можно огорчиться, когда узнаешь, что таких правил ввода десятки. И порождены они тем обстоятельством, что многих математических спецсимволов нет в виде надписей на клавиатуре. Клавиатура ПК приспособлена для ввода простых текстов, а отнюдь не для ввода сложных математических формул и относящихся к ним математических знаков, например квадратного корня, знаков суммы и произведения, интеграла и т. д.
На самом деле проблема не столь ужасна, как кажется с первого взгляда (она действительно нервирует начинающих пользователей, работающих с ранними версиями системы MathCAD). Во-первых, многие знаки вводятся интуитивно, стоит вспомнить их начертание или смысл. Например, знак := вводится целиком с помощью начального двоеточия, а знак квадратного корня вводится знаком \ — частью его изображения. Во-вторых, как уже отмечалось, в версии 6.0 эта проблема практически снята благодаря возможности выбора спецсимволов из их наборов (палитр) в наборных панелях.
Достаточно установить графический курсор в нужном месте окна и выбрать мышью пиктограмму нужного спецсимвола из выбранной палитры символов. Нажатие левой клавиши мыши вызовет вывод на место курсора шаблона спецзнака. Далее надо заполнить выделенные темными прямоугольниками места шаблона, и соответствующий объект будет полностью введен. Пример заполнения шаблона для интеграла мы уже приводили.
Для заполнения шаблонов операндов надо вначале наметить нужный шаблон с помощью клавиш перемещения курсора. Еще удобнее сделать это с помощью мыши, указав перемещаемым маркером мыши на нужный шаблон и нажав ее левую клавишу. Активный шаблон помечается синей четырехугольной рамкой со скосом верхней стороны, указывающим направление ввода. Теперь можно вводить операнд. Это повторяется для других шаблонов ввода операндов.
Оставив на потом описание некоторых других деталей ввода (например, выделение частей объектов, перемещение курсора по объектам и др.), рассмотрим операции, вводимые при активной опции Edit (Правка)
главного меню (см. рис. 3.1).
Рис. 3.1. Экран системы при активной опции Edit
главного меню
Как видно из рис. 3.1, опция Edit главного меню выводит обширное ниспадающее меню, содержащее следующие команды:
Undo Last Edit (Отменить изменения [Alt + BkSp]) — отменить последнюю операцию редактирования;
Cut (Вырезать [Ctrl + X]) — переместить выделенное в буфер обмена;
Copy (Копировать [Ctrl + C]) — скопировать выделенное в буфер обмена;
Clear (Очистить) — удалить выделенное;
Paste (Вставить [Ctrl + V]) — вставить выделенное из буфера обмена в документ;
Paste Special... (Специальная вставка...) — вставить выделенное из буфера обмена в различном формате (в формате Mathcad или BITMAP, например);
Regions (Области) -- вывод подменю со следующими операциями:
View Regions (Показать области) — показать области путем их подсветки;
Select All Regions (Выделить области) — выделить все области в документе;
Separate Regions (Разделить области [Ctrl + S]) — разделить перекрывающиеся области;
Align Region (Выровнять области) — вызов подменю с операциями:
Horizontal (Горизонтально) — выровнять выделенные области вдоль горизонтальной линии, расположенной посередине между верхними краями высшей и низшей из выделенных областей;
Vertical (Вертикально) — выровнять выделенные области вдоль вертикальной линии, расположенной посередине между левыми краями самой правой и самой левой из выделенных областей;
Include... (Внедрить...) — вставить определения переменных и функций из другого рабочего документа в текущий документ;
New (Новая) — создать гипертекстовую ссылку на другой рабочий документ;
Erase (Удалить) — удалить все гипертекстовые ссылки, связанные с текущим выделением;
Set Lock Area (Область) — определить защищаемую область рабочего документа;
Lock Area... (Закрыть...) — включить защиту области;
Unlock Area... (Открыть...) — редактировать защищаемую область;
Ins/Del Blank Lines... (Вст/Удал чистые строки...) — вставить/удалить строку;
Insert Pagebreak (Вставить разрыв страницы) — вставить независимый от форматирования разрыв страниц;
Set Right Margin (Правое поле — Установить) — установить правый отступ;
Clear Right Margin (Правое поле — Удалить) — убрать правый отступ;
Headers/Footers... (Колонтитулы...) — определить верхние/нижние колонтитулы в документе;
Find... (Найти... [Ctrl + F5]) — найти заданную текстовую или математическую строку;
Replace... (Заменить... [Shift + F5]) — найти и заменить математическую или текстовую строку;
Go to Page... (Перейти к странице...) — расположить начало указанной страницы в начале рабочего документа MathCAD.
Многие из операций редактирования используют буфер обмена. Так называется специально организованная и динамически изменяющаяся область памяти в системе Windows. В нее могут помещаться различные (обычно предварительно выделенные) объекты и документы. Буфер можно использовать для организации обмена частями документа как в пределах текущего документа, так и между различными документами и даже приложениями. Рассмотрим операции редактирования более подробно.
3.2. Отмена редактирования (Undo Last Edit [Alt + Bksp])
Команда Undo Last Edit (Отменить изменения)
служит для устранения последней операции редактирования. Обычно она применяется, если в ходе редактирования установлено, что введен неправильный знак либо неверное имя или значение переменной. Тогда следует отменить последнюю операцию редактирования, что и делает команда Undo Last Edit.
Надо отметить, что команда Undo Last Edit
применима только к тем блокам, в которые введен курсор и в которых начаты операции по редактированию. В других случаях эта команда не активна. При применении команды Undo Last Edit
восстанавливается то содержимое блока, которое было в нем до операции редактирования. Например, в введенном выражении
x := exp(sin(1))
вы решили исправить функцию sin на функцию cos и стали стирать имя функции sin, но вспомнили, что это исправление неверно. Достаточно ввести команду Undo Last Edit и функция sin
окажется восстановленной. Действие этой команды распространяется только на одну последнюю операцию.
3.3. Пересылка объекта в буфер обмена (Cut [Ctrl + X])
Команда Cut (Вырезать) пересылает выделенный сплошным или пунктирным прямоугольником объект в буфер обмена системы Windows. Выделить сплошным прямоугольником объект можно, введя в него мышью графический курсор и нажав дважды левую клавишу мыши. С помощью клавиши перемещения курсора вверх можно распространить область выделения на весь объект. Пересылаемый операцией Cut (Вырезать)
объект поступает в буфер, а его изображение в окне редактирования исчезает (это напоминает вырезку рисунка и его наклейку в другое место -- буфер). Для пересылки объекта в буфер подходит и средство, применявшееся в ранних версиях системы, — нажатие клавиши F3.
Объект или группу объектов можно целиком выделить и другим путем. Подведите курсор к объекту (но не вводите в него). Нажмите левую клавишу мыши и, не отпуская, сдвиньте мышь по диагонали. На экране появится маленький прямоугольник из пунктирной черной линии, размеры которого задаются перемещением мыши. Как только в этот прямоугольник попадет хотя бы часть какого-либо объекта, он (объект) окажется обведен пунктирным прямоугольником.
Как только левая клавиша мыши будет отжата, основной прямоугольник исчезнет. Но все выделения объектов останутся. Так можно выделить сразу несколько объектов. Если надо выделить объекты поодиночке, делайте это с помощью мыши при нажатой и удерживаемой клавише Shift. Подведите курсор мыши к нужному объекту и щелкните левой клавишей — объект будет выделен пунктирным прямоугольником. Далее переходите к выделению другого объекта. Расположение выделяемых объектов и порядок их выделения при этом могут быть любыми.
Для выделения многих объектов сразу можно использовать мышь при нажатой и удерживаемой клавише Ctrl или Shift. Вначале выделите первый объект, установив на него курсор мыши и щелкнув левой клавишей. Затем проделайте то же с последним объектом, в результате будут выделены все объекты от первого до последнего.
Группа выделенных объектов ведет себя как единый блок. Его можно перетаскивать при нажатой левой клавише мышки. Команда Cut (Вырезать) стирает выделенные объекты и переносит их в буфер обмена. Щелчок левой клавишей мыши при курсоре, помещенном за пределы выделенных объектов, снимает все выделения.
3.4. Копирование объекта в буфер обмена (Copy [Ctrl + C])
Команда Copy (Копировать) полностью аналогична Cut (Вырезать), но с одним существенным различием — выделенный объект (или блок объектов) переносится в буфер, но не уничтожается в окне редактирования. Эта операция обычно используется в том случае, когда нужно перенести заданный объект в несколько документов, оставив при этом оригинал на своем месте. Или если нужно объект либо блок объектов повторить в другом месте документа.
Особенно полезна операция Copy (Копировать)
при составлении документа из частей других документов. Если переключиться в другое окно, то скопированная и помещенная в буфер обмена информация может быть помещена в это окно с помощью операции Paste (Вставить), описанной ниже.
3.5 Уничтожение выделенного объекта (Clear)
Команда Clear (Очистить) служит для уничтожения выделенного объекта (в том числе блока выделенных объектов). При этом в буфер обмена объекты не заносятся. Команда полезна для редактирования документов. В отличие от команды Cut (Вырезать), ее применение не загружает буфер и предотвращает нехватку оперативной памяти. Будьте осторожны с этой операцией — можно легко стереть нужный объект, причем в этом случае его восстановить не удастся (придется создавать заново).
3.6. Копирование объекта из буфера обмена в окно (Paste [Ctrl + V])
Команда Paste (Вставить) переносит изображения объектов из буфера обмена в окно и располагает их по текущему местоположению графического курсора. Вернувшиеся в окно объекты выделяются пунктирными прямоугольниками. Для снятия выделения достаточно установить курсор в свободное поле окна и нажать левую клавишу мыши (или нажать клавишу Enter). Эта операция выполняется и нажатием клавиши F4.
При использовании команды Paste
содержимое буфера сохраняется и команду можно использовать неоднократно, что особенно удобно при необходимости дублирования объектов, когда, например, какая-либо формула или математическое выражение используются в тексте документа несколько раз.
Система MathCAD позволяет работать с восемью окнами. С помощью описанных операций переноса и копирования объекта в буфер обмена и вывода его содержимого в окно (необязательно исходное) можно переносить объекты из одного окна в другое. К сожалению, прямой перенос объектов без помощи буфера (как пиктограмм в версии Windows 3.1) из одного окна в другое невозможен. Однако он возможен для книг и примеров QuickSheets.
3.7. Специальное копирование (Paste Special...)
Операция специального копирования позволяет вставлять в документ данные, представленные файлами различных форматов. Выбор форматов обеспечивается с использованием простого диалогового окна. Предусмотрены следующие типы форматов: текстовый, MathCAD, RTF и Bitmap. Операция расширяет возможности подготовки многокомпонентных документов. С ее помощью можно, например, подготовив рисунок в графическом редакторе PaintBrush, перенести его в документ системы MathCAD. В остальном применение команды Paste Special... (Специальная вставка...) подобно описанному для команды Paste (Вставить).
3.8. Перенос всех объектов в буфер обмена (Cut All Region)
Эта операция переносит в буфер обмена всю информацию текущего окна редактирования. Естественно, используя ее, не надо выделять объекты. При переносе всех объектов в буфер окно полностью очищается.
Затем можно воспользоваться командой Paste (Вставить)
и вернуть все объекты в окно, начиная с места, указанного текущим положением курсора. Если курсор установить в левый верхний угол, будет восстановлено прежнее состояние документа, в противном случае документ будет сдвинут. Команду Paste можно использовать и для объединения двух документов. Однако следует помнить, что тогда автоматическая раздвижка строк будет отсутствовать. Имеющийся в буфере документ можно просто поместить в конец дополнительно загруженного документа.
При возврате изображения из буфера обмена в окно все объекты выделяются пунктирными прямоугольниками. Можно проследить за тем, чтобы они не пересекались. Для снятия выделения достаточно установить мышь на свободное поле окна и нажать ее левую клавишу. Это можно сделать и нажатием клавиши Enter.
3.9. Управление областями объектов (Region)
Каждый объект в окне редактирования занимает некоторую область, регион (Region). Команда Region (Области) служит для работы с такими областями. Она открывает подменю, содержащее команды View Regions (Показать области), Select All (Выделить все области) и Separate (Разделить области [Ctrl + S]).
Команда View Region позволяет просматривать области, занимаемые объектами. Она создает серый фон окна редактирования и представляет блоки с белым фоном. Это делает расположение блоков отчетливо видимым (см. рис. 3.2).
Рис. 3.2. Просмотр областей объектов
Команда Select All выделяет все объекты пунктирными прямоугольниками (см. рис. 3.3). Это позволяет не только отчетливо наблюдать взаимное расположение блоков, но и подмечать степень их перекрытия. Как правило, оно нежелательно.
Рис. 3.3. Выделение всех объектов командой Select All
При переносе объектов или при их редактировании возможно частичное и даже полное наложение блоков одних объектов на другие, когда может исчезнуть часть изображения некоторых объектов. Команда Separate Region автоматически разделяет блоки, исключая их наложение друг на друга. При этом размер документа несколько увеличивается. Рис. 3.4 иллюстрирует применение такой операции.
Рис. 3.4. Устранение наложения блоков с помощью команды Separate Region
При использовании этой операции выделение блоков пунктирными прямоугольниками (на рис. 3.4 оно искусственно введено в левой группе блоков) снимается. Рекомендуется выполнять операцию после редактирования каждого документа, поскольку перекрытие блоков не всегда заметно и может обнаружиться неожиданно, например при распечатке документа.
3.10. Изменение размещения блоков (Align Regions)
Обычно блоки размещаются в документе в том порядке, который задается пользователем. С помощью команды Align Region (Выровнять области) можно разместить блоки по горизонтали или по вертикали. Для этого надо использовать соответствующие команды в подменю — Horisontal (Горизонтально) и Vertical (Вертикально). Рис. 3.5 показывает вид окна редактирования, представленного на рис. 3.3, после использования команды Align Regions Vertical.
Рис. 3.5. Расположение блоков после применения команды Align Regions Vertical
Команда Align Region Vertical задает одну горизонтальную координату левой стороны для всех блоков. Располагая их в столбец, команда сохраняет вертикальные координаты блоков.
Команда Align Region Horizontal, напротив, задает одну вертикальную координату для верхней кромки блоков и сохраняет их горизонтальные координаты. Если исходные блоки расположены горизонтально, исполнение команды Align Region Horizontal
обычно приводит к наложению боков друг на друга, поскольку все они располагаются на одном уровне. Вообще говоря, указанные команды используются довольно редко. При неудачном применении они могут привести к перекрытию блоков.
3.11. Операция вызова одного документа из другого (Include...)
Команда Include... (Внедрить документ...)
— полезная возможность вызова одного документа из другого. Для ее применения вначале необходимо подготовить вызываемый файл. Его надо в обычном порядке загрузить в окно редактирования и исполнить команду Include.... Появится диалоговое окно, требующее подтверждения вашего желания заслать вызываемый файл в буфер обмена Windows (см. рис. 3.6).
Рис. 3.6. Подготовка вызываемого файла DEMO1.MCD
Теперь вызов этого документа можно включить в любой другой документ. Достаточно лишь повторно выполнить операцию Include..., выбрав в диалоговом окне вызываемый файл. Вызов этого файла имеет вид характерной пиктограммы с указанием полного имени вызываемого файла (см. рис. 3.7).
Рис. 3.7. Новый документ с пиктограммой вызова файла вызываемого документа
Если теперь сделать пиктограмму вызова активной, вместо документа с вызовом появится вызываемый документ. Это облегчает создание многокомпонентных документов, у которых в ходе просмотра один документ заменяется другим, тот третьим и т. д.
Следует отличать команду Include... от команды Insert. Напомним, что последняя просто включает один документ в другой (без пиктограммы вызова и без замены вызывающего документа вызываемым). Команда Include... заносит в один из документов пиктограмму вызова другого документа.
3.12. Связывание документов (Link...)
Еще один механизм соединения одного документа с другим представлен командой Link... (Связь...). Он во многом напоминает действие команды Include... (Внедрить документ...). Однако вызов другого файла осуществляется через какое-либо выделенное слово в любом текстовом блоке или через намеченный объект. Отсюда следует, что для реализации такой связи нужно обычным способом выделить вызывающее слово и затем использовать команду New (Новая)
для создания связи. В диалоговом окне этой команды надо задать имя вызываемого файла.
По окончании этих операций вызывающее слово будет подчеркнуто снизу чертой. Если активизировать его мышью, вместо вызывающего документа появится вызываемый. Полезно выделить вызывающее слово каким-либо ярким цветом.
В качестве вызывающего графического объекта можно использовать изображения различных клавиш, табло, рисунки, создаваемые системой, и т. д. Множество примеров применения команды Include...
дано в электронных книгах, поставляемых с системой MathCAD, и в примерах ее применения.
3.13. Создание закрытых областей (Lock Region)
Помимо областей под объекты документа система MathCAD позволяет задавать особые закрытые области. Их характерной чертой является невозможность модификации и перемещения объектов. Такие области полезны во многих случаях, например допустим, когда на модификацию (подчас случайную) полностью отлаженной части документа нужно наложить табу. Например, в учебных программах часто необходимо бывает исключить возможность модификации учащимися приводимых примеров.
Для создания запираемых областей надо:
n создать открытую область, отмеченную специальными маркерами;
n расширить открытую область (при необходимости) и перетащить в нее нужные объекты;
n закрыть область, превратив ее в закрытую.
Команда Lock Region (Защита) в опции Edit (Правка) главного меню позволяет наметить закрытую область и работать с нею. Команда открывает ниспадающее меню из трех позиций:
Set Lock Area (Область) — установка маркеров закрытой области;
Lock Area... (Закрыть...) — запирание области;
Unlock Area... (Открыть...) — отпирание области.
Первой используется команда Set Lock Area. Она устанавливает на экране два маркера — горизонтальные линии, в начале которых помещено изображение открытого замка. На рис. 3.8 показаны математическое выражение (вычисление интеграла) и маркеры установки закрытой области.
Рис. 3.8. Начальная установка закрытой области
Маркеры выделения закрытой области можно перемещать мышью, как и любой другой объект в окне редактора. Рис. 3.9 показывает расширение первоначально узкой закрытой области и перемещение в нее математического выражения. Разумеется, в закрытую область можно перетащить, насколько позволяют ее размеры, любое число объектов.
Рис. 3.9. Начало запирания закрытой области и ввод пароля
Чтобы предотвратить модификацию выражений, надо закрыть выделенную область, используя команду Lock Area.... При этом система выводит окно с предложением ввести пароль. Если предложение принято, появляется новое диалоговое окно для ввода пароля (см. рис. 3.10). Пароль вводится с клавиатуры, но без контроля символов в диалоговом окне. Вместо каждого символа на экране появляется звездочка.
Рис. 3.10. Ввод пароля
После запирания закрытой области изображение замка в начале ограничивающих ее линий меняется, становится видно, что замок закрыт (рис. 3.11). Кроме того, в широких линейках области выводятся данные о времени ее создания. Если теперь попытаться модифицировать математическое выражение (например, сменить пределы интегрирования или подынтегральную функцию при вычислении интеграла) или перетащить его на другое место, то из этого просто ничего не выйдет.
Рис. 3.11. Полностью оформленная закрытая область
Рано или поздно все же может потребоваться модификация объектов, входящих в закрытую область. Тогда ее придется открыть с помощью команды Unlock Area.... Если был задан пароль, система вновь выведет диалоговое окно с запросом пароля. Пользователи, не знающие пароля, не смогут открыть закрытую область. Если же пароль задан верно, указание даты создания области исчезает и замок становится открытым. Теперь объекты закрытой области (в том числе маркерные линии области) можно перемещать, стирать и модифицировать.
Маркеры задаются сразу парой и стираются одновременно. Установив курсор на строку маркера и щелкнув левой клавишей мыши, можно получить маркер в виде широкой серой полосы. Если щелкнуть этой клавишей при курсоре мыши, стоящем на нейтральном поле, маркеры приобретут вид тонких горизонтальных линий с замками в начале.
3.14. Вставка/удаление пустых строк (Ins/Del Blank Line...)
Эта команда позволяет вставить в документ пустую строку (Blank Line) или убрать ее. Она полезна для приведения документов в порядок. Для использования команды надо установить графический курсор мыши в то место, куда надо вставить пустые строки или откуда их надо удалить. Затем следует исполнить команду Ins/Del Blank Line... (Вст./Удалить чистые строки...). При этом появляется диалоговое окно, показанное на рис. 3.12.
Рис. 3.12. Диалоговое окно вставки или устранения пробелов
В диалоговом окне следует установить число строк (по умолчанию оно задано равным 1) и выбрать одну из трех команд, вводимых соответствующими кнопками диалогового окна:
Insert (Вставить) — вставить строки;
Delete (Удалить) — убрать строки;
Cancel (Отмена) — отказаться от операции.
При вставке строк происходит автоматическая раздвижка блоков, причем взаимное расположение лежащих ниже блоков не меняется. Операции не работают, если на уровне размещения курсора установлен какой-либо блок.
Удаление строки из документа применяется в основном для сокращения слишком больших междустрочных интервалов. Взаимное расположение лежащих ниже блоков при исполнении операции не меняется. Если в строке, на которой расположен курсор, имеются блоки, операция не выполняется. Для вставки чистой строки можно использовать комбинацию клавиш Ctrl + F9, а для удаления чистой строки – Ctrl + F10.
3.15. Включение линии разрыва страниц (Insert Pagebreak)
MathCAD автоматически разделяет документ на страницы с помощью горизонтальных пунктирных линий. Однако часто требуется задать линию деления страниц принудительно, с тем чтобы соответствующие объекты были на тех страницах, где это необходимо, или можно было выполнить распечатку документа на бумаге нестандартного формата. Тут поможет операция включения линии разрыва страницы -- Insert Pagebreak (Вставить разрыв страницы).
Эта операция вставляет в документ характерную длинную горизонтальную линию, обрывающую страницу (см. рис. 3.13). Линия имеет в начале короткий наклонный штрих, переходящий в длинную горизонтальную черту, пересекающую окно. Если документ печатается принтером, линия останавливает печать для смены страницы.
Рис. 3.13. Линии разрыва и правостороннего выравнивания
Иногда такая линия вставляется неудачно и ее местоположение необходимо изменить, например при печати документов на страницах не совсем стандартного размера. Тогда надо стереть линию и поместить ее на новое место. Для стирания линии следует выделить пунктиром прямоугольник в ее начале, там, где наклонная черта переходит в горизонтальную. Затем убрать линию разрыва страницы можно нажатием клавиши F3. Поместить линию разрыва на новое место можно, установив на это место курсор и нажав клавишу F4. Можно также повторить команду Insert Pagebreak.
На рис. 3.13 отмечено (маленьким пунктирным прямоугольником) место "захвата" линии разрыва. Если поместить курсор в эту область и нажать (не отпуская) левую клавишу мыши, можно плавно перемещать линию разрыва вверх или вниз, перемещая мышь. Прекращение нажатия клавиши мыши фиксирует линию разрыва на новом месте.
3.16. Установка правостороннего выравнивания (Right Margin Set)
Эта операция служит для установки правосторонней границы текстовых сообщений. Она необходима для выравнивания по правому краю текстовых сообщений, с тем чтобы придать им более аккуратный вид. Операция Right Margin Set (Правое поле, Установить) устанавливает по месту расположения курсора длинную вертикальную черту, которая является границей для текстовых строк документа. Эта черта распространяется на весь документ. Как только правая граница вводимого текста переходит черту выравнивания, происходит перенос очередного слова текста на новую строку и т. д. Это иллюстрируется на рис. 3.13.
Не следует путать перенос целых слов с переносом частей слов с помощью знака переноса, что осуществляют многие текстовые редакторы. Такая возможность в системе MathCAD автоматически не реализована. Однако, имея перед глазами ограничивающую черту, пользователь может вручную осуществить перенос части слова, пересекающего эту черту.
Следует отметить, что автоматический перенос слов, особенно русских, выполняется довольно грубо и приближенно. Это также хорошо видно на рис. 3.13. Поэтому на практике линия правостороннего выравнивания просто является признаком, указывающим на необходимость повышенного внимания при вводе текстов. Решение о грамматически правильном переносе должен принимать пользователь, вводящий текст.
На другие (не текстовые) блоки черта правостороннего выравнивания не влияет. Она может пересекать блоки, причем те могут располагаться по обе стороны черты. При распечатке документов принтером возможны два режима печати: печать всего документа в полную ширину и печать вначале левой, а затем правой части документа. Последняя возможность особенно важна при использовании принтеров с узкой бумагой, поскольку в этом случае на стандартном (машинописном) бумажном листе может поместиться только одна из частей документа (либо левая, либо правая). Распечатка широких документов тут крайне нежелательна и может привести к поломке принтера из-за выхода печатающей головки далеко за рабочие пределы ее перемещения.
3.17. Устранение правостороннего выравнивания (Right Margin Clear)
Эта команда стирает длинную вертикальную черту, установленную операцией Right Margin Set (Правое поле, Установить). Естественно, в этом случае автоматический перенос слов текста при последующем их вводе уже не производится. Рекомендуется использовать эту команду, после того, как текст (с применением линии правостороннего выравнивания) уже был введен. Тогда линия становится ненужной и ее можно убрать командой Right Margin Clear (Правое поле, Удалить).
3.18. Обрамление документов (Headers/Footers)
При печати документов нередко требуется внести в заголовок (Header) или нижнюю строку (Footer) каждой страницы некоторую служебную информацию либо надпись (колонтитул), например имя файла, номер страницы, дату создания и др. Такая возможность реализуется командой Headers/Footer (Колонтитулы) в позиции Edit
главного меню. Команда выводит диалоговое окно, показанное на рис. 3.14.
Рис. 3.14. Диалоговое окно обрамления документов
В основном окне можно установить, какой колонтитул создается — верхний Headers или нижний Footers (в нужной позиции устанавливается жирная точка). Опция Enable (Включить), будучи введенной (знак ´), обеспечивает печать колонтитулов, в противном случае колонтитулы не печатаются.
Это окно содержит три окна ввода надписей: Left (Слева), Center (По центру)
и Right (Справа). Соответственно и введенные надписи будут печататься в выбранном колонтитуле с выравниванием слева, по центру или справа.
Имеется ряд кнопок для автоматического занесения в колонтитулы следующих данных:
Filename (Файл) — имени файла;
Page # (Стр №) — номера страницы;
Date (Дата) — текущей даты;
Time (Время) — текущего времени.
Эти данные заносятся по месту расположения курсора после нажатия соответствующей кнопки внизу основного окна. Клавиша Fonts (Шрифты) дает возможность выбора подходящего шрифта для текстов колонтитулов.
Кроме того, клавиша Fonts выводит стандартное окно выбора шрифта, которым набираются упомянутые выше надписи. Они появляются только на распечатках документов, но не в их листинге, видимом в окне редактирования. Назначение кнопок OK и Cancel очевидно: фиксация создания колонтитулов и отмена ее.
3.19. Поиск подстроки (Find [Ctrl + F5])
Часто в ходе редактирования документа пользователь заранее знает, какая именно часть документа должна изменяться. Например, часто возникает необходимость исправить имя какой-либо переменной или скорректировать заведомо известную формулу. Возможно, потребуется изменение какой-либо фразы текстового сообщения. При этом весьма полезна операция поиска изменяемого фрагмента по всему документу, особенно когда документ велик и заданное изменение надо повторить несколько раз.
Команда Find (Найти) служит для поиска фрагментов текста или имен переменных в математических выражениях. При ее исполнении появляется окошко Find с запросом искомого фрагмента — подстроки (см. рис. 3.15). Можно вести поиск такого фрагмента по всему документу. При обнаружении указанной подстроки в формульном блоке курсор устанавливается в конец обнаруженной подстроки, после чего можно приступить к ее редактированию. В текстовом блоке найденная подстрока выделяется.
Рис.3.15. Поиск заданного фрагмента текста (слова "вектор")
Окошко Find имеет две опции-клавиши: Previous
(Позади) и Next (Впереди). Первая опция задает поиск от текущего положения курсора вверх до первого обнаружения подстроки. Вторая позволяет провести поиск подстроки от текущего положения курсора вниз. Если подстрока поиска не обнаружена, появляется окошко Error (Ошибка) с предупреждающей надписью: Stop Not found (Не найдено).
3.20. Замена подстроки (Replace... [Shift + F5])
Команда Replace...(Заменить) служит не только для поиска заданной подстроки (в тексте или математическом выражении), но и для ее замены другой подстрокой. При исполнении этой команды появляется окно с предложениями о вводе подстрок:
Find (Что): Искомая_строка
Change to (Чем): Строка_замены
Окно содержит также указания о характере замены: по всему документу, однократная замена, игнорирование замены (рис. 3.16).
Рис. 3.16. Замена слова "вектора" на слово "столбца" с помощью команды Replace...
Как и в случае с командой Find, команду Replace... можно применять неоднократно. К сожалению в русских текстах могут возникнуть проблемы при поиске и замене слов, поскольку система замены создавалась для англоязычных текстов.
3.21. Переход к заданной странице документа (Go to Page...)
Документ с достаточно сложными расчетами может занимать множество страниц. Для быстрого перехода к нужной странице используется команда Go To Page... (Перейти к странице...). При исполнении этой команды появляется диалоговое окно, показанное на рис. 3.17.
Рис. 3.17. Диалоговое окно команды Go To Page...
В этом окне следует указать страницу, к которой надо перейти: First Page (К первой странице), Last Page (К последней странице) или Number Page (Странице №). Внизу окна отображается номер текущей и заданной для перехода страниц. Клавиша OK исполняет переход, а Cancel отменяет его.
3.22. Редактирование с применением клавиатуры
Редактирование документов возможно как с применением мыши, так и клавиатуры. В любом случае прежде всего полезно знать функции графического курсора — маркера. Он при перемещении по документу может принимать одну из трех приведенных ниже форм.
Формы курсора:
+ крестообразный курсор (визир) служит для указания места для новых блоков — текстовых, формульных или графических. Курсор имеет такой вид только вне пространства блоков, т. е. на пустом месте экрана, и может перемещаться клавишами управления курсором или устанавливаться мышью (для этого курсор мыши ставится в нужное место и нажимается ее левая клавиша).
½ курсор в виде вертикальной черты (маркер ввода) служит для указания на отдельные элементы блоков и обычно используется для ввода данных и заполнения шаблонов. В текстовых блоках он используется для указания места вставки или удаления отдельных символов.
ð курсор в виде синей рамки, предназначен на выделение отдельных частей выражений или выражений целиком. Рамка имеет срезанный верхний уголок, указывающий на направление последующего ввода (слева направо). Нажатие клавиши Ins меняет цвет рамки на красный и перемещает уголок в левый верхний угол (это означает возможность набора слева от выделенного рамкой выражения).
В целом для выделения используются указанные ниже клавиши.
Клавиши для выделения:
— превращает маркер в выделяющую рамку и расширяет ее;
¯ — сужает выделяющую рамку, если же она содержит имя или число, то
превращает рамку в маркер;
à — перемещает маркер или рамку вправо;
ß — перемещает маркер или рамку влево;
Shift á — выводит курсор из выражения вверх в свободное поле, делая его
крестообразным;
Shift â — выводит курсор из выражения вниз в свободное поле;
Shift à — выводит курсор из выражения вправо в свободное поле;
Shift ß — выводит курсор из выражения влево в свободное поле;
Space — заключает в рамку операнд, действует как несколько нажатий клавиши á и
выводит курсор из выделенного выражения;
Ins — перемещает срез рамки из правого верхнего угла в левый верхний угол.
По мере освоения системы все большую помощь в редактировании оказывает знание функций управляющих клавиш и их комбинаций. Ниже дан перечень осуществляемых ими операций.
Клавиши и их комбинации для управления редактированием:
Tab — в тексте перемещает курсор на начало следующего слова, в уравнении управляет выделением частей блока (в частности, выделяя выражения в скобках);
Shift + Tab — в тексте перемещает курсор в начало очередного слова, в уравнении управляет выделением частей блока;
PgUp — перемещает курсор и вызывает скроллинг на пять строк вверх;
PgDn — перемещает курсор и вызывает скроллинг на пять строк вниз;
Ctrl + PgUp — вызывает скроллинг на одно окно вверх;
Ctrl + PgDn — вызывает скроллинг на одно окно вниз;
Home — устанавливает курсор в начало предшествующего блока;
Ctrl + Home — вызывает скроллинг с установкой курсора в начало документа;
Ctrl + End — вызывает скроллинг с установкой курсора в конец документа.
Действия некоторых клавиш, связанные с выделением, неоднозначны, и для их интуитивного применения требуется определенный опыт работы. При редактировании текстовых блоков особых трудностей не возникает — оно выполняется так же, как в большинстве текстовых редакторов, и будет подробнее рассмотрено в дальнейшем.
Математические выражения не столько набираются, сколько конструируются. При этом учитывается определенная структура выражений и иерархия выполняемых операций. Пользователь, знающий правила набора выражений на Бейсике, во многом оказывается подготовленным к правильному вводу математических выражений.
Конструирование выражений облегчается средствами выделения отдельных фрагментов выражений. Полезно помнить, что все, что попадает в ходе выделения в рамку, оказывается операндом для следующего вводимого оператора. Операторы возведения в степень, извлечения корня и деления являются “цепкими” операторами. После их ввода все, что набирается следом, становится показателем степени, подкоренным выражением или знаменателем. Для прекращения этого обычно приходится дважды нажать клавишу Space.
Как правило, удобно сочетать отметку начала выделения мышью, поскольку она позволяет сразу и точно указать место выделения, с последующим расширением или сужением места выделения с помощью управляющих клавиш. При определенном навыке все выделения можно выполнить, используя мышь и "изучая" область выделения с разных сторон, чтобы принять решение, расширять или сужать ее в нужном направлении.
Нажатие клавиши Ins делает рамку красной, и срез появляется в левом верхнем углу рамки. Это значит, что набор будет идти влево. Пусть, например, вы хотите набрать выражение (a + b) и затем sin(a + b), т. е. сделать ранее набранное выражение аргументом функции. Для этого вначале нажмите клавиши ( a + b ) — выражение (a + b) появится на экране и окажется заключенным в рамку со срезом в правом верхнем углу. Нажмите клавишу Ins — срез рамки переместится в левый верхний угол. Теперь введите имя функции sin — на экране будет sin(a + b).
Для замены числа или буквы в выражении отметьте их курсором мыши и щелкните левой клавишей. Появится маркер ввода в виде жирной синей вертикальной черты |. Если он справа от стираемого символа (например, a|), для стирания нажмите клавишу ¬, а если слева (например, |a) — клавишу Del. Пользуйтесь F3, чтобы стереть выделенное рамкой выражение с сохранением его в буфере, и F4 для вызова выражения из буфера.
При этом полезно знать, что всякое заключенное в рамку выражение становится операндом следующего вводимого оператора. Отметим также, что нажатие клавиши F3 убирает выделяемый фрагмент и помещает его в буфер обмена Windows (операция Cut). Нажатие клавиши F4 помещает фрагмент из буфера в текущее положение курсора.
Несмотря на эти и другие тонкости конструирования математических выражений, вряд ли стоит запоминать все правила манипуляции с клавишами или мышью. Конструирование выражений чаще всего осуществляется интуитивно, и просто нужно некоторое время для экспериментов с ним. После набора первых же нескольких достаточно сложных формул пользователь подсознательно обучится правилам ввода. Подробно с правилами редактирования и набора математических выражений можно ознакомиться по книге [14].
Редактирование фрагментов документа трудно отделить от некоторых других операций. Поэтому ниже приведено назначение ряда других функциональных клавиш и их сочетаний, используемых при комплексной работе с документами.
Клавиши редактирования:
Shift + F5 — замена одной подстроки на другую;
Ctrl + F9 — вставка пустой строки;
Ctrl + F10 — удаление пустой строки;
Alt + Bksp — отмена последней операции редактирования;
Ctrl + Ins — копирование (Copy) выделенного объекта в буфер обмена;
Shift + Del — перенос (Cut) выделенного объекта в буфер обмена;
Shift + Ins — копирование объекта из буфера обмена в окно;
Ins — включение режима вставки (Insert).
Клавиши управления документами и окнами:
Ctrl + Esc — вызов перечня исполняемых в настоящее время программ для их переключения;
Ctrl + F4 — закрытие документа;
Ctrl + F6 — активизация следующего окна;
Ctrl + O — печать документа;
Alt + F4 — завершение работы с системой (команда Quit);
Ctrl + R — восстановление изображения на экране;
F1 — открытие окна помощи (Help);
F3 — удаление отмеченного объекта c переносом в буфер обмена;
F4 — вывод объекта из буфера обмена в текущее окно;
F5 — вызов окна загрузки файлов документов;
F6 — запись файла текущего документа на диск;
F7 — подготовка к созданию нового документа;
F9 — запуск вычислений;
Shift + F1 — вызов контекстной справки.
Последняя операция требует некоторых пояснений. При ее исполнении у курсора-стрелки появляется жирный знак вопроса. Если теперь указать на какой-либо объект или его часть (например, на имя функции или оператор), будет выведено окно с сообщением о назначении и правилах использования указанного объекта. Для отмены этого режима помощи достаточно нажать клавишу Esc.
Клавиши (символы) для создания объектов:
@ — создание шаблона двумерной 2D-графики;
Ctrj + @ — создание шаблона трехмерной 3D-графики;
Ctrl + % — создание шаблона импортируемого рисунка;
Ctrl + G — замена латинской буквы на греческую;
Ctrl + V — задание шаблона вектора или матрицы;
Ctrl + P — ввод греческой буквы "пи";
Ctrl + Z — ввод математического символа бесконечности.
Ряд других комбинаций клавиш для ввода математических и логических операторов будет рассмотрен одновременно с их описанием в следующих главах.
Глава 4. РАБОТА С ТЕКСТОВЫМИ КОММЕНТАРИЯМИ
4.1. Обзор подменю работы с текстами (Text)
Схожесть документов системы MathCAD с журнальными или книжными текстами заключается не только в том, что в них имеются математические знаки и формулы, а еще и в том, что к ним можно давать текстовые комментарии. Для этого MathCAD снабжена простым текстовым редактором. Конечно, это не Word 6.0/7.0, но (особенно в сочетании с возможностью введения математических формул и вывода графиков) такой редактор обеспечивает подготовку документов высокого качества.
Благодаря работе в среде Windows к услугам пользователя обширный набор шрифтов различного типа и размера, необходимых для подготовки высококачественных текстов. Текстовые комментарии также являются блоками и занимают определенную область в окне. С позиций работы системы текстовые блоки являются неисполняемыми объектами, т. е. включенные в них математические выражения не вычисляются и их результаты не выводятся. Принято говорить, что они не эволюционируют.
Для работы с текстовыми комментариями в опции Text (Текст) главного меню представлены семь команд:
Create Text Region (Создать текстовую область [“]) -- создать текстовую область с началом в месте расположения курсора;
Create Text Band (Создать текстовый параграф [Ctrl + T]) -- создать текстовый параграф с первой строкой в месте расположения курсора;
Embed Math (Внедрить формулы) -- создать математическую область внутри текстовой области или параграфа;
Change Font... (Изменить шрифт...) -- изменить шрифт для выделенного комментария;
Change Paragraph Format... (Изменить формат параграфа...) -- изменить способ выравнивания и левый отступ выделенного параграфа;
Change Default (Изменить по умолчанию) – вывод подменю с операциями:
Font... (Шрифт...) -- изменить шрифт всего текста, кроме тех фрагментов, для которых текст изменен командой Change Font... (Изменить шрифт...);
Paragraph format... (Формат параграфа...) -- изменить принятые по умолчанию способ выравнивания и левый отступ текстовых параграфов;
Check Spelling... (Орфография...) -- проверить орфографию (только для англоязычных текстов).
На рис. 4.1 представлен вид экрана системы MathCAD с ниспадающим меню опции Text главного меню. В нем видны перечисленные выше команды.
Рис. 4.1. Экран системы с ниспадающим меню опции Text
главного меню
При работе с текстовыми блоками надо пользоваться общими правилами перемещения курсора и редактирования. В целом редактирование текстов довольно просто, хотя здесь и ощущаются недостатки, связанные с примитивностью текстового редактора. Например, невозможны расстановка знаков переноса, задание стандартных форм документов и т. д. Начнем рассмотрение операций с текстовыми блоками с описания установки текстовой области.
4.2. Установка текстовой области (Create Text Region DoubleQuote)
Команда Create Text Region DoubleQuote (Создать текстовую область Кавычка(")) устанавливает режим ввода текста в заданную положением курсора текстовую область. Это можно сделать, набрав знак двойных кавычек ("). Тогда курсор сменяется вертикальной чертой -- красной на экране цветного дисплея. Теперь можно вводить текстовые комментарии и использовать стандартные средства их редактирования: стирание символов, их вставка и замена, перемещение курсора, перевод строки и т. д. (см. рис. 4.2).
Рис. 4.2. Образцы текстовых блоков
Кроме того, текстовые комментарии можно помещать в области рисунков, например для того, чтобы поместить в поле рисунка поясняющие надписи, отсутствующие в выбранном формате рисунка.
В файлах с расширением .mcd тестовый блок задается особым образом -- указывается координата левого верхнего угла текстового блока (начальное положение графического курсора), а затем вводится текстовое сообщение. Иногда его даже можно редактировать в ходе редактирования файла текстовым редактором.
Текстовая область по ширине ограничена длиной наибольшей строки. Она определяется нажатием клавиши Enter и может быть различной для различных текстовых блоков. Иногда (при вводе и редактировании больших текстов) это неудобно. Текстовые блоки после выделения пунктирными линиями можно перемещать по экрану и растягивать или сжимать. Причем переформатирование текста в блоке происходит автоматически.
4.3. Установка текстовой области -- параграфа (Create Text Paragraph [Ctrl + T])
Другая операция — Create Text Paragraph (Создать текстовый параграф [Ctrl + T]) — также служит для ввода текста, но она снимает ограничения на длину строки, и текст можно вводить в любом ее месте. Независимо от начального положения графического курсора текстовый курсор (вертикальная черта) переходит к левому краю текущей строки. Фрагмент вводимого текста представляется в обычном для Windows текстовом формате. Образец задания и заполнения текстовой области -- параграфа — также дан на рис. 4.2.
Для текстовых блоков опции Edit (Правка) главного меню доступны операции выделения, копирования с сохранением и стиранием выделенного текста, а также вставки его на место, указанное текстовым курсором. Однако выделение в текстовом блоке делается несколько иначе, чем в формульном. Достаточно установить мышью начало выделения и нажать, не отпуская, левую клавишу мыши. Если теперь перемещать мышь по горизонтали или вертикали, появится расширяющаяся область выделения. Выделение закончится, как только будет опущена левая клавиша мыши. Повторное нажатие этой клавиши при любом положении текстового или графического курсора снимает выделение.
4.4. Ввод в текстовые комментарии математических выражений (Embed Math)
В текстовые блоки ранних версий MathCAD можно было вводить любые ASCII-символы, но нельзя было вводить греческие буквы и знаки операторов, которые задаются собственным знакогенератором системы. Однако греческие буквы и другие знаки, а также помеченные значком ÿ, как не вычисляемые формулы, можно было вводить лишь в промежутках между текстовыми блоками.
Этот недостаток в системах MathCAD 6.0/PLUS 6.0 полностью устранен. Теперь в текстовые блоки можно вводить любые математические выражения. Для этого надо установить маркер ввода в нужное место текстового блока и исполнить команду Embed Math (Внедрить формулы). Затем нужное выражение вводится как любое математическое выражение (в том числе с применением панелей набора математических символов) и ввод фиксируется нажатием клавиши Enter. Рис. 4.3 дает пример ввода в текстовый блок математического выражения -- определенного интеграла.
Рис. 4.3. Пример ввода в текстовый блок математического выражения
В текстовый блок можно вставить любое ранее созданное математическое выражение. Для этого перенесите его в буфер обмена -- операция Copy ( Копировать). Затем, установив маркер ввода в нужное место текстового блока, перенесите в это место выражение из буфера обмена, используя команду Paste (Вставить).
Как уже отмечалось, внедренные в текстовые блоки выражения могут находиться в середине текстовой строки. Однако они могут по высоте занимать больше места, чем текстовая строка. Тогда текстовые строки автоматически раздвигаются.
Вставленное выражение редактируется точно так же, как оно редактировалось в виде формульного блока. Выражение может быть исполняемым и неисполняемым. Если нужно придать выражению статус неисполняемого (т. е. комментария), выражение надо выделить целиком и исполнить команду Toggle Equation (Отключить выражение)
в опции Math (Математика) главного меню.
4.5. Локальное изменение шрифта (Change Font)
Команда Change Font... (Изменить шрифт...)
доступна только по отношению к выделенному фрагменту текста. Она позволяет выбрать шрифт из имеющегося набора и изменить его в выделенной области текста. При использовании этой операции появляется окошко Font (Шрифт) с каталогом шрифтов (см. рис. 4.4).
Рис. 4.4. Диалоговое окно замены шрифтов
Это окно содержит три переключателя для выбора:
Font (Шрифт) -- набора шрифтов;
Font Style (Стиль) -- стиля шрифтов;
Size (Размер) -- размера шрифтов.
Набор шрифтов определяется тем, какие шрифты инсталлированы в системе Windows, в которой работает MathCAD. Стиль шрифтов может быть нормальный (особо не называется) или:
Bold (Полужирный) – полужирный шрифт;
Italic (Наклонный) – курсив;
Underline (Подчеркивание) – подчеркнутый снизу шрифт.
Эти три стиля шрифтов можно использовать в любой комбинации и с любым набором шрифтов. Они могут быстро вводиться пиктограммами с буквами B, I
и u, размещенными в строке символов.
Имеется также ряд включаемых или выключаемых опций под именем Effect (Эффект):
Strikeout (Зачеркнутый) – перечеркнутые посередине символы;
Underline (Подчеркнутый) -- подчеркнутые снизу символы;
Substript (Подстрочный) -- подстрочные символы;
Superscript (Надстрочный) -- надстрочные символы.
Как обычно, клавиша OK диалогового окна фиксирует выбор, а клавиша Cancel позволяет отказаться от модификации текстовых надписей. На рис. 4.5 представлены образцы шрифтов для набора SchoolBook, содержащего буквы как латинского, так и русского алфавитов.
Рис. 4.5. Образцы шрифтов
Многие шрифты допускают изменение их размеров (см. пример внизу рис. 4.5), что также задается в указанном окошке. Можно, например, для заглавия документа выбрать большие жирные и наклонные знаки, а текстовые сообщения задать прямыми буквами малого или среднего размера с обычной жирностью. Выбор типа шрифта зависит, в основном, от вкусов пользователя.
4.6. Изменение формата параграфа (Change Paragraph Format)
Если текстовый комментарий вводится в блоке -- параграфе, существует возможность изменения его параметров. Она вводится командой Change Paragraph Format... (Изменить формат параграфа...). Возникает диалоговое окно, показанное на рис. 4.6.
Рис. 4.6. Установка формата параграфа
Окно установки формата параграфа имеет опции Indent (Отступы):
All Lines (Для всех строк) -- установка отступа для всех строк;
First Lines (Для первых строк) – установка отступа для первых строк.
Так можно задать абзацный отступ. Кроме того, можно задать тип равнения строк Alignment (Выравнивание):
Left (Слева) -- по левому краю абзаца;
Right (Справа) -- по правому краю абзаца;
Center (По центру) -- по центру абзаца.
На рис. 4.7 показан пример выравнивания текста по правому краю для среднего блока текстовых комментариев.
Рис. 4.7. Примеры выравнивания текста
Прочитайте на этом рисунке сообщение о некоторых особенностях выравнивания текстовых надписей.
4.7. Глобальная замена шрифта (Change Default)
Эта команда служит для изменения шрифта по всему документу. Она действует как на выделенный, так и на невыделенный текст (выделение при этом отменяется). Процедуры изменения шрифта аналогичны описанным для команды Change Default (Изменить по умолчанию).
Глобальная замена шрифта необходима не только для изменения стиля документа. Случается, что принтеры (например, лазерные) не печатают шрифты некоторых типов, если они не встроены в знакогенератор принтера или не загружены в него. Тогда глобальная замена шрифта может потребоваться для обеспечения адекватной печати.
Глобальная замена шрифта часто бывает полезна и в том случае, когда в документе использован шрифт, отсутствующий в наборе шрифтов вашего ПК, например, документы готовились на другом ПК. В этом случае текст русскоязычных комментариев может оказаться бессмысленным набором произвольных символов -- "абракадаброй". Как правило, для восстановления читаемости текста достаточно подобрать иной шрифт, например содержащий символы кириллицы для вывода русскоязычных текстовых комментариев.
4.8. Орфографический контроль текста (Check Spelling)
Как уже отмечалось, документы MathCAD по внешнему виду напоминают тексты математических статей и книг. Многие пользователи применяют систему MathCAD для их подготовки.
Идя навстречу их пожеланием, фирма MathSoft ввела в систему орфографический контроль текстов. Однако для него необходимы алгоритм проверки и соответствующий словарь. Поскольку русский словарь не поставляется с англоязычной версией MathCAD, проку от системы орфографического контроля для наших пользователей мало. К сожалению, в русифицированных версиях MarhCAD орфографический контроль возможен также пока только для англоязычных текстов.
В такой ситуации проще готовить тексты (с проверкой орфографии) с помощью мощных текстовых редакторов Microsoft Word 6.0 или 7.0 (последний под Windows 95). Затем, используя команды Paste (Вставить)
и Paste Special (Специальная вставка), проверенные тексты можно ввести в документы системы MathCAD и использовать их в качестве комментариев.
4.9. Редактирование текста
Набор текстов выполняется, как и в большинстве современных текстовых редакторов, интуитивно. При достижении набранным текстом правой границы осуществляется автоматический перевод строки (русскоязычная версия MathCAD сносно справляется и с переносом слов). Для редактирования отдельных символов или слов применяется перемещаемый маркер ввода. Для его перемещения используются следующие клавиши:
á -- перемещает маркер на строку вверх;
â -- перемещает маркер на строку вниз;
à -- перемещает маркер на один символ вправо;
ß -- перемещает маркер на один символ влево;
Ctrl á -- переводит маркер в начало текущего параграфа (если
он уже там, то в начало предыдущего параграфа);
Ctrl â -- переводит маркер в начало следующего параграфа;
Ctrl à -- переводит маркер в начало следующего слова;
Ctrl ß -- переводит маркер в начало текущего слова (если он
уже там, то в начало предыдущего слова);
Home -- переводит маркер в начало текущей строки;
End -- переводит маркер в конец текущей строки.
С помощью мыши удобно осуществлять выделение текста. При нажатой левой клавише мыши ее перемещение по горизонтали обеспечивает плавное перемещение выделенной области по символам. Вертикальное перемещение ведет к построчному распространению выделяемой области.
При нажатых одновременно клавишах Shift и стрелки выделение идет в направлении, указанном стрелкой. При одновременном нажатии клавиш Ctrl, Shift и стрелки выделение идет до начала текущего или следующего слова (а если нажаты клавиши с вертикальными стрелками, то до начала или конца текущей строки). Одно слово в тексте проще всего выделить, установив на него маркер мыши и дважды щелкнув ее левой клавишей.
Операции с выделенными текстами осуществляются так же, как и с выделенными формульными блоками. Они позволяют устранять выделенные тексты, вставлять их в буфер обмена и вызывать тексты из буфера для вставок в указанное маркером ввода место. О вводе в текстовые блоки математических выражений и изменении шрифтов уже говорилось.
Через буфер обмена можно вставлять в текстовые блоки фрагменты текстов из других документов, электронных книг и даже из других приложений (в том числе с применением присущего системе Windows механизма динамического обмена данными OLE). Для этого перенесенный из другого приложения в буфер текст внедряется в документ MathCAD с помощью команды Paste Special (Специальная вставка). Если на этом тексте установить курсор мыши и быстро дважды щелкнуть левой ее клавишей, автоматически запустится создавший этот текст редактор, и текст можно будет редактировать уже в нем.
Глава 5. УПРАВЛЕНИЕ ВЫЧИСЛИТЕЛЬНЫМИ ПРОЦЕССАМИ (Math)
5.1. Задание векторов и матриц (Matrices... [Ctrl + V])
В опции Math (Математика) главного меню сосредоточены операции по управлению вычислительными процессами системы (см. рис. 5.1).
Рис. 5.1. Ниспадающее меню опции Math
главного меню
Как видно из рис. 5.1, меню опции Math
содержит следующие команды:
Matrices... (Матрицы... [Ctrl + M]) — создать матрицу или вектор, изменить их размеры;
Built-in Variables... (Встроенные переменные...) — установить значения встроенных (системных) переменных;
Units (Единицы) — вывести подменю с позициями:
Insert Unit... ( Вставить единицы... [Ctrl + U]) — вставить единицы измерений;
Change System of Units... (Сменить систему единиц...) — изменить системы единиц;
Dimensional Format... (Формат размерности...) — изменить названия основных
единиц измерения;
Choose Function... (Вставить функцию...) — показать прокручивающийся список имеющихся функций;
Randomize... (Генератор случайных чисел...) — установить начало генерации случайных чисел;
Calculate (Пересчитать [F9]) — провести расчеты по формулам, выдать результаты и обновить графики в пределах экрана;
Calculate Worksheet (Пересчитать все) — провести расчеты по всем формулам документа и обновить его целиком;
Toggle Equation (Отключить выражение) — блокировать вычисление выражения (оно становится неисполняемым комментарием) или разблокировать выражение, если оно было заблокировано;
Highlight Equation (Подсветить выражение ) — изменить цвет выделенного выражения;
Automatic Mode (Автоматический режим) — включить/выключить автоматический режим вычислений;
SmartMath (Использовать символику) — включить/выключить функции подсистемы SmartMath;
SmartMath Controls — установить опции управления подсистемой SmartMath:
Live Symbolies — включение/выключение символьных вычислений;
Optimize — включение/выключение режима оптимизации численных расчетов;
Show SmartMath — просмотр окна с оптимизирующей формулой SmartMath;
Numerical Format... (Формат числа...) — изменения формата чисел;
Font Tag... (Шрифтовая бирка...) — изменить свойства шрифта выделенного имени или всех имен, имеющих ту же шрифтовую бирку;
Apply/Modify Font Tag... (Шрифтовая бирка...) — изменить свойства шрифта выделенного имени или всех имен, имеющих ту же шрифтовую бирку;
Change to Greek Variable (Греческий шрифт [Ctrl + G]) — заменить выделенную букву на греческую.
Эти команды разделяются на четыре группы. Первая группа служит для задания важнейших математических объектов: матриц, переменных, размерных величин и установки базы генератора случайных чисел, встроенных в систему. Начнем рассмотрение этих команд.
Команда Matrices... (Матрицы...)
обеспечивает задание векторов или матриц. Как известно, матрица является заданным своим именем объектом в виде массива данных. MathCAD использует одномерные массивы — векторы — и двумерные — собственно матрицы.
Матрица характеризуется числом строк Rows
и числом столбцов Columns. Таким образом, число элементов матрицы или ее размерность равны Rows ´ Columns. Элементами матриц могут быть числа, константы, переменные и даже математические выражения. Соответственно матрицы могут быть численными и символьными.
Если использовать команду Matrices... (Матрицы...), то в текущем окне появится небольшое окошко, позволяющее задать размерность вектора или матрицы (см. рис. 5.2 справа). Для этого нужно указать число строк Rows (Строки) и число столбцов Columns (Столбцы). Нажав клавишу Enter или указав курсором мыши на изображение клавиши Create (Создать) в окошке, можно вывести шаблон матрицы или вектора (вектор имеет один из параметров размерности, равный 1).
Рис. 5.2. Вывод шаблонов вектора и матрицы и их заполнение
Шаблон содержит обрамляющие скобки и темные маленькие прямоугольники, обозначающие места ввода значений (числовых или символьных) для элементов вектора или матрицы. Один из прямоугольников можно сделать активным (отметив его курсором мыши). При этом он обводится рамочкой со срезанным верхним правым углом. Это указывает на то, что в него будут вводиться значения соответствующего элемента. С помощью клавиш перемещения курсора можно по горизонтали пробежаться по всем прямоугольникам и ввести все элементы вектора или матрицы.
Пока идет ввод элементов векторов или матриц, пустые шаблоны отображаются без каких-либо комментариев. Однако если закончить ввод до полного заполнения шаблонов, система выведет сообщение об ошибке — missing operand (пропущенный операнд). Это сообщение дается красным цветом в рамке с линией, указывающей на незаполненный шаблон или на несколько незаполненных шаблонов.
Каждый элемент матрицы характеризуется индексированной переменной, и его положение в матрице указывается двумя индексами: один указывает номер строки, другой — номер столбца. Для набора индексированной переменной прежде надо ввести имя переменной, а затем перейти к набору индексов нажатием клавиши, вводящей символ ]. Прежде указывается индекс строки, а затем через запятую индекс столбца. Примеры вывода индексированных переменных (элементов матрицы M) даны на рис. 5.2. При неправильном задании индексов появляется сообщение об ошибке (см. пример в правом нижнем углу окна на рис. 5.2).
Вырожденная в одну строку или в один столбец матрица является вектором. Его элементы — индексированные переменные с одним индексом. Нижняя граница индексов задается значением системной переменной ORIGIN. Вектор может быть столбцом или строкой.
5.2. Установка значений системных переменных (Built-In Variables...)
В системе MathCAD имеется несколько так называемых системных переменных. У них есть свои имена и значения, присваиваемые системой по умолчанию. Действие системных переменных глобальное, т. е. они доступны в любом месте программы и их значения можно изменить также в любом месте программы.
Команда Build-In Variables... (Встроенные переменные...) служит для установки значений системных переменных:
TOL [0.001] — погрешность числовых расчетов;
ORIGIN [0] — нижняя граница значения индекса индексации векторов и матриц;
PRNPRECISION [4] — число столбцов для WRITEPRN;
PRNCOLWIDTH [8] — число десятичных знаков, используемых для записи численных данных в WRITEPRN.
При применении этой команды появляется окошко со списком указанных переменных (в квадратных скобках указаны их заданные значения) — см. рис. 5.3.
Рис. 5.3. Диалоговое окно изменения значений системных переменных
Можно откорректировать значения системных переменных. К назначению двух последних переменных мы вернемся позднее, при описании оператора записи данных на диск WRITEPRN. Значения переменных можно вывести, указав после их имени знак =.
5.3. Установка размерных величин (Units...)
Команда Units... (Единицы...)
устанавливает систему измерения физических единиц и относящиеся к ней размерности величин. При ее использовании появляется подменю, имеющее следующие позиции:
Insert Unit... (Вставить единицы...) — вставить размерные единицы;
Change System of Utits... (Сменить систему единиц... [Ctrl + U]) — сменить систему единиц;
Dimensional Format... (Формат размерности...) — изменить формат размерных единиц.
При использовании команды Insert Unit...
появляется диалоговое окно, в котором можно задать нужные параметры для размерных величин (см. рис. 5.4). От соответствующей величины размерность отделяется знаком умножения.
Рис. 5.4. Диалоговое окно ввода размерных величин
С помощью этого окна можно задать одну из трех систем измерения физических величин — MKS, CGS или U.S. — либо отказаться от них. Данные о единицах измерения физических величин в той или иной системе можно найти в базе данных помощи.
Команда Change System Utits выводит диалоговое окно изменения системы размерных единиц, показанное на рис. 5.5.
Рис. 5.5. Диалоговое окно изменения системы размерных единиц
Кроме того, можно указать необходимые величины. По умолчанию это:
M [mass] (масса) -- температура;
L [length] (длина) -- длина;
T [time] (время) -- время;
Q [charge] (заряд) -- заряд;
T [Temperature] (темпер.) -- температура.
Для изменения формата размерных единиц служит команда Dimensional Format.. (Формат размерности...) . Она выводит диалоговое окно, показанное на рис. 5.6.
Рис. 5.6. Изменение формата размерных единиц
При работе с размерными величинами MathCAD производит необходимые преобразования и выводит числовые значения величин вместе с единицами их измерения. Они указываются после числового значения соответствующей величины.
5.4. Вывод функций (Choose Function...)
Обычно при подготовке документов имена функций пользователь вводит самостоятельно. Даже в русифицированных версиях системы эти имена англоязычные. Поскольку функций, встроенных в систему, очень много, запомнить их все довольно сложно. Это и не нужно, так как в MathCAD есть средство для ввода имен функций из их каталога.
Команда Choose function... (Вставить функцию...)
выполняет следующие операции:
· выводит полный перечень встроенных в систему функций;
· кратко поясняет назначение каждой функции;
· позволяет корректно ввести имя функции в место расположения курсора, установленного в математическом выражении.
Для реализации этих возможностей команда выводит диалоговое окно, показанное на рис. 5.7.
Рис. 5.7. Диалоговое окно встроенных функций
Обратите внимание, что запись каждой функции дается в полной синтаксической форме. Это исключает частые ошибки из-за неточностей в их записи.
5.5. Установка базы генератора случайных чисел (Randomize...)
Команда Randomize... (Генератор случайных чисел...)
устанавливает единственный параметр — базу генератора квазислучайных чисел системы (число, большее или равное единице). Установка производится в небольшом окошке. Устанавливаться могут разные последовательности чисел. Последнее важно, так как создаваемые генератором числа не являются строго случайными. В действительности они представляют собою серии с большим количеством повторяющихся чисел и с законом распределения, близким к равномерному. Что касается особо критических применений случайных чисел, то изменение их базы уменьшает вероятность повторения серий и делает распределение чисел более близким к равномерному.
5.6. Включение вычислений (Calculate F9)
Следующая группа команд служит для установки режимов выполнения математических операций системы. Система MathCAD может работать в двух основных режимах работы — в режиме автоматических вычислений Auto (Автоматическом) и в режиме ручных вычислений Manual (Ручном). Если работа происходит в режиме Manual, запуск вычислений производится командой Calculate (Пересчитать [F9]). Вычисления захватывают блоки от начала документа до той его части, которая видна в текущем окне.
При вычислении каждого блока он помещается в прямоугольник, заштрихованный зелеными линиями. Впрочем, если блоки содержат простые и быстро вычисляемые операции, этот эффект может быть незаметен из-за своей кратковременности.
5.7. Вычисления по всему документа (Calculate Worksheet)
Команда Calculate Worksheet (Пересчитать все)
во многом подобна предыдущей. Разница в том, что при ее применении интерпретируется и исполняется весь документ — как его видимая часть, так и невидимая. После нее ускоряется скроллинг документа, поскольку все его блоки уже вычислены.
Здесь уместно отметить, что в файл записывается документ после исполнения всех его блоков. Это означает, что в файле хранятся не только исходные тексты документа, но и данные для вычислений и графики и после загрузки документа все эти данные появляются почти сразу.
Весьма вероятно, что вам захочется изменить какие-либо отдельные данные. Вот здесь-то при неавтоматическом режиме вычислений и появится необходимость использовать описанную выше команду — она ведет к исполнению всех внесенных изменений и модификации документа.
5.8. Выключение вычислений уравнений (Toggle Equation)
Иногда возникает необходимость включить в неисполняемую часть документа какую-либо простую или сложную формулу. Казалось бы, это можно сделать в составе текстовых комментариев. Однако это не так. Текстовый редактор ранних версий системы был рассчитан на подготовку текстов, а не математических выражений. Он не позволял, например, вводить греческие буквы или редактировать сложные формулы. Это делает редактор математических выражений, но в нем математические выражения являются исполняемыми. Операция Toggle Equation (Отключить выражение) делает формульный блок неисполняемым и помечает его специальным значком — маленьким квадратиком.
Введите, например:
x := 1
sin(x) = 0.841.
Если менять значение x, будет меняться и sin(x). А теперь введите sin(x) = 0.841, но задайте операцию Toggle Equation. Теперь, какое бы значение x ни задавалось, выражение sin(x) = 0.841 будет сохраняться, поскольку оно становится неисполняемым.
Команда Toggle Equations фактически делает комментариями математические выражения любой сложности и позволяет представить их в том виде, в каком они представлены в формульных исполняемых блоках. Это дает возможность создавать вспомогательные тексты с математическими формулами любого вида и содействует созданию легко читаемых и наглядных документов.
5.9. Подкраска математических выражений (Highlight Equation)
Для придания документу наглядности некоторые уравнения и равенства можно подкрасить каким-либо цветом его основы, по умолчанию — желтым. Для этого после указания курсором нужного выражения используется команда Highlight Equations (Подсветить выражение). Она широко применяется в фирменных демонстрационных примерах и встроенных книгах системы MathCAD PLUS 6.0/PLUS 6.0 PRO.
Рекомендуется придерживаться определенных правил в применении подкраски. Например, можно выделять блоки, в которых выполняется ввод исходных данных, или блоки, в которых содержатся наиболее важные формулы. Опрятные цветные выделения делают документ легко читаемым и наглядным.
5.10. Включение/выключение режима автоматических вычислений (Automatic Mode)
Команда Automatic Mode (Автоматический режим)
устанавливает автоматический режим вычислений. Он будет работать, если против надписи команды стоит символ галочки. Вычисления выполняются автоматически с момента загрузки документа от его начала и до конца видимой части документа. Такие вычисления производятся и по мере прокрутки (скроллинга) документа вниз с помощью клавиши перемещения курсора или клавиши PgDn. Обычно этот режим устанавливается по умолчанию.
Недостаток режима автоматических вычислений — замедление прокрутки длинных документов, поскольку она осуществляется только после полного завершения вычислений в видимой части документа. Некоторые виды сложных вычислений и вывод графиков могут существенно замедлить прокрутку. Впрочем, у современных ПК с микропроцессорами 486/Pentium этот недостаток мало заметен и поэтому режим Automatic Mode является основным.
В предшествующих версиях MathCAD автоматический и ручной режимы вычислений устанавливались отдельными командами. В новых версиях, если автоматический режим выключен, устанавливается ручной режим вычислений. Тогда после загрузки вычисления не производятся, а места выводов результатов вычислений помечаются пустыми шаблонами. Скроллинг документа в этом случае производится намного быстрее, чем в режиме автоматических вычислений, что удобнее при редактировании текстовых и формульных блоков. Запуск вычислений производится нажатием клавиши F9 или исполнением команды Calculate Document (Пересчитать все).
5.11. Включение символьного процессора (Symbolic)
Как уже отмечалось, в версию MathCAD под Windows введены элементы символьных (аналитических) вычислений, что превращает MathCAD в систему компьютерной алгебры. Специальный символьный процессор системы является несколько упрощенным процессором системы Maple V.
Несмотря на заметное упрощение символьного процессора, его работа требует повышенных затрат оперативной памяти. Поэтому при загрузке системы символьный процессор по умолчанию выключен и символьное ядро системы не загружается.
Команда Symbolic (Использовать символику)
обеспечивает загрузку символьного ядра, после чего символьные вычисления становятся доступными. В процессе загрузки символьного процессора временно появляется маленькое изображение зеленого кленового листка — национального символа Канады, где находится фирма — разработчик системы Maple V.
5.12. Включение режима оптимизации вычислений (Optimize)
Начиная с версии 4.0 в систему MathCAD введена так называемая оптимизация вычислений, реализуемая подсистемой SmartMath. Ее суть заключается в выборе наиболее быстрых алгоритмов символьных вычислений, замене многократно повторяемых численных вычислений вычислениями по полученным в ходе символьных преобразований формулам. Самое значительное повышение скорости работы достигается в случае построения графиков по точкам, особенно если исходные выражения содержат сложные функции, такие, как интегралы, производные и т. д., имеющие аналитические представления. Они и используются системой SmartMath для быстрых вычислений.
Режим оптимизации также требует дополнительных затрат памяти и поэтому отключен по умолчанию. Команда Optimize (Оптимизировать) включает режим оптимизации и позволяет воспользоваться его возможностями. Они будут описаны ниже. В процессе загрузки системы оптимизации временно появляется маленькое изображение академической шапочки, символизирующей повышение "умственной способности" системы.
5.13. Установка формата чисел (Numerical Format...)
Последняя группа операций служит для задания формата числовых данных, модификации и замены шрифтового оформления математических выражений. Команда Numerical Format... (Формат числа...)
выводит диалоговое окно (см. рис. 5.8), сообщающее о формате числовых данных системы.
Рис. 5.8. Окно для установки формата чисел
Это окно содержит три выделенные части. В первой устанавливается тип основания чисел Radix: десятичные Decimal (Десять), шестнадцатеричные Hex (Шестн.) или восьмеричные Octal (Восемь). Во второй -- Imaginary (Мн. Ед.) -- задается знак мнимой единицы для комплексных чисел: i или j (напомним, что мнимая единица есть квадратный корень из –1).
Третья часть -- Precision (Точность) -- задает погрешность вычислений в виде показателя степени –n для числа 10 в этой степени. Задаются: число отображаемых знаков Displayed (Выводимая точность), границы представления чисел в экспоненциальной форме Exponential Threshold (Диапазон показателя), допустимая граница для комплексных чисел Complex Tolerance (Комплексная точность) и допустимая граница для действительных чисел Zero Tolerance (Точность нуля).
Если Re(Z)/Im(Z)>10n , то комплексное число Z выводится как действительное, а если Im(Z)/Re(Z)>10n , то число Z выводится как мнимое. Значения n для этих представлений задает параметр Complex Tolerance. Если действительное число больше числа 10 в степени n или меньше, чем 10 в степени –n, где n — значение параметра Exponencial Threshold, то число представляется в экспоненциальной форме. Если значения чисел по модулю меньше указанных параметром Zero Tolerance, числа представляются в виде нулей. Все это особенно важно при научно-технических расчетах, когда излишняя точность представления чисел ни к чему хорошему не ведет.
С помощью диалогового окна можно сделать формат глобальным (Global) или локальным (Local). Последнее возможно, если соответствующее значение отмечено выделением. Глобальный формат задает представление для всех числовых данных документа, а локальный — только для того блока, где использовалась операция изменения формата. Для массивов чисел можно задать их вывод как вывод матрицы.
5.14. Выбор шрифтов математических символов (Font Tag...)
Шрифты для математических символов привязаны к определенным классам этих символов, например к числам, переменным, надписям на графиках и т. д. Можно сказать, что они имеют определенные атрибуты, именуемые бирками. Для переменных и надписей на графиках MathCAD по умолчанию использует шрифт Times Roman с размером 10 пунктов. Однако с помощью команды Font Tag
(Шрифтовая бирка) можно назначить для них, чисел и других символов в математических выражениях иной шрифт с иным размером.
Эта команда устанавливает группу объектов в математических выражениях, шрифтовое оформление которых подлежит модификации. К таким объектам относятся переменные (Variables), константы (Constant), переменные с именами в виде греческих букв (Greek Variables) и объекты пользователя (User N, где N — номер группы).
Команда обеспечивает выбор шрифтового оформления для указанных выше объектов. При этом появляется окно с каталогом шрифтов и необходимыми для их задания опциями. Они подобны применяемым при операции выбора шрифтов для текстовых комментариев. На рис. 5.9 приведен вид переднего панно системы с открытыми окнами установки группы объектов Font Tag
(маленькое окно) и окном выбора шрифтов, которое появляется при активизации кнопки Properties (Свойства) окна Font Tag.
Рис. 5.9. Окна выбора шрифтов и выбора объектов
Параметры шрифтов устанавливаются раздельно для указанных выше объектов. Это позволяет выбрать стиль представления математических выражений, наиболее удобный для пользователя. Например, можно добиться приемлемого размера и стиля для всех составляющих математических выражений.
Следует отметить, что окно установки объектов можно активизировать и из окна выбора шрифтов, установив курсор мыши на маленький прямоугольник у правого верхнего угла этого окна и нажав левую клавишу мыши.
5.15. Замена латинских букв на греческие (Change to Greek Variable Ctrl+G)
Последняя команда Change to Greek Variable (Греческий шрифт [Ctrl + G]) опции Math (Математика) главного меню служит для замены переменных, имя которых задается одной латинской буквой, на имя переменной, заданной греческой буквой. Как уже отмечалось, греческие буквы можно ввести сразу выбором одной из пиктограмм палитры греческих букв. Однако для этого надо пользоваться мышью. Настоящая команда дает альтернативную возможность. Достаточно ввести ассоциированную с греческой буквой латинскую букву и исполнить операцию (полезна ее упрощенная реализация в виде одновременного нажатия клавиш Ctrl и G, как на рис. 5.10). В результате латинская буква заменится греческой.
Рис. 5.10. Таблица ввода греческих букв
Большинство греческих букв легко ассоциируются с латинскими. Например, для набора букв "альфа" и "бета" следует ввести латинские буквы a и b и, нажав клавиши Ctrl и G, заменить их греческими. Помните, что есть комбинации клавиш для ввода математических спецсимволов. Так, нажатие клавиш Ctrl + P вводит константу "пи", а Ctrl + Z — знак бесконечности.
Глава 6. РАБОТА С ГРАФИКОЙ (Graph)
6.1. Опция Graph главного меню
Для создания графиков в системе MathCAD имеется программный графический процессор. Основное внимание при его разработке было уделено обеспечению простоты задания графиков и их модификации с помощью соответствующих опций. Процессор позволяет строить самые разные графики, например в Декартовой и полярной системе координат, трехмерные поверхности, графики уровней и т. д.
Большинство параметров графического процессора, необходимых для построения графиков, по умолчанию задается автоматически. Поэтому для построения графика того или иного вида достаточно задать тип графика. В опции Graph (Графика) главного меню содержатся восемь основных возможностей (типов) создания (Create) графиков:
Create X-Y Plot @ (Декартов график) -- создать шаблон двухмерного графика;
Create Polar Plot (Полярный график [Ctrl + 7]) -- создать шаблон графика в полярных координатах;
Create Surface Plot (График поверхности [Ctrl + 2]) -- создать шаблон для построения трехмерного графика;
Create Contour Plot (Карта линий уровня [Ctrl + 5]) -- создать шаблон для контурного графика;
Create 3D Scatter Plot (Точечный график) -- создать шаблон для графика точек в трехмерном пространстве;
Create Vector Field Plot (Векторное поле) -- создать шаблон для графика векторного поля на плоскости;
Create 3D Bar Chart (Трехмерная гистограмма) -- создать шаблон для изображения в виде совокупности столбиков в трехмерном пространстве;
Create Picture (Изображение) -- создать шаблон области для импорта рисунка.
Вид окна системы с активной опцией Graph
главного меню показан на рис. 6.1. В этом подменю видны команды создания (Create) указанных выше типов графиков. В окне редактирования показаны также два одинаковых графика, но в разных местах и разного размера.
Рис. 6.1. Вид окна системы с активной опцией Graph
главного меню
В отдельных случаях (при выборе графиков некоторых типов) эта опция может модифицироваться и в ней появляются другие опции. Кроме того, для каждого типа графика допустимы установки различных форматов, что делает число возможных вариантов каждого типа графиков весьма значительным. Для установки форматов в опции Graph (Графика) главного меню содержатся следующие команды:
X- Y Plot Format... (Формат Декартовых графиков...) -- изменить формат двумерного графика;
Polar Plot Format... ( Формат полярных графиков...) -- изменить формат двумерного графика в полярных координатах;
Surface Plot Format... (Формат 3D-графика...) -- изменить формат трехмерного графика;
Picture Format... (Формат изображения...) -- изменить формат области для импорта рисунка.
С каждой версией MathCAD графические возможности системы улучшались и в версиях MathCAD PLUS 6.0 и PLUS 6.0 PRO достигли высокой степени совершенства. Это позволило создавать математические графики практически всех типов. Особенно удачно решено построение трехмерных графиков, осуществлять его можно с удалением и без удаления невидимых линий каркаса, с монохромной и цветной функциональной закраской, с различными углами поворота и т. д.
6.2. Установка шаблона двумерных графиков (Create X-Y Plot @)
Рассмотрим графические возможности системы начиная с команды Create X-Y Plot @ (Формат Декартовых графиков). Она выводит в текущее положение курсора шаблон графиков 2D-типа или графиков в Декартовых координатах. Напоминаем, что это обычный график на плоскости с воображаемыми (или действительно нарисованными) осями X (горизонтальная) и Y (вертикальная), расположенными под прямым углом друг к другу.
Каждая точка Декартова графика характеризуется своими координатами x и y, где x -- абсцисса точки, а y -- ее ордината. Точки соединяются друг с другом разнообразными линиями (сплошной, пунктирной и т. д.). Могут быть показаны и исходные (узловые) точки графика в виде жирных точек, квадратиков, кружков и т. д., возможно и построение на одном рисунке графиков нескольких функций.
Перед применением этой команды необходимо задать функции, графики которых должны строиться, и задать изменение их аргумента (например, x) в заданном интервале. Впрочем, простые функции, если они в дальнейшем не используются, можно указать в шаблоне самого графика. Далее надо приблизительно наметить место левого верхнего угла графика и установить на него графический курсор. Затем следует ввести команду (используя соответствующую позицию меню или нажав клавиши, задающие символ @).
Рис. 6. 2 показывает задание трех функций и вывод шаблона графика (внизу).
Рис. 6.2. Задание трех функций и вывод незаполненного шаблона графика
Незаполненный шаблон графика представляет собою большой пустой прямоугольник с шаблонами данных в виде темных маленьких прямоугольников, расположенных около осей абсцисс и ординат будущего графика. В средние шаблоны данных надо поместить имя переменной (x у оси абсцисс) и имена функций (у у оси ординат). Если указываются имена нескольких функций для построения в одном шаблоне их графиков, то для их разделения следует использовать запятые. Чтобы переместить по шаблонам метку их выделения, следует использовать клавиши перемещения курсора. Можно выбрать шаблон данных и с помощью мыши, указав нужный шаблон и нажав левую клавишу мыши.
Крайние шаблоны данных служат для указания предельных значений абсцисс и ординат, т. е. они задают масштабы графика. Если оставить эти шаблоны незаполненными, то масштабы по осям графика будут устанавливаться автоматически. Недостаток тут в том, что масштабы окажутся не вполне удобными, например будут представлены неокругленными десятичными цифрами. Рекомендуется всегда вначале использовать автоматическое масштабирование и лишь затем изменять масштабы на более подходящие.
Чтобы произошло построение графика в автоматическом режиме вычислений, достаточно вывести курсор за пределы графического объекта. В режиме вычислений Manual (ручном) для этого нужно еще нажать клавишу F9. При построении область графика во время вычислений ординат функций покрывается зеленой штриховкой, затем графики функций появляются в шаблоне (см. рис. 6.3).
Рис. 6.3. Пример построения двух графиков трех функций
Если что-либо в построенном графике не вполне удовлетворяет пользователя, можно применить описанные ниже операции изменения формата графиков. Эти операции позволяют изменять заданные по умолчанию параметры графиков.
Графики можно перемещать по полю окна документа и изменять их размеры. Для этого надо выделить график пунктирной линией. Проще всего это можно сделать так: поместить курсор мыши вблизи графика и, нажав левую клавишу мыши, перемещать ее в направлении графика наискосок. Курсор начнет вычерчивать область выделения в виде прямоугольника из черных пунктирных линий. Как только эта область захватит график и он тоже окажется обведен пунктирным прямоугольником, надо отпустить клавишу мыши. В правой части рис. 6.3 показан тот же график после увеличения его размеров и редактирования формата.
Стоит поместить графический курсор в область графика, как изображение курсора изменится (вместо маленького красного крестика оно приобретет вид большого черного креста). Если теперь нажать левую клавишу мыши и начать ее перемещать, то весь прямоугольник (он временно покрывается штриховкой) будет перемещаться по окну. Установите его в нужное место и отпустите левую клавишу мыши. Рисунок окажется на новом месте.
Для изменения размеров рисунка нужно точно подвести курсор к нижней или правой стороне прямоугольника, выделяющего область рисунка. Изображение курсора при этом заменяется на жирную двустороннюю стрелку, указывающую, в каких направлениях можно растягивать рисунок. Нажав левую клавишу мыши, можно захватить соответствующую сторону прямоугольника и, не отпуская клавишу, переместить сторону в нужном направлении. После того как клавиша будет отпущена, рисунок будет перестроен в новых размерах.
Если рисунок выделен сплошной линией (для этого достаточно поместить курсор в его область и нажать левую клавишу мыши или, переместив курсор клавишами, нажать клавишу Enter), можно пользоваться операциями изменения его формата, описанными ниже. При любом виде выделения рисунка нажатие клавиши F3 стирает рисунок в окне и переносит его в буфер обмена. Переместив курсор, установившийся на месте левого верхнего окна бывшего графика, в новое место и нажав клавишу F4, можно перенести рисунок на новое место.
Особо следует отметить возможность помещения текстовых комментариев в область графиков. Для этого вначале надо подготовить их в стороне от графика и выделить пунктирной линией, затем, поместив курсор мыши в область текста, нажать левую клавишу мыши и перенести текстовый блок в область рисунка. Установив текст в нужном месте, надо отпустить клавишу мыши. Если при этих операциях или снятии выделений нанесенные на рисунок надписи исчезают, воспользуйтесь командой восстановления изображения на экране — Ctrl + R.
Этим методом не стоит злоупотреблять; надписи сверху, снизу и сбоку графиков (в пределах области их определения) можно создавать с помощью соответствующих средств задания формата графиков. Они будут описаны несколько позже. Такие надписи никогда не исчезают. Увы, нередко их нельзя делать на русском языке из-за ограниченного набора шрифтов, выделенных для них.
6.3. Установка шаблона графиков в полярной системе координат (Create Polar Plot [Ctrl + 7])
В полярной системе координат каждая точка задается углом W, радиусом и его длиной R(W). График функции обычно строится при изменении угла W в определенных пределах, чаще всего от 0 до 2p. Команда Create Polar Plot (Полярный график[Ctrl + 7]) выводит шаблон таких графиков, показанный на рис. 6.4. Этот шаблон имеет форму окружности.
Рис. 6.4. Шаблон графиков типа Polar Plot
Перед построением таких графиков надо задать изменение ранжированной переменной W (или с другим именем) в заданных пределах. После вывода шаблона следует ввести W
в шаблон снизу и функцию R(W) в шаблон справа, а также указать нижний предел изменения длины радиус-вектора R(W) -- Rmin в шаблоне справа внизу и верхний предел -- Rmax в шаблоне справа сверху.
На рис. 6.5 показано построение графиков в полярной системе координат: слева — по описанному шаблону, справа — с помощью шаблона обычной X-Y Plot двумерной графики. Сейчас R(W) = 1, так что в обоих случаях строится окружность (если дисплей имеет различные масштабы по вертикали и горизонтали, окружность превратится в эллипс).
Рис. 6.5. Графики функций в полярной системе координат
При построении графика в полярной системе координат с использованием шаблона обычного графика в прямоугольной системе координат надо по оси X установить R(W) · cos(W), а по оси Y -- R(W) · sin(W). Построение графиков в полярной системе координат с помощью шаблона обычной X-Y Plot графики в ряде случаев даже более предпочтительно, поскольку в математической литературе графики параметрически заданных функций чаще всего строятся именно таким образом. При задании даже простых функций R(W)
графики в полярной системе координат могут иметь весьма причудливый вид.
6.4. Установка шаблона трехмерных графиков (Create Surface Plot [Ctrl + 2])
Эта команда служит для построения трехмерной поверхности Z(X ,Y), предварительно представленной матрицей M ординат Z. При этом выводится шаблон графика, левый верхний угол которого помещается в место расположения курсора. Шаблон, в свою очередь, содержит единственный шаблон данных -- темный прямоугольник у левого нижнего угла основного шаблона. В него надо занести имя матрицы со значениями ординат 3D-поверхности. Разумеется, прежде чем строить график 3D-поверхности, нужно ее определить математически. На рис. 6.6 показан пример такого определения.
Рис. 6.6. Задание и построение трехмерной поверхности без удаления невидимых линий
Наглядность представления трехмерных поверхностей зависит от множества факторов: масштаба построений, углов поворота фигуры относительно осей, применения алгоритма удаления невидимых линий или отказа от него, использования функциональной закраски и т. д.. Для изменения этих параметров следует использовать операцию установки формата графика (см. далее). На рис. 6.7 показано то же построение, что и описанное выше, но с применением алгоритма удаления невидимых линий.
Рис. 6.7. Задание и построение трехмерной поверхности с удалением невидимых
линий
Нетрудно заметить, что применение алгоритма удаления невидимых линий делает рисунок трехмерной поверхности намного более наглядным. Дальнейшее повышение наглядности восприятия 3D-поверхностей обеспечивается применением функциональной закраски. По существу, она дает дополнительную информацию о третьем измерении; в нашем случае, чем ниже расположена поверхность фигуры, тем она темнее (см. рис. 6.8).
Рис. 6.8. Задание и построение трехмерной поверхности с функциональной закраской
С помощью описываемых ниже команд изменения формата можно получить множество разновидностей 3D-графики. В частности, возможен вывод координатных осей, "параллелепипеда", обрамляющего фигуру, и иных деталей подобных графиков, например титульных надписей (см. надпись над фигурой на рис. 6.8).
6.5. Установка шаблона контурных 3D-графиков (Create Contour Plot [Ctrl + 5])
Еще один широко распространенный тип графиков для представления трехмерных поверхностей -- график из линий равного уровня. Такие графики широко применяются, например, в картографии. Команда Create Contour Plot (Карта линий уровня) служит для построения шаблона таких графиков. Он подобен шаблону, описанному в предыдущем параграфе (кстати, как и предшествующие выводу шаблона действия по созданию матрицы M).
На рис. 6.9 показано построение контурного графика в виде линий равного уровня. Численные значения уровня представлены рядом цифр.
Рис. 6.9. Контурный график 3D-поверхности
Возможно задание высот 3D-поверхности с помощью функциональной окраски. Тогда можно выполнить построение этой поверхности в виде распределения плотности окраски (см. рис. 6.10).
Рис. 6.10. График распределения плотности 3D-поверхности
При использовании цветной функциональной окраски описанные выше типы графиков выглядят весьма впечатляюще. Но неплохие результаты получаются и при задании монохромных графиков. В этом случае гамма цветов заменяется просто разной плотностью серого цвета, от ярко белого до черного.
6.6. Установка шаблона точечного 3D-графика (Create 3D Scatter Plot)
Нередко трехмерные поверхности представляют в виде разбросанных в пространстве точек, кружочков или иных фигур. Каждая из этих фигур несет информацию о геометрическом положении ее центра в трехмерном пространстве. Такой график создается командой Create 3D Scatter Plot (Точечный график) -- см. рис. 6.11.
Рис. 6.11. График 3D-поверхности в виде разбросанных в пространстве точек
Размеры точек, их вид и окраску можно изменять с помощью команды изменения формата 3D-графика. Обычно весьма наглядны графики с малыми фигурами, расположенными внутри параллелепипеда.
6.7. Установка шаблона 3D-графиков с векторным представлением (Create Vector Field Plot)
Еще один вид представления 3D-поверхности -- векторное представление. Оно задается построением коротких стрелочек -- векторов. Стрелка обращена острием в сторону наибольшего нарастания высоты поверхности. На рис. 6.12 показан пример подобного графика. Для его построения используется команда Create Vector Field Plot (Векторное поле).
Рис. 6.12. Представление 3D-поверхности векторами
Эти графики применяются редко из-за трудностей построения множества стрелок, для каждой из которых надо рассчитывать градиент поля. Но MathCAD дает удобную возможность широкого применения этого вида графиков. Он особенно подходит для представления электромагнитных, тепловых, гравитационных и иных полей.
6.8. Установка шаблона 3D-графиков в виде гистограммы (Create 3D Bar Chart)
Весьма распространенной формой представления 3D-поверхностей является также представление ее рядом трехмерных столбиков, высота которых определяется значением координаты Z(X, Y). Для этого используется команда Create 3D Bar Chart (Трехмерная гистограмма) -- см. рис. 6.13.
Рис. 6.13. Представление 3D-поверхности трехмерными столбиками
Подобные графики широко применяются при представлении сложных статистических данных, например функций с тремя независимыми переменными. Обычно их построение считается “высшим пилотажем”, но MathCAD превращает его в обыденную операцию.
6.9. Установка шаблона импортируемого рисунка (Create Picture)
Важной возможностью систем MathCAD является импорт графических файлов, создаваемых другими графическими системами, например графическими редакторами класса PaintBrush, системами AutoCAD, PCAD и др. Это позволяет включать в документы MathCAD высококачественные графические иллюстрации, что крайне необходимо при создании электронных книг.
Перед импортом файла надо ассоциировать (связать) его с именем какой-либо переменной MathCAD. Для этого следует использовать команду Associate в подменю опции File главного меню. На рис. 6.14 показано, каким образом файл columbia.msc с созданным с помощью системы AutoCAD изображением космического челнока ассоциируется с переменной c. Затем, после установления связи между ними, нужно активизировать кнопку Associate и закрыть диалоговое окно.
Рис. 6.14. Ассоциирование файла с переменной
Для реализации импорта рисунка используется команда Create Picture (Изображение). Она устанавливает, как показано на рис. 6.15, шаблон рисунка, импортируемого извне (для системы, из которой берется график, речь идет о его экспорте).
Рис. 6.15. Создание шаблона для импортируемого рисунка
В нижнем левом углу шаблона надо указать имя переменной, ассоциированной с файлом рисунка. Тогда в шаблоне появится нужный рисунок (см. рис. 6.16).
Рис. 6.16. Пример импорта рисунка
Импортируемый рисунок можно, как и любой другой, перемещать с помощью мыши по экрану, растягивать его, выделять и помещать в буфер обмена и т. д. Заглядывая вперед, отметим, что можно перенести в текст документов и множество рисунков из электронного справочника (Handbook) системы. Это заметно облегчает подготовку в среде MathCAD хорошо проиллюстрированных учебных программ.
Помимо импорта рисунков из файлов система MathCAD допускает копирование рисунков из буфера обмена системы Windows. Для этого надо ввести рисунок в буфер обмена (например, используя графический редактор Windows Paint Brush или операции Copy (Копировать) либо Cut (Вырезать) прикладных Windows-программ). Затем, перейдя к работе с системой MathCAD, нужно установить курсор на место верхнего левого угла будущего рисунка и выполнить операцию Paste (Вставить) в позиции Edit (Правка) главного меню (или нажать клавишу F4).
6.10. Установка формата двумерной графики (X-Y Plot Format...).
Команда X-Y Plot Format... (Формат Декартовых графиков...) выводит в центр текущего окна окно с опциями формата графиков 2D-типа (см. рис. 6.17). Следует помнить, что для изменения формата уже построенного графика необходимо выделить его, поместив курсор в поле графика и нажав клавишу Enter (или левую клавишу мыши , если курсор управляется ею). Выделенный график обводится сплошной линией.
Рис. 6.17. Окно с опциями задания формата 2D-графика
Как видно из рис. 6.17, диалоговое окно формата имеет панельный переключатель на 4 позиции:
X-Y Axes (X-Y Оси) -- управление опциями осей;
Traces (Графики)
-- управление линиями графика;
Labels (Надписи) -- управление метками (надписями);
Defaults (По умолчанию) -- задание опций по умолчанию.
В панели X-Y Axes содержатся следующие основные опции, относящиеся к осям X и Y (Axis X и Axis Y):
Log Scale (Лог. масштаб) -- установка логарифмического масштаба;
Crid Lines (Линии сетки) -- установка линий масштабной сетки;
Numbered (Пронумеровать) -- установка цифровых данных по осям;
Autoscale (Автомасштаб) -- автоматическое деление осей;
Show Markers (Нанести риски) -- просмотр маркеров;
Auto Grid (Автосетка) -- автоматическая установка масштабных линий;
No. of Grids (Число интервалов) -- установка числа масштабных линий.
Эти опции очевидны. Отметим лишь, что если опция Grid Lines отключена, то масштабная сетка графика не строится, хотя на осях размещаются короткие деления. Опция Numbered
обеспечивает редактирование цифровых данных (указаний на масштаб). Например, она полезна для округления нижнего и верхнего пределов изменений значений абсцисс и ординат, которые при автоматическом выборе масштаба могут оказаться десятичными числами с дробной частью.
Возможна также установка следующих опций координатных осей (Axes Style):
Boxed (Рамка) — оси в виде прямоугольника;
Crossed (Репер) -- оси в виде креста;
None (Ничего) -- отсутствие осей.
Внизу панели имеются следующие клавиши:
Close (OK) -- закрытие окна;
Cancel (Отмена) -- выход из установок;
Apply (Применить) -- применение опций к выделенному графику;
Help (Справка) -- вывод подсказки.
Следующая панель Traces (Графики) -- она показана на рис. 6.18 -- служит для управления отображением линий, которыми строится график.
Рис. 6.18. Панель Traces
С помощью опций этой панели можно управлять следующими параметрами линий графика:
Legend Label (Имя кривой) -- указание типа линий у оси ординат;
Symbol (Маркер) -- выбор символа, который помещается на линию;
Line (Линия) -- установка типа линий (сплошная, пунктирная и др.);
Color (Цвет) -- цвет линий;
Type (Тип) -- тип графиков;
Weight (Толщина) -- толщина линий.
В средней части окна опций формата содержится каталог линий графиков с указанием следующих их установок:
Symbol (Маркер) -- установка символа отметки базовых точек графика;
Line (Линия) -- установка типа линии;
Color (Цвет) -- установка цвета линии и базовых точек;
Trace type (Тип) -- установка типа графика.
Узловые точки графиков ( для которых вычисляются координаты) часто требуется выделить какой-либо фигурой -- кружком, крестиком, прямоугольником и т. д. Опция Symbol (Маркер) позволяет задать следующие отметки базовых точек графика каждой из функций:
none (ничего) -- без отметки;
x's -- наклонный крестик;
+'x -- прямой крестик;
box (квадр) -- квадрат;
dmnd (ромб) -- ромбик.
Графики отдельных функций можно также выделять, используя для их построения линии различного типа. Опция Line задает построение следующих типов линий:
none (ничего) -- линия не строится;
solid (сплшн) -- непрерывная линия;
dash (штрих)
-- пунктирная линия;
dadot (штрпун) -- штрих-пунктирная линия.
Другой распространенный способ выделения линий, относящихся к различным кривым на графике, заключается в изменении их цвета. Разумеется, этот метод эффективен при применении цветного дисплея и цветного (например, струйного) принтера для распечатки графиков. Опция Color
задает следующие основные цвета линий и базовых точек:
red (кр) -- красный;
blu (син) -- синий,
grn (зел) -- зеленый,
cya (гол) -- голубой,
brn (кор) -- коричневый,
blc (чер) -- черный.
Важное значение имеет и тип графика. Опция Type (Тип) задает тип графика:
line (линия) -- построение линиями;
points (точки) -- построение точками;
err (инт-л) -- построение вертикальными черточками с оценкой интервала погрешностей;
bar (столб) -- построение в виде столбцов гистограмм;
step (ступен) -- построение ступенчатой линией step;
draw (рис) -- построение протяжкой от точки до точки.
Возможные конфликты с отметкой символами и типами линий автоматически устраняются. При этом приоритет отдается опции Type (Тип), а конфликтные типы линий или точек отмечаются тремя звездочками. Каждая из указанных опций имеет свое меню с традиционными правилами его использования.
Еще две опции связаны с возможностью удаления с графика вспомогательных надписей:
Hide Argument (Скрыть переменные) -- прячет обозначения математических выражений по осям графика;
Hide Legend (Скрыть имена) -- прячет обозначения имен кривых графика.
Панель меток Label (Надписи) позволяет вводить в рисунок дополнительные надписи, что иллюстрирует рис. 6.19. Эта панель появляется, если уже создан текущий график.
Рис. 6.19. Панель задания дополнительных надписей
Для установки надписей служат небольшие окошки:
Title (Заголовок) – установка титульной надписи к рисунку;
X-Axis (X-ось) – установка надписи по оси X;
Y-Axis (Y-ось) – установка надписи по оси Y.
В разделе Title содержатся опции Above (Сверху)
и Below (Снизу) для установки титульной надписи либо над рисунком, либо под ним. Активизация этих опций задается установкой жирной точки в кружке. Кроме того, опция Show Title (Показать заголовок) позволяет включать или выключать отображение титульной надписи. Для ее активизации служит квадратное окошко, пустое при отказе от вывода надписи и с крестом при выводе надписи.
Панель Defaults (По умолчанию), как показано на рис. 6.20, служит для установки опций графики Change to Defaults (Вернуть значения по умолчанию) и Use for Defaults (Использовать для значений). Установленные и зафиксированные опции используются в дальнейшем при построении графиков функций одной переменной.
Рис. 6.20. Панель установки и фиксации опций
С помощью комбинаций этих опций можно создавать различные виды графиков, например: с обозначением функций или без них, с обозначением аргумента или без него и др. Обозначения исчезают, если их исчезновение задано, как только снимается выделение графика.
Влияние большинства опций показано на графиках, расположенных слева от диалогового окна установки опций. Напоминаем, что для визуализации опций при выведенном окне их установки служит клавиша Apply (Применить) каждого диалогового окна. Эта клавиша позволяет начать наблюдение за сделанными изменениями еще до закрытия окна задания опций, что заметно облегчает экспериментирование с различными форматами графиков.
В целом перечисленные опции предоставляют возможность создавать графики самых различных видов, удовлетворяющие любым запросам пользователя (см., например, шесть типов одного и того же графика на рис. 6.21).
Рис. 6.21. Графики функции, построенные с применением различных форматов
Задание различных форматов графики позволяет уверенно различать кривые на графике и соотносить их с той или иной функцией, а введение дополнительных надписей (титульной и по осям) -- дополнительно разнообразить графики.
6.11. Установка форматов графиков в полярной системе координат (Polar Plot Format...)
Команда Polar Plot Format... (Формат полярных графиков...) обеспечивает задание форматов графиков, которые строятся в полярной системе координат. Она выводит окно с панельным переключателем (см. рис. 6.22).
Рис. 6.22. Окно с панельным переключателем для установки форматов графиков в полярной системе координат
Переключатель содержит следующие позиции:
Polar Axes (Оси) -- установка форматов отображения осей;
Traces (Графики) -- управление линиями графика;
Labels (Надписи) -- управление метками (надписями);
Defaults (По умолч.) -- задание опций по умолчанию.
На рис. 6.22 переключатель установлен в положение Polar Axes. При этом задаются форматы отображения радиус-вектора (Radial) и его угла (Angular). Возможные опции были описаны ранее и нет смысла их повторять. Раздел Axes Style (Стиль осей) позволяет задать стиль отображения координатных осей в виде окружности вокруг графика Perimeter (Обрамление), в виде расположенных крестом осей Crossed (Визир) и без представления координатных осей None (Ничего).
Опции панелей Traces и Labels также аналогичны ранее описанным. Панель Labels упрощена (рис. 6.23), на ней предусмотрена установка только дополнительной титульной надписи.
Рис. 6.23. Панель Labels окна установки форматов графиков в полярной системе координат
Панель Defaults (По умолч.) позволяет зафиксировать введенные опции и использовать их в дальнейшем как опции по умолчанию. Таким образом, вы можете один раз настроить систему под нужный вид графиков и в дальнейшем использовать сделанные установки для построения других графиков.
6.12. Установка форматов 3D-графики (3D Plot Format...)
Команда 3D Plot Format... (Формат 3D графика...) меню служит для установки форматов представления 3D-графиков (см. рис. 6.24).
Рис. 6.24. Панель установки форматов 3D-графиков
Панельный переключатель окна установки форматов 3D-графиков содержит следующие позиции:
View (Вид) -- установка опций обзора 3D-фигур;
Axes (Оси) -- установка опций представления осей;
Color&Lines (Цвет и линии) -- установка цвета и типа линий;
Title (Заголовок) -- установка титульной надписи.
На рис. 6.24 панельный переключатель показан в положении View. При этом возможна установка ряда параметров обзора 3D-фигур, объединенных в несколько групп.
Группа View (Вид) содержит опции:
Rotation (Вращение) -- задание угла поворота (от 0 до 180 градусов);
Tilt (Наклон) -- задание угла наклона (от 0 до 90 градусов);
Vertical Scale (Верт. масштаб) -- задание относительного размера по вертикали (от 1 до 100%).
Группа Axes (Оси) задает тип отображения осей:
Perimeter (Периметр) -- по периметру;
Corner (Репер) -- в углу;
None (Ничего) -- без вывода осей.
Группа Black Plans (Грани) содержит опции:
Show (Показать) -- отображение в цвете;
Fill Color... (Закрасить...) -- установка цвета координатных плоскостей;
Enge Color... (Цвет ребер...) -- установка цвета ребер с целью выделения контуров граней и линий сетки.
При установке цветов появляется диалоговое окно выбора цвета. Выбор цвета определяется возможностями применяемого видеоадаптера. Группа Display As (Отобразить как) служит для задания общего типа 3D-графиков:
Surface Plot (Поверхность) -- в виде 3D-поверхности;
Contour Plot (Линии уровня) -- в виде линий равного уровня;
Data Point (3D-точки) -- в виде отдельных точек в 3D-пространстве;
3D Bar Chart (3D-гистограмма) -- в виде трехмерных гистограмм.
И наконец, группа Frames (Рамки)
служит для установки опций видимости ограничительных элементов графиков:
Show Border (Рамка) -- задает рисунок в рамке;
Show Box (Ящик) – задает рисунок в трехмерном параллелепипеде.
Панель Axes (Оси) показана на рис. 6.25.
Рис. 6.25. Панель Axes для 3D Plot Format
С помощью этой панели для каждой координатной оси устанавливаются следующие опции:
Grid Lines (Линии сетки) -- вывод масштабных линий;
Numbered (Пронумеровать) -- оцифровка линий;
Auto Grid (Автосетка) -- автоматический выбор числа линий;
No. of Grids (Число инт.) -- прямое задание числа линий;
Min. Val (Мин) -- минимальное значение координаты;
Max. Val (Макс) -- максимальное значение координаты.
Панель Color&Lines (Цвета и линии), как показано на рис. 6.26, служит для установки цветовых параметров 3D-графики.
Рис. 6.26. Панель Color&Lines для 3D Plot Format
Она устанавливает следующие опции группы Shading
(Окраска):
Color (Цветная) -- цветная раскраска;
None (Нет) -- отсутствие раскраски;
Grayscale (Черно-белая) -- раскраска точками разной плотности.
Если используются возможности построения фигур с интерполяцией Interpolated Mesh (Сетка интерполяции), то панель Color&Lines позволяет установить число строк (No. of Rows) и столбцов (No. of Columns) для узловых точек фигуры.
Опция Hide Mesh (Невидимые линии) группы Fill Style (Стиль заполнения) позволяет включать или выключать алгоритм удаления невидимых линий каркаса изображения. Опция Path Plot (Площадки)
этой группы задает особый вид графика -- площадочный.
Наконец, последняя группа опций — Contours (Уровни)
— задает параметры построения контурных графиков:
Contour Lines (Линии уровня) -- показать контурные линии;
Numbered (Пронумеровать) -- оцифровать контурные линии;
Auto Contour (Авто линии) -- автоматически установить количество контурных линий;
No. Of Contours (Число линий) -- установить заданное количество контурных линий.
Панель Title (Заголовок), как показано на рис. 6.27, позволяет расположить введенную в окно Title титульную надпись. Опции Above (Сверху)
и Below (Снизу) устанавливают местоположение надписи относительно рисунка, опция Show Title (Показать заголовок) позволяет показать или скрыть титульную надпись.
Рис. 6.27. Панель задания и вывода титульных надписей Title для 3D Plot Format
Виды опций и их доступность могут несколько изменяться в зависимости от вида выбранного графика (описанное относилось к графикам типа Surface Plot). Использование различных опций позволяет получить желаемую наглядность трехмерных фигур (см. рис. 6.28). Удачный выбор углов поворота и наклона фигур, а также относительного размера подчас выявляет ранее невидимые (при неправильном выборе углов) детали фигуры.
Рис. 6.28. Трехмерная поверхность в двух видах, отличающихся параметрами опций 3D Plot Format
По рис. 6.28 нетрудно заметить, сколь сильно меняется вид сложной трехмерной фигуры в зависимости от установки параметров опций. При их неудачном выборе некоторые детали фигуры могут оказаться невидимыми или малозаметными. Как правило, рекомендуется включать алгоритм удаления невидимых линий, поскольку при этом общий вид фигуры получается более естественным. Впрочем, иногда (для рассмотрения невидимых деталей фигуры) этот алгоритм полезно отключать.
6.13. Установка формата импортируемого рисунка (Picture Format...)
Эта команда выводит (см. рис. 6.29) небольшое окно со следующими двумя опциями, относящимися к построению импортируемых из других графических систем рисунков:
Use original size (Исходный размер) -- построение в размерах оригинала;
Show border (Показать рамку) — построение обводящего рисунок прямоугольника.
Рис. 6.29. Окно с опциями импортируемых рисунков
Графики трехмерных поверхностей, а также импортируемые рисунки могут перемещаться в любом направлении в нужное место окна текущего документа. Можно также плавно менять их размеры. Все эти действия осуществляются точно так же, как в случае с 2D-графиками.
Глава 7. РАБОТА С СИМВОЛЬНЫМ ПРОЦЕССОРОМ (Symbolic)
7.1. Возможности символьного процессора
Системы компьютерной алгебры снабжаются специальным процессором для выполнения аналитических (символьных) вычислений. Его основой является ядро, хранящее всю совокупность формул и формульных преобразований, с помощью которых производятся аналитические вычисления. Чем больше этих формул в ядре, тем вероятнее, что поставленная задача будет решена; разумеется, если такое решение существует в принципе (что бывает далеко не всегда).
Ядро символьного процессора системы MathCAD 6.0 — упрощенный вариант ядра известной системы символьной математики Maple V фирмы Waterloo Maple Software [12, 18].
Доступ к ядру осуществляется лишь частично. Прямой доступ к большинству его операций (возможный в системе Maple V R3) для пользователя закрыт. К примеру, библиотечный модуль Maple V содержит около 100 функций линейной алгебры, тогда как в модуле MathCAD 3.0 есть только три важнейшие функции из этого раздела. Многие функции и правила преобразования в ядре используются лишь для получения промежуточных преобразований.
Тем не менее это обстоятельство нельзя считать большим недостатком системы MathCAD. Во-первых, потому, что ее назначение иное -- прежде всего решение задач в числовом виде. А во-вторых, потому, что система Maple V явно избыточна (в ее ядре около 2500 функций и правил преобразования) и ориентирована на пользователей с весьма далекими от средних потребностями в решении задач компьютерной алгебры (символьной математики) [12].
Введение в систему MathCAD символьных вычислений придает ей качественно новые возможности, которые отсутствовали у прежних версий системы [5--7]. Теоретические сведения об алгоритмах компьютерной алгебры можно найти в книге [19]. Куда важней, что символьные вычисления выполняются в конечном счете столь же просто (для пользователя), как, скажем, вычисление квадрата x.
Операции, относящиеся к работе символьного процессора, содержатся в меню опции Symbolic (Символика) главного меню (см. рис. 7.1).
Рис. 7.1. Вид экрана системы с меню опции Symbolic
Чтобы символьные операции выполнялись, процессору необходимо указать, над каким выражением это должно проводиться, т. е. надо выделить выражение (правила выделения неоднократно описывались выше). Для ряда операций надо не только указать выражение, но и наметить переменную, относительно которой выполняется символьная операция. Само выражение в таком случае не выделяется -- ясно, что если маркер ввода выделяет переменную какого-либо выражения, то это выражение уже отмечено наличием в нем выделяемой переменной.
Символьные операции разбиты на пять характерных разделов. Первыми идут наиболее часто используемые операции. Операции могут выполняться с выражениями, содержащими комплексные числа или имеющими решения в комплексном виде.
Операции с выделенными выражениями:
Evaluate (Вычислить) -- преобразовать выражение с выбором вида преобразований из подменю;
Simplify (Упростить) -- упростить выделенное выражение с выполнением таких операций, как сокращение подобных слагаемых, приведение к общему знаменателю, использование основных тригонометрических тождеств и т. д.;
Expand Expression (Разложить по степеням) -- раскрыть выражение [например, для (X + Y) × (X – Y) получаем X2 – Y2];
Factor Expression (Разложить на множители) -- разложить выражение на множители [например X2 – Y2 даст (X + Y) × (X – Y)];
Collect on Subexpression (Разложить по подвыражению) -- собрать слагаемые, подобные выделенному выражению, которое может быть отдельной переменной или функцией со своим аргументом (результатом будет выражение, полиномиальное относительно выбранного выражения).
Операции с выделенными переменными:
Polynomial Coefficients (Полиномиальные коэффициенты) -- найти коэффициенты полинома по заданной переменной, приближающего выражение, в котором эта переменная использована;
Differintiate on Variable (Дифференцировать по переменной) -- дифференцировать все выражение, содержащее выделенную переменную, по отношению к этой переменной (остальные переменные рассматриваются как константы);
Integrate on Variable (Интегрировать по переменной) -- интегрировать все выражение, содержащее выделенную переменную, по этой переменной;
Solve for Variable (Решить относительно переменной) -- найти значения выделенной переменной, при которых содержащее ее выражение становится равным нулю (решить уравнение или неравенство относительно выделенной переменной);
Substitute for Variable (Заменить переменную) -- заменить указанную переменную содержимым буфера обмена;
Expand to Series... (Разложить в ряд...) -- найти несколько членов разложения выражения в ряд Тейлора относительно выделенной переменной;
Convert to Partial Fraction (Разложить на элементарные дроби) -- разложить на элементарные дроби выражение, которое рассматривается как рациональная дробь относительно выделенной переменной.
Операции с выделенными матрицами
Они представлены опцией Matrix (Матричные операции), которая имеет свое меню со следующими командами:
Transpose Matrix (Транспонировать) – получить транспонированную матрицу;
Invert Matrix (Обратить) -- создать обратную матрицу;
Determinant of Matrix (Определитель) -- вычислить детерминант (определитель) матрицы.
Операции преобразования
В MathCAD PLUS 6.0 в опции Symbol (Символика)
содержится раздел команд преобразования, включающий меню со следующими возможностями:
Fourier Transform (Преобразование Фурье) -- выполнить прямое преобразование Фурье относительно выделенной переменной;
Inverse Fourier Transform (Обратное преобразование Фурье) -- выполнить обратное преобразование Фурье относительно выделенной переменной;
Laplace Transform (Преобразование Лапласа) -- вычислить прямое преобразование Лапласа относительно выделенной переменной (результат -- функция от переменной s);
Inverse Laplace Transform (Обратное преобразование Лапласа) -- вычислить обратное преобразование Лапласа относительно выделенной переменной (результат -- функция от переменной t);
Z Transform (Z-преобразование) -- вычислить прямое Z-преобразование выражения относительно выделенной переменной (результат -- функция от переменной z);
Inverse Z Transform (Обратное Z-преобразование) -- вычислить обратное Z-преобразование относительно выделенной переменной (результат -- функция от переменной n).
Работа с этими преобразованиями будет рассмотрена в главе 11.
Операции вывода:
Derivation Format... (Расположение результата...) -- выбрать формат отображения результата символьных преобразований (наличие комментариев и вертикальное либо горизонтальное размещение по отношению к преобразуемому выражению);
Derive in Place (Замещать) -- заместить исходное выражение результатом его символьного преобразования.
Заметим, что в ранних версиях MathCAD содержалась еще одна команда в опции Symbol главного меню:
Load Symbolic Processor -- загрузить символьный процессор.
В последующих разделах этой главы каждая из отмеченных операций будет рассмотрена более подробно с необходимыми примерами.
7.2. Загрузка символьного процессора (Load Symbolic Processor)
При использовании новых версий MathCAD можно не беспокоиться о загрузке символьного процессора -- она выполняется автоматически, отдельной такой операции не существует. Однако при обычной загрузке системы ранней версии MathCAD 3.0 символьный процессор отключен и работа с ним невозможна. При этом доступны только операции последней группы -- управления символьным процессором. С помощью операции Load Symbolic Processor
символьный процессор загружается, в результате становятся доступными (в зависимости от условий работы) и другие операции.
Обычно та или иная операция становится доступной, как только определен (т. е. выделен сплошной линией) необходимый для нее объект, например математическое выражение, переменная или матрица. В этом случае доступные операции в позиции Symbolic главного меню отмечаются четким шрифтом (см. рис. 7.1).
Загрузка процессора занимает несколько секунд. В ходе загрузки появляется фирменный знак Maple -- листок дерева. Если символьный процессор не загружен, то доступными являются только команды управления символьным процессором. Все остальные команды в подменю показаны характерным "затененным" шрифтом. После загрузки символьного процессора опция Load Symbolic Processor из подменю исчезает, поскольку загрузка производится только один раз.
7.3. Установка формата вывода символьного процессора (Derivation Format...)
Команда Derivation Format... (Расположение результата...) задает формат вывода результатов работы символьного процессора. В ее окошке содержатся четыре опции.
Опция Show derivation comment (Показывать комментарии) задает вывод комментариев или их отсутствие при исполнении каждой операции. Комментарии повторяют названия операций, выполняемых над заданным математическим выражением.
Опции vertically, inserting lines (вертикально, вставляя строку) и vertically without inserting lines (вертикально) обеспечивают вывод результата символьных операций вниз по вертикали.
Опция horizontally (горизонтально)
производит вывод результата по горизонтали -- справа относительно исходного выражения.
В дальнейшем, иллюстрируя работу символьного процессора, мы будем приводить исходные выражения, подвергаемые преобразованию, как правило, слева, а результат преобразования -- справа.
7.4. Установка места под результат символьной операции (Derive in Place)
Команда Derive in Place (Замещать)
управляет выделением места под результат символьной операции. Если она включена (появляется знак птички перед названием команды), то местом вывода назначается исходное выражение. При этом оно заменяется результатом символьной операции. Так очень удобно, когда исходное выражение является частью некоторой формулы или функции и должно быть обработано символьным процессором. Если команда отключена, вывод результатов символьных преобразований производится на новое место (см. выше описание опций вывода).
Вывод в последнем случае возможен как в отдельный блок, так и на место, намеченное незаполненным шаблоном. Это позволяет подставлять результаты преобразований в виде формул на нужное место в других формулах. Заметим, что их можно редактировать и выделять нужные части полученных выражений. Последнее немаловажно при работе с символьной математикой, поскольку получившееся выражение может оказаться слишком громоздким и содержать ненужные детали.
7.5. Выделение объектов символьных операций
Для проведения символьных операций нужно прежде всего отметить объект, над которым эти операции выполняются. Если объект отсутствует, доступа к соответствующим операциям в опции Symbolic (Символика)
главного меню нет и эти операции выделены "затененным" шрифтом. Объектом операции может быть самостоятельное математическое выражение, часть такого выражения или заданной пользователем функции, результат предшествующей операции и т. д.
Как наметить объект, было описано выше. Напомним, что возможно два вида выделения -- пунктирными линиями и сплошными. Чтобы отметить выражение пунктирной линией, достаточно установить курсор-крестик на нужный объект, нажать клавишу Ctrl или Shift и воспользоваться правой клавишей мыши.
Можно установить курсор около выбранного объекта и, нажав правую клавишу мыши, перемещать ее по столу. При этом появляется пунктирный прямоугольник, который перемещением мыши можно расширять в различных направлениях. Как только этот прямоугольник захватывает один или несколько объектов, они оказываются также выделенными -- обведенными пунктирной линией, отмечающей область, занимаемую объектом в окне.
Выделение пунктирной линией используется для перемещения объектов по окну. Для этого достаточно внутрь отмеченного объекта (выражения) поместить курсор мыши, нажать правую клавишу и, удерживая ее нажатой, перемещать мышь. При этом объект (или сразу несколько объектов) будет перемещаться по экрану и его можно оставить (отжать клавишу мыши) на новом месте. Напоминаем, что нажатие клавиши F3 ведет к переносу выражений в буфер обмена и стиранию их в окне. Нажатие клавиши F4 переносит выражения из буфера обмена на место, указанное курсором. Курсор можно перемещать как мышью, так и обычными клавишами управления курсором.
Для операций с символьным процессором нужно отметить объект (часть выражения или целое выражение) выделением его сплошными линиями, синими на экране цветного дисплея. Для выделения некоторой переменной в объекте нужно подвести к ее концу курсор мыши и нажать левую клавишу. Переменная будет отмечена жирной чертой (синей на экране цветного дисплея), расположенной сразу после переменной. Перемещая курсор по полю объекта и нажимая левую клавишу повторно, можно выделить отдельные части выражения или выражение целиком.
Часть символьных операций производится указанием на объект как на выражение или его часть. Например, расширение или упрощение выражений требуют такого указания на объект. Другие операции, например вычисление производной или интеграла, требуют указания переменной, относительно которой производится операция, допустим, дифференцирования или интегрирования.
Если заданная операция невыполнима, система выводит в дополнительном окне сообщение об ошибке или просто повторяет выделенное выражение. Последнее означает, что операция задана корректно, но результат не может быть получен, например, если делается попытка разложить на множители объект, уже разложенный или не содержащий такого разложения в принципе.
При выполнении символьных операций иногда приходится сталкиваться с неприятной и трудной проблемой -- "разбуханием" результатов, как промежуточных, так и конечных. Решения, которые хорошо известны профессиональному математику (и даже студенту), система обычно выдает с блеском -- в виде, который описан в справочнике или учебнике. Примером может служить решение квадратного уравнения или вычисление простого неопределенного интеграла.
Но даже незначительное усложнение задачи порою может породить очень сложное и громоздкое решение. Примером может служить решение кубического уравнения. В этом случае решение (по запросу системы) можно поместить в буфер обмена и использовать его для оценки пользователем (но не для дальнейших преобразований системой в автоматическом режиме).
Как отмечалось, система MathCAD содержит пять типов символьных операций, выполняемых над объектами -- выделенными математическими выражениями. При этом под математическим выражением подразумевается как полная математическая формула, так и функционально полная часть какой-либо формулы. Ниже представлено их описание.
7.6. Выполнение символьных вычислений (Evaluate Symbolically)
Символьная операция Evaluate Symbolically (Вычислить) обеспечивает работу с математическими выражениями, содержащими встроенные в систему функции и представленными в различном виде: полиномиальном, дробно-рациональном, в виде сумм и произведений, производных и интегралов и т. д. Операция стремится произвести все возможные числовые вычисления и представить выражение в наиболее простом виде. Она возможна над матрицами с символьными элементами. Производные и определенные интегралы, символьные значения которых вычисляются, должны быть представлены в своей естественной форме.
Особо следует отметить возможность выполнения числовых вычислений с повышенной точностью -- 20 знаков после запятой. Для перехода в такой режим вычислений нужно числовые константы в вычисляемых объектах задавать с обязательным указанием десятичной точки, например 10.0 или 3.0, а не 10 или 3. Этот признак является указанием на проведение вычислений такого типа.
На рис. 7.2 показаны типовые примеры действия операции Evaluate Symbolically.
Рис. 7.2. Действие команды Evaluate Symbolically
Здесь слева показаны исходные выражения, подвергаемые символьным преобразованиям, а справа -- результат этих преобразований. Так представлены и другие примеры этой главы.
Эта команда одна из самых мощных. Как видно на рис.7.2, она позволяет в символьном виде вычислять суммы (и произведения) рядов, производные и неопределенные интегралы, выполнять символьные и числовые операции с матрицами.
Вообще говоря, команда Evaluate содержит свое меню со следующим операциями:
Evaluate Symbolically (Вычислить в символах [Shift + F9]) — выполнить символьное вычисление выражения;
Complex Evaluation (В комплексном виде) -- выполнить комплексное преобразование выражения;
Floating Point Evaluation... (С плавающей запятой...) -- выполнить численное вычисление выражения.
Команда Evaluate Symbolicaly тут наиболее важная. Назначение других команд очевидно: они нужны, если результат требуется получить в форме комплексного или действительного числа. К примеру, если вы хотите вместо числа p получить 3.141..., используйте команду Floating Point Evaluarion. В режиме символьных вычислений результат может превосходить машинную бесконечность системы (см. пример на вычисление exp(1000.0) на рис. 7.2). При этом число точных значащих цифр результата практически не ограничено (или, точнее говоря, зависит от емкости оперативной памяти ПК).
7.7. Упрощение выражений (Simplify)
Символьная операция Simplify (Упростить) – одна из самых важных. Эта операция позволяет упрощать математические выражения, содержащие алгебраические и тригонометрические функции, а также выражения со степенными многочленами (полиномами).
Упрощение означает замену более сложных фрагментов выражений на более простые. Приоритет тут отдается простоте функций. К примеру, функция tan(x) считается более сложной, чем функции sin(x) и cos(x). Поэтому tan(x)
упрощается так, что получает представление через соотношение этих функций, что несколько неожиданно, так как в некоторых пакетах символьной математики, например Derive, ситуация иная: они заменяют отношение sin(x)/cos(x) функцией tan(x).
Эта команда открывает широкие возможности для упрощения сложных и плохо упорядоченных алгебраических выражений. На рис. 7.3 даны примеры применения Simplify.
Рис. 7.3. Действие команды Simplify
Два последних примера из приведенного рисунка показывают, как с помощью команды Simplify можно выполнять символьные вычисления производных и определенных интегралов. Результатом вычислений могут быть специальные математические функции (см. последний пример, в котором символьное значение интеграла дает результат, выраженный через интегральный синус). Вполне возможно вычисление производных высшего порядка. На рис. 7.4 показано последовательное применение команды Simplify для вычисления производной алгебраического выражения от первой до пятой включительно.
Рис. 7.4. Вычисление производных алгебраического выражения с порядком от 1 до 5
Система MathCAD содержит встроенную функцию для вычисления значений определенных интегралов приближенным численным методом. Ею целесообразно пользоваться, когда нужно просто получить значение определенного интеграла в виде числа. Однако команда Simplify применительно к вычислениям определенных интегралов делает гораздо больше -- она ищет аналитическое выражение для интеграла. Более того, она способна делать это и при вычислении кратных интегралов, пределы которых -- функции. Наглядный пример этому дает рис. 7.5.
Рис. 7.5. Вычисление двойных и тройных определенных интегралов
Рис. 7.6 показано применение команды Simplify для вычисления сумм и произведений символьных последовательностей. Результат операции, как и следовало ожидать, получается в символьной форме (если она существует).
Рис. 7.6. Вычисление сумм и произведений символьных последовательностей
Приведенные примеры могут создать впечатление, что MathCAD без труда справляется со всеми производными, интегралами, суммами и произведениями с помощью команды Simplify. К сожалению, это далеко не так . Нередко система не справляется с кажущимися простыми справочными примерами. Надо помнить, что символьный процессор системы MathCAD обладает заметно урезанной библиотекой функций и преобразований (в сравнении с библиотекой системы Maple V). Поэтому часто система не находит решение в замкнутом виде, хотя оно и приводится в справочнике. Тогда система повторяет введенное выражение или сообщает об ошибке.
Следует также отметить, что в меню Symbol
при выполнении командами символьных вычислений выражения необходимо указывать явно. Например, недопустимо вводить некоторую функцию пользователя F(x) и пытаться найти ее производные или интеграл. Это существенное ограничение, о котором надо всегда помнить. Однако оно преодолимо при выполнении вычислений с помощью системы SmartMath, которая описывается в главе 11.
В результате преобразований могут появляться специальные функции -- как встроенные в систему (функции Бесселя, гамма-функция, интеграл вероятности и др.), так и ряд функций, дополнительно определенных при загрузке символьного процессора (интегральные синус и косинус, интегралы Френеля, эллиптические интегралы и др.).
7.8. Расширение выражений (Expand Expression)
Действие команды Expand Expression (Разложить по степеням) в известном смысле противоположно действию команды Simplify. Подвергаемое преобразованию выражение расширяется с использованием известных (и введенных в символьное ядро) соотношений, например алгебраических разложений многочленов, для произведений углов и т. д. Разумеется, расширение происходит только в том случае, когда его результат однозначно возможен. Иначе нельзя считать, что действие этой команды противоположно действию команды Simplify. К примеру, команда Simplify
преобразует сумму квадратов синуса и косинуса в 1, тогда как обратное преобразование многозначно и потому в общем виде невыполнимо.
При преобразовании выражений команда Expand Expressin старается более простые функции представить через более сложные, свести алгебраические выражения, представленные в сжатом виде, к выражениям в развернутом виде и т. д. Примеры действия команда Expand Expression даны на рис. 7.7.
Рис. 7.7. Действие операции Expand Expression
Последний пример на этом рисунке показывает, что результатом операции может быть специальная математическая функция, которая считается более сложным выражением, чем порождающее ее выражение. С виду, однако, выражения со специальными математическими функциями обычно выглядят гораздо проще, чем исходные выражения.
7.9. Разложение выражений (Factor Expression)
Команда Factor Expression (Разложить на множители) используется для факторизации — разложения выражений или чисел на простые множители. Она способствует выявлению математической сущности выражений, к примеру наглядно выявляет представление полинома через его действительные корни, а в том случае, когда разложение части полинома содержит комплексно-сопряженные корни, порождающее их выражение представляется квадратичным трехчленом. Примеры действия этой операции даны на рис. 7.8.
Рис. 7.8. Действие команды Factor Expression
В большинстве случаев (но не всегда) операция факторизации ведет к упрощению выражений. Термин "факторизация" не является общепризнанным в отечественной математической литературе, но мы его оставляем в связи с созвучностью с англоязычным именем этой операции.
7.10. Комплектование по выражениям (Collect on Subexpression)
Команда Collect on Subexpression (Разложить по подвыражению) обеспечивает замену указанного выражения выражением, скомплектованным по базису указанной переменной, если такое представление возможно. В противном случае появляется окно с сообщением о невозможности комплектования по указанному базису. Эта команда особенно удобна, когда заданное выражение есть функция ряда переменных и нужно представить его в виде функции заданной переменной, имеющей вид степенного многочлена. При этом другие переменные входят в сомножители указанной переменной, представленной в порядке уменьшения ее степени. На рис. 7.9 показаны примеры действия этой команды.
Рис. 7.9. Действие команды Collect on Subexpression
В том случае, когда комплектование по базису указанной переменной невозможно, система выдает сообщение об этом. Оно выводится в отдельном небольшом информационном окошке.
7.11. Вычисление коэффициентов полиномов
(Polynomial Coefficients)
Команда Polynomial Coefficient (Полиномиальные коэффициенты), в старых версиях MathCAD отсутствующая, служит для вычисления коэффициентов полинома. Операция применяется, если заданное выражение -- полином (степенной многочлен) или может быть представлено таковым относительно выделенной переменной. На рис. 7.10 показаны примеры применения этой команды.
Рис. 7.10. Примеры применения команды Polynomial Coefficients
Результатом операции является вектор с коэффициентами полинома. Операция полезна при решении задач полиномиальной аппроксимации и регрессии.
7.12. Дифференцирование по заданной переменной
(Differentiate of Variable)
Следующая группа символьных операций выполняется с выражениями, требующими указания переменной, по отношению к которой выполняется операция. Для указания переменной достаточно установить справа от нее маркер ввода (в виде вертикальной четы). Само выражение при этом не указывается отдельно, поскольку указание в нем на переменную является одновременно и указанием на само выражение. Если выражение содержит другие переменные, то они рассматриваются как константы. Изучим операции этой группы, начиная с операции дифференцирования.
Нахождение символьного значения производной -- одна из самых распространенных задач в аналитических вычислениях. Команда Differentiate jf Variable (Дифференцировать по переменной) возвращает символьное значение производной выражения по той переменной, которая указана курсором. Для вычисления производных высшего порядка (свыше 1) нужно повторить вычисление необходимое число раз. На рис. 7.11 показано применение команды дифференцирования.
Рис. 7.11. Примеры символьного дифференцирования
В трех последних примерах на рис. 7.11 показано, что в выражениях, производная которых вычисляется, могут стоять и встроенные в систему специальные математические функции. Они могут появляться и в результатах вычислений.
Особое внимание стоит обратить на последний пример. Попытка вычислить производную от функции Бесселя здесь ведет к тому, что результат направляется в буфер обмена, поскольку представлен в виде функций, содержащихся в ядре символьных операций системы, но не являющихся встроенными функциями. Поэтому результат дифференцирования вызывается из буфера командой Paste (Вставить). Такой результат нельзя использовать в других операциях прямо, но он вполне подходит для творческого осмысления пользователем. Тот и решает, полезен результат или нет.
7.13. Интегрирование по заданной переменной
(Integrate on Variable)
Другая, не менее важная операция при символьных вычислениях -- вычисление интегралов (или нахождение первообразных) для аналитически заданной функции. Для этого используется команда Integrate on Variable (Интегрировать по переменной). Она возвращает символьное значение неопределенного интеграла по указанной маркером ввода переменной. Выражение, в состав которого входит переменная, является подынтегральной функцией. На рис. 7.12 показаны примеры символьного интегрирования по переменной x.
Рис. 7.12. Примеры символьного интегрирования
Как и для операции дифференцирования, в состав исходных выражений и результатов символьного интегрирования могут входить встроенные в систему специальные математические функции. На это указывают два последних примера из приведенных на рис. 7.12.
7.14. Решение уравнения относительно заданной переменной (Solve for Variable)
Если задано некоторое выражение F(x) и отмечена переменная x, то команда Solve for Variable (Решить относительно переменной) возвращает символьные значения указанной переменной x, при которых F(x) = 0. Это очень удобно для решения алгебраических уравнений, например квадратных и кубических, или для вычисления корней полинома. Рис. 7.13 содержит примеры решения квадратного уравнения и нахождения комплексных корней полинома четвертой степени.
Рис. 7.13. Примеры решения уравнений
Ранее отмечалось, что усложнение уравнения, например переход от квадратного уравнения к кубическому, может вызвать существенное усложнение результата. Тогда система представляет решение в более компактном виде и предлагает занести его в буфер обмена.
С помощью команды Paste (Вставить) опции Edit (Правка) главного меню можно перенести решение в основное окно системы, но оно имеет уже тип текстового комментария, а не математического выражения, пригодного для дальнейших преобразований. Впрочем, часть его можно (опять-таки с помощью буфера обмена) ввести в формульные блоки для последующих преобразований и вычислений.
Более того, форма представления результата в таком случае отличается от принятой в системе MathCAD (например, в качестве знака деления используется косая черта, для возведения в степень используется составной знак ** и т. д.) Это сделано ради компактности представления результатов вычислений. Рис. 7.14 показывает результат решения кубического уравнения в символьном виде.
Рис. 7.14. Решение кубического уравнения в символьном виде
Последний пример наглядно иллюстрирует проблему “разбухания” результатов. Если при решении квадратного уравнения получены простые выражения, известные даже школьникам (рис. 7.14, первый пример), то при увеличении порядка уравнения всего на единицу результат оказался представленным весьма громоздкими и малопригодными для анализа формулами. Хорошо еще, что существующими!
В случаях, подобных приведенному, пользователю надо реально оценить свои силы в упрощении решения. Это придется сделать "вручную". При технических расчетах специалист нередко знает, какие из параметров решения несущественны, и может отбросить их. Однако для строгих математических расчетов это не всегда возможно, поэтому даже громоздкий результат может быть весьма полезным с познавательной точки зрения.
7.15. Подстановка для заданной переменной (Substitute for Variable)
Команда Substitute for Variable (Заменить переменную) возвращает новое выражение, полученное путем подстановки на место указанной переменной некоторого другого выражения. Последнее должно быть подготовлено и скопировано (операциями Cut
или Copy) в буфер обмена. Наряду с получением результата в символьном виде эта команда позволяет найти и числовые значения функции некоторой переменной путем замены ее на числовое значение. На рис. 7.15 представлены примеры операций с подстановкой.
Рис. 7.15. Примеры операций с подстановками
Подстановки и замены переменных довольно часто встречаются в математических расчетах, что делает эту команду весьма полезной. Кроме того, она дает возможность перейти от символьного представления результата к числовому.
7.16. Разложение в ряд Тейлора по заданной переменной (Expand to Series...)
Команда Expand to Series... (Разложить в ряд...) возвращает разложение в ряд Тейлора выражения относительно выделенной переменной с заданным по запросу числом членов ряда n (число определяется по степеням ряда). По умолчанию задано n = 6. Разложение возможно для функции заданной переменной. В разложении указывается остаточная погрешность разложения. На рис. 7.16 представлено применение этой операции для разложения функции sin(x)/x. Минимальная погрешность получается при малых x (см. графическое представление функции и ее ряда).
Рис. 7.16. Пример на разложение функции в ряд Тейлора
Символьные операции нередко можно комбинировать для решения сложных задач. Рис. 7.17 показывает интересное решение одной из таких задач -- вычисление определенного интеграла, который не берется в замкнутой форме.
Рис. 7.17. Взятие определенного интеграла в символьной форме с заменой подынтегральной функции ее разложением
Если пользователя (например, инженера) интересует просто численное значение интеграла, надо лишь поставить после интеграла знак вывода = и значение интеграла будет вычислено адаптивным численным методом Симпсона. Однако попытка вычислить такой интеграл с помощью команды Simplify (Упростить) окажется неудачной: после долгих попыток система сообщит, что интеграл в замкнутой форме не берется.
Прием, который иллюстрирует рис. 7.17, заключается в замене подынтегральной функции ее разложением в ряд Тейлора. Вначале получили такое разложение с избытком -- для 10 членов ряда (однако учтенных нечетных членов тут нет, такова специфика функции). Далее, выделив четыре первых реальных члена и используя команду Copy (Копировать) и Paste (Вставить) опции Edit (Правка) главного меню, поместим это разложение на место шаблона подынтегральной функции. Теперь проблем с вычислением интеграла операцией Simplify
не будет.
Интеграл получен в форма числа e = exp(1), помноженного на дробный множитель. Это обстоятельство, возможно, бесполезное для рядового пользователя, наверняка будет весьма положительно воспринято “истинным” математиком, поскольку здесь напрашиваются определенные аналитические выводы (которых нельзя сделать при вычислении интеграла численными методами).
7.17. Разложение на правильные дроби (Convert to Partial Fraction)
Команда Convert to Partial Fraction (Разложить на элементарные дроби) возвращает символьное разложение выражения, представленное относительно заданной переменной в виде суммы правильных целых дробей. На рис. 7.18 даны примеры такого разложения.
Рис. 7.18 Примеры разложения на дроби
Как видно из представленных примеров, применение этой операции в большинстве случаев делает результат более длинным, чем исходное выражение. Однако он более нагляден и содействует выявлению математической сущности исходного выражения.
7.18. Транспонирование матрицы (Transpose Matrix)
Символьный процессор системы MathCAD обеспечивает проведение в символьном виде трех наиболее распространенных матричных операций: транспонирование и обращение матриц, а также вычисление их детерминанта. Эти операции в меню обозначены так: Transpose Matrix (Транспонировать), Invert Matrix (Обратить) и Determinant of Matrix (Определитель). Если элементы матрицы -- числа, то выполняются соответствующие операции в числовой форме.
Транспонирование матрицы означает перестановку строк и столбцов. Оно реализуется командой Transpose Matrix (Транспонировать). Подлежащая транспонированию матрица должна быть выделена.
7.19. Обращение матриц (Invert Matrix)
Обращение матриц означает создание такой матрицы A-1, для которой произведение ее на исходную матрицу A дает единичную матрицу, т. е. матрицу с диагональными элементами, равными 1, и остальными -- нулевыми. Обращение допустимо для квадратных матриц с размером N´N, где N>1 -- число строк и столбцов матрицы. Такую же размерность имеет и обращенная матрица.
Обращение матриц -- широко распространенная математическая задача. Существует множество программ на разных языках программирования, с той или иной степенью успеха решающих ее. Для MathCAD это рутинная задача. На рис.7.19 приведены примеры выполнения типовых матричных операций. Последняя из них — обращение матрицы в символьном виде с помощью команды Invert Matrix (Обратить) .
Рис. 7.19. Примеры матричных операций в символьной форме
При выполнении матричных операций в символьной форме проблема “разбухания” результатов становится весьма серьезной. Если, к примеру, для обратной матрицы размером 2´2 или 3´3 еще можно получить ответ, помещающийся в окне документа, то для матриц большего размера это становится невозможным. Впрочем, большинство аналитических задач очень редко оперирует такими матрицами.
7.20. Интерпретация результатов символьных операций в буфере обмена
Необходимо отметить, что не всегда результат символьных операций выводится в окно редактирования. Иногда он оказывается настолько громоздким, что MathCAD использует специальную компактную форму его представления и помещает его в буфер обмена. Уже оттуда его можно вызвать в текстовом формате в окно редактирования, нажав клавишу F4 или клавиши Shift + Ins. Это таже команда Copy (Копировать) опции Edit (Правка)
главного меню.
Записи математических выражений в буфере обмена напоминают их записи на языке Фортран:
n справедливы операторы арифметических операций +, -, * и /;
n возведение в степень обозначается как **;
n первая производная функции f(x) записывается в виде diff(f(x), x), а n-я производная в виде diff(f(x), x$n);
n частная производная обозначается как D, n-го порядка (D,n) и по n-му аргументу как (D[n]);
n интеграл с подынтегральной функцией f(x)
записывается как int(f(x), x);
n операторы суммы и произведения обозначаются как sum() и product();
n композиция функций указывается символом @ [например, (exp@cos) (x) означает exp(sin(x))];
n кратная композиция указывается символами @@ [например, (f(@@3) (x) означает f(f(f(x)))];
n замещение любого корня уравнения указывается записью RootOf(уравнение) [например, оба корня i и –i
уравнения Z**2+1=0 представляются записью RootOf(Z**2 + 1)].
С помощью команды Save As... (Сохранить как...)
опции File (Файл) можно сохранить содержимое буфера обмена в виде текстового файла. Это может быть полезным для осмысления и анализа полученного результата. В Windows 95 доступ к папке обмена обеспечивает приложение "Просмотр папки обмена", которое находится в папке "Стандартные" меню программ.
Глава 8. РАБОТА С ОКНАМИ (Window)
8.1. Меню для работы с окнами
Как и большинство программ, работающих в среде Windows, система MathCAD унаследовала от нее многооконный и удобный пользовательский интерфейс. Мы уже видели, что после загрузки системы появляется текущее окно, содержащее полосы прокрутки для скроллинга изображения и средства управления для свертывания окна в пиктограмму и восстановления его на часть экрана или на весь экран. Окна появляются при выборе соответствующих опций меню или подменю, а также при выводе сообщений об ошибках. Традиционны для Windows и средства перемещения окон и плавного изменения их размеров.
Система MathCAD позволяет одновременно работать с восемью задачами. Под каждую задачу она отводит свое окно. Одно из них обычно является текущим и активным -- то, с которым происходит работа в настоящий момент. Состояние других документов “замораживается”, но их можно пустить в работу в любое время без новой загрузки и без исполнения связанной с окном программы.
Основные операции с окнами сосредоточены в опции
Window (Окно) главного меню:
Cascade (Каскад) -- расположить окна документов друг под другом так, чтобы были видны заголовки;
Tile Horizontal/Vertical (По горизонтали/По вертикали) -- расположить окна документов горизонтально (вертикально) так, чтобы они не перекрывались;
Arrange Icons (Упорядочить значки) -- упорядочить размещение пиктограмм рабочих документов вдоль нижней границы окна приложения;
Zoom... (Масштаб...) -- изменить масштаб (размеры) изображения рабочего документа;
Refresh (Обновить [Ctrl + R]) -- перерисовать экран;
Animation (Анимация) -- создание и проигрывание анимационных файлов (клипов) с выбором операции из подменю:
Сreate... (Создать...) -- создать анимационный клип;
Playback... (Воспроизвести...) -- воспроизвести существующий анимационный клип;
Hide Palette (Убрать панель символов) -- убрать панель символов (когда она убрана, эта опция отмечается галочкой);
Hide Tool Bar (Убрать панель инструментов) -- убрать верхнюю панель инструментов;
Hide Font Bar (Убрать панель шрифтов) -- убрать панель шрифтов;
Change Colors... (Изменить цвета...) -- изменить цвета;
Background Color... (Фон...) -- изменить цвет фона окна приложения;
Text Color... (Текст...) -- изменить цвет шрифта в текстовых областях;
Equation Color... (Формулы...) -- изменить цвет формул и чертежей;
Equation Highlight Color... (Цвет подсвеченного выражения...) -- изменить цвет подсветки выражений;
Annotation Color... (Аннотации...) -- изменить цвет всех аннотаций к электронным
книгам.
Рассмотрим действие основных команд управления окнами. Они позволяют пользователю подстроить графический интерфейс системы под свои вкусы и привычные возможности.
8.2. Каскадное расположение окон (Cascade)
Команда Cascade (Каскад) задает каскадное расположение окон. При этом окна располагаются последовательно, частично закрывая друг друга. У закрытых окон обычно видна лишь титульная строка с именем окна, повторяющим имя загруженного на исполнение документа. Окно, расположенное поверх остальных, видно полностью.
Верхнее окно можно закрыть, указав курсором мыши на квадратик с треугольником, обращенным вершиной вниз. Окно при этом свертывается в пиктограмму, а следующее за ним окно выходит на передний план. Указание на квадратик с треугольником, обращенным вершиной вверх, развертывает окно почти во весь экран. На рис. 8.1 показано каскадное расположение окон.
Рис. 8.1. Расположение окон после выполнения команды Cascade
Каскадное расположение окон удобно для их переключения. Оно позволяет видеть имена сразу всех файлов, документы которых загружены в окна, и дает достаточно места для обзора активного окна. Однако при таком расположении окон затруднен перенос объектов из одного окна в другое.
8.3. Равномерное расположение окон (Tile)
Команда Tile выводит на экран сразу все окна. Они имеют одинаковый размер по горизонтали (Tile Horizontal) или вертикали (Tile Vertical), причем тем меньший, чем больше окон выведено. В каждом окне видна лишь часть загруженного в него документа. Рис. 8.2 показывает вид экрана после выполнения этой команды. В нашем случае использованы оба варианта разделения экрана — и по горизонтали, и по вертикали.
Рис. 8.2. Расположение окон после выполнения команды Tile
Равномерное расположение окон может оказаться наиболее удобным, если требуется скопировать блок из одного окна в другой. Однако здесь есть некоторая трудность: в уменьшенном по размеру окне видны не все блоки. Поэтому не следует увлекаться одновременным выводом большого числа окон. Практика показывает, что чаще всего достаточно работать с двумя-тремя окнами. И наконец, надо помнить, что в каждом окне возможен свой скроллинг изображений, поэтому несложно найти нужный объект, даже если он вначале не попал в видимую область окна.
У русскоязычной версии MathCAD PLUS 6.0 описанное расположение окон реализуется двумя командами -- По горизонтали и По вертикали. Они и обеспечивают деление окон по горизонтали и по вертикали.
8.4. Приведение в порядок пиктограмм (Arrange Icon)
Команда Arrange Icon (Упорядочить значки) означает наведение порядка с пиктограммами, которые появляются в текущем окне системы, если свернуть ряд других окон (см. рис. 8.3). Пиктограммы можно перетаскивать мышью и располагать в любом месте экрана.
Рис. 8.3. Пиктограммы в текущем окне системы
Если в результате ваших действий пиктограммы оказались разбросанными по текущему окну, применение этой операции позволит сосредоточить их вместе в левом нижнем углу текущего окна системы. Такая операция типична для всех программных систем, работающих в среде операционной системы Windows.
8.5. Изменение масштаба изображения в окне (Zoom)
В некоторых случаях требуется изменить масштаб изображения, видимого в окне. Для этого служит команда Zoom (Масштаб)
опции Window (Окно). Она выводит диалоговое окно с опциями изменения масштаба (см. рис. 8.4). В инструментальном ящике эту возможность предоставляет пиктограмма с изображением лупы.
Рис. 8.4. Диалоговое окно изменения масштаба
Как видно на рис. 8.4, масштаб можно как увеличивать, так и уменьшать. Масштаб в 100% принят за нормальный. Изображение, которое служит фоном для показа диалогового окна на этом рисунке, дано в увеличенном масштабе -- 200%.
8.6. Реставрация окна (Refresh [Ctrl + R])
Команда Refresh (Обновить) восстанавливает изображение документа, пострадавшее после неудачных копирования и перемещения блоков, в результате чего происходит наложение одних блоков на другие и порча изображения. К порче изображения могут приводить и временные окна, возникающие при работе меню, или вывод сообщений об ошибках, а также скроллинг (перемещение) изображения по экрану.
Нажав одновременно клавиши Ctrl и R (или исполнив операцию Refresh с помощью меню), можно исправить изображение на экране. Следует помнить, что порча изображения никак не влияет на его образ в памяти компьютера. Поэтому на запись документа в файл или печать его принтером порча документа также не влияет -- документ будет записан или распечатан в правильном виде.
8.7. Переключение окон и управление ими
Помимо перечисленных операций опции Window (Окно)
главного меню предусмотрена возможность переключения текущего окна. Все введенные в систему документы регистрируются в специальном каталоге, который помещается в нижней части подменю позиции
Window. Из каталога можно легко выбрать любое нужное сейчас окно и переключиться в режим редактирования и исполнения содержащегося в нем документа.
Каждое окно системы MathCAD содержит характерный для приложений под Windows 3.1/3/11 квадратик с жирной короткой чертой (такой квадратик, но с длинной чертой, содержит главное окно системы). Если активизировать эту область, указав ее курсором мыши и нажав левую клавишу, то из квадратика выпадет Windows-меню, содержащее следующие операции:
Restore (Восстановить) -- восстановление обычного вида окна;
Move (Переместить) -- перемещение окна по экрану;
Size (Размер) -- изменение размеров окна;
Minimize (Свернуть) -- свертывание окна в пиктограмму;
Maximize (Развернуть)
-- восстановление окна;
Close (Закрыть [Ctrl + F4]) -- закрытие текущего окна;
Next (Следующее [Ctrl + F6]) -- переход к следующему окну.
Эти операции характерны почти для всех прикладных программ, работающих в среде Windows, и на них не стоит останавливаться.
Впрочем, нельзя не упомянуть о многозадачности и возможность передачи данных из системы MathCAD в другие приложения Windows (и наоборот) через буфер обмена, ибо это новые ее качества. Увы, такой обмен невозможен в старых версиях системы (например, 2.01 или 2.50), хотя он был бы полезен для переноса программ. Связано это с тем, что использовать буфер обмена с приложениями MS – DOS, работающими в графическом режиме, нельзя.
Если все восемь окон использованы, система откажется от ввода дополнительных документов и сообщит об этом в информационном окне. Для продолжения работы нужно очистить текущее окно командой New (Создать)
опции File (Файл) главного меню или закрыть часть ставших ненужными окон. Для этого используется команда Close [Ctrl + F4] (Закрыть) из Windows-меню каждого окна.
8.8. Анимация графиков (Animation)
Анимация (или оживление) графиков -- новая возможность, введенная в MathCAD PLUS 6.0 и PLUS 6.0.PRO. Раньше такую возможность обеспечивали системы MatLAB 4.0 и Mathematica 2.2.2. В MathCAD анимация используется более удачно — тут привлечена стандартная технология создания анимационных файлов с расширением .AVI и их воспроизведение с помощью программной системы Microsoft Video 1.1. Эта система предварительно должна быть установлена на ПК — или отдельно, или в процессе инсталляции самой системы MathCAD.
Принцип анимации достаточно прост. В системе имеется встроенная переменная FRAME, принимающая целочисленные значения, по умолчанию — от 0 до 9. Любая функция, график которой планируется наблюдать в развитии, должна быть функцией этой переменной, которая, по существу, является просто номером текущего кадра. Диапазон изменения переменной FRAME задается в диалоговом окне команды Create (см. ниже). Не следует пытаться присваивать ей иные значения.
При создании анимационных рисунков все кадры строятся с одинаковыми координатами углов и, следовательно, c одинаковыми размерами и одинаковым положением на экране. Их вывод один за другим с заданной скоростью (по умолчанию 10 кадров в секунду) и создает живую картинку. Анимация осуществляется путем просмотра созданной последовательности кадров с помощью специального проигрывателя.
Для создания анимационного видеоролика служит команда Create (Создать) опции Animation (Анимация) подменю Windows. На рис. 8.5 показаны подготовка и создание анимационного видеоролика для просмотра в динамике изменений контурного графика функции двух переменных.
Рис. 8.5. Подготовка и создание видеоролика
Вначале, как обычно, задается функция и строится ее график (для FRAME = 0). Затем исполняется команда Create, что ведет к появлению ее диалогового окна -- оно видно на рис. 8.5 слева. В окне можно задать три параметра анимации: начальное значение FRAME, конечное значение FRAME и частоту смены кадров. Затем, нажав кнопку Animate, можно приступить к созданию последовательности анимационных кадров. Их можно записать в файл, используя кнопку Save As. С помощью кнопки Option можно выбрать тип компрессора видеофайлов и систему работы с ними. Кроме Microsoft Video 1.1 возможна работа и с рядом других видеосистем, разумеется, если они были проинсталлированы. Чем больше конечное значение FRAME и выше частота кадров, тем более плавно происходит считывание, но увеличивается объем AVI-файлов.
Видеоролик можно просмотреть сразу, пустив появившийся проигрыватель, или сделать это в дальнейшем. Для вызова проигрывателя служит команда Playback (Воспроизвести) в подменю Animation (Анимация). На рис. 8.6 показана работа с проигрывателем AVI-файлов -- виден стоп-кадр изображения в окне проигрывателя, который отличен от начального рисунка для FRAME = 0.
Рис. 8.6. Просмотр видеоролика с помощью проигрывателя AVI-файлов
Проигрыватель анимационных файлов довольно прост. Он управляется всего двумя кнопками -- пуска/остановки и открытия диалогового окна поиска AVI-файлов. Внизу окна проигрывателя расположен указатель текущего времени проигрывания в виде шкалы с бегунком.
Отметим два аспекта работы со средствами анимации. Если у вас неактивна кнопка Animation, следует вывести курсор мыши в основное окно и несколько раз щелкнуть мышью, пока кнопка Animation не станет активной. Второй аспект более любопытен. Проигрыватель AVI-файлов способен проигрывать файлы, созданные иными мультимедиа-системами, причем со стереофоническим звуковым сопровождением. Рис. 8.7 иллюстрирует такую возможность -- на нем показан стоп-кадр из рекламного ролика фирмы Intel.
Рис. 8.7. Просмотр видеоролика со звуковым сопровождением
Проигрыватель обладает типовыми средствами управления: регулировкой размеров изображения, громкости и скорости просмотра, диалоговым окном поиска AVI-файлов и т. д. Некоторые из них (например, регулятор громкости) появляются только в том случае, когда они необходимы.
При активизации кнопки управления (вторая из двух) проигрывателя появляется меню операций управления:
View (Вид) -- управление размером окна просмотра;
Volume (Громкость) -- управление громкостью (если AVI-файл содержит звук);
Speed (Скорость) -- управление скоростью проигрывания;
Open (Открыть) -- вывод стандартного диалогового окна загрузки AVI-файлов;
Close (Закрыть) -- закрытие текущего окна;
Copy (Копировать) -- копирование в буфер обмена;
Configure... (Конфигурация... [Ctrl + D]) -- включение опций конфигурации;
Command (Команда) -- управление из командной строки.
Операция View (Вид) содержит меню из трех команд:
Half Size (Половинный размер [Alt + 2]) -- уменьшение окна просмотра вдвое;
Normal Size (Обычный размер [Ctrl + 1]) -- установка нормального размера окна;
Double Size (Двойной размер [Ctrl + 2]) -- увеличение размера окна вдвое.
На рис. 8.8 показано (в левой части экрана) окно опций, появляющееся при исполнении команды Configure. Это окно позволяет задать видеорежим Video Mode (В окне) -- обычный оконный Windows и полноэкранный Full Screen (Во весь экран). При полноэкранном режиме изображение занимает весь экран.
Можно также задать увеличение размера экрана просмотра вдвое (опция Zoom). В нижней части диалогового окна помещается окно информации о проигрываемом файле. Кнопки OK, Cancel и Set Default служат соответственно для фиксации изменений опций, отказа от изменений и установки опций по умолчанию.
Рис. 8.8. Диалоговое окно (слева) установки опций проигрывателя анимационных файлов
В качестве примера действия опций на рис. 8.9 показана работа с проигрывателем при введении опции Zoom 2 -- расширение окна просмотра вдвое.
Рис. 8.9. Работа с проигрывателем при расширении экрана вдвое
Применение проигрывателя заметно облегчает построение эффектных обучающих программ, и самоучитель Tutorial системы является наглядным тому свидетельством. В частности, можно готовить видеоролики о работе с самой системой. К сожалению, AVI-файлы требуют под их хранение весьма большого объема памяти на жестком диске, так что такие видеоролики приходится делать довольно короткими.
8.9. Управление элементами интерфейса и цветом
Как уже не раз отмечалось, пользовательский интерфейс новых версий MathCAD содержит новые элементы: инструментальный ящик, набор пиктограмм панелей ввода математических символов и средства модификации штифтов. Наряду с полезными функциями (облегчение начальной работы с системой) эти средства имеют и недостаток — они заметно сужают полезную область рабочего экрана.
Существуют три опции в меню Windows, позволяющие управлять выводом дополнительных элементов пользовательского интерфейса:
Hide Pallete (Убрать панель символов) -- убрать или вставить строку с пиктограммами панелей ввода спецсимволов;
Hide Tool Bar (Убрать панель инструментов) -- убрать или вставить строки с пиктограммами инструментов управления системой;
Hide Font Bar (Убрать панель шрифтов) -- убрать или вставить строку с элементами управления шрифтами.
Кроме того, для изменения цветов существует опция Change Color. Она выводит свое меню со следующими командами:
Background Color... (Фон...) -- установить цвет фона окна;
Text Color... (Текст...) -- установить цвет текстовых надписей;
Equation Color... (Формулы...) -- установить цвет математических выражений;
Equation Highlight Color... (Цвет подсвеченного выражения...) -- установить цвет выделения выражений;
Annotation Color... (Аннотации...) -- установить цвет аннотаций.
Любая из этих команд выводит стандартное диалоговое окно, показанное на рис. 8.10. Каждое окно имеет строку заголовка с названием соответствующей команды.
Рис. 8.10. Диалоговое окно задания цветов
С помощью указанных средств графическая оболочка системы MathCAD может быть подстроена под вкус любого пользователя. Меню
Change Color открывает доступ к командам цветового оформления документов, позволяющим придать им наглядный и эстетически приятный вид, удовлетворяющий самым изысканным запросам.
Глава 9. РАБОТА С ЭЛЕКТРОННЫМИ КНИГАМИ, САМОУЧИТЕЛЕМ И СИСТЕМОЙ ПОМОЩИ
9.1. Электронные книги (Books)
Электронными книгами в системе MathCAD называются взаимосвязанные наборы объединенных в тематические разделы документов, относящиеся к самым различным сферам применения системы. Документы вызываются друг из друга, обеспечивая гипертекстовые перекрестные ссылки. Количество взаимосвязанных документов в одной книге может быть большим, до несколько сотен. В конечном счете оно определяется объемом дисковой памяти ПК.
Электронной книгой можно пользоваться, как обычной, для получения нужной информации. Конечно, для этого необходим компьютер с установленной на нем системой MathCAD. Однако преимущества электронных книг перед обычными весьма существенны:
n электронные книги имеют значительно улучшенное оформление материала по сравнению обычными (цветная графика и текст, различные приемы выделения математических выражений и т. д.);
n поиск информации в электронных книгах облегчен гипертекстовыми ссылками;
n электронные книги — действующие (работающие) объекты, т. е. вы можете изменить в них любые данные и примеры расчетов и тут же получить новые результаты;
n электронные книги допускают их модификацию пользователем (например, замену текстов, ввод новых комментариев и т. д.);
n статьи из электронных книг можно распечатать принтером:
n электронные книги занимают мало места -- на одном CD-ROM можно разместить информацию, эквивалентную размещенной в десятках обычных книг крупного формата;
n электронные книги могут посылаться по электронной почте и по сети Internet.
Для работы с электронными книгами служит опция
Books (Книги) главного меню системы (см. рис. 9.1).
Рис. 9.1. Меню опции Books
Как видно на рис. 9.1, активная позиция Books
главного меню открывает ниспадающее меню со следующими операциями:
Open Book... (Открыть книгу...) -- открыть электронную книгу;
History... (Хронология...) -- перечислить все просматривавшиеся с момента открытия книги разделы;
Search Book... (Искать по книге...) -- произвести поиск по всем разделам открытой электронной книги;
Annotate Options (Аннотировать) -- выполнить аннотирование электронной книги с ее сохранением
Annotate Option... (Опции аннотирования...) – установка опций аннотирования электронных книг.
MathCAD позволяет пользователю создавать свои книги или использовать уже готовые. При этом вместе с системой поставляется набор из трех встроенных книг:
Desktop Reference -- справочник по математическим расчетам;
Book Sampler -- примеры применений системы;
Tutorial -- самоучитель по правилам работы с системой MathCAD.
Указанные книги содержат обширный материал. Так, книга Desktop Reference — довольно полный справочник по математическим формулам и таблицам, в том числе относящимся к физике, химии, механике, электротехнике, радиотехнике и т. д. Применение этой книги избавляет пользователя от необходимости часто обращаться к обычной справочной литературе.
Книга Book Sampler содержит сотни примеров применения системы в практике математических расчетов. А книга Tutorial является небольшим самоучителем по системе, использующим мультимедийные возможности MathCAD; она содержит элементы динамической графики, поясняющие, в какой последовательности пользователь должен выполнять действия в ходе проведения математических расчетов. В основном книга учит элементам пользовательского интерфейса системы.
Кроме указанных фирма MathSoft выпускает десятки книг по самым различным областям применения системы MathCAD:
n математические вычисления общего характера;
n реализация численных методов,
n расчеты в физике, механике, оптике, электро- и радиотехнике;
n статистические и экономические вычисления и т. д.
После инсталляции (ее процедура ничем не отличается от инсталляции в среде Windows любых приложений) указанные книги пополняют набор книг, входящих в систему, и с ними можно работать так же, как со встроенными книгами. Это обеспечивает обширные возможности расширения системы и ее адаптации к интересующим пользователя задачам и проблемам.
К сожалению, с точки зрения наших пользователей, у всех этих книг есть существенный недостаток -- все они на английском языке. Учитывая, что в книгах используются многие специальные термины, перевод и понимание их достаточно сложны. Да и цена высока -- от 50 до 100 долл. Однако в русифицированной версии MathCAD встроенные электронные книги имеют тексты на русском языке.
Для создания полноценных электронных книг нужны специальные инструментальные средства. Получить их можно обратившись к фирме SoftLine. Одно из таких средств -- мощный составитель чертежей, диаграмм и электронных схем VISIO — поставляется в составе систем MathCAD 6.0 и PLUS 6.0.
Даже беглый обзор встроенных электронных книг и пакетов применений систем MathCAD требует большого места и выходит за рамки настоящей книги. Поэтому тут описываются лишь основные приемы работы с такими книгами. В главе 12 описаны 10 пакетов применений систем класса MathCAD, облегчающих приобретение практических навыков с MathCAD. Приведенные в них примеры, как правило, не повторяют тех, что даны в фирменных электронных книгах.
9.2. Открытие книги (Open Book...) и работа с нею
Для работы с книгой ее нужно открыть, т. е. в системе MathCAD надо открыть файл, хранящий материалы книги. Для этого служит команда Open Book... . Она вызывает появление обычного диалогового окна, настроенного на поиск книг (см. рис. 9.2).
Рис. 9.2. Диалоговое окно открытия книги
Работа с этим окном не вызывает сложностей. Отметим лишь, что на рис. 9.2 в окне доступны для открытия только три встроенные в систему книги. С помощью команды History (Хронология)
можно просмотреть список открытых ранее книг и их разделов и быстро вернуться к работе с выбранной книгой (см. рис. 9.3).
Рис. 9.3. Окно команды History со списком ранее использованных книг
Интересна и весьма полезна команда Search Book
(Обзор книги). Она выводит диалоговое окно с алфавитным каталогом всех тем по профилю книги (см. рис. 9.4).
Рис. 9.4. Работа с алфавитным каталогом книги
Desktop Reference
Выбрав любую позицию алфавитного каталога, можно получить краткую справку по выбранной теме, а также перейти к просмотру того раздела книги, в котором выбранная тема описана. Обширные возможности для редактирования книг и фиксации сделанных изменений предоставляет команда Annotate Option... (Опции аннотирования...) . Как видно на рис. 9.1, эта команда содержит подменю со следующими командами:
Save Edited Section (Сохранить раздел) -- записать отредактированный сеанс работы;
Save All Edits (Сохранить все) -- записать все редакторские изменения;
View Original Section (Раздел в оригинале) -- выполнить обзор оригинального сеанса работы;
View Editied Section (Измененный раздел) -- выполнить обзор отредактированного сеанса работы;
Restore Original Section (Восстановить раздел) -- восстановить оригинальный сеанс работы;
Restore Original Book (Восстановить книгу) -- восстановить книгу в оригинальном виде;
Highligt Edit (Выделить изменения) -- выделить цветом изменения в книге.
Перечисленные операции довольно просты. Отметим лишь, что при записи модификаций книг отдельно записываются внесенные в них изменения. Они выделяются собственным цветом. Если модификации были записаны, то при вызове соответствующих разделов книг они будут представлены в измененном виде. Однако командами со словом Restore при необходимости можно восстановить оригинальный текст книг.
Иллюстрации в книгах и содержащиеся в них математические формулы и тексты можно перенести в текст документа. Для этого надо просто активизировать специальную метку (звездочка с двумя точками под ней) около рисунка или формулы. Рисунок или формула будут перенесены на место, соответствующее местоположению курсора (не забудьте передвинуть его при очередном сеансе переноса рисунка или формулы), как показано на рис. 9.5. Такая возможность заметно облегчает составление обучающих программ.
Рис. 9.5. Рисунок, перенесенный из справочника в окно редактирования документов
Перенесенный таким образом рисунок можно использовать в качестве иллюстрации при описании решения тех или иных математических задач (см. рис. 9.6). Это делает документы более наглядными.
Рис. 9.6. Окно документа с перенесенными в него объектами, экспортированными из электронной книги
Поскольку книги, в сущности, представляют собою обычные документы MathCAD, они просматриваются в окне редактирования MathCAD и их можно редактировать, пополнять и модифицировать. Например, не выходя из системы, можно перевести тексты книг на русский язык. При этом система сохранит как измененную книгу, так и исходную. Так что оригинал всегда можно восстановить после модернизации.
9.3. Запуск системы обучения (Tutorial)
Одна из книг, встроенных в систему MathCAD PLUS 6.0 PRO, — самоучитель Tutorial, использовать который можно так же, как другие книги. В нем широко практикуется переход от одного раздела к другому с помощью пиктограмм с жирными стрелками. Во многих случаях применяются и средства анимации, позволяющие наблюдать в динамике за управлением системой, нажатием на те или иные клавиши и пиктограммы, перемещениями по различным меню и т. д.
В то же время в новой версии фирма MathSoft отказалась от мультимедийного варианта обучающей системы, который содержался в предшествующей версии 5.0/PLUS 5.0. Новый самоучитель внешне выглядит более скромно, но, по сути, дает больше полезных сведений. Разумеется, ценность самоучителя для наших пользователей резко снижается из-за описания на английском языке.
9.4. Индексная справочная система (Index...)
Интерактивная справочная система MathCAD 6. 0 существенно улучшена по сравнению с ранними ее версиями. Она позволяет прибегнуть к быстрой помощи по любой указанной операции или группе родственных операций. Основные операции по управлению этой системой сосредоточены в опции Help (?)
главного меню. Оно имеет следующие позиции:
Index... [F1] (Индекс) -- показать все темы справки;
Keyboard... (Клавиатура...) -- показать темы по назначению клавиши быстрого управления;
Using Help... (О справке...) -- показать инструкции по использованию справки;
QuickSheets... (Шпаргалки...) -- открыть собрание шаблонных образцов применения Mathcad в стандартных ситуациях;
Technical Support... (Техническая поддержка...) -- открыть информацию, помогающую наладить надлежащую работу Mathcad;
About Mathcad... (О программе...) – показать информационное окно данной версии MathCAD.
Рассмотрим возможности этих команд, начиная с Index... (Индекс...). На рис.9.7 приведена начальная страница справки для системы MathCAD с индексным каталогом справок.
Рис. 9.7. Начальная страница справки с индексным каталогом тем
При его применении выводится окно с перечнем многочисленных разделов справки. Для расширения какого-либо из этих разделов нужно указать на квадратик перед ним курсором мыши и нажать ее левую клавишу. Расширение всех разделов обеспечивается активизацией клавиши Expand (Раскрыть).
Указав курсором мыши на нужный раздел, можно получить краткую справку о нем, как правило, с выделением ключевых слов или фраз. Указав на такие слова или фразы, можно получить их текстовое разъяснение и т. д. На рис. 9.8 показано окно справки, поясняющее как можно использовать функции для численного решения систем дифференциальных уравнений.
Рис. 9.8. Окно справки с функциями для численного решения систем дифференциальных уравнений
Действие еще одной функции — multigrid — показывает окно справки, приведенное на рис. 9.9.
Рис. 9.9. Окно справки с демонстрацией действия функции multigrid
Многих пользователей англоязычных версий могут удивить отдельные надписи на русском языке в меню справочной системы. Причина этого казуса очень проста: в MathCAD такие надписи появляются при работе системы в русскоязычной версии Windows. Из нее MathCAD берет формы окон для справок.
Справочная система MathCAD довольно детальна и позволяет пользователю, владеющему соответствующим языком, оперативно ознакомиться с ее возможностями. Однако даже в этом случае она явно не рассчитана на систематическое изучение и содержит небольшое количество примеров. Хотя система помощи облегчает знакомство с системой, она не заменяет технической или справочной литературы по ней. В конце концов, с обычной справочной литературой можно работать, не будучи привязанным к компьютеру и в любое свободное время.
9.5. Назначение клавиш (Keyboard...)
Команда Keyboard... (Клавиатура...) в меню справочной системы выдает справки о назначении клавиш и их комбинаций (см. рис. 9.10).
Рис. 9.10. Окно справочной системы с разделами о назначении клавиш
Они сгруппированы в следующие разделы:
Greek letters (Греческие буквы) -- ввод греческих букв;
Operators (Операторы) -- ввод операторов;
Worksheets and Windows (Окна и рабочие документы) -- управление документами и окнами;
Editing (Редактирование) – редактирование документов;
Cursor movement (Перемещение курсора) – перемещение курсора;
Creation keys (Создание объектов) – работа с клавишами задания объектов (графиков, матриц, отдельных специальных символов и др.).
Действие клавиш и их комбинаций в нашей книге описывается по мере рассмотрения относящихся к ним операций.
9.6. Использование справочной системы (Using Help...)
Сама по себе справочная система MathCAD достаточно сложна, хотя работа с нею интуитивно предсказуема. Тем не менее благодаря операции Using Help... можно получить справку об использовании самой справочной системы (см. рис. 9.11).
Рис. 9.11. Окно с информацией о применении справочной системы
Уже говорилось, что кое-где надписи в окнах справочной системы англоязычных версий MathCAD появляются на русском языке. Окно, показанное на рис. 9.11, вообще может озадачить -- там все надписи даны на русском языке, хотя использовалась оригинальная англоязычная версия системы MathCAD PLUS 6.0 PRO.
Причина этого нового казуса тоже в том, что позиция Using Help... запускает стандартную справочную систему Windows. В данном случае использовалась русифицированная версия Windows 3.11. Поэтому на рис. 9.11 окно справочной системы MathCAD содержит все надписи на русском языке.
Следует отметить, что при неправильной инсталляции Windows или при изменении базового набора шрифтов могут наблюдаться искажения надписей на русском языке. В частности, это нередко случается при использовании драйверов видеоадаптеров на локальных шинах (VLB-BUS и PCI), программное обеспечение которых при инсталляции заменяет установленные русифицированные наборы шрифтов на свои (увы, без русских букв).
Мы не будем более подробно описывать справки по самой справочной системе MathCAD, поскольку ее работа совершенно аналогична работе справок о возможностях системы.
9.7. Работа с быстрыми примерами (QuickSheet)
Работа с математическими системами невозможна без анализа и разбора множества примеров применения систем. Нередко, изучая такие примеры, пользователь легко приспосабливает их к решению своих задач, схожих с приводимыми в примерах. А главное -- изучение примеров быстрее всего выявляет тонкости входного языка системы и реализации с его помощью сложных математических алгоритмов.
Учитывая это, в справочную систему введен раздел QuickSheet ... (Шпаргалки...), открывающий окно с перечнем более чем 140 небольших и наглядных примеров ее применения (см. рис. 9.12). Их назвали шпаргалками – видимо, сказывается тоска создателей системы MathCAD по студенческим временам.
Рис. 9.12. Окно с перечнем примеров применения системы -- шпаргалок
Просмотром примеров можно управлять с помощью достаточно понятных пиктограмм в левом верхнем углу окна документа. Перечислим их функции, начиная с первой пиктограммы под именем Top:
n вызов оглавления;
n вызов индексного указателя;
n переход к предшествующему разделу;
n переход к следующему разделу;
n просмотр последнего просмотренного раздела;
n переход к предыдущей странице;
n переход к следующей странице;
n поиск заданного слова.
На рис. 9.13 показан один из примеров, поясняющих решение систем нелинейных алгебраических уравнений. Кнопка с буквой "i" выводит дополнительное информационное окно (см. правую часть рис. 9.13).
Рис. 9.13. Пример использования шпаргалок
Важно отметить, что как примеры целиком, так и отдельные их части можно перенести из окна примера в окно редактирования — для использования их в документах пользователя. Для этого достаточно выделить нужные блоки примеров и просто перетащить их мышью из окна примера в окно редактирования. Можно сделать это, и используя буфер обмена системы Windows.
Разумеется, ценность примеров с точки зрения наших пользователей снижается тем, что все текстовые комментарии у них сделаны на английском языке. Однако для быстрых примеров характерны очень краткие и нередко в принципе понятные комментарии. Конечно, в русифицированных версиях MathCAD шпаргалки написаны на русском языке.
Наконец следует отметить, что MathCAD PLUS 6.0 дает пользователю возможность включить в состав примеров свои собственные примеры, используя типовые средства QuickSheet.
9.8. Общие сведения о системе (About MathCAD)
Команда About MathCAD (О программе) ничего не прибавляет к знаниям о системе MathCAD, она лишь выводит красочную заставку с указанием фирмы-разработчика и ее адреса (см. рис. 9.14).
Рис. 9.14. Заставка системы MathCAD PLUS 6.0 PRO
Тут любопытен список фирм, принявших участие в разработке системы MathCAD PLUS 6.0 Professional Edition (PRO), и год создания этой версии -- 1995. Ко времени написания настоящей книги не существовало более новой версии системы MathCAD.
Глава 10. ВХОДНОЙ ЯЗЫК СИСТЕМЫ
10.1. Алфавит, константы и переменные системы
При решении многих задач система MathCAD практически избавляет пользователя от необходимости программировать их решение. Уходит в прошлое подход, когда пользователь, прежде чем вычислить определенный интеграл или производную заданной функции либо просто рассчитать ряд ее значений, был вынужден изучать основы программирования на Фортране, Бейсике или Паcкале, а затем составлять свои простенькие и не очень надежные программы или же разыскивать их в статьях и книгах, подобных [2], и самостоятельно вводить эти программы в ПК.
Впрочем, нельзя не отметить, что такие программы (если они составлены корректно) обеспечивают существенно большую скорость проведения вычислений, чем MathCAD. Однако время подготовки программ намного превышает время подготовки задач к решению в системе MathCAD.
MathCAD прежде всего требует от пользователя корректного описания алгоритма решения математической задачи на входном языке, очень напоминающем общепринятый язык описания математических и научно-технических расчетов. Естественно, это описание должно быть исчерпывающе полным и абсолютно точным. Тем не менее сказанное не означает, что решение задач в системе MathCAD нельзя рассматривать как программирование. Просто MathCAD обладает специализированным входным языком программирования очень высокого уровня, ориентированным на математические расчеты.
Поэтому, рассматривая входной язык системы как язык программирования, мы можем выделить в нем типичные для любого языка программирования понятия и объекты, такие, как идентификаторы, константы, переменные, массивы и другие типы данных, операторы и функции, управляющие структуры и т. д. Четкое представление об их возможностях и правилах применения (синтаксисе) весьма полезно при решении задач умеренной и высокой сложности.
Ниже описан входной язык системы MathCAD PLUS 6.0. Тут же рассмотрены и его операторы и функции, которые содержатся во всех предшествующих версиях системы -- MathCAD 3.0/4.0/5.0 и PLUS 5.0, что позволит использовать материал этой главы пользователям, работающим с любой из указанных версий. Для этого из приведенных изображений экрана удалены элементы интерфейса, характерные только для MathCAD PLUS 6.0.
Алфавит входного языка системы определяет совокупность специальных знаков и слов, которые используются при задании команд, необходимых для решения интересующего пользователя класса задач. Алфавит системы MathCAD содержит:
n малые и большие латинские буквы;
n малые и большие греческие буквы;
n арабские цифры от 0 до 9;
n системные переменные;
n операторы;
n имена встроенных функций;
n спецзнаки;
n малые и большие буквы кириллицы (при работе в среде
русифицированной системы Windows).
К укрупненным элементам языка относятся типы данных, операторы, функции и управляющие структуры. Все эти элементы присущи входному языку системы MathCAD, как и любому другому языку программирования. К типам данных относятся числовые константы, обычные и системные переменные, массивы (векторы и матрицы) и данные файлового типа. По числу типов данных MathCAD несколько уступает современным языкам программирования (к примеру, в ней нет данных символьного или строчного типа, записей, множеств и др.). Это связано с определенной специализацией языка, направленной на математические расчеты общего характера.
Операторы -- элементы языка, с помощью которых можно создавать математические выражения. К ним, например, относятся символы арифметических операций, знаки вычисления сумм, произведений, производной и интеграла и т. д. После указания операндов (параметров операторов) операторы становятся исполняемыми по программе блоками.
Функции обладают особым свойством -- в ответ на обращение к ним по имени с указанием аргумента ( или списка аргументов) они возвращают некоторое значение — символьное, числовое, вектор или матрицу. В систему встроен ряд функций, например вычисления синуса sin(x)
аргумента x, логарифма ln(x) и т. д. Наряду со встроенными функциями могут задаваться и функции пользователя, описывающие произвольные и нужные пользователю функции, отсутствующие в наборе встроенных в MathCAD функций.
Функции могут (наряду с операторами) входить в математические выражения. Например, в выражении
Y : = 2*ln(x) + 1
Y -- переменная, 1 и 2 -- числовые константы, * и + -- операторы, ln(x)
-- встроенная функция с аргументом x. Напоминаем, что встроенные функции в данной книге выделяются полужирным шрифтом (за исключением примеров их записей в документах).
Числовые константы задаются с помощью арабских цифр, десятичной точки (а не запятой) и знака - (минус). Например:
123 -- целочисленная десятичная константа;
12.3 -- десятичная константа с дробной частью;
12.3*10
- 5 -- десятичная константа с мантиссой (12.3) и порядком - 5.
Эти формы представления числовых констант естественны, и их не стоит обсуждать, за исключением двух важных аспектов. Порядок числа вводится умножением мантиссы на 10 в степени, определяющей порядок. Во многих языках программирования принят ввод чисел в виде 12.3е-5, где разделительный символ e указывает на порядок. В системе MathCAD этот не вполне естественный для математики ввод числа устранен. Далее надо отметить, что знак умножения * при выводе числа на экран меняется на точку, а операция возведения в степень (с применением спецзнака ^) отображается путем представления порядка в виде надстрочного элемента. Десятичные числа имеют основание 10. Диапазон из возможных значений лежит в пределах от 10^307 до 10^–307 (это есть, машинная бесконечность и машинный ноль).
Система MathCAD также может работать с восьмеричными и шестнадцатеричными числами. Восьмеричные числа имеют основание 8, так что один их разряд может иметь значения от 0 до 7. Такие числа в конце отмечаются латинской буквой O (от слова octal -- восьмеричное). Шестнадцатеричные числа имеют основание 16, и их разряд может иметь значения:
HEX 0 1 2 3 4 5 6 7 8 9 A B C D E F
DEC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Шестнадцатеричные числа имеют в конце отличительный признак в виде буквы h или H (от слова hexagonal -- шестнадцатеричное). Под сокращенным названием этих чисел HEX приведены их десятичные значения DEC (от decimal -- десятичное).
Применение восьмеричных и шестнадцатеричных чисел в обычной математике ограничено, и в дальнейшем мы эти числа (а также константы на их основе) использовать не будем. Однако отметим, что если шестнадцатеричное число начинается с буквы (например, ABC0), то система будет путать его с возможным именем переменной. Для устранения потенциальных ошибок такие числа надо начинать с цифры 0 (ноль). В математических выражениях можно комбинировать числа различного типа (например 10 + 0eh = 18H).
Большинство вычислений система выполняет как с действительными, так и с комплексными числами, которые обычно представляются в алгебраическом виде:
Z = ReZ + i*ImZ или Z = ReZ + j*ImZ
Здесь ReZ -- действительная часть комплексного числа Z, ImZ -- его мнимая часть, а символы i или j
обозначают мнимую единицу, т. е. корень квадратный из -1. Такое представление характерно и для системы MathCAD (за исключением того, что знак равенства не есть знак присваивания). Итак, если ReZ = 2, а ImZ = 3, то комплексная числовая константа в системе MathCAD должна быть задана в виде 2 + i*3 или 2 + j*3. Однако система не всегда знает, какой символ применить для обозначения мнимой единицы. Поэтому перед использованием любых операций с комплексными числами полезно вначале определить i или j как мнимую единицу (т. е. присвоить им значение квадратного корня из -1).
Константами называют поименованные объекты, хранящие некоторые значения, которые не могут быть изменены. В качестве имени числовых констант используются их числовые значения (к примеру, значения констант 0 и 1 есть соответственно ноль и единица). Как уже отмечалось, в системе MathCAD используются и числовые константы, значения которых представляют собой числа определенного типа -- десятичные, восьмеричные или шестнадцатеричные.
Используемые в ряде языков программирования символьные константы в системе MathCAD не применяются, однако здесь содержится особый вид констант -- размерные. Помимо своего числового значения они характеризуются еще и указанием на то, к какой физической величине они относятся. Для этого указания используется символ умножения. В системе MathCAD заданы следующие основные типы физических величин: time (время), length (длина), mass (масса) и charge (заряд). При необходимости их можно изменить на другие.
Переменные являются поименованными объектами, имеющими некоторое значение, которое может изменяться по ходу выполнения программы. Имена констант, переменных и иных объектов называют идентификаторами.
Идентификаторы в системе MathCAD могут иметь практически любую длину, и в них могут входить любые латинские и греческие буквы, а также цифры. Однако начинаться идентификатор может только с буквы, например:
x, x1, alfa, X_coordinate. Кроме того, идентификатор должен быть слитным. Некоторые спецсимволы (например, знак объединения _) могут входить в состав идентификаторов, другие (например, знаки операторов арифметических действий) недопустимы. Нельзя использовать для идентификаторов буквы русского языка. Малые и большие буквы в идентификаторах различаются.
В MathCAD содержится небольшая группа особых объектов, которые нельзя отнести ни к классу констант, ни к классу переменных. Их правильнее считать системными переменными, имеющими предопределенные системой начальные значения. Ниже указаны эти объекты и приведены их начальные значения (в скобках):
Объект Ввод Назначение
p Ctrl + P Число "пи" (3.14..)
e e Основание натурального
логарифма (2.71..)
ì Ctrl + Z Системная бесконечность
(10^307)
% % Процент (0.01)
TOL Погрешность численных методов (0.001)
ORIGIN Нижняя граница индексации массивов (0)
PRNCOLWIDTH Число столбцов оператора WRITEPRN (8)
PRNPRECISSION Число десятичных знаков, используемых
оператором WRITEPRN (4)
FRAME Переменная счетчика кадров при работе с
анимационными рисунками (0)
Пять последних переменных вводятся набором их имен. Значения системных переменных могут быть в дальнейшем изменены, как и значения обычных переменных, присваиванием им новых значений. К примеру, значение e можно изменить так, что эта переменная будет означать заряд электрона, а вовсе не основание натурального логарифма. Однако рекомендуется этого не делать во избежание ошибок двойного истолкования таких переменных.
При выполнении символьных операций переменные p и e используются только в символьном виде. Это значит, что их численные значения не вычисляются при выводе результатов вычислений. К примеру, число 2p = 6.141... выводится как 2p, а не как приближенное численное значение.
Обычные переменные отличаются от системных тем, что они должны быть предварительно определены пользователем, т. е. им необходимо хотя бы однажды присвоить значение. В качестве оператора присваивания используется знак :=, тогда как знак = отведен для вывода значения константы или переменной. Попытка использовать неопределенную переменную ведет к выводу сообщения об ошибке. Существует также жирный знак равенства, который используется либо как признак неравенства в операциях сравнения, либо как оператор приближенного равенства (в прежних версиях этот знак имел вид »).
Если переменной присваивается начальное значение с помощью оператора :=, такое присваивание называется локальным. До этого присваивания переменная не определена и ее нельзя использовать. Однако с помощью знака º (три горизонтальные черточки) можно обеспечить глобальное присваивание, т. е. оно может производиться в любом месте документа. К примеру, если переменной присвоено таким образом значение в самом конце документа, то она будет иметь это же значение и в начале документа. Разумеется, в дальнейшем значение можно изменить и с помощью операции локального присваивания (см. рис. 10.1).
Рис. 10.1. Особенности локального и глобального присваивания переменным их численных значений
Переменные могут использоваться в математических выражениях, быть аргументами функций или операндом операторов. Далее мы рассмотрим особые виды переменных, в частности индексированные (элементы векторов и матриц), а также переменные с заданными пределами их изменения (ранжированные переменные).
Статус присваивания не следует путать со статусом самих переменных. Все переменные, описанные выше, являются глобальными, поскольку их можно определять в любом месте документа и в любом месте изменять их значение. Локальные переменные в системе MathCAD содержатся в телах функций пользователя, которые будут рассмотрены ниже.
Переменные могут быть и размерными, т. е. характеризоваться не только своим значением, но и указанием физической величины, значение которой они хранят. Для присваивания с такими переменными используется знак º. На рис. 10.2 представлены примеры работы с размерными переменными.
Рис. 10.2. Примеры задания и применения размерных переменных
Проведение расчетов с размерными величинами и переменными особенно удобно при решении различных физических задач. При этом правильная размерность результата является дополнительным фактором, свидетельствующим о корректности таких расчетов.
Использование незаданной переменной — ошибочно. Такая переменная отмечается черным фоном. Использование несуществующих переменных в математических выражениях может тоже привести к различным ошибкам. Все они диагностируются и требуют исправления для продолжения вычислений.
10.2. Ранжированные переменные и таблицы вывода
Ранжированные переменные -- особый класс переменных, который в системе MathCAD зачастую заменяет управляющие структуры, называемые циклами (однако полноценной такая замена не является). Эти переменные имеют ряд фиксированных значений, либо целочисленных, либо в виде чисел, с определенным шагом меняющихся от начального значения до конечного.
Ранжированные переменные характеризуются именем и индексом каждого своего элемента. Для создания ранжированной переменной целочисленного типа используется выражение:
Name := Nbegin..Nend,
где Name -- имя переменной, Nbegin -- ее начальное значение, Nend -- конечное значение, .. -- символ, указывающий на изменение переменной в заданных пределах (он вводится знаком точки с запятой ;). Если Nbegin
< Nend, то шаг изменения переменной будет равен +1, в противном случае -1.
Для создания ранжированной переменной общего вида используется выражение:
Name := Nbegin, (Nbegin + Step)..Nend
Здесь Step -- заданный шаг изменения переменной (он может быть положительным, если Nbegin
Ранжированные переменные широко применяются для представления численных значений функций в виде таблиц, а также для построения их графиков. Любое выражение с ранжированными переменными после знака равенства инициирует таблицу вывода. Несколько таких таблиц показано на рис. 10.3.
Рис. 10.3. Типовые применения ранжированных переменных
Полезно учитывать некоторые свойства таблиц вывода:
n число строк в них не может быть больше 50 (большие таблицы придется составлять из нескольких малых);
n числа в таблицах можно задавать в требуемом формате с помощью операций задания формата чисел;
n при использовании в таблице единиц размерности все данные таблицы будут содержать единицы размерности (поделите результат с размерными переменными на размерность для указания ее только в заголовке таблицы вывода);
n есть три способа показать значения векторов:
1. Xj=выводится обычная таблица вывода;
2. X=выводится вектор, если число его элементов меньше 10;
3. X=выводится таблица вывода со слайдером, если число элементов
вектора больше 10 (см. раздел 11.12).
В таблицы вывода можно и вставлять числовые значения, и корректировать их. Естественно, это меняет значения элементов соответствующего вектора.
10.3. Применение переменных с заданными пределами изменения
Важно отметить, что, в сущности, задание ранжированных переменных эквивалентно заданию конечных циклов. Сами ранжированные переменные являются векторами. Выдача их значений имеет форму столбца со всеми значениями переменных. Это означает, что объем памяти, занимаемой такими переменными, больше объема памяти, занимаемого обычными (одиночными) переменными. Индексированные переменные, образующиеся в результате задания ранжированных переменных, могут применяться в последующих формульных блоках. Однако в этих блоках необходимо соблюдать соответствие результатов (конечных и промежуточных) векторному типу этих переменных.
Привыкшие к обычному программированию пользователи часто забывают, что ранжированная переменная -- вектор. Поэтому они пытаются выполнять с такими операциями действия, корректные лишь для обычных (скалярных) переменных. Например, задают выражение вроде f:= i*2, используя обычную переменную f, что приведет к явной ошибке -- система укажет (в красном прямоугольнике), что f не соответствует векторному типу. Однако, если использовать выражение, например, вида
f i := i2,
то будет получен новый вектор с именем f, элементы которого в нашем случае являются квадратами значений элементов вектора i. Более подробно особенности задания и применения векторов рассматриваются далее.
Ранжированные переменные широко применяются при построении графиков. Например, для построения графика некоторой функции f(x)
прежде всего надо позаботиться о создании ряда значений переменной x -- для этого она должна быть ранжированной переменной.
10.4. Векторы и матрицы
Важным типом данных в системе MathCAD являются массивы. Массив — имеющая уникальное имя совокупность конечного числа числовых или символьных элементов, упорядоченных определенным образом и имеющих определенные адреса. В системе MathCAD используются массивы двух наиболее распространенных типов: одномерные (векторы) и двумерные (матрицы).
Ниже представлено три пятиэлементных массива-вектора:
Номер элемента 0 1 2 3 4
______________________________________________
Значение 0 1 4 9 16
Значение a b c d e
Значение 0 x 2*x2 3*x3 4*x4
Первый из представленных массивов -- числовой, два других --- символьные. Порядковый номер элемента, который является его адресом, называется индексом. Напоминаем, что нижняя граница индексации задается значением системной переменной ORIGIN, которая может принимать значение 0 или 1.
Имя массива естественно увязать с именами индексированных переменных, значениями которых являются элементы массива. Для этого достаточно в виде подстрочного индекса указать индекс элемента. Например, если третий из представленных массивов имеет имя V, то его элементами при ORIGIN=0 будут индексированные переменные:
V0 = 0 V1 = x V2
= 2x2 V3
= 3x3 V4
= 4x4
Векторы могут быть двух типов: векторы-строки и векторы-столбцы. Например:
é10ù
ê20÷ -- вектор-столбец [10 20 30] -- вектор-строка
ë30û
Несмотря на то, что два этих вектора имеют одни и те же числовые значения элементов, они различны по типу и дадут разные результаты при векторных и матричных операциях, чувствительных к типу векторов.
Матрица может рассматриваться как совокупность ряда векторов одинаковой длины, например:
é a 1 0 ù
ê 1 a + b 1 ú
ë 0 1 a + b + c û
Элементы матриц являются индексированными переменными, имена которых совпадают с именами матриц. Но в этом случае для каждой индексированной переменной указываются два индекса, один для номера строки, другой для номера столбца. Например, для указанной матрицы M средний элемент обозначается как M1,1, а последний как M2,2.
Для задания векторов и матриц можно воспользоваться операцией Matrices...(Матрицы...) в позиции Math (Математика) основного меню, нажатием клавиш Ctrl + V или вводом пиктограммы с изображением шаблона матрицы. Это вызывает вначале появление диалогового окна, в котором надо указать размерность матрицы, т. е. количество ее строк m
и столбцов n. Для векторов один из этих параметров должен быть равен 1. При
m = 1 получим вектор-столбец, а при n = 1 -- вектор-строку. Матрица является двумерным массивом с числом элементов m´n. Элементы векторов и матриц помещаются между большими квадратными скобками.
Для указания подстрочных индексов после имени переменной вводится знак открывающей квадратной скобки:
Ввод Изображение в окне
V3 [ 2 : V32 :=
Для элементов матрицы подстрочные индексы вводятся в круглых скобках с разделением их запятыми:
Ввод Изображение в окне
M [ ( 1, 2 ) : M1,2 :=
Индексы могут иметь только целочисленные значения. Они могут начинаться с нуля или с целого числа, например единицы, в соответствии со значением системной переменной ORIGIN. В отношении индексированных переменных действуют те же правила присваивания и вывода, что и для обычных переменных. В частности, с помощью операций присваивания можно создать вектор или матрицу заданной размерности и заданного типа без ручного вывода их шаблоном и без их заполнения. Это иллюстрирует рис. 10.4, на котором показано задание нулевой, единичной и специальной матриц путем поэлементного их формирования.
Рис. 10.4. Задание матриц без применения их шаблонов
Такой способ задания матриц очень напоминает применяемый в обычных программах метод, при котором значения элементам матриц присваиваются в двух вложенных циклах с управляющими переменными j и i. Однако это сходство чисто внешнее, так как в нашем случае ранжированные переменные i и j -- векторы.
10.5. Данные файлового типа
Еще один важный тип данных системы MathCAD -- файловые данные. В сущности, это те же векторы и матрицы, но с элементами, которые могут записываться в виде файлов, имеющих свои имена. Файлы данных в системе представляет собою запись матриц в их естественной форме как последовательных текстовых файлов. Это простейший тип файлов, который легко обрабатывается в программах на различных языках программирования и может создаваться такими программами, благодаря чему возможен обмен данными между системой MathCAD и другими программами.
В ходе создания файла система считывает значения элементов векторов и матриц поэлементно (для матриц слева направо и сверху вниз) и по ходу считывания преобразует числовые значения элементов в их символьные эквиваленты, использующие ASCII-коды цифр и относящиеся к заданию чисел символы. Эти символьные значения и записываются в виде данных файлов.
Существует семь файловых операций, рассматриваемых ниже. Создаваемые или используемые ими файлы легко просмотреть любым текстовым редактором, воспринимающим тексты в виде ASCII-кодов. При считывании файлов система обеспечивает обратное преобразование символьных представлений значений элементов в их числовые значения. Начнем рассмотрение данных операций начиная с команды считывания файла, содержащего векторы.
1. READ (Имя_файла)
Эта операция-функция считывает данные из файла с указанным именем — Имя_файла — и возвращает значение -- вектор. Обычно она используется для присвоения значений векторам, например:
V := READ (DATA)
Здесь элементы вектора V получают значения, считанные из файла с именем DATA. Естественно, что такой файл должен существовать на диске, иначе будет получено сообщение об ошибке. Для указания полного имени файла (если он не в текущем каталоге системы) следует использовать общеупотребительные для MS-DOS составные имена, например D:\EXPER\DATA, если файл DATA расположен на диске D в каталоге EXPER.
2. WRITE (Имя_файла)
Эта операция записывает данные в файл и присваивает ему указанное имя. Данные могут порождаться математическим выражением, например:
WRITE (Имя_файла) := Выражение
Разумеется, выражение должно создавать данные векторного типа.
3. APPEND (Имя_файла)
Эта операция подобна операции WRITE, но она дописывает данные в конец уже существующего файла.
4. READPRN (Имя_файла)
Эта операция подобна READ, но считывает данные в виде двумерного массива -- матрицы. Функция READPRN возвращает матрицу, значения элементов которой однозначно связаны со значениями элементов файла; точнее, каждая строка или столбец возвращаемой матрицы подобны соответствующим строкам или столбцам текстового представления файла.
5. WRITEPRN (Имя_файла)
Эта операция подобна WRITE, но применяется для записи матричного выражения (или матрицы) в файл с указанным именем. Структура файла подобна структуре матрицы.
6. APPENDPRN (Имя_файла)
Эта операция дописывает данные в уже существующий матричный файл. Следует особо отметить, что при работе с векторами и матрицами, имеющими комплексные элементы, эти операции используют расширенные векторы или матрицы, элементы которых — действительные числа. Рис. 10.5 демонстрирует типовые операции с данными файлового типа.
Рис. 10.5. Основные операции с данными файлового типа
Этот рисунок показывает эффективные возможности занесения данных в файл и затем их вызова. Полезно просмотреть текстовым редактором создаваемый файл данных -- нетрудно заметить, что он представляет данные довольно наглядно и естественно. Поэтому такой файл можно обрабатывать (и создавать или модифицировать) с применением программ на обычных языках программирования или иных программ, что создает предпосылки для обеспечения легкого обмена данными через файлы.
7. READRGB (Имя_файла)
Эта операция стоит явно в стороне от других и скорее относится к системным операциям. Она используется вместе с графическими файлами и возвращает массив из трех подмассивов, несущих данные о разложении цветного изображения на три
основных цвета -- красный, зеленый и синий. Таким образом, операция выполняет функции цветоделения, используемого в полиграфии для цветной печати графиков и рисунков.
Благодаря введению данных файлового типа возможности системы MathCAD существенно расширяются. Она может использоваться в сложных программных комплексах. Например, некоторая специализированная программа может управлять экспериментальной установкой и формировать файлы данных, которые в дальнейшем обрабатываются системой MathCAD с использованием ее мощных и гибких математических возможностей. При этом предусмотрена обработка множества пакетов данных.
10.6. Скалярные и логические операторы
Скалярные операторы предназначены для выполнения арифметических действий над скалярными величинами. Система MathCAD 3.0 содержит следующие скалярные операторы (приводится их форма ввода, последовательность нажатия клавиш для ввода и условное наименование операндов X и Y):
Оператор Клавиши Назначение оператора
X := Y X : Y Локальное присваивание X значения Y
X º Y X ~ Y Глобальное присваивание X значения Y
X = X Ctrl = Вывод значения X
-X -X Смена знака X
X + Y X + Y Суммирование X c Y
X - Y X - Y Вычитание из X значения Y
X × Y X * Y Умножение X на Y
X
- X / Y Деление X на Y
Y
XY X ^ Y Возведение X в степень Y
__
vX

X ! X ! Вычисление факториала
|Z| |Z Вычисление модуля комплексного Z
_
Z Z " Вычисление комплексно сопряженного с Z числа
(¦) ' Ввод пары круглых скобок с шаблоном
( ( Ввод открывающей скобки
) ) Ввод закрывающей скобки
Xn X [ n Ввод нижнего индекса n
X
На рис. 10. 6 показаны примеры использования скалярных операторов. Из приведенных примеров видно, что MathCAD оперирует как с действительными, так и комплексными величинами. Для работы с комплексными величинами надо ввести объявление мнимой единицы i или j (в виде корня квадратного из -1). В дальнейшем будут рассмотрены дополнительные функции комплексного аргумента.
Рис. 10.6. Примеры применения скалярных операторов
Система MathCAD содержит ряд расширенных скалярных операторов: вычисления суммы ($) и произведения (#) рядa, вычисление производной (?) и определенного интеграла (&). Здесь в скобках даны символы, ввод которых задает вывод шаблона соответствующей операции. Шаблон содержит места, подлежащие заполнению числовыми или символьными значениями. Разумеется, для вызова шаблона можно использовать и соответствующую панель набора математических спецсимволов.
На рис. 10.7 показано применение этих операторов. Заметим, что выражения с ними ведут себя как функции, т. е. возвращают вычисленные значения. Поэтому их можно использовать в составе математических выражений.
Рис.10.7. Примеры применения расширенных операторов
Ряд операторов предназначен для сравнения двух величин. Они называются операторами отношения или логическими операторами:
Оператор Клавиши Наименование операции
X > Y X > Y X больше Y
X < Y X < Y X меньше Y
X ? Y X Ctrl ) Y X больше или равно Y
X ? Y X Ctrl ( Y X меньше или равно Y
X ¹ Y X Ctrl # Y X не равно Y
X = Y X Ctrl = Y X равно Y
Не следует путать оператор сравнения (знак равенства) с похожим знаком вывода значений переменных. В системе MathCAD 3.0 знак равенства как оператор отношения имеет больший размер и более жирное написание (=), чем обычный знак равенства (=) -- оператор вывода. Все операторы отношения могут вводиться самостоятельно в место расположения курсора. В этом случае по обе стороны от них появляются маленькие темные прямоугольники. Они являются шаблонами для указания подлежащих сравнению выражений. Например, если ввести знак “меньше”, то на экране дисплея появится блок вида: ¦ < ¦ . Знак вывода при этом будет появляться с сообщением об ошибке Missing operand (пропущенный операнд).
Необходимо отметить, что выражения с логическими операторами возвращают логическое значение, соответствующее выполнению или невыполнению условия, заданного оператором. Эти значения в системе MathCAD являются логической единицей 1, если условие выполнено, и логическим нулем 0, если оно не выполнено. Математически значения логической единицы и нуля совпадают со значениями числовых констант 1 и 0. Например:
2 > 1 = 1 -- условие выполнено, результат 1;
1 > 2 = 0 -- условие не выполнено, результат 0.
Указанное свойство логических операторов позволяет строить не совсем обычные выражения, содержащие в себе логические операторы, например:
2 * (5 > 0) = 2
Нетрудно понять, что выражение (5 > 0) возвращает единицу, поэтому результат вычисления такого выражения даст число 2. Логические операторы часто используются совместно с условными функциями, которые будут описаны далее.
10.7. Встроенные элементарные функции
Система MathCAD содержит расширенный набор встроенных элементарных функций. Функции задаются своим именем и значением аргумента в круглых скобках. В ответ на обращения к ним функции возвращают вычисленные значения. Аргумент и значение функций могут быть действительными или комплексными числами z. Ниже представлены эти функции, разбитые на шесть групп.
Тригонометрические функции
sin(z) -- синус cos(z) -- косинус
tan(z) -- тангенс sec(z) -- секанс
csc(z) -- косеканс cot(z) -- котангенс
Гиперболические функции
sinh(z) -- гиперболический синус
cosh(z) -- гиперболический косинус
tanh(z) -- гиперболический тангенс
sech(z) -- гиперболический секанс
csch(z) -- гиперболический косеканс
coth(z) -- гиперболический котангенс
Обратные тригонометрические функции
asin(z) -- обратный тригонометрический синус
acos(z) -- обратный тригонометрический косинус
atan(z) -- обратный тригонометрический тангенс
Обратные гиперболические функции
asinh(z) -- обратный гиперболический синус
acosh(z) -- обратный гиперболический косинус
atanh(z) -- обратный гиперболический тангенс
Показательные и логарифмические функции
exp(z) -- экспоненциальная функция
ln(z) -- натуральный логарифм (по основанию e)
log(z) -- десятичный логарифм (по основанию 10)
Функции комплексного аргумента
Re(z) -- выделение действительной части z
Im(z) -- выделение мнимой части z
arg(z) -- вычисление аргумента (фазы)
Обратите внимание, что большинство из этих функций набирается малыми латинскими буквами. Рис. 10.8 иллюстрирует работу с элементарными функциями как при действительном, так и при комплексном аргументе.
Рис. 10.8. Примеры вычислений с элементарными функциями
Набор элементарных функций в системе MathCAD функционально полон, точнее, он даже несколько избыточен. Например, гиперболические функции можно вычислить через алгебраические; функции тангенса и котангенса легко вычисляются через функции синуса и косинуса и т. д. Соответствующие формулы общеизвестны и потому здесь не приводятся. Однако расширенный набор функций создает заметные удобства при проведении многих вычислений, избавляя пользователя от определения многих распространенных функций.
10.8. Встроенные специальные математические функции
Наряду с элементарными функциями в системе MathCAD содержится ряд встроенных специальных математических функций. К важнейшим из них принадлежат функции Бесселя, являющиеся решениями дифференциального уравнения второго порядка:
d2y dy
x2
¾¾ + x ¾¾ + (x2 - n2)y = 0.
dx2 dx
Здесь n — порядок функции (рассматриваются функции только целого порядка при действительном x). Функции Бесселя описывают колебательные процессы и широко используются в физике и электро- и радиотехнике. Приведенное уравнение имеет решения в виде функций Бесселя Jn(x) первого рода и Yn(x) второго рода.
Существуют также модифицированные функции Бесселя, которые являются решениями следующего дифференциального уравнения:
d2y dy
x2
¾ + x ¾ - (x2 - n2)y = 0.
dx2 dx
Эти функции также представлены функциями первого рода In(x) и второго рода Kn(x).
Функции Бесселя используются с вещественным аргументом. Ниже приведен список функций Бесселя, вычисление которых реализовано в системе MathCAD.
Функции Бесселя
J0(x) -- функция Бесселя первого рода нулевого порядка;
I0(x) -- модифицированная функция Бесселя первого рода нулевого порядка;
Y0(x) -- функция Бесселя второго рода нулевого порядка;
K0(x) -- модифицированная функция Бесселя второго рода нулевого порядка;
J1(x) -- функция Бесселя первого рода первого порядка;
I1(x) -- модифицированная функция Бесселя второго рода первого порядка;
Y1(x) -- функция Бесселя второго рода первого порядка;
K1(x) -- модифицированная функция Бесселя второго рода первого порядка;
Jn(n, x) -- функция Бесселя первого рода n-го порядка;
In(n, x) -- модифицированная функция Бесселя первого рода n-го порядка;
Yn(n, x) -- функция Бесселя второго рода n-го порядка;
Kn(n, x) -- модифицированная функция Бесселя второго рода n-го порядка.
Другой широко распространенной специальной функцией, вычисление которой (причем как при действительном, так и комплексном аргументе z) предусмотрено в системе MahCAD, является гамма-функция G(z). Она широко применяется и в статистических расчетах. В них используется также функция ошибок erf(x), называемая еще интегралом вероятности.
На рис. 10.9 представлены примеры вычисления ряда специальных математических функций и графики этих функций.
Рис. 10.9. Вычисление специальных математических функций
Наличие встроенных в систему наиболее распространенных математических функций расширяет ее возможности. Многие другие специальные математические функции могут быть определены через перечисленные встроенные функции или заданы своим интегральным либо дифференциальным представлением (см. раздел 10.10 о функциях пользователя).
При загрузке символьного процессора система распознает ряд дополнительных специальных функций:
FresnelC(x) -- интеграл Френеля C(x);
FresnelS(x) -- интеграл Френеля S(x);
Ci(x) -- интегральный косинус;
Si(x) -- интегральный синус;
Ei(x) -- интегральная показательная функция;
dilog(x) -- дилогарифм;
erf(z) -- интеграл ошибок для комплексного аргумент z;
d
Psi(x) := — ln( G 0(x)) -- "пси"-функция;
dx
Psi(n, x) -- n-я производная "пси"-функции и т. д.
К сожалению, статус этих функций необычен, они могут фигурировать в результатах символьных операций, но недоступны для обычных операций. Подобные результаты размещаются в буфере обмена и не обладают статусом выполняемых выражений.
Например, невозможно вычислить значения функций при подстановке в них числового значения аргумента и применении знака = для вывода результата вычислений. Однако, используя известные (в основном интегральные) представления для этих функций, их можно определить как функции пользователя.
Здесь не приводятся выражения для этих функций, их легко найти в справочной системе помощи MathCAD либо в литературе, например в [14, 21]. В связи с особым статусом данного класса функций их имена не выделены жирным шрифтом.
10.9. Функции с условиями сравнения
Существует ряд встроенных функций, у которых возвращаемый ими результат зависит от знака или значения аргумента. Так, при их вычислении производится сравнение аргумента с некоторыми числовыми константами, например с нулем или целыми числами. Ниже представлены такие функции.
Функции с условиями сравнения:
ceil(x) -- наименьшее целое, большее или равное x;
floor(x) -- наибольшее целое, меньшее или равное x;
mod(x, y) -- остаток от деления x/y со знаком x;
angle(x, y) -- положительный угол с осью x для точки с координатами (x, y);
F(x) -- функция Хевисайда -- единичного скачка (дает 0 при x<0 и 1 в
противном случае);
d(m, n) -- функция, именуемая символом Кронекера, возвращающая 1
при m = n и 0 в противном случае.
Назначение этих функций довольно очевидно. К примеру, функция Хевисайда может использоваться для задания импульса с шириной w:
pulse(t, w) := F(t) - F(t–w)
Более широкие возможности дает функция if
для создания условных выражений:
if (Условие, Выражение 1, Выражение 2)
Если в этой функции условие выполняется, то будет вычисляться Выражение 1, в противном случае -- Выражение 2. Заметим, что эта функция широко распространена в языках программирования.
На рис. 10.10 приведены примеры применения функции if для моделирования процессов однополупериодного и двухполупериодного выпрямления синусоиды (используется в электротехнике для преобразования переменного тока в пульсирующий одной полярности). Этот процесс иллюстрируется наглядной графикой.
Рис. 10.10. Применение функции if
С помощью функций с элементами сравнения можно моделировать и другие функции, например логические или описывающие импульсные сигналы различного вида.
10.10. Функции пользователя
Несмотря на довольно широкий набор встроенных функций, всегда возникает необходимость расширить систему новыми функциями, представляющими интерес для пользователя. Функции пользователя вводятся с применением следующего выражения:
Имя_функции (Список_параметров) := Выражение
Имя функции задается как любой идентификатор, например имя переменной. В скобках указывается список параметров функции; это перечень используемых в выражении переменных, разделяемых запятыми. Выражение -- любое выражение, содержащее доступные системе операторы и функции с операндами и аргументами, указанными в списке параметров.
Примеры задания функций одной и двух переменных:
fun(x) := 10×(1 - exp(x))
_______
module(x, y) := Ö x2 + y2.
Следует отметить особый статус переменных, указанных в списке параметров функций пользователя. Эти переменные являются локальными, поэтому они могут не определяться до задания функций; фактически их указание в списке параметров и является заданием этих переменных. Естественно, что локальные переменные могут использоваться только в выражении, описывающем функцию. Их имена могут совпадать с именами глобальных переменных, введенных ранее. Но при этом по выходе из блока задания функции значения этих переменных будут сохранять ранее заданные (для глобальных переменных) значения.
Следует с осторожностью относиться к применению глобальных переменных в теле выражения функции пользователя, хотя в принципе это возможно, но, конечно, только в том случае, когда глобальная переменная определена ранее. Например, вполне приемлемо задание следующей функции пользователя:
A := 10
fun(x) := A×(1 - exp(x)),
поскольку переменная A определена до задания функции. Однако если убрать строку с ее определением, задание функции fun(x) станет невозможным, точнее, в введенном выражении переменная A будет выделена как несуществующая. Разумеется, эту переменную можно определить глобально и после задания функции пользователя, используя для этого символ глобального присваивания º:
fun(x) := A×(1 - exp(x))
A º 10
Функции пользователя можно вводить для задания новых специальных математических функций. Ряд таких примеров содержится в справочнике системы и приведен на рис. 10.11.
Рис. 10.11. Примеры задания и применения функций пользователя
Заданные с применением знака := функции являются заданными локально. Поэтому они должны быть заданы в документе до того, как будут использованы. С помощью знака º можно задать функции пользователя как глобальные. Тогда они могут задаваться в любом месте документа, в том числе в конце. Если же функция нигде и никак не задана, то применять ее, естественно, нельзя. Попытки такого применения будут сопровождаться сообщениями об ошибке -- имя функции окажется выделенным черным фоном.
Функции пользователя — мощный аппарат расширения системы. Они облегчают адаптацию системы к решению специфических задач пользователя. Напоминаем еще раз, что, к сожалению, функции пользователя нельзя применять в составе выражений, над которыми осуществляются символьные операции из меню (но преобразования с применением знака ® системы SmartMath могут выполняться и без этого ограничения).
10.11. Операторы и функции для работы с векторами и матрицами
Для работы с векторами и матрицами система MathCAD содержит ряд операторов и функций. Вначале рассмотрим операторы, введя следующие обозначения: для векторов V, для матриц M и для скалярных величин Z. Ниже представлены операторы для работы с векторами и матрицами:
Оператор Ввод Назначение оператора
V1+V2 V1+V2 Сложение двух векторов V1 и V2
V1-V2 V1-V2 Вычитание двух векторов V1 и V2
-V -V Смена знака у элементов вектора V
-M -M Смена знака у элементов матрицы
V-Z V-Z Вычитание из вектора V
скаляра Z
Z*V, V*Z Z*V, V*Z Умножение вектора V на скаляр Z
Z*M, M*Z Z*M, M*Z Умножение матрицы M на вектор Z
V1*V2 V1*V2 Умножение двух векторов V1 и V2
M*V M*V Умножение матрицы M на вектор V
M1*M2 M1*M2 Умножение двух матриц M1 и M2
V
- V/Z Деление вектора V на скаляр Z
Z
M
- M/Z Деление матрицы M на скаляр Z
Z
M-1 M^-1 Обращение матрицы M
Mn M^n Возведение матрицы M в степень n
|V| |V Вычисление квадратного корня из mV
|M| |M Вычисление определителя матрицы
VT V Ctrl ! Транспонирование вектора V
MT M Ctrl ! Транспонирование матрицы M
V1xV2 V1 Ctrl * V2 Кросс-умножение двух векторов V1 и V2
-
V V " Получение комплексно-сопряженного
вектора
M M " Получение комплексно-сопряженной
матрицы
åV Alt $ V Вычисление суммы элементов вектора V
®
V V Ctrl - Векторизация вектора V
®
M M Ctrl - Векторизация матрицы M
M
Vn V [ n Выделение n-го элемента вектора V
Mm,n M [(m, n) Выделение элемента (m, n) матрицы M
Следует отметить, что в некоторых операторах для ввода используется клавиша Ctrl, тогда как в ранних версиях системы MathCAD использовалась клавиша Alt (в последней версии Alt используется для управления главным меню).
Большинство приведенных операторов достаточно известны из математического аппарата матричных вычислений. Под необычным для нашей математической литературы понятием "векторизация" подразумевается одновременное проведение математических операций в их скалярном значении над всеми элементами вектора или матрицы, помеченными знаками векторизации. Это можно понимать и как возможность параллельных вычислений.
Векторизация может изменить смысл математических выражений и даже превратить недопустимое выражение во вполне допустимое. Например, если
V -- вектор, то выражение cos(V)
будет недопустимым, поскольку аргументом функции cos может быть только скалярная величина или переменная. Однако со знаком векторизации функция cos(V)
возвращает вектор, каждый элемент которого есть косинус значения соответствующего исходного вектора V.
Если A и B -- векторы, то A×B дает скалярное произведение этих векторов. Но то же произведение под знаком векторизации создает новый вектор, каждый j-й элемент которого есть произведение j-х элементов векторов A и B.
Итак, векторизация позволяет использовать скалярные операторы и функции с массивами. Нередко это заметно упрощает запись математических алгоритмов, особенно для обеспечения параллельных вычислений. Впрочем, параллельность относится не к самим вычислениям, а лишь к их алгоритмической записи.
Существует также ряд встроенных векторных и матричных функций. Они облегчают решение задач линейной алгебры и других сфер приложения векторов и матриц.
Векторные функции
length(V) -- возвращает длину вектора;
last(V) -- возвращает индекс последнего элемента;
max(V) -- возвращает максимальный по значению элемент;
min(V) -- возвращает минимальный по значению элемент;
Re(V) -- возвращает вектор действительных частей вектора с комплексными
элементами;
Im(V) -- возвращает вектор мнимых частей вектора с комплексными элементами;
e(i, j, k) -- полностью асимметричный тензор размерности три. i, j и k
должны быть целыми числами от 0 до 2 (или между ORIGIN и ORIGIN + 2, если ORIGIN ¹ 0). Результат равен 0, если любые два аргумента равны, 1 --если три аргумента являются четной перестановкой (0, 1, 2), и минус 1 — если три аргумента являются перестановкой (0, 1, 2), кратной 2 и некратной 4.
На рис. 10.12 приведены примеры использования наиболее распространенных векторных операторов, описанных выше.
Рис. 10.12. Применение операторов для работы с векторами
Применение операторов для работы с матрицами показано на рис. 10.13.
Рис. 10.13. Примеры матричных операций (a -- начало, б -- конец документа)
Для работы с матрицами также существует ряд встроенных функций. Они перечислены ниже.
Матричные функции:
augment(M1, M2) -- объединяет в одну матрицы M1 и M2, имеющие
одинаковое число строк (объединение идет бок о бок);
identity(n) -- создает единичную квадратную матрицу размером n*n;
stack(M1, M2) -- объединяет две матрицы M1 и M2, имеющие одинаковое число
столбцов, сажая M1 над M2;
submatrix(A, ir, jr, ic, jc)
-- возвращает субматрицу, состоящую из всех элементов,
содержащихся в строках с ir
по jr и столбцах с ic по jc
(ir£jr и
ic£jc);
diag(V) -- создает диагональную матрицу, элемент главной диагонали
которой -- вектор V;
matrix(m, n, f) -- создает матрицу, в которой (i, j)-й элемент содержит f(i, j), где
i = 0, 1, ... m и j = 0, 1, ... n;
Re(M) -- возвращает матрицу действительных частей матрицы M с
комплексными элементами;
Im(M) -- возвращает матрицу мнимых частей матрицы M с комплексными
элементами.
Функции, возвращающие специальные характеристики матриц:
cols(M) -- возвращает число столбцов матрицы M;
rows(M) -- возвращает число строк матрицы M;
rank(M) -- возвращает ранг матрицы M;
tr(M) -- возвращает след (сумму диагональных элементов) квадратной матрицы
M;
mean(M) -- возвращает среднее значение элементов массива M;
median(M) -- возвращает медиану элементов массива M;
cond1(M) -- возвращает число обусловленности матрицы, вычисленное в норме L1;
cond2(M) -- возвращает число обусловленности матрицы, вычисленное в норме L2;
condе(M) -- возвращает число обусловленности матрицы, вычисленное в норме
Евклидового пространства;
condi(M) -- возвращает число обусловленности матрицы, основанное на
равномерной норме;
norm1(M) -- возвращает L1, норму матрицы M;
norm2(M) -- возвращает L2, норму матрицы M;
norme(M) -- возвращает Евклидову норму матрицы M;
normi(M) -- возвращает неопределенную норму матрицы M.
Другие матричные функции (MathCAD PLUS 6.0):
lu(M) -- выполняет треугольное разложение матрицы M: P × M = L × U, где
L и
U — соответственно нижняя и верхняя треугольные матрицы.
Все четыре матрицы квадратные, одного порядка;
qr(A) -- дает разложение матрицы A, A = Q × R, где Q -- ортогональная
матрица и R — верхняя треугольная матрица;
svd(A) -- дает сингулярное разложение матрицы A размером n×m: A = U × S × VT,
где U
и V -- ортогональные матрицы размером m × m и n × n,
соответственно. S
– диагональная матрица, на диагонали которой
расположены сингулярные числа матрицы A;
svds(A) -- возвращает вектор, содержащий сингулярные числа матрицы A
размером m × n, где m³n;
geninv(A) -- левая обратная к матрице A. L × A = E, где E — единичная матрица
размером n × n, L -- прямоугольная матрица размером n × m, A —
прямоугольная матрица размером m × n.
На рис. 10.14 приведен ряд примеров применения наиболее распространенных матричных функций.
Рис. 10.14. Примеры матричных операций (а -- начало, б — конец документа)
Начиная с версии 3.0 MathCAD под Windows в системе появились некоторые дополнительные функции сортировки -- перестановки элементов векторов и матриц:
|
sort(V) |
-- сортировка элементов векторов в порядке возрастания их значений; |
|
reverse(V) |
-- перестановка элементов (после sort) в обратном порядке; |
|
csort(M, n) |
-- перестановка строк матрицы M таким образом, чтобы отсортированным оказался n-ый столбец; |
|
rsort(M, n) |
-- перестановка столбцов матрицы M таким образом, чтобы отсортированной оказалась n-ая строка. |
|
eigenvals(M) |
-- возвращает вектор, содержащий собственные значения матрицы M; |
|
eigenvec(M,Z) |
-- для указанной матрицы M и заданного собственного значения Z возвращает принадлежащий этому собственному значению вектор; |
|
eigenvecs(M) |
-- возвращает матрицу, столбцами которой являются собственные векторы матрицы M (порядок расположения собственных векторов соответствует порядку собственных значений, возвращаемых функцией eigenvals); |
|
genvals(M, N) |
-- возвращает вектор обобщенных собственных значений vi , соответствующий решению уравнения M × x = vi × N × x (матрицы М и N должны быть вещественными); |
|
genvals(M, N) |
-- возвращает матрицу, столбцы которой содержат нормированные обобщенные собственные векторы. |
На рис. 10.15 представлены примеры, иллюстрирующие работу некоторых дополнительных векторных и матричных функций.
Рис. 10.15. Работа дополнительных векторных и матричных функций
В целом векторные и матричные операторы и функции системы MathCAD позволяют решать широкий круг задач линейной алгебры. К примеру, если задана матрица A и вектор B для системы линейных уравнений в матричной форме A ´ X: = B, то вектор решения можно получить из очевидного выражения X: = A-1 × B. На рис. 10.16 приведен пример решения системы линейных уравнений.
Рис. 10.16. Решение системы линейных уравнений
Для решения систем линейных уравнений в MathCAD PLUS 6.0 введена функция
lsolve(A, B),
которая возвращает вектор X для системы линейных уравнений A × X = B при заданной матрице коэффициентов A и векторе свободных членов B. Если уравнений n, размерность вектора B должна быть n, а матрицы A -- n × n. Пример применения этой функции также дан на рис. 10.16.
10.12. Функции линейной и сплайновой аппроксимаций
При проведении научно-технических расчетов часто используются зависимости вида y(x), причем число точек этих зависимостей ограничено. Неизбежно возникает задача получения достаточного числа точек в промежутках между узловыми точками (интерполяция) и за их пределами (экстраполяция). Эта задача решается аппроксимацией исходной зависимости, т. е. ее подменой какой-либо достаточно простой функцией. Система MathLAB предоставляет возможность аппроксимации двух типов: кусочно-линейной и сплайновой.
При кусочно-линейной интерполяции, или аппроксимации, вычисления дополнительных точек выполняются по линейной зависимости. Графически это означает просто соединение узловых точек отрезками прямых, для чего используется следующая функция:
linterp(VX, VY, x)
Для заданных векторов VX и VY узловых точек и заданного аргумента x эта функция возвращает значение функции при ее линейной аппроксимации. При экстраполяции используются отрезки прямых с наклоном, соответствующим наклону крайних отрезков при линейной интерполяции.
При небольшом числе узловых точек (менее 10) линейная интерполяция оказывается довольно грубой. При ней даже первая производная функции аппроксимации испытывает резкие скачки в узловых точках. Для целей экстраполяции функция linterp не предназначена и за пределами области определения может вести себя непредсказуемо.
Гораздо лучшие результаты дает сплайн-аппроксимация. При ней исходная функция заменяется отрезками кубических полиномов, проходящих через три смежные узловые точки. Коэффициенты полиномов рассчитываются так, чтобы непрерывными были первая и вторая производные. Линия, которую описывает сплайн-функция, напоминает по форме гибкую линейку, закрепленную в узловых точках (откуда и название аппроксимации: splain-гибкая линейка).
Для осуществления сплайновой аппроксимации система MathCAD предлагает четыре встроенные функции. Три из них служат для получения векторов вторых производных сплайн-функций при различном виде интерполяции:
|
cspline(VX, VY) |
-- возвращает вектор VS вторых производных при приближении в опорных точках к кубическому полиному; |
|
pspline(VX, VY) |
-- возвращает вектор VS вторых производных при приближении к опорным точкам к параболической кривой; |
|
lspline(VX, VY) |
-- возвращает вектор VS вторых производных при приближении к опорным точкам прямой. |
interp(VS, VX, VY, x)
возвращает значение y(x) для заданных векторов VS, VX, VY и заданного значения x.
Таким образом, сплайн-аппроксимация проводится в два этапа. На первом с помощью функций cspline, pspline или lspline отыскивается вектор вторых производных функции y(x), заданной векторами VX и VY
ее значений (абсцисс и ординат). Затем, на втором этапе для каждой искомой точки вычисляется значение y(x) с помощью функции interp.
На рис. 10.17 показано применение описанных функций для линейной и сплайновой аппроксимаций.
Рис. 10.17. Линейная и сплайновая аппроксимации функции
Нетрудно заметить, что график при линейной аппроксимации оказывается слишком грубым -- отчетливо видны точки перегибов. В то же время сплайн-аппроксимация, несмотря на малое число точек в этом примере (их всего 6), дает прекрасные результаты: график функции оказывается плавным и точки его перегиба вообще незаметны.
Позже (в главе 11) будут описаны функции двумерной линейной и сплайновой аппроксимаций, которые позволяют улучшить построение 3D-поверхностей. Эти функции появились в MathCAD начиная с версий 5.0/PLUS 5.0.
10.13. Функции статистики и линейной регрессии
С помощью системы MathCAD можно проводить наиболее распространенные статистические расчеты с данными, представленными векторами их значений. Существует также ряд статистических функций для скалярного аргумента. С них и начнем.
Помимо уже упомянутой гамма-функции, широко применяемой в статистических расчетах, существуют следующие встроенные статистические функции скалярного аргумента x.
Статистические функции:
|
cnorm(x) |
-- кумулятивная нормальная функция; |
|
erf(x) |
-- функция ошибок (или интеграл вероятности); |
|
rnd(x) |
-- функция генерации случайных чисел; |
|
corr(VX, VY) |
-- коэффициент корреляции двух векторов -- VX и VY; |
|
cvar(X, Y) |
-- коэффициент ковариации X и Y. |
легко вычисляется дополнительная функция ошибок:
cerf(x) := 1 – erf(x).
Функция rnd(x) при каждом обращении к ней возвращает случайное число с равномерным распределением на отрезке [0, 1]. Эта функция широко применяется при статистическом моделировании различных физических процессов. Числа являются не строго случайными -- в действительности это повторяющиеся последовательности из большого количества чисел, распределение которых близко к равномерному.
Следующая группа функций относится к вычислению основных статистических параметров одномерного массива данных -- вектора.
Статистические функции для векторов:
|
mean(V) |
-- возвращает среднее значение элементов вектора V; |
|
var(V) |
-- возвращает дисперсию (вариацию) для элементов вектора V; |
|
side(V) |
-- возвращает среднеквадратичную погрешность, т. е. квадратный корень из дисперсии; |
|
stdev(V) |
-- задает стандартное отклонение элементов вектора V; |
|
hist(int, V) |
-- возвращает вектор частот попадания данных V в заданные интервалы int (служит для построения гистограмм). |
должно подсчитываться. Если строится гистограмма из N элементов, то вектор int
должен содержать N+1 элементов. Функция возвращает вектор из N элементов, числовые значения которых можно использовать для графического построения гистограмм.
На рис. 10.18 представлен документ, в котором организована генерация вектора X из 1000 случайных чисел, представлено их распределение и вычислены основные статистические параметры массива случайных чисел -- вектора X. Этот документ демонстрирует и применение функции hist.
Рис. 10.18. Работа со случайными числами
Другой широко распространенной задачей обработки данных является представление их совокупности некоторой функцией y(x). Задача регрессии заключается в получении параметров этой функции такими, чтобы функция приближала бы облако исходных точек (заданных векторами VX и VY) с наименьшей среднеквадратичной погрешностью. Чаще всего используется линейная регрессия, при которой функция y(x)
имеет вид
y(x) = a + b × x
и описывает отрезок прямой. К линейной регрессии можно свести многие виды нелинейной регрессии при двухпараметрических зависимостях y(x).
Для проведения линейной регрессии в систему встроен ряд приведенных ниже функций.
Функции для проведения линейной регрессии:
|
corr(VX, VY) |
-- возвращает скаляр -- коэффициент корреляции Пирсона; |
|
intercrpt(VX, VY) |
— возвращает значение параметра а (смещение линии регрессии по вертикали); |
|
slope(VX, VY) |
-- возвращает значение параметра b (наклона линии регрессии). |
Рис.10.19. Линейная регрессия
Как видно на рис. 10.19, прямая регрессии проходит в “облаке” исходных точек с максимальным среднеквадратичным приближением к ним. Чем ближе коэффициент корреляции к 1, тем точнее представленная исходными точками зависимость приближается к линейной.
В системе MathCAD PLUS 6.0 содержится множество различных статистических функций, возможности которых интересны специалистам по обработке статистической информации. Для них приведем сводку таких функций (знаком Å отмечены функции, которые имеются только в системах MathCAD PLUS 6.0 и PLUS 6.0 PRO).
Первая группа статистических функций задает плотности вероятности распределения для различных законов.
Функции вычисления плотности вероятности распределения:
|
Å dbeta(x, s1, s2) |
— b-распределение (s1, s2>0 – параметры формы, 0 |
|
dbinom(k, n, p) |
— биномиальное распределение (возвращает значение вероятности P(x = k), где n и k целые числа, причем 0£k£n и 0£p£1); |
|
Å dcauchy(x, l, s) |
— распределения Коши (l -- параметр разложения, s>0 -- параметр масштаба); |
|
dchisq(x, d) |
— Хи--квадрат-распределение (x,d>0, причем d -- число степеней свободы); |
|
Å dexp(x, r) |
— экспоненциальное распределение (r,x>0); |
|
dF(x, d1, d2) |
— распределение Фишера (d1,d2>0 -- числа степеней свободы, x>0); |
|
Å dgamma(x, s) |
— гамма- распределение (s>0 -- параметр формы, x³0); |
|
Å dgeom(k, p) |
— геометрическое распределение (0
|
|
Å dlnorm(x, m, s) |
— логнормальное распределение (m -- натуральный логарифм среднего значения, s>0 -- натуральный логарифм среднеквадратичного отклонения, x>0); |
|
Å dlogis(x, l, s) |
— логистическое распределение (l -- параметр разложения, s>0 -- параметр масштаба); |
|
Å dnbinom(k, n, p) |
— отрицательное биномиальное распределение (n>0 и k>0 -- целые числа, 0
|
|
dnorm(x, m, s) |
— нормальное распределение (m -- среднее значение, s>0 -- среднеквадратичное отклонение); |
|
dpois(k, l) |
— распределение Пуассона (l>0, k -- целое неотрицательное число); |
|
dt(x, d) |
— распределение Стьюдента (d>0 -- число степеней свободы, x -- вещественное число); |
|
dunif(x, a, b) |
-- равномерное распределение (a и b -- граничные точки интервала, причем a |
|
Å dweibull(x, s) |
-- распределение Вейбулла (s>0 -- параметр формы). |
Вторя группа -- функции распределения. Они дают вероятность, что случайная величина будет иметь значения, меньшие или равные определенной величине.
Функции распределения (смысл и значения параметров указаны выше):
|
Å pbeta(x, s1, s2) |
-- значение в точке x функции стандартного нормального распределения; |
|
pbinom(k, n, p) |
-- значение функции распределения биномиального закона для k успехов в серии n испытаний; |
|
Å pcauchy(x, l, s) |
- значение в точке x функции распределения Коши со шкалой параметров l и s; |
|
pchisq(x, d) |
-- значение в точке x кумулятивного {Хи-квадрат-распределения, в котором d – степень свободы; |
|
Å pexp(x, r) |
-- значение в точке x функции экспоненциального распределения; |
|
pF(x, d1, d2) |
-- значение в точке x функции распределения Фишера; |
|
Å pgamma(x, s) |
-- значение в точке x функции гамма-распределения; |
|
Å pgeom(k, p) |
-- значение в точке x функции геометрического распределения; |
|
Å plnorm(x, m, s) |
-- значение в точке x функции логнормального распределения; |
|
Å plogis(x, l, s) |
-- значение в точке x функции последовательного распределения; |
|
plnorm(x, m, s) |
-- значение в точке x функции нормального распределения; |
|
Å pnbinom(k, n, p) |
-- значение в точке x функции отрицательного биномиального распределения; |
|
ppois(k, l) |
-- значение для k функции распределения Пуассона; |
|
pt(x, d) |
-- значение в точке x функции распределения Стьюдента; |
|
punif(x, a, b) |
-- значение в точке x функции равномерного распределения; |
|
Å pweibull(x, s) |
-- значение в точке x функции распределения Вейбулла. |
Квантили распределения:
|
Å qbeta(p, s1, s2) |
-- квантили обратного бетта-распределения с параметрами формы s1 и s2; |
|
qbinom(p, n, q) |
-- количество успешных определений при n- ном количестве испытаний при решении уравнения Бернулли при условии, что вероятность этого количества успешных определений есть p (q – вероятность успеха при однократном испытании (0£q£1 и 0£p£1); |
|
Å qcauchy(p, l, q) |
-- квантили обратного распределения Коши со шкалой параметров l и s (s>0 и0
|
|
qchisq(p, d) |
-- квантили обратного Хи-квадрат-распределения; |
|
Å qexp(p, r) |
-- квантили обратного экспоненциального распределения, при котором r>0 определяет частоту (0£p<1); |
|
qF(p, d1, d2) |
-- квантили обратного распределения Фишера, в котором d1 и d2 -- степени свободы; |
|
Å qgamma(p, s) |
-- квантили обратного гамма-распределения; |
|
Å qgeom(p, q) |
-- квантили обратного геометрического распределения; |
|
Å qlnorm(p, m, s) |
-- квантили обратного логнормального распределения; |
|
Å qlogis(p, l, s) |
-- квантили обратного последовательного распределения; |
|
Å qnbinom(p, n, q) |
-- квантили обратного отрицательного биномиального распределения с размером n и вероятностью ошибки q; |
|
qnorm(p, m, s) |
-- квантили обратного нормального распределения со средним значением m и стандартным отклонением s; |
|
qpois(p, l) |
-- квантили обратного распределения Пуассона; |
|
qt(p, d) |
-- квантили обратного распределения Стьюдента (d определяет степени свободы, d>0 и 0
|
|
qunif(p, a, b) |
-- квантили обратного равномерного распределения; |
|
Å qweibull(p, s) |
-- квантили обратного распределения Вейбулла. |
Функции создания векторов m различными законами распределения:
|
Å rbeta(m, s1, s2) |
-- бетта-распределение; |
|
rbinom(m, n, p) |
-- биномиальное распределение; |
|
Å rcauchy(m, l, s) |
-- распределение Коши; |
|
rchisq(m, d) |
-- Хи-квадрат-распределение; |
|
Å rexp(m, r) |
-- экспоненциальное распределение, |
|
rF(m, d1, d2) |
-- распределение Фишера; |
|
Å rgamma(m, s) |
-- гамма-распределение; |
|
Å rgeom(m, p) |
-- геометрическое распределение; |
|
Å rlnorm(m, m, s) |
-- логарифмическое нормальное распределение; |
|
Å rlogis(m, l, s) |
-- последовательное распределение; |
|
Å rnbinom(m, n, p) |
-- негативное биномиальное распределение; |
|
rnorm(m, m, s) |
-- нормальное распределение; |
|
rpois(m, l) |
-- распределение Пуассона; |
|
rt(m, d) |
-- распределение Стьюдента; |
|
runif(m, a, b) |
-- равномерное распределение; |
|
Å rweibull(m, s) |
-- распределение Вейбулла. |
Рис. 10.20. Примеры применения статистических функций
Следует отметить, что в новых версиях MathCAD появилась встроенная функция для проведения полиномиальной регрессии и вычисления коэффициентов многочлена регрессии заданной степени. Эта возможность будет описана в главе 11.
10.14. Функции для решения уравнений
Многие уравнения, например трансцендентные, и системы из них не имеют аналитических решений. Однако они могут решаться численными методами с заданной погрешностью (не более значения, заданного системной переменной TOL). Для простейших уравнений вида F(x) = 0 решение находится с помощью функции
root(Выражение, Имя_переменной)
Эта функция возвращает значение переменной с указанным уровнем, при котором выражение дает 0. Функция реализует вычисления итерационным методом, причем можно задать начальное значение переменной. Это особенно полезно, если возможно несколько решений. Тогда выбор решения определяется выбором начального значения переменной. Рис. 10.21 иллюстрирует технику применения функции root для вычисления корней кубического полинома.
Рис. 10.21. Вычисление корней кубического полинома
Как известно, кубическое уравнение обязательно имеет хотя бы один кубический корень x1. Он найден вначале функцией root. Два других корня могут оказаться и комплексными. Функция root может отыскивать и такие корни. Для поиска второго корня x2 первый исключается делением F(x) на (x - x1). Соответственно для поиска третьего корня x3 F(X) делится еще и на (x - x2). Эту процедуру можно распространить и на поиск корней полиномов более высокой степени, однако надо помнить, что найти корни полинома можно гораздо более изящным способом -- используя операцию символьных вычислений.
Для поиска корней обычного полинома p(x)
степени n MathCAD содержит очень удобную функцию:
polyroots(V).
Она возвращает вектор корней многочлена (полинома) степени n, коэффициенты которого находятся в векторе V, имеющим длину, равную n + 1.
Заметим, что корни полинома могут быть как вещественными, так и комплексными числами. Не рекомендуется пользоваться этой функцией, если степень полинома выше пятой-шестой, так как тогда трудно получить малую погрешность вычисления корней. На рис. 10.21 в конце документа приведен пример вычисления корней кубического полинома с применением функции polyroots.
Функцию root можно использовать и в составе функций пользователя, что нередко позволяет получать довольно простые решения для нетривиальных задач. Примером может служить вычисление неполной гамма-функции G(a, x), показанное на рис. 10.22.
Рис. 10.22. Вычисление функции G(a, x)
с помощью функции root в составе функции пользователя
При решении систем нелинейных уравнений используется специальный вычислительный блок, открываемый служебным словом Given
и имеющий следующую структуру:
Given
Уравнения
Ограничительные условия
Выражения с функциями find и minerr
Рекомендуется дополнить блок проверкой решения системы.
В блоке используется одна из следующих двух функций:
|
find(v1, v2, ..., vn) |
-- возвращает значение одной или ряда переменных для точного решения; |
|
minerr(v1, v2, ..., vn) |
-- возвращает значение одной или ряда переменных для приближенного решения. |
Фактически функция minerr создавалась для решения задач оптимизации. К сожалению, ее нормальная работа обеспечивалась лишь в ранних версиях системы MathCAD (например, 2.0 и 2.1). Но уже с версии 2.05 алгоритм работы функции был изменен далеко не в лучшую сторону, в результате эта функция зачастую неспособна найти верное решение задачи в общем виде и требуется коррекция решения. В системе MathCAD 3.0, к примеру, тестовая задача на применение функции minerr
дает неверное решение.
Ограничительные условия задаются, как обычно, с помощью операторов-знаков отношения величин. Особо следует отметить знак приближенного равенства (в версиях MathCAD под Windows это жирный знак равенства, тогда как в более ранних версиях под MS-DOS это был знак приближенного равенства), который используется для указания начального значения переменных при итерационных вычислениях.
Оператор Клавиши Значение оператора
e1 > e2 e1 > e2 e1 больше e2
e1 < e2 e1 < e2 e1 меньше e2
e1 ³ e2 e1 Ctrl ) e2 e1 больше или равно e2
e1 ? e2 Ctrl ( e2 e1 меньше или равно e2
e1 ¹ e2 e1 Ctrl # e2 e1 не равно e2
e1 = e2 e1 Ctrl = e2 e1 равно e2
Функции find и minerr
могут использоваться для решения одного или ряда уравнений. Рис. 10.23 показывает решение некорректно поставленной задачи. Фактически решается система взаимно несовместимых уравнений x = 10 и x2 = 3. Поэтому система реагирует на попытку решения сообщением об ошибке.
Рис. 10.23. Пример решения простой некорректной задачи
Более правомерной является постановка вопроса о приближенном решении уравнения x2 = 3 при приближенном задании x= 0 в качестве начального приближения к решению. При этом для записи уравнения используется особый (жирный) знак равенства. Как видно на рис. 10.23, здесь обе функции (find и minerr) дают одинаковое решение.
Рис. 10.24 иллюстрирует решение другой задачи -- поиск точек пересечения параболы отрезком прямой. В нашем случае с помощью функции find решается система из двух уравнений (одно из них нелинейное) с ограничительными условиями, задающими область поиска корня (x<0 для отрицательного корня и x>0 для положительного корня).
Рис. 10.24. Вычисление координат точек пересечения параболы прямой
Еще один пример решения системы нелинейных уравнений (на этот раз с помощью функции minerr) показан на рис. 10.25.
Рис. 10.25. Решение системы из двух уравнений с помощи функции minerr
При использовании функции minerr для решения систем нелинейных уравнений надо проявлять известную осторожность и обязательно предусматривать проверку решений. Нередки случаи, когда решения могут оказаться ошибочными, чаще всего из-за того, что из нескольких корней система предлагает нереальный (или не представляющий интереса) корень. Полезно как можно точнее указывать начальные приближения к решению.
10. 15. Реализация итерационных вычислений (функция until)
Система MathCAD позволяет реализовать итерационные вычисления, обычно осуществляемые по рекуррентным выражениям, таким, при которых значение некоторой функции находится по одному или нескольким предшествующим ее значениям. Классическим примером рекуррентных вычислений является создание чисел Фибоначчи. Как известно, два первых числа Фибоначчи определены как 1, а последующие есть сумма двух предыдущих.
Рис. 10. 26 иллюстрирует подготовку вектора, содержащего 10 чисел Фибоначчи. Этот пример соответствует вычислениям по рекуррентной формуле заданное число раз.
Рис. 10.26. Вычисление десяти чисел Фибоначчи
Более актуальна задача реализации итерационных вычислений с их окончанием по некоторому заданному условию. Для этого система MathCAD содержит специальную операцию
until(Выражение_1, Выражение_2).
Эта операция-функция реализует итерационные вычисления и возвращает значение выражения 2, если выражение 1 больше или равно 0. В противном случае итерационные вычисления прекращаются.
На рис. 10.27 показано действие этой функции на другом классическом примере -- вычислении квадратного корня из числа N
итерационным методом Ньютона. Этот пример позволяет наглядно проследить динамику схождения к точному результату результатов вычислений по итерационной формуле Ньютона.
Рис. 10.27. Вычисление квадратного корня итерационным методом Ньютона
В общем случае итерационные вычисления могут осуществляться по нескольким формулам, причем возможно перекрестное применение в них переменных. Такого рода вычисления в системе MathCAD необходимо реализовать в векторной форме. Рис. 10.28 показывает решение подобной задачи -- вычисляются параметры, характеризующие развитие эпидемии (пример взят из примеров применения системы MathCAD 2.01). По существу, здесь конечно-разностным методом решается система дифференциальных уравнений, описывающих развитие и угасание эпидемии.
Рис. 10.28. Динамика протекания процесса эпидемии
Возможны и более сложные реализации итерационных вычислений. Например, к ним сводится решение систем дифференциальных уравнений численными методами Эйлера, Рунге — Кутта и др. Много таких примеров описано в главе 12.
10.16. Функции прямого и обратного преобразований Фурье
К фундаментальным положениям математики относится возможность представления периодических (а при определенных условиях и непериодических) функций совокупностью их гармонических составляющих в виде так называемого ряда Фурье [14]. Эта возможность используется во множестве прикладных сфер применения, достаточно отметить, что на ее основе реализуется передача через каналы связи практически любой информации, например речи или музыки.
Если некоторая временная функция f(t) задана рядом отсчетов, переход от нее к параметрам ряда Фурье (амплитудам и фазам гармоник) называется прямым преобразованием Фурье, а обратный переход -- обратным преобразованием Фурье. К сожалению, эти переходы связаны с вычислениями интегралов, подынтегральные функции которых быстро осциллируют (т. е. приобретают колебательный характер), что существенно затрудняет вычисление таких интегралов с заданной точностью и ведет к значительным затратам времени.
Поэтому были разработаны специальные методы быстрого преобразования Фурье (БПФ). К сожалению, сложность этого процесса не позволяет детально описать его в настоящей книге. Отослав читателя к специальной литературе [10, 14], займемся описанием функций, реализующих прямое и обратное БПФ в системе MathCAD. Они предоставляют возможность проводить указанные преобразования для данных в виде векторов с действительными и комплексными числами.
fft(V)
Эта функция выполняет прямое БПФ (ее название происходит от слов Fast Fourier Transform -- быстрое преобразование Фурье) для данных, представленных действительными числами -- значениями исходного вектора V. Однако при этом вектор V должен иметь 2n составляющих, где n -- целое число. Если число составляющих иное, функция отказывается от быстрого преобразования и вычисляет прямое преобразование Фурье гораздо медленнее.
cfft(A)
Эта функция аналогична предыдущей, но реализует прямое преобразование Фурье для вектора A с комплексными элементами. Если A -- матрица, реализуется двумерное преобразование. Введение функции fft(V) обусловлено тем, что преобразование для векторов с действительными элементами реализуется по более быстрому алгоритму (БПФ) и занимает меньше времени (при числе отсчетов, соответствующем 2n, где n -- целое число). В этом случае более прост и ввод исходных данных.
Перейдем к обратному БПФ. Функция
ifft(V)
реализует обратное (инверсное) преобразование Фурье для вектора V с комплексными элементам. Вектор V здесь имеет 2m+1 элементов. Функция возвращает вектор D с действительными элементами.
cifft(B)
Эта функция выполняет обратное преобразование Фурье по полному алгоритму, при котором как исходный, так и результирующий векторы или матрицы содержат элементы с комплексными значениями. Если задана матрица B, реализуется двумерное обратное преобразование Фурье. Заметим, что в ранних версиях эта возможность отсутствовала, но могла быть реализована (хотя и более сложным путем) с помощью одномерного БПФ.
На рис. 10.29 показано прямое преобразование Фурье в комплексном виде, а затем обратное преобразование. При этом преобразованный вектор полностью совпадает с исходным.
Рис. 10.29. Прямое и обратное преобразования Фурье для векторов с комплексными коэффициентами
Техника проведения БПФ на примере разложения прямоугольного импульса и последующего его синтеза с помощью ряда Фурье с ограниченным (k=10) числом гармоник на рис.10.30. Здесь исходный вектор задан с элементами действительного типа и используются функции fft и ifft.
Рис. 10.30. Применение БПФ для спектрального разложения и синтеза прямоугольного импульса
БПФ широко применяется при решении задач фильтрации сигналов или аппроксимации функций. При ограниченном числе гармоник приближение функции тригонометрическим рядом Фурье обеспечивает наименьшую среднеквадратичную погрешность, если при этом используется БПФ.
Помимо описанных функций MathCAD содержит ряд функций альтернативного преобразования Фурье. Они записываются большими буквами: FFT, IFFT, CFFT и ICFFT. При альтернативных преобразованиях используются иные нормирующие множители. Выражения, определяющие суть преобразований Фурье, можно легко найти в справочной базе данных системы (поэтому они не приводятся).
В MathCAD PLUS 6.0 включены еще две функции дискретных волновых преобразований:
|
Å wave(V) |
-- дискретное волновое преобразование действительных чисел с использованием 4-коэффициентного волнового базиса Даубечи. Вектор V должен содержать 2n действительных значений, где n – целое число; |
|
Å iwave(V) |
-- обратное преобразование относительно преобразования wave (V -- вектор, размером 2n). |
Это довольно редкие функции, представляющие интерес для специалистов -- разработчиков электронных фильтров.
10.17. Погрешности вычислений и сообщения об ошибках
Большинство вычислений в системе реализовано с помощью численных методов, принципиально имеющих погрешность вычислений. Так, для вычислений производной используется конечно-разностный метод с изменением шага между узлами и его подстройкой под заданную погрешность. Интегралы вычисляются методом Симпсона с заданной погрешностью, а для вычисления корней функций применяется метод секущих. Для всех методов погрешность вычислений задается с помощью специальной системной переменной TOL.
При выполнении вычислений возможны ошибки. Система выводит сообщения об ошибках в красных прямоугольниках с линией, отходящей от места ошибки к прямоугольнику с сообщением о ней. На рис. 10.31 показан ряд ошибочно заданных действий с сообщениями об относящихся к ним ошибках.
Рис. 10.31. Ошибочные ситуации в системе и сообщения об ошибках
Разумеется, приведенные на рис. 10.31 ситуации не исчерпывают всего разнообразия возможных ошибочных действий. Здесь показаны лишь наиболее типичные ситуации. Ниже представлен более полный список сообщений об ошибок (слева -- для англоязычных версий, а справа -- для русскоязычных версий системы MathCAD).
Перечень основных ошибок и комментарии к ним:
|
array size mismatch |
-- несоответствие размера массива; |
|
cannot be defined |
-- не может быть определено; |
|
cannot take subscript |
-- не содержит верхних (нижних) индексов; |
|
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 |
-- некорректная точность аппроксимации; |
|
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 block |
-- следующий блок решения; |
|
no matching Given |
-- нет соответствующего 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 |
-- мало нижних индексов; |
|
too large to display |
-- слишком велико, чтобы отобразить; |
|
too many arguments |
-- слишком много аргументов; |
|
too many constraints |
-- слишком много ограничений; |
|
too many points |
-- слишком много точек; |
|
too many subscripts |
-- слишком много индексов; |
|
undefindet |
-- не определено; |
|
unmatched parenthesis |
-- дисбаланс скобок; |
|
wrong size vector |
-- неверный размер вектора. |
Сообщения об ошибках кратки, но их анализ не вызывает особых затруднений.
Глава 11. ОСОБЕННОСТИ РАЗЛИЧНЫХ ВЕРСИЙ СИСТЕМЫ MathCAD
11.1. Особенности версии MathCAD 3.0
Первой версией системы MathCAD под Windows 3.1/3.11 была версия MathCAD 3.0. Она и по сей день широко применяется многими пользователями, поскольку требует гораздо меньше аппаратных ресурсов ПК, чем версия PLUS 6.0. Достаточно отметить, что минимальный объем ОЗУ для установки MathCAD 3.0 составляет всего 2 Мбайта, а для установки MathCAD PLUS надо иметь 8 Мбайт.
MathCAD 3.0 прекрасно работает даже на ПК класса AT 386. Эта версия использует только 16-разрядные средства оболочки Windows, что уменьшает вероятность ее конфликтов с другими приложениями. Возможности MathCAD 3.0 вполне приемлемы для не слишком взыскательного пользователя, например школьника или студента младших курсов институтов.
В MathCAD 3.0 впервые были введены возможности выполнения символьных операций, что превратило MathCAD в систему компьютерной алгебры. Система сохранила все возможности предшествующих MS-DOS-версий (от 2.0 до 2.50), в том числе ввод с клавиатуры всех спецзнаков для записи математических формул. Появилась возможность одновременного ввода греческих букв и букв русского алфавита.
Интерфейс MathCAD 3.0 был улучшен вводом специального столбикового переключателя, он виден на рис. 11.1 в левой части окна. Установив курсор мыши на нужный объект столбца и щелкнув ее левой клавишей, можно перенести шаблон объекта в окно редактирования документов в место расположения курсора.
Рис. 11.1. Переднее панно системы MathCAD 3.0
Таким образом, начиная с версии MathCAD 3.0 появилась возможность переноса объектов с их наборного поля в окно редактирования, что резко упростило ввод сложных математических формул начинающими пользователями, например школьниками. Наборы объектов можно менять переключением столбцов переключателя. Для этого достаточно мышью сменить номер столбца.
Возможности графики системы MathCAD 3.0, в момент ее появления вызвавшие восторги, заметно ниже, чем у последующих версий. Фактически представлена лишь элементарная 2D- и 3D-графика. При построении трехмерных фигур функциональная закраска не используется. Построение графиков в полярных координатах, графиков линий равного уровня и плотности в системе MathCAD 3.0 не предусмотрено.
Помимо встроенного расширенного справочника по системе в MathCAD 3.0 содержится электронный справочник Handbook со множеством полезных сведений из математики и ее приложений в различных отраслях науки и техники. Формулы и графики из справочника можно выделить и вставить в текст любого документа.
В целом система MathCAD 3.0 и сейчас вполне соответствует потребностям пользователя средней квалификации, решающего любые задачи школьного курса математики, да и большинство задач высшей математики. Если нужных функций нет среди встроенных, их несложно задать как функции пользователя.
11.2. Особенности версии MathCAD 4.0
Вскоре после выпуска системы MathCAD 3.0 под Windows фирма MathSoft создала очередную версию системы -- 4.0. Сразу отметим, что любой документ, подготовленный в версии 3.0, можно использовать и в очередной версии 4.0. Хотя MathCAD 4.0 вполне работоспособна на ПК класса 386, заметна ее ориентация на ПК очередного поколения -- 486. Для нормальной работы система требует ОЗУ емкостью 4 Мбайта и выше.
Одно из главных отличий новой версии -- переход к 32-разрядной расширенной оболочке Windows 3.1/3.11. Для расширения Windows в комплект поставки входит дополнительная дискета с расширением WIN32s. После инсталляции этого расширения в Windows, как обычно, проводится инсталляция самой системы. Благодаря использованию 32-разрядных команд микропроцессора существенно увеличилась скорость работы системы.
К сожалению, модернизация Windows стала ложкой дегтя в бочке меда: в некоторых случаях возникают проблемы с совместимостью и возможен срыв печати документов. В частности, система MathCAD конфликтует с другой математической системой, Mathematica 2, также работающей с расширенной Windows 3.1/3.11. Удалось выяснить, что причина конфликтов кроется в использовании устаревших средств расширений Windows до 32-разрядной системы.
Бросается в глаза заметное увеличение объема файла символьных преобразований: он вырос с 3,8 Мбайт в версии 3.0 до 5 Мбайт в MathCAD 4.0. Это уже близко к размеру подобного файла в Maple V, и можно было надеяться, что возможности MathCAD 4.0 в символьной математике также приблизились к Maple V. К сожалению, надежды не оправдались -- возможности MathCAD 4.0 как системы символьной математики куда ниже, чем у Maple V R3/R4.
Зато гораздо совершеннее у системы MathCAD 4.0 стал пользовательский интерфейс. Заметно увеличение роли управления системой с помощью пиктограмм. Теперь под главным меню появились две строки с изображениями маленьких пиктограмм (см. рис. 11.2). Они дублируют наиболее распространенные команды главного меню и позволяют выполнять их сразу, сделав активной соответствующую пиктограмму. Как и в системе MathCAD 3.0, в правой части окна виден столбец с пиктограммами-символами математических операций.
Рис. 11.2. Переднее панно математической системы MathCAD 4.0
Пиктограммы управления системой MathCAD 4.0 аналогичны подобным средствам системы MathCAD 6.0 и были описаны выше. Пройдясь по опциям главного меню и относящихся к ним подменю, можно подметить еще пару отличий от системы MathCAD 3.0. В опции Math появилась группа команд для работы с системой SmartMath, а в опции Graph -- упоминания о новых типах графиков Polar Plot и Contour Plot, которых в системе MathCAD 3.0 нет. Это означает, что система наконец обрела возможность строить контурные диаграммы (иначе называемые диаграммами уровня).
MathCAD 4.0 позволяет строить трехмерные графики с удобным алгоритмом закраски поверхностей. Она может быть цветной или монохромной. Закраска имеет функциональное назначение. Так, при монохромном построении поверхности верхние части ее выглядят светлыми, а нижние -- темными, что усиливает эффект пространственного восприятия поверхности (особенно при цветной раскраске). Все эти возможности сохранены и расширены в новой версии MathCAD 6.0. Они были описаны выше.
Математические возможности четвертой версии улучшены весьма незначительно: появились лишь функции для вычисления собственных значений и принадлежащих им векторов для матриц с действительными элементами. Несколько лучше стали алгоритмы символьных преобразований.
Как уже отмечалось, в состав MathCAD 3.0 был включен электронный справочник (HandBook). Похоже, это нововведение явно понравилось фирме, так как в MathCAD 4.0 вошли сразу три объемные книги:
Standart Handbook -- электронный справочник по математике, физике и химии (системы измерения величин, физические константы, математические и геометрические формулы, формулы и рисунки для различных физических, электротехнических и радиотехнических расчетов, проектирования антенн, волноводов, активных фильтров и т. д.);
Sample -- развернутые примеры применения в стиле Notebook (блокнот), история развития системы;
Tutorial -- электронный учебник по использованию системы с примерами ее применения (все они взяты из прежних версий).
Открыть файлы с книгами и получить доступ к их каталогам можно с помощью команд опции Books главного меню. Входящие в систему электронный справочник и учебник содержат текстовое описание, математические формулы и рисунки. В отличие от предшествующей версии выделение информации из справочника стало единообразным -- оно подобно выделению объектов в самой оболочке MathCAD.
Итак, MathCAD 4.0 отличается такой новой и перспективной особенностью пользовательского интерфейса, как встроенные в систему обучающие средства и справочники. Их содержание может быть изменено пользователем, и эти изменения несложно зафиксировать при записи исправленных материалов на диск. Кроме того, разделы справочников и учебника являются обычными MathCAD-документами и их можно вызывать и редактировать отдельно. Таким образом, реализована концепция интеграции учебных и справочных материалов и системы.
11.3. Система SmartMath
и ее возможности
Ввод системы SmartMath в работу
Внимательный читатель, получивший опыт работы с системой MathCAD 3.0, обнаружит в MathCAD 4.0 уже в первом столбце пиктограмм математических символов новый символ -- удлиненную горизонтальную стрелку ®. Если активизировать ее мышью, стрелка появится в месте расположения курсора в окне редактирования документов вместе с двумя окаймляющими ее черными квадратами-шаблонами. На место левого квадратика можно записать любое математическое выражение, а на место другого квадратика система сама помещает результат его символьных преобразований. Это и есть первый этап работы с системой SmartMath. Такая система содержится и в версиях MathCAD PLUS 5.0 и PLUS 6.0. Поэтому рассмотрим ее более подробно.
Название системы SmartMath можно перевести как “ловкая (или быстрая) математика”. В ее описании говорится, что речь идет о некоторых интеллектуальных и оптимизирующих способностях этого нового средства. Но что кроется за этой рекламой? Какие возможности дает SmartMath на деле?
Прежде всего надо отметить, что стрелка явно указывает на принадлежность результата, что само по себе важно для анализа результатов символьных преобразований. Но главное, система SmartMath более полно использует ядро символьных операций, чем символьные вычисления из меню опции Symbol главного меню, и снимает некоторые ограничения на их выполнение. Например, возможно использование в преобразуемых выражениях функций пользователя. Еще важнее то, что результаты символьных преобразований при работе системы SmartMath автоматически меняются при изменении исходных символьных данных. Этого, увы, нет при символьных вычислениях с помощью команд в позиции Symbol
главного меню.
Ключевые слова SmartMath и их применение
При вводе стрелки после выражения фактически над ним исполняется операция Simplify (Упростить). Однако выполняемую операцию можно изменить с помощью ряда ключевых слов:
|
simplify |
-- упрощение выражений; |
|
expand |
-- разложение выражения по степеням; |
|
factor |
-- разложение выражения на простые дроби; |
|
complex |
-- преобразования в комплексной плоскости; |
|
assume |
-- присваивание переменным неопределенного значения, даже если до этого им были присвоены значения; |
|
series |
-- разложение в ряд по заданным переменным; |
|
float |
-- преобразование в формат чисел с плавающей точкой; |
|
literally |
-- запрет символьного преобразования для последующего выражения. |
Эти слова вводятся в документ как формульные блоки. Теперь без всяких комментариев ясно, какое действие будет осуществляться в ходе символьных преобразований -- см. примеры с ними на рис. 11.3. Обратите внимание на важное обстоятельство: любое ключевое слово действует только на одно следующее за ним выражение. Ключевые слова допустимо набирать только малыми буквами.
Рис. 11.3. Примеры символьных преобразований с помощью системы
SmartMath
Все действия в документе, рис.11.3, за исключением примеров для assume и series, вполне очевидны. Надо лишь отметить, что для выполнения символьных преобразований нужно запустить SmartMath
из главного меню или сделать активной пиктограмму с академической шапочкой. Кстати, если преобразования сложны и идут долго, символ шапочки появляется и в окне редактирования. SmartMath
используется в режиме автоматических вычислений.
Пример с assume требует некоторого пояснения. Дело в том, что переменной можно задавать либо числовое и либо символьное значения. Символьным значение переменной должно быть при работе с символьными преобразованиями. Например, если задать x: = 5, то результат преобразования x + 2 при числовом значении x даст число 7. Директива assume в данном примере придает переменной x
символьное значение. Теперь x + 2 при преобразовании даст x + 2 (т. е. переменная x стала символьной). С помощью ключевого слова assume можно задавать ограничения на переменные. Например, запись в документе
x: = –10
y := 10
assume x>0, y
означает, что переменная x может принимать только положительные значения, а предшествующие присваивания переменным x и y
значения отменяются.
Операция series может использоваться для разложения в ряд (по умолчанию он имеет n = 6 членам разложения) функций одной или ряда переменных. Для этого после слова series
надо использовать список переменных и значение n, разделенные запятыми. В следующем примере показано применение операции series для разложения экспоненциальной функции двух переменных при x = y = 0
series x, y, 3
e x + y ® 1 + x + y +


Нетрудно заметить, что нулевые значения переменных в точке разложения можно не указывать. Если нужно указать значения переменных, это делается с применением знака =. Например, если бы надо было вычислить разложение в точке с x = 1 и y = 2, то вместо записи series x, y, 3 надо было бы записать series x = 1, y = 2, 3.
Ключевое слово float применяется для задания преобразования результата в число с плавающей точкой. При этом, независимо от установки формата выдачи чисел, численный результат появляется в виде числа с 20 точными знаками. Бывает полезно использовать слово float после слова series для получения более компактного представления разложений в ряд.
Совместная работа символьного и численного процессоров
Но и этим не исчерпываются возможности SmartMath. Должна же система оправдать эпитет "быстрая"! Оказывается, под ним скрывается возможность вычисления различных математических выражений по результатам их предварительного символьного преобразования. Порою это резко уменьшает время вычислений, особенно тех, что часто повторяются (например, при построении по многим точкам графика какой-либо замысловатой интегральной функции).
Таким образом, главное достоинство системы SmartMath
заключается в возможности одновременной работы символьного и численного процессоров, входящих в систему MathCAD. При этом символьный процессор пытается упростить выражения, которые вычисляются численным процессором, разумеется, если такое упрощение возможно.
Для реализации такой возможности достаточно перед выражением поставить ключевое слово optimize (оптимизация). При запуске система SmartMath пометит выражение красной звездочкой. На рис. 11.4 показаны два примера вычисления тройного интеграла — задачи, над которой MathCAD 3.0 трудится даже на ПК 386DX (40 МГц) добрых 15 секунд. Столько же занимает решение первого примера в системе MathCAD 4.0.
Рис. 11.4. Два примера вычисления тройного интеграла
С первой попытки мы увидим, что и второй пример вычисляется почти столь же долго и дает (естественно) тот же результат. Однако повторим вычисления, заменив значение верхнего предела интегрирования с 5 на 4. Мы обнаружим, что решение первого примера займет столько же времени. При этом блок с интегралом накрывается заштрихованным зелеными линиями прямоугольником.
Сделаем то же со вторым примером, включив Optimize
команды SmartMath Control опции Math главного меню — за интегралом появится красная звездочка!. Тут нас ждет приятная неожиданность: повторные вычисления пройдут мгновенно! А все дело в описанной выше возможности -- SmartMath вначале (небыстро) вычислила символьное значение тройного интеграла, а в последующем вместо повторения числовых вычислений по довольно громоздкому алгоритму численного интегрирования произвела вычисления прямо по символьному значению интеграла.
Немаловажно и то, что MathCAD 4.0 при оптимизации позволяет тут же получить результат символьных вычислений. Для этого достаточно воспользоваться командой Show SmartMath в позиции Math главного меню либо, пометив математическое выражение синей вертикальной чертой справа, дважды быстро нажать левую клавишу мыши. Появится окошко с пояснениями и результатом символьных преобразований. Это окошко, слегка смещенное вниз, показано на рис. 11.4. Сравните простенькое выражение, давшее значение неопределенного интеграла, с устрашающим тройным интегралом, обычно вычисляемым по сложному численному алгоритму, и вам станет окончательно ясна идея оптимизации вычислений с применением системы SmartMath.
11.4. Особенности версий MathCAD 5.0 и MathCAD PLUS 5.0
Версия 4.0 недолго просуществовала без модификации. Вскоре появились две новые версии -- 5.0 и PLUS 5.0. Версия PLUS5.0, похоже, была разработана как упрощенный вариант полной версии 5.0. Из нее были исключены система SmartMath и возможность выбора функций из списка. Для работы этой версии вполне достаточен объем ОЗУ 4 Мбайта и 14 Мбайт свободного пространства на жестком диске.
К новым возможностям пятой версии можно отнести: возможность модернизации электронных учебников, поддержку технологии DDE для векторов и матриц, задание колонтитулов на документах, предварительный просмотр макета страниц документов при их печати (Preview) и наличие средств проверки орфографии математических терминов (Sheck Spelling). К математическим возможностям добавилась двумерная линейная аппроксимация и 32-разрядная математика. Интерфейс системы обеспечивает поддержку DDE для скалярных величин, векторов и матриц, обеспечивает просмотр страницы Preview
перед ее печатью, печать верхнего колонтитула и контроль с помощью Spell Checker технических и математических терминов.
Многие математические системы страдали общим пороком: чем выше был порядковый номер версии, тем медленнее становилась их работа, особенно на младших собратьях нового поколения 32-разрядных ПК -- класса 386. Было очевидно, что разработчики систем делали ставку на быстрое обновление парка ПК и увеличение их производительности благодаря новым микропроцессорам 486 и Pentium.
Версия MathCAD PLUS 5.0, к примеру, явно ориентирована на быстрые ПК c этими процессорами. Она требует ОЗУ с объемом не менее 8 Мбайт и занимает на жестком диске почти 16 Мбайт. Кроме того, необходимо резервное пространство на диске почти такого же размера для записи временных файлов. Оптимальным типом ПК для версии PLUS 5.0 и последующих версий стал ПК класса Pentium.
После инсталляции системы MathCAD PLUS 5.0, занимающей, кстати, пять дисков формата 1,44 Мбайта (MathCAD 3.0 размещалась на трех формата 1,2 Мбайта), в окне оболочки Windows появляется группа пиктограмм с названием MathSoft Apps. В этой группе имеется четыре пиктограммы:
|
Mathсad PLUS 5.0 |
-- запуск системы Mathcad PLUS 5.0; |
|
Mathcad Tutorial |
-- запуск электронного самоучителя; |
|
MathSoft Book Sampler |
-- запуск электронной книги с примерами применения системы; |
|
Desktop Reference |
-- запуск электронного справочника с реферативной информацией. |
Помимо возможностей, унаследованных от версии 5.0, версия PLUS 5.0 дает ряд новых: двумерную нелинейную сплайн-аппроксимацию, использование функций, написанных пользователем на языке Cu++ (с поддержкой механизма DLL), обеспечение механизма динамической связи DDE при работе с векторами и матрицами, решение систем нелинейных дифференциальных уравнений, вычисление собственных значений и векторов для матриц с комплексными элементами, арифметические вычисления с произвольной точностью (до 4000 значащих цифр), вычисление пределов функций, решение переопределенных систем линейных уравнений, выполнение прямых и обратных преобразований Фурье, Лапласа и Z-преобразований. Восстановлен статус-кво экспертной системы SmartMath, введенной в версию 4.0. Временно исчезнув в версии 5.0, эта возможность вновь появилась в версии PLUS 5.0.
Заметно возросло информационное обеспечение системы. Помимо удобной и быстрой справочной системы в MathCAD 5.0/PLUS 5.0 встроены электронный учебник с динамической графикой, широкий набор пакетов применений и электронный справочник по математике, физике, электротехнике и радиотехнике и др. отраслям науки и техники. Предусмотрена даже возможность разработки и применения электронных учебников, составляемых пользователями (их, кстати, можно готовить и на русском языке). Система стала не только мощным инструментом решения математических задач, но и весьма полным справочником по математическим методам и расчетам в различных сферах их применения.
Электронный самоучитель в MathCAD PLUS 5.0 существенно переработан по сравнению с версией 4.0. В него, как модные сейчас средства мультимедиа, введены игровые компоненты и средства динамической графики. При запуске пиктограммы учебника пиктограммой Mathcad Tutotial появляется преподаватель -- джентльмен довольно комичной наружности, готовый дать вам необходимые пояснения.
Дабы джентльмену было не скучно выполнять высокую преподавательскую миссию, в помощь ему появляется бестолковая не то ассистентка, не то студентка, забрасывающая своего шефа вопросами. Все действия в форме диалога между джентльменом и его подопечной развиваются на фоне окна системы Mathcad PLUS 5.0. И это исключительно важно -- здесь реализован принцип объединения учебника с оболочкой системы! В ходе нашего обучения джентльмен и его подружка перемещаются по всему окну и указывают (рукой или указкой) на необходимые действия. Рис. 11.5, например, демонстрирует, как научиться задавать построение графика математической функции.
Рис. 11.5. Обучение построению графика функции
Если бы не отсутствие звука, самоучитель вполне можно было бы отнести к превосходному продукту мультимедиа.
Итак, самоучитель дает весьма полезную информацию для тех, кто впервые намерен освоить систему. Однако многие пользователи (и их, пожалуй, большинство) уже знают систему MathCAD по ее предшествующим версиям 3.0 и 4.0. Для них наиболее полезными были бы пакеты применений, дающие решения различных задач в реальной обстановке общения с системой. Видимо, поэтому в версиях 6.0/PLUS 6.0 мультимедийный самоучитель выполнен в куда более строгих тонах: в нем уже нет прыгающего учителя и его ассистентки.
MathSoft предприняла новые шаги в интеграции пакетов применений не только с оболочкой системы, но и со встроенными в нее двумя книгами. Одна из книг, "MathSoft Book Sampler", является интерактивным описанием множества примеров применения системы в различных отраслях науки и техники -- математике, физике, электротехнике, радиотехнике и др. Эта книга представляет собой одновременно сборник пакетов применений системы MathCAD PLUS 5.0 и описание как общих, так и самых утонченных методов использования этой системы.
Важно, что речь идет не только об описании примеров, но и о возможности тут же исполнить их в реальных условиях и при необходимости задать новые исходные данные или даже подкорректировать алгоритмы решения задачи. Для этого вовсе не надо возвращаться из книги в оболочку системы и вновь вводить данные -- книга реализована внутри оболочки! Пользователь имеет возможность тут же опробовать любой пример с другими, скорректированными им исходными данными.
Итак, по существу, вместо пакетов отдельных видов применения фирма MathSoft перешла к поставке с системой MathCAD электронных книг. В них все виды применения системы хорошо и подробно документированы и сопровождаются реальными решениями конкретных задач. Выпущены уже десятки книг под систему MathCAD. Специалист почти в любой области науки и техники может вполне самостоятельно составить такую книгу, включив в нее решения наиболее важных для него задач.
Начиная с версии MathCAD 3. 0 фирма MathSoft стала вводить в систему встроенный справочник по математическим и научно-техническим расчетам. В MathCAD PLUS 5.0 он реализован также в виде электронной книги "Desktop Reference". В этой книге можно найти множество полезных для повседневной работы с системой справочных данных: математические формулы и методы вычислений, сведения о физико-химических свойствах веществ, графики функций, изображения геометрических фигур, электротехнические и радиотехнические схемы и т. д. Так что необходимость рыться в обычных справочниках и энциклопедиях если и не устраняется полностью, то, во всяком случае, сводится к минимуму.
Таким образом, помещенную в электронный справочник информацию можно использовать в текстах документов, составляемых пользователем для решения своих прикладных задач. Кстати, так же (используя средства редактирования документов и обмен через буфер) можно изменять содержимое справочника и вносить в него новые разделы.
Работа с электронными книгами вполне удобна, хотя ввиду большого объема информации начальная загрузка их занимает немало времени. Зато справочная система оперативной помощи доработана с блеском: вызов меню помощи и доступ к справке обеспечиваются почти мгновенно!
Важно отметить, что в отличие от работы с электронной книгой "MathSoft Book Sampler" описание любой справки здесь дано в обычном (статическом) виде -- соответствующий пример нельзя исполнить в системе. Точнее говоря, это можно сделать, но введя пример в виде документа в окно редактора системы.
Итак, системы MathCAD превратились в мощные инструментальные средства для подготовки электронных учебников, монографий и справочников. Это делает особенно актуальным их внедрение в систему народного образования.
Уже в версии 4.0 предусматривался ввод функций по выбору. Это "излишество" было устранено в версии 5.0, но вновь введено в версии PLUS 5.0. Желаемая функция может быть введена в место расположения курсора из списка функций, который содержится в окне выбора функций. Это окно появляется на экране, если в позиции Math главного меню выбрать команду Insert Function... или использовать клавишу Insert окна выбора функции.
Выбор функций из списка устраняет синтаксические ошибки при вводе функций в текст документа. Кроме того, можно пролистать список функций и наверняка найти в нем те, о которых вы, скорее всего, даже не слышали. Полезно иметь перед собою и краткое описание функции.
Хороший документ должен радовать своим опрятным внешним видом. И здесь появилось нововведение -- обзор страницы документа Preview перед выводом ее на печать. Он реализуется командой Print Preview опции File главного меню. В специальном окне обзора можно посмотреть, как выглядит страница и оптимально расположить на ней текстовые комментарии, формулы и рисунки.
Если документ большой и не размещается на странице, можно с помощью указателей скроллинга страницы обеспечить оптимальное размещение на ней нужных объектов документа, а затем распечатать страницы на принтере, используя клавишу Print.
Еще одно полезное новшество -- синтаксический контроль англоязычных математических и научно-технических терминов. Он задается операцией Sheck Spelling, которая вводится пиктограммой "птичка" с буквами ABC над ней. При этом появляется окно Check Spelling, позволяющее контролировать процесс просмотра документа и изменять слова, не обнаруженные в словаре контролирующей синтаксис системы.
К сожалению, эта операция ориентирована лишь на англоязычные термины. Все без исключения слова русского языка попадают в разряд синтаксически неправильных, так что синтаксический контроль русскоязычных документов с помощью системы Sheck Spelling невозможен. Поэтому нет смысла более подробно описывать синтаксический контроль.
Объективности ради надо сказать, что за достаточно скромное улучшение математических возможностей системы в версии PLUS 5.0 заплачена высокая цена: минимальный объем памяти ОЗУ возрос в 4 раза -- с 2 Мбайт, нужных для работы MathCAD 3.0, до 8 Мбайт, необходимых для работы MathCAD PLUS 5.0.
11.5. Вычисление пределов функций
Для вычисления пределов функций начиная с версии MathCAD PLUS 5.0 в систему введен оператор limit. Помимо ввода с наборной панели операторов его можно ввести нажатием следующих комбинаций клавиш:
|
Ctrl + L |
-- ввод шаблона оператора вычисления предела функции при x, стремящемся к заданному значению; |
|
Ctrl + A |
-- ввода шаблона вычисления предела функции слева от заданной точки; |
|
Ctrl + B |
-- ввод шаблона вычисления предела функции справа от выбранной точки. |
Рис. 11.6. Примеры вычисления пределов функций
Для получения результата установите после блока вычисления предела стрелку с острием, направленным вправо. Предел (если он существует) будет вычислен и появится в шаблоне у острия стрелки. Если функция не имеет предела, вместо результата появится надпись Undefine.
11.6. Функции преобразований Фурье, Лапласа и Z-преобразования
Для выполнения широко распространенных в технических и научных приложениях преобразований Фурье (Fourie Transform и Inverse Fourie Transorm), Лапласа (Laplace
Transform и Inverse Laplace Transorm) и Z-преобразований (Z Transform и Inverse Z Transorm) служат команды в меню опции Symbolic главного меню.
Для применения этих функций следует записать исходное выражение и отметить в нем переменную, относительно которой будет производиться преобразование. Тогда указанные выше команды становятся доступными и выделяются четкими надписями.
Не вдаваясь в суть перечисленных достаточно известных преобразований, приведем простейшие примеры их применения, они показаны на рис. 11.7. Здесь даны примеры как прямого, так и обратного (Inverse)
преобразования каждого типа.
Рис. 11.7. Примеры применения функций преобразования Фурье, Лапласа и Z-преобразований
Не следует полагать, что для всех случаев результаты преобразования будут в точности совпадать со справочными и что результат двойного преобразования (вначале прямого, а затем обратного) приведет к первоначальной функции. Указанные преобразования довольно сложны, и грамотное применение их требует соответствующих математических познаний. Не случайно в ранние версии MathCAD (например, 3.0) они не были включены в виде команд.
11.7. Решение дифференциальных уравнений
Уже отмечалось, что в версию MathCAD PLUS 5.0 наконец- то введена возможность решения дифференциальных уравнений и систем с такими уравнениями в численном виде. Эту возможность трудно переоценить, так как многие серьезные научно-технические задачи (особенно относящиеся к анализу динамических систем и к их математическому моделированию) базируются на численных методах решения систем дифференциальных уравнений.
Нелинейные дифференциальные уравнения и системы с такими уравнениями, как правило, не имеют аналитических методов решения, и здесь особенно важна возможность их решения численными методами. В большинстве случаев желательно представление решений в графическом виде, что и позволяет MathCAD.
В прежних версиях MathCAD пользователю приходилось самостоятельно составлять документы с решением таких уравнений, например, методом Эйлера или Рунге--Кутта, что было делом не очень простым. К тому же решение загромождало текст документа. Теперь эта проблема решена, и довольно изящно.
Для решения задач такого класса в MathCAD PLUS 5.0 введен ряд новых функций. Вначале остановимся на функциях, дающих решения для систем обыкновенных дифференциальных уравнений:
|
rkadapt(y, x1, x2, acc, n, F, k, s) |
-- возвращает матрицу , содержащую таблицу значений решения задачи Коши на интервале от x1 до x2 для системы обыкновенных дифференциальных уравнений, вычисленную методом Рунге — Кутта с переменным шагом и начальными условиями в векторе y (правые части системы записаны в векторе F, n -- число шагов, k -- максимальное число промежуточных точек решения и s – минимально допустимый интервал между точками); |
|
Rkadapt(y, x1, x2, n, F) |
-- возвращает матрицу решений методом Рунге — Кутта с переменным шагом для системы обыкновенных дифференциальных уравнений с начальными условиями в векторе y, правые части которых записаны в символьном векторе F, на интервале от x1 до x2; n – число шагов; |
|
rkfixed(y, x1, x2, n, F) |
-- возвращает матрицу решений методом Рунге — Кутта системы обыкновенных дифференциальных уравнений с начальными условиями в векторе y, правые части которых записаны в символьном векторе F, на интервале от x1 до x2 при фиксированном числе шагов n. |
Эти функции присутствуют и в системе MathCAD PLUS 6.0 (и PLUS 6.0 PRO). Рис. 11. 8 иллюстрирует технику решения системы из двух дифференциальных уравнений и построение решения в виде фазового портрета колебаний, которые описываются решением заданной системы уравнений.
Рис. 11.8. Решение системы дифференциальных уравнений с применением функции rkfixed
На рис. 11.9 показано решение этой же системы с применением функции Rkadapt. Обычно она благодаря автоматическому изменению шага решения дает более точный результат. Естественно, по скорости вычислений она проигрывает функции rkfixed, хотя и не всегда -- если решение меняется медленно, это может привести к заметному уменьшению числа шагов. Таким образом, функция Rkadapt наиболее привлекательна для решения систем дифференциальных уравнений, дающих медленно изменяющиеся решения.
Рис. 11.9. Решение системы из двух дифференциальных уравнений с применением функции Rkadapt
В последнем примере решение представлено в виде временных зависимостей. Много других примеров решения дифференциальных уравнений можно найти в электронных книгах системы.
11.8. Задание программных модулей в системе MathCAD PLUS 6.0 PRO
Вплоть до появления последних версий системы MathCAD возможности программирования в них были крайне ограниченными. Фактически MathCAD позволяла реализовать лишь линейные программы. Функция if и ранжированные переменные в отдельных случаях могли заменить условные выражения и циклы, но с серьезными ограничениями. Отсутствовала возможность задания завершенных программных модулей.
Эти возможности наконец появились в версии MathCAD PLUS 6.0 PRO. Они сосредоточены в наборной панели программных элементов, показанной на рис. 11.10.
Рис. 11.10. Задание программных модулей
Нетрудно заметить, что набор программных элементов весьма ограничен и содержит следующие элементы:
|
Add Line |
-- создает и при необходимости расширяет жирную вертикальную линию, справа от которой в шаблонах задается запись программного блока; |
|
<--- |
-- символ локального присваивания (в теле модуля); |
|
if |
-- оператор условного выражения; |
|
for |
-- оператор задания цикла с фиксированным числом повторений; |
|
while |
-- оператор задания цикла типа "пока" (цикл выполняется, пока выполняется некоторое условие); |
|
otherwise |
-- оператор иного выбора (обычно применяется с if); |
|
break |
-- оператор прерывания. |
Несмотря на столь скромный набор программных средств, они дают системе MathCAD именно те возможности, которые ранее попросту отсутствовали: задание функций с аппаратом локальных переменных, задание различных видов циклов (в том числе вложенных), упрощение алгоритмов применением операций присваивания и реализацию по классическим алгоритмам итерационных и рекурсивных процедур. Рекомендуется внимательно изучить рис. 11.10, на котором показана часть этих возможностей.
Программный модуль, в сущности, является функцией, но описанной с применением упомянутых сугубо программных средств. Он может возвращать значение, определяемое последним оператором. Это значит, что после такого модуля, выделенного как целый блок, можно поставить знак равенства для вывода значения функции. В блоке могут содержаться любые операторы и функции входного языка системы. Для передачи в блок значений переменных можно использовать переменные документа, которые ведут себя в блоке как глобальные переменные.
Обычно модулю присваивается имя со списком переменных, после которого идет знак присваивания :=. Переменные в списке являются локальными, и им можно присваивать значения при вызове функции, заданной модулем. Локальный характер таких переменных позволяет использовать для их имен (идентификаторов) те же имена, что и у глобальных переменных документа. Однако лучше этого не делать и использовать разные имена для локальных переменных программных модулей и переменных документа.
На рис. 11.11 приведен еще ряд примеров применения программных модулей. Обратите особое внимание на второй пример, здесь при вычислении функции факториала использовано задание одного программного модуля внутри другого. Вообще говоря, для нескольких подмодулей, которые должны выполняться в составе циклов, надо использовать их объединение в виде жирной вертикальной черты. Для этого, как и для исходного задания блока, служит команда
Add Line, добавляющая в модуль еще одну вертикальную черту для подмодуля.
Рис. 11.11. Применение программных модулей
Задание программных модулей позволяет реализовать любые специальные приемы программирования. Оно может служить мощным средством расширения системы путем задания новых функций.
Теперь рассмотрим достаточно сложный и поучительный пример применения программного блока. На рис. 11.12 (а) показан документ, в котором программный модуль вычисляет коэффициенты Фурье для заданной функции -- пилообразного импульса (его можно менять).
Рис. 11.12. Вычисление коэффициентов A
и B разложения функции в ряд Фурье (а) и гармонический синтез функции (б)
Тут вычисление коэффициентов ряда Фурье выполнено по их классическим интегральным представлениям. Это хорошо иллюстрирует возможность применения в программных блоках весьма мощных средств входного языка системы.
На рис. 11.12 (б) показаны векторы коэффициентов, приведена формула гармонического синтеза исходной функции по ее гармоническому ряду и на графике проведено сопоставление исходной функции с ее представлением рядом Фурье с ограниченным числом гармоник N.
Еще один пример применения программного модуля для задания точек некоторой функции в трехмерном пространстве показан на рис. 11.13. Там же представлено построение этих точек внутри параллелепипеда.
Рис. 11.13. Применение программного модуля для построения точек заданной функции в пространстве
Разумеется, подобные задачи могут в системе MathCAD решаться и без использования в явном виде программных средств. Однако они нередко облегчают решение сложных задач, особенно когда имеется описание их программной реализации на каком-либо языке программирования. Тогда несложно перевести реализацию решения задачи с этого языка на язык программирования системы MathCAD.
Много интересных и поучительных примеров задания и применения программных модулей можно найти в примерах раздела QuickSheet (Шпаргалки), расположенного в меню опции Help (?) главного меню. Нельзя не отметить, что характер задания программных модулей в MathCAD PLUS 6.0 весьма удачен: модули прекрасно вписываются в документы, выглядят просто и естественно.
Следует также отметить, что система MathCAD PLUS 6.0 допускает расширение путем включения в нее новых функций, написанных на языках Cu или Сu++. Впрочем, возможности системы насколько широки, что трудно себе представить необходимость в таком кардинальном шаге. Это расширение скорее может оказаться полезным для разработчиков системы, чем для подавляющего большинства ее пользователей. Ситуация с этой возможностью (см. подробности в [14]) очень напоминает крылатую фразу “за что боролись, на то и напоролись” -- ведь смысл разработки систем класса MathCAD и заключается в том, чтобы избавить пользователя от программирования на сложных языках высокого уровня.
11.9. Функции сглаживания данных в MathCAD PLUS 6.0
Данные большинства экспериментов имеют случайные составляющие погрешности. Поэтому часто возникает необходимость статистического сглаживания данных. Ряд функций MathCAD предназначен для выполнения операций сглаживания данных различными методами. В их названии имеется слово smooth
(гладкий):
|
medsmooth(VY, n) |
-- для вектора с m действительными числами возвращает m-мерный вектор сглаженных данных по методу скользящей медианы, параметр n задает ширину окна сглаживания (n должно быть нечетным числом, меньшим m); |
|
Å ksmooth(VX, VY, b) |
-- возвращает n-мерный вектор сглаженных VY, вычисленных на основе распределения Гаусса. VX и VY -- n-мерные векторы действительных чисел. Параметр b (полоса пропускания) задает ширину окна сглаживания (b должно в несколько раз превышать интервал между точками по оси x); |
|
Å supsmooth(VX, VY) |
-- возвращает n-мерный вектор сглаженных VY, вычисленных на основе использования процедуры линейного сглаживания методом наименьших квадратов по правилу k-ближайших соседей с адаптивным выбором k Гаусса. VX и VY -- n-мерные векторы действительных чисел. Элементы вектора VX должны идти в порядке возрастания. |
subsmooth(X, Y), которая выполняет сглаживание функции Y(X), представленной векторами X и Y
координат ее точек. Обратите внимание на применение и другой функции — sort(Y), — сортирующей данные векторов, что иногда уменьшает погрешности численного алгоритма сглаживания.
Рис. 11.14. Сглаживание данных, представленных рядом значений X и Y
В примере на рис. 11.13 для получения исходного массива точек используется генератор случайных чисел. Поэтому как расположение точек, так и вид кривой сглаживания могут отличаться от приведенных при иной настройке генератора случайных чисел. Но в любом случае хорошо будет видно, что кривая сглаживания намного более гладкая, чем кусочно-линейная линия, соединяющая точки друг с другом в последовательном порядке.
11.10. Функция линейной регрессии общего вида
В MathCAD PLUS 6.0 реализована возможность выполнения линейной регрессии общего вида. При ней заданная совокупность точек приближается функцией вида:
F(x, K1, K2, ..., Kn)=K1 × F1(x) + K2 × F2(x) + ... + Kn × Fn(x).
Таким образом, функция регрессии является линейной комбинацией функций F1(x), F2(x), ..., Fn(x), причем сами эти функции могут быть нелинейными, что резко расширяет возможности такой аппроксимации и распространяет ее на нелинейные функции.
Для реализации линейной регрессии общего вида используется функция
linfit(VX, VY, F). Она возвращает вектор коэффициентов линейной регрессии общего вида K, при котором среднеквадратичная погрешность приближения “облака” исходных точек, координаты которых хранятся в векторах VX
и VY, оказывается минимальной. Вектор F должен содержать функции F1(x), F2(x), ..., Fn(x), записанные в символьном виде.
Рис. 11.15 поясняет проведение линейной регрессии общего вида с применением функции linfit.
Рис. 11.15. Пример проведения линейной регрессии общего вида
Расположение координат точек исходного массива может быть любым, но вектор VX должен содержать координаты, упорядоченные в порядке их возрастания. Вектор VY должен содержать ординаты, соответствующие абсциссам в векторе VX.
11.11. Функции одномерной и многомерной полиномиальной регрессии
Введена в новую версию MathCAD и функция для обеспечения полиномиальной регрессии при произвольной степени полинома регрессии:
regress(VX, VY, n).
Она возвращает вектор VS, запрашиваемый функцией interp(VS, VX, VY, x), содержащий коэффициенты многочлена n-й степени, который наилучшим образом приближает "облако" точек с координатами, хранящимися в векторах VX
и VY.
На рис. 11.16 показан пример выполнения полиномиальной регрессии. Для вычисления коэффициентов полинома регрессии используется функция submatrix.
Рис. 11.16. Полиномиальная регрессия
На практике не рекомендуется делать степень аппроксимирующего полинома выше 4—6, поскольку погрешности реализации регрессии сильно возрастают.
Функция regress создает единственный приближающий полином, коэффициенты которого вычисляются по всей совокупности заданных точек, т. е. глобально. Иногда полезна другая функция полиномиальной регрессии, дающая локальные приближения отрезками полиномов второй степени:
loess(VX, VY, span) -- возвращает вектор VS, используемый функцией interp(VS, VX, VY, x), дающий наилучшее приближение данных (с координатами точек в векторах VX и VY) отрезками полиномов второй степени. Аргумент span>0 указывает размер локальной области приближаемых данных (рекомендуемое начальное значение — 0,75). Чем больше span, тем сильнее сказывается сглаживание данных. При больших span эта функция приближается к regress(VX, VY, 2).
На рис. 11.17 показан пример приближения сложной функции со случайным разбросом ее ординат с помощью совокупности отрезков полиномов второй степени (функция loess) для двух значений параметра span.
Рис. 11.17. Пример регрессии отрезками полиномов второй степени
На рис. 11.17 нетрудно заметить, что при малом значении span = 0.05 отслеживаются характерные случайные колебания значений функции, тогда как уже при span = 0.5 кривая регрессии становится практически гладкой.
MathCAD PLUS 6. 0 позволяет выполнять также многомерную регрессию. Самый типичный случай ее -- приближение трехмерных поверхностей. Их можно характеризовать массивом значений высот z, соответствующих двумерному массиву Mxy
координат точек (x, y) на горизонтальной плоскости.
Новых функций для этого не задано. Используются уже описанные функции в несколько иной форме:
|
regress(Mxy, Vz, n) |
-- возвращает вектор, запрашиваемый функцией interp (VS, Mxy, Vz, V) для вычисления многочлена n-ой степени, который наилучшим образом приближает точки множества Mxy и Vz. Mxy -- матрица m × 2, содержащая координаты x и y. Vz -- m-мерный вектор, содержащий z-координат, соответствующих m точкам, указанным в Mxy; |
|
loes(Mxy, Vz, span) |
-- аналогичен loes(VX, VY, span), но в многомерном случае; |
|
interp(VS, Mxy, Vz, V) |
-- возвращает значение z по заданным векторам VS (создается функциями regress или loess) и Mxy, Vz и V (вектор координат x и y заданной точки, для которой находится z). |
11.12. Функция нелинейной регрессии общего вида
Под нелинейной регрессией общего вида подразумевается нахождение вектора K параметров произвольной функции F(x, K1, K2, ..., Kn), при котором обеспечивается минимальная среднеквадратичная погрешность приближения “облака” исходных точек.
Для проведения нелинейной регрессии общего вида используется следующая функция:
genfit(VX, VY, VS, F) -- возвращает вектор K параметров функции F, дающий минимальную среднеквадратичную погрешность приближения функцией F(x, K1, K2, ..., Kn) исходных данных.
F должна быть вектором с символьными элементами, причем они должны содержать уравнение исходной функции и ее производных по всем параметрам. Вектор VS должен содержать начальные значения элементов вектора K, необходимые для решения системы нелинейных уравнений регрессии итерационным методом.
На рис. 11.18. показан пример выполнения нелинейной регрессии общего вида для нелинейной функции F(x, a, b) = a × exp(–b × x) + a × b.
Рис. 11.18. Пример выполнения нелинейной регрессии общего вида
При решении этой задачи возникают две проблемы. Во-первых, надо вычислить значения производных по переменным a и b. В документе на рис. 11.18 это сделано с помощью символьных операций (первая строка документа после титульной надписи).
Вторая проблема связана с необходимостью применения функции genfit в ее стандартном виде. Поэтому пришлось заменить параметр a на k1, а параметр b на k2. В остальном операции в примере на рис. 11.18 достаточно очевидны.
11.13. Функция предсказания
Весьма интересной является функция предсказания predikt(data, k, N), где
data -- вектор данных, k
-- степень полинома регрессии и N-- число точек. Она по ряду заданных равномерно расположенных точек позволяет рассчитать некоторое число N
последующих точек, т. е., по существу, осуществляет экстраполяцию произвольной (но достаточно гладкой и предсказуемой) зависимости. На рис. 11.19 показано применение функции предсказания -- экстраполяции.
Рис. 11.19. Применение функции предсказания -- интерполяции
Функция предсказания обеспечивает высокую точность при монотонных исходных функциях или функциях, представляемых полиномом невысокой степени. Но рис. 11.19 показывает, что она неплохо предсказывает и функции, содержащие явную колебательную компоненту.
11.14. Функции двумерной сплайн-интерполяции
К новым возможностям MathCAD PLUS 6.0 относится также возможность осуществления двумерной сплайн-интерполяции. Это позволяет существенно повысить представительность сложных графиков 3D-функций, в том числе контурных (см. рис. 11.20).
Рис. 11.20. Пример двумерной сплайн-интерполяции для построения контурного графика 3D-функции, имеющей сложную поверхность
На этом рисунке слева показан контурный график после двумерной сплайн-интерполяции, а справа -- без нее (с применением линейной интерполяции). Сразу бросается в глаза гораздо большая информативность левого графика.
11.15. Новые возможности решения дифференциальных уравнений
Если результаты символьных вычислений включают функции, не содержащиеся во входном языке системы, они помещаются в буфер обмена по запросу системы и могут быть вызваны оттуда командой Paste (Вставить). Тогда результаты имеют статус текстовых комментариев, т. е. в явном виде с ними дальнейшие действия проводить невозможно.
Однако это совсем не означает бесполезности таких результатов. Напротив, пользователь, владеющий приемами аналитических вычислений, может успешно привлекать такие результаты для решения серьезных математических задач. Здесь мы остановимся на задаче получения аналитического решения для линейных дифференциальных уравнений. Сразу отметим, что системы компьютерной алгебры Mathematica 2.2.2 или Maple V R3/R4 легко решают подобные задачи встроенными средствами. Рассмотрим, как это можно сделать в системе MathCAD PLUS 6.0 PRO, таких средств не имеющей.
Для получения решения можно воспользоваться преобразованиями Лапласа. Это иллюстрирует рис. 1.21, на котором подробно показан процесс получения результата. Приходится "вручную" запускать прямое преобразование Лапласа, по его результатам составлять алгебраическое уравнение и после решения запускать обратное преобразование Лапласа -- оно дает решение в виде временной зависимости.
Рис. 11.21. Пример решения дифференциального уравнения второго порядка с применением преобразований Лапласа
На рис. 11.22 приведено решение другого дифференциального уравнения. Используется тот же метод решения, что и в предшествующей задаче.
Рис. 11.22. Пример решения другого дифференциального уравнения
Оба примера наглядно показывают, что помещаемый в буфер результат символьных операций может быть очень полезным и порой давать результаты, которые невозможно получить прямым образом. Это расширяет возможности применения MathCAD.
Если решение системы дифференциальных уравнений имеет вид гладких функций, то вместо функции rkfixed, описанной ранее, целесообразно применять новую функцию:
Bulstoer(y, x1, x2, n, F)
Она возвращает матрицу решения системы обыкновенных дифференциальных уравнений, правая часть которых (в виде первых производных неизвестных функций) записана в векторе F(x, y) при заданных в векторе y начальных условиях и при решении на интервале от x1 до x2 для n точек решения, не считая начальной точки.
Система дифференциальных уравнений, записанная в матричной форме y = A × x, где A -- почти вырожденная матрица, называется жесткой. Для решения жестких дифференциальных уравнений в последние версии MathCAD введен ряд функций:
|
Åbulstoer(y, x1, x2, acc, n, F, k, s) |
— возвращает матрицу решения системы обыкновенных дифференциальных уравнений, правая часть которых записана в символьном векторе F с заданными начальными условиями в векторе y, на интервале [x1, x2]. Используется Bulirsch-Stoer-метод решения с переменным шагом. Параметры k и s задают максимальное число промежуточных точек, на которых ищется решение и минимально допустимый интервал между ними; |
|
Å Stiffb(y, x1, x2, n, F, J) |
-- возвращает матрицу решений жесткого дифференциального уравнения, записанного в F и функции Якобиана J, y – вектор начальных значений на интервале [x1, x2]. Для решения используется Bulirsch-Stoer-метод; |
|
Å stiffb(y, x1, x2, acc, n, F, J, k, s) |
-- возвращает матрицу решений только в конечной точке жесткого дифференциального уравнения, записанного в F и функции Якобиана J, y -- вектор начальных значений на интервале [x1, x2]. Для решения используется метод Bulirsch-Stoer с переменным шагом; |
|
Å Stiffr(y, x1, x2, n, F, J) |
-- возвращает матрицу решений дифференциального уравнения, записанного в F и функции Якобиана J, y – вектор начальных значений на интервале [x1, x2]. Для решения используется метод Розенброка; |
|
Å stiffr(y, x1, x2, acc, n, F, J, k, s) |
-- матрица решений только в конечной форме жесткого дифференциального уравнения, записанного в F и функции Якобиана J, y -- вектор начальных значений на интервале [x1, x2]. Для решения используется метод Розенброка с переменным шагом. |
В приведенных функциях: acc
-- погрешность решения (рекомендуется порядка 0.001), k -- максимальное число промежуточных точек и s – минимально допустимый интервал между точками, в которых ищется решение. Обратите внимание, что функции, начинающиеся с малой буквы, дают решения только для конечной точки. Различаются функции также и методом решения.
Для решения дифференциальных уравнений Пуассона (в частных производных второго порядка) и уравнений Лапласа в систему введены следующие функции:
|
Å bvalfit(v1, v2, x1, x2, xi, F, L1, L2, score) |
-- устанавливает начальные условия для краевой задачи, заданной в векторах F, v1 и v2 на интервале [x1, x2], где решение известно в некоторой промежуточной точке xi; |
|
Å relax(M1, M2, M3, M4, M5, A, U, r) |
-- возвращает квадратную матрицу решения уравнения Пуассона для спектрального радиуса r; |
|
Å multigrid(M, n) |
-- возвращает матрицу решения уравнения Пуассона, у которого решение равно нулю на границах; |
|
sbval(y, x1, x2, F, L, score) |
-- дает установку начальных условий для краевой задачи, определенной в символьном векторе F, вектор y – начальные условия на интервале [x1, x2]. |
sbval(v, x1, x2, D, load, score);
bvalfit(v1, v2, x1, x2, xf, S, load1, load2, score)
В них векторы v, v1, v2
задают начальные условия, x, x1, x2
-- граничные точки интервала решений, D(x, y)
-- функция, возвращающая n-компонентный вектор с первыми производными неизвестных функций, load(x1, v), load1(x1, v1),
load2(x2, v2) -- векторзначные функции, возвращающие значения начальных условий в точках x1 (x2), score(xf, y) -- векторзначная функция, возвращающая n-элементный вектор соответствия. Он указывает, насколько значения решений, начинающихся из точек x1
и x2, должны соответствовать xf. Например, если нужно совпадение решений, то score(xf, y):=y.
Заметим еще раз, что знаком Å отмечены те функции, которые добавлены в системы MathCAD PLUS 6.0 и MathCAD PLUS 6.0 PRO. Даже в версии MathCAD 6.0 их еще нет. Достаточное число примеров применения этих функций дано в справочной системе MathCAD PLUS 6.0 PRO.
11.16. Задание операторов пользователя
Еще одна экзотическая возможность, присущая новым версиям системы MathCAD, -- задание новых операторов пользователя. Такой оператор задается практически так же, как функция пользователя, но вместо имени выбирается какой-либо подходящий знак. Например, можно задать оператор деления в виде:
¸(A,B): =

¸(6,2) = 3 — пример применения функции деления;
6¸2 = 3 — применение нового оператора деления.
При кажущейся простоте такого задания здесь есть проблемы. Встроенные в систему операторы нельзя переопределять. Поэтому набор доступных знаков для обозначения новых операторов ограничен. К примеру, нельзя задать новый оператор деления знаком / (он уже использован), но можно взять знак ¸, поскольку этот символ системой не используется.
Вторая проблема связана с вводом символа нового оператора. Скорее всего, его напрямую ввести нельзя. Придется воспользоваться типовыми приемами ввода новых символов в документы Windows. Один из этих приемов -- использование приложения, выдающего таблицу символов с возможностью его экспорта из этой таблицы в документ другого приложения (в нашем случае в документ MathCAD). Рис. 11.23 поясняет совместное использование таблицы символов с документом MathCAD.
Рис. 11.23. Задание нового оператора с выбором его обозначения из таблицы символов
После того как оператор задан, его можно использовать как функцию и как оператор. Примеры показаны на рис. 11.23. При использовании нового оператора, надо вывести его шаблон с помощью панели математических знаков (она также показана на рис. 11.23). В нашем случае следует использовать кнопку xfy этой панели -- она выводит особый шаблон вида ¦ ¦ ¦. Введите операнды (например, 6 и 2) в крайние прямоугольники, а символ оператора -- в средний. Поставив после этой конструкции знак равенства, увидите результат -- число 3.
Чтобы оператор выглядел, как в первоисточнике, надо вводить его в документ при установке того же набора знаков, что и в таблице. Можно перетащить новый знак из “шпаргалок” MathCAD. Можно также вписать новый оператор в список спецсимволов. Второй вариант более предпочтителен, т. к. MathCAD запоминает сделанное определение.
Чтобы задать новый оператор в виде знака из “шпаргалок”, надо воспользоваться возможностью QuickSheets опции Help главного меню. В меню “шпаргалок” QuickSheets выберите команду Math Symbols (Математические символы). Перед вами предстанет окно со списком возможных математических символов, доступных для их применения в качестве обозначений для операторов (см. рис. 11.24).
Рис. 11.24. Задание нового оператора с применением списка математических символов
Любой символ из списка можно выбрать, установив на него курсор мыши и быстро дважды щелкнув правой клавишей; нужный символ помечается маленьким прямоугольником со скошенным углом. Теперь его можно перетащить в любое место документа. В окне документа курсор принимает тогда вид книги, проткнутой длинной стрелкой -- ее конец надо установить в нужном месте документа и вновь дважды щелкнуть правой клавишей мыши. Затем надо записать математическое выражение для оператора, оно и видно на рис.11.24 в начале документа (только вместо переменных A и B
теперь использованы переменные x
и y).
Определенный таким образом оператор запоминается. Как и ранее, для его применения надо пользоваться кнопкой xfy в наборной панели с математическими знаками отношений. Эта панель, как и примеры работы с заданным новым оператором, также показана на рис. 11.24.
Разумеется, можно задать и другие операторы, например для работы с одним операндом. Так, вы можете задать оператор для пересчета температуры по шкале Цельсия в температуру по шкале Фаренгейта следующим образом:
°С(x):=

Затем, используя кнопку xf наборной панели символов отношения, можно выполнять операцию пересчета в виде:
37°C = 98.6·°F
Большинство пользователей MathCAD вправе задать вопрос: а зачем это надо? И будут правы -- проще и естественней задать нужную вам операцию с помощью функции пользователя. Однако есть области математики и физики, где задание новых операторов необходимо, поскольку оно является частью языка их описания. Те, кто работают в этих областях, по достоинству оценят предоставляемую возможность, несмотря на определенные неудобства, связанные с назначением новых операторов и их использованием.
11.17. Вывод векторов и матриц больших размеров
MathCAD PLUS 6.0 способна работать с векторами и матрицами больших размеров. Однако вывод таблиц со значениями их элементов может вызвать определенные трудности. Представьте себе, как будет выглядеть таблица вектора с числом элементов 1000? Такая таблица займет в длину десятки страниц и наверняка пересечет многие другие блоки.
Поэтому обычная форма выдачи таблицы вывода действует, только если число элементов вектора не выше 50. При большем числе элементов (у матрицы в столбцах и в строках) форма выдачи таблицы вывода меняется. Это показано на рис. 11.25.
Рис. 11.25. Вывод матрицы большого размера
Как видно на рис. 11.25, таблица вывода в этом случае содержит затемненные графы со значениями индексов элементов отображаемой матрицы. Если выделить таблицу рамкой (см. правую таблицу на рис. 11.25), появляются полосы прокрутки, с помощью которых можно перемещать видимую часть таблицы по общему массиву элементов большой матрицы.
11.18. Реализация численных методов в MathCAD PLUS 6.0 PRO
Серьезные пользователи, работающие с математическими системами, зачастую бывают недовольны отсутствием информации о реализованных в системах численных методах. Связано это с тем, что нередко от методов зависит успех решения особых задач, с которыми может столкнуться пользователь. Поэтому немного остановимся на сути численных методов, реализованных в системе MathCAD PLUS 6.0 PRO.
Прежде всего отметим, что выражения 0×x, 0/x и 0/0 система вычисляет как 0. Точнее говоря, встречая 0 в числителе любого выражения, она не вычисляет это выражение, а просто полагает его значение равным 0. При реализации численных методов MathCAD дает точными 15 десятичных цифр для результатов вычислений, но при выводе задает число знаков в соответствии с выбранным форматом чисел.
Определенные интегралы система вычисляет методом Ромберга. Этот метод широко описан в нашей литературе (см., например, [1,2]). Поэтому, не описывая его подробно, отметим лишь, что он является вариантом метода трапеций с делением на два интервала интегрирования с итерационным уточнением решения до достижения заданной точности (она определяется значением системной переменной TOL).
Если за заданное число итераций точность не достигнута, используется более точный метод Ромберга с открытыми концами. При нем число интервалов утраивается на каждом шаге интегрирования. Этот метод увеличивает число шагов интегрирования там, где подынтегральная функция меняется более резко (например, если она имеет разрыв).
К достоинствам метода можно отнести то, что он делает все возможное, чтобы вычислить интеграл даже при сложной функции. Но для простых функций это ведет к увеличению времени вычислений. При наличии у подынтегральной функции особенностей время вычисления может резко возрастать из-за перехода от одной реализации метода Ромберга к другой. Поэтому нередко оправдано применение достаточно точных формул интегрирования, например формул Ньютона — Котесса с легко предсказуемыми узлами, которые можно выбрать вдали от особых точек подынтегральной функции. Примеры такого подхода приведены в главе 12.
Для вычисления производных порядка от 0 до 5 система использует метод Риддера. Подробности о нем можно найти в [14]. Главное то, что метод вычисляет первую производную с погрешностью до 7—8 верных цифр результата, а с повышением производной на порядок число верных цифр уменьшается на единицу. Метод Риддера итерационный (на каждой итерации шаг дифференцирования уменьшается), но число итераций ограничено. Если при нем не достигнута указанная точность, MathCAD сообщает об отсутствии сходимости.
При решении систем уравнений и неравенств используется итерационный метод Левенберга — Маркардта, содержащийся в известном и свободно распространяемом пакете алгоритмов численных методов MINPACK. Этот метод пытается найти нули или минимум среднеквадратичной погрешности при решении заданной системы уравнений или системы неравенств. При решении с применением аппарата комплексных чисел раздельно решаются действительная и мнимая части уравнений.
При решении вычисляется вектор невязки. Если его величина меньше TOL, система возвращает вектор переменных-неизвестных. Если для решения используется функция find, при величине вектора невязки больше TOL система сообщает, что решение не найдено. Когда используется функция minerr, вектор неизвестных возвращается даже в том случае, когда значение вектора невязки больше TOL. Наконец, если не обнаружено схождение за заданное число итераций, выдается сообщение об отсутствии сходимости (как при применении функции find, так и minerr). В любых случаях величина вектора невязки определяется значением переменной ERR.
Для вычисления определителей матрицы и ее инвертирования используется LU-разложение. При этом матрица M разлагается в произведение нижней треугольной матрицы L и верхней U (т. е. M = L × U). Такой метод хорошо известен. В частности, он позволяет:
n вычислить определитель исходной матрицы как произведение диагональных элементов матриц L и U;
n вычислить обратную матрицу из решения матричного уравнения M × Vj = ej, где e -- вектор с единицей на j-м месте и нулями в остальных позициях, V-- вектор решения, который образует столбцы обратной матрицы для каждого j;
n свести решение системы линейных уравнений M × X = Y к решению более простых систем с матрицами L, U и Y.
Для сортировки компонентов вектора и матрицы используется алгоритм древовидной сортировки. Особенности основных функций сортировки следующие:
sort -- располагает компоненты вектора в порядке возрастания его действительных частей, а если вектор содержит чисто мнимые компоненты -- то в порядке возрастания мнимых частей;
csort -- сортирует матрицу по заданному столбцу путем перестановки строк матрицы;
rsort -- сортирует матрицу по заданной строке путем перестановки столбцов матрицы.
Сортировка по данному алгоритму не является вполне устойчивой. К примеру, при сортировке матрицы по столбцу с равными элементами строки, содержащие эти элементы, будут смежными в сортируемой матрице с их произвольным порядком.
MathCAD 7.0
Анимация графиков (Animation)
4. 5. Анимация графиков (Animation)Анимация (или оживление) графиков — новая возможность, введенная в последние версии MathCAD Раньше такую возможность обеспечивали системы MatLAB 4 0 и Mathematica 222B MathCAD анимация используется более удачно тут привлечены стандартная технология создания анимационных файлов с расширением avi и их воспроизведение с помощью программной системы Microsoft Video I 1 Эта система предварительно должна быть установлена на ПК в составе операционной системы Windows 95
Принцип анимации достаточно прост В системе имеется встроенная переменная FRAME, принимающая целочисленные значения, по умолчанию — от 0 до 9 с шагом 1. Любая функция (см. рис. 4. 4), график которой планируется наблюдать в развитии, должна быть функцией этой переменной, являющейся по существу просто номером текущего кадра. Диапазон изменения переменной FRAME задается в диалоговом окне команды Animation (см. ниже) Не следует пытаться присваивать FRAME иные значения
При создании анимационных рисунков все кадры строятся с одинаковыми координатами углов и, следовательно, с одинаковыми размерами и положением на экране Их вывод один за другим с заданной скоростью (по умолчанию — 0 кадров в секунду) и создает живую картинку. Анимация осуществляется путем просмотра созданной последовательности кадров с помощью специального проигрывателя.
Иллюстрирует такую возможность — на нем показан стоп-кадр из рекламного ролика фирмы Intel.
8 иллюстрирует такую возможность — на нем показан стоп-кадр из рекламного ролика фирмы Intel.Проигрыватель обладает типовыми средствами управления: регулировкой размеров изображения громкости и скорости просмотра, диалоговым окном поиска AVI-файлов и т. д. Некоторые из них (например, регулятор громкости) появляются только в том случае, когда они необходимы.
Когда в проигрыватель загружен файл, активизация кнопки управления (вторая из двух) приводит к появлению на экране меню операций управления. Они перечислены ниже. View (Вид) — управление размером окна просмотра;
Volume (Громкость) — управление громкостью (если AVI-файл содержит звук);

Изменение масштаба документа (Zoom)
4. 3. Изменение масштаба документа (Zoom)Иногда желательно изменить масштаб изображения документа. Для этого служит опция Zoom (Увеличение). Она выводит окно, показанное на рис. 4. 2, со списком возможных масштабов.
Чтобы установить заданный масштаб, достаточно установить перед задающими его цифрами жирную точку. Для этого надо подвести к кружочку перед цифрой маркер мыши и щелкнуть левой клавишей Рис 4 2 показывает вид документа при масштабе 200% А на другом рисунке (рис 4 3) показан вид тою же документа при масштабе 75%
Начало подготовки к построению анимационного графика
4 Начало подготовки к построению анимационного графика
Для создания последовательности кадров анимации исполняется команда Animation, что ведет к появлению на экране ее диалогового окна (оно видно на рис. 4. 4 в нижнем правом углу). В окне можно задать три основных параметра анимации: начальное значение FRAME, конечное значение FRAME и частоту смены кадров.
Затем следует выделить пунктирными черными линиями нужный фрагмент изображения и, нажав кнопку Animate, приступить к созданию последовательности анимационных кадров. При этом кадры будут видны в специальной зоне просмотра окна Animate, а под этой зоной можно наблюдать изменение переменной FRAME. В зону выделения могут попадать и другие объекты, например формулы или текстовые комментарии. В этом случае они тоже будут видны при проигрывании анимационного видеоролика.
С помощью кнопки Option можно выбрать тип сжатия видеофайлов и систему работы с ними. Кроме Microsoft Video 1, 1 возможна работа и с рядом других видеосистем, разумеется, если они были проинсталлированы. Чем больше конечное значение FRAME и выше частота кадров, тем более плавно происходит считывание, но увеличивается объем AVI-файлов.
По окончании процесса создания серии кадров анимационного видеоролика появится проигрыватель анимационных кадров (см. рис. 4. 5). Запустив его кнопкой пуска, имеющей вид треугольника, можно наблюдать изменение графика во времени.
Используя клавишу Save As..., можно вызвать стандартное окно записи файлов на диск. В этом окне можно найти папку, в которую будет помещен записываемый файл. Файл записывается с расширением. avi, принятым для файлов программной видеосистемы Microsoft Video for Windows. До записи в файл кадры видеоролика хранятся в оперативной памяти ПК, что ограничивает их число.
Проигрывание ранее записанного анимационного файла
7 Проигрывание ранее записанного анимационного файла
Отметим два аспекта работы со средствами анимации. Первый аспект: в выделенную область анимации можно вводить как целиком графики, так и их части и даже формулы и надписи. Если выделенной области нет, то кнопка Animation неактивна.
Второй аспект более любопытен. Проигрыватель AVI-файлов способен проигрывать файлы, созданные иными мультимедиа-системами, причем со стереофоническим звуковым сопровождением.
Проигрыватель видеофайлов Playback
6 Проигрыватель видеофайлов Playback
Проигрыватель управляется всего двумя кнопками. Первая (с пиктограммой треугольника) запускает проигрыватель. Однако для воспроизведения какого-либо видеоклипа его файл должен быть загружен. Для загрузки файлов используется вторая кнопка. Она выводит на экран окно Open AVI для загрузки файлов с расширением. avi. Это окно показано на рис. 4. 6 под проигрывателем. Внизу окна проигрывателя расположен указатель текущего времени проигрывания в виде шкалы с бегунком. На рис. 4. 7 изображен проигрыватель в процессе просмотра анимационного графика, полученного выше и записанного под именем da1.
Просмотр анима-ционных кадров с помощью проигрывателя
5 Просмотр анима-ционных кадров с помощью проигрывателя
При создании анимационных картинок надо отключить все опции автоматического масштабирования графиков и перейти к ручному заданию масштаба Автоматическое изменение масштаба подчас ведет к скачкообразному изменению размеров графика, хотя на деле он должен меняться без скачков, точнее говоря, с дискретностью, определяемой только изменением FRAME = 0, 1, 2, 3 и т д.
Просмотр видеоклипа со звуковым сопровождением
8 Просмотр видеоклипа со звуковым сопровождением
Управление элементами интерфейса
4. 1. Управление элементами интерфейсаКак уже не раз отмечалось, пользовательский интерфейс новых версий MathCAD содержит такие элементы, как панель инструментов, панель форматирования и наборные панели для ввода математических символов. Наряду с полезными функциями (облегчение начальной работы с системой) эти средства имеют и недостаток: они заметно сужают полезную область рабочего экрана, уменьшая ее примерно на 3—4 строки.
Существует три операции в подменю View (Обзор), позволяющие управлять выводом дополнительных элементов пользовательского интерфейса:
Toolbar (Панель — убирает или восстанавливает панель инструментов) ментов для быстрого управления системой;
Format Bar (Панель — убирает или восстанавливает панель форматирования) форматирования;
Math Pallete (Палитра — убирает или восстанавливает наборную математических знаков) панель вывода математических символов.
В Главе 1 приводился вид экрана системы MathCAD как с упомянутыми объектами интерфейса, так и без них. Все приведенные выше операции вполне очевидны, и нет смысла пояснять их более подробно. Нужно лишь отметить, что для установки соответствующей панели достаточно против ее названия в подменю View проставить жирный знак "птички". Для этого надо установить курсор мыши на нужную позицию подменю и щелкнуть левой клавишей мыши. "Птичку" также можно убрать, если заданный объект желательно устранить.
Вид документа с выделенными областями
1 Вид документа с выделенными областями
Вид документа в уменьшенном масштабе (75%)
3 Вид документа в уменьшенном масштабе (75%)
Вид документа в увеличенном масштабе (200%)
2 Вид документа в увеличенном масштабе (200%)
Таким образом, на деле операция Zoom может не только увеличивать размеры блоков документа, но и уменьшать их Здесь пределы обычно ставит разрешающая способность дисплея При уменьшении масштаба до 50% на экране можно рассмотреть две страницы документа Отметим, что масштаб можно менять и иначе выбором разрешения дисплея Однако для работы с высоким разрешением желательно применять дисплеи с увеличенным размером экрана по диагонали (17, 19 или 21 дюйм)
Вид проигрывателя с меню его опций
9 Вид проигрывателя с меню его опцийSpeed (Скорость) — управление скоростью проигрыва ния, Open (Открыть) — вывод стандартного диалогового окна
загрузки AVI-файлов, Close (Закрыть) — закрытие текущего окна, Copy (Копировать) — копирование в буфер обмена, Configure... [Ctrl+ D] (Настройка) — включение опций конфигурации, Command (Команда) — управление из командной строки Операция View (Вид) содержит меню из трех команд
Half Size [Alt+ 2] (Половинный размер) — уменьшение окна просмотра вдвое;
Normal Size [Ctrl+ 1] (Обычный размер) — установка нормального размера окна;
Double Size [Ctrl+ 2] (Двойной размер) — увеличение размера окна вдвое.
На рис. 4. 9 показан вид проигрывателя в половинном размере с выведенным меню управления им. В меню видны позиции с описанными выше опциями.
На рис. 4. 10 показано окно "Свойства видео", появляющееся при исполнении операции Configure... (Настройка). Это окно позволяет задать видеорежим Video Mode (В окне), т. е. обычный оконный Windows, и полноэкранный Full Screen (Во весь экран). При полноэкранном режиме изображение занимает весь экран.
Можно также задать увеличение размера экрана просмотра вдвое (опция Zoom). В нижней части диалогового окна помещается окно информации о проигрываемом файле. Кнопки ОК, Отмена и Применить служат соответственно для фиксации изменений опций, отказа от изменений и установки опций по умолчанию.
Вид проигрывателя с окном "Свойства видео'
10 Вид проигрывателя с окном "Свойства видео'
Применение проигрывателя заметно облегчает построение эффектных обучающих программ, и самоучитель Tutorial системы является наглядным тому свидетельством. В частности, можно готовить видеоролики о работе с самой системой. К сожалению, AVI-файлы требуют под их хранение весьма большого объема памяти на жестком диске, так что такие видеоролики приходится делать довольно короткими.
Восстановление искажений экрана (Refresh)
4. 4. Восстановление искажений экрана (Refresh)При манипуляциях с объектами (например, при изменении их размеров и выделении) или при перемещении по полю окна редактирования на экране могут оставаться нежелательные объекты. Для их устранения следует использовать операцию Refresh Эта операция ничего не делает с объектами документа, а лишь уничтожает следы от них, если они возникают при работе с документом Операция полезна также в случаях, когда часть текстового блока не видна из-за наложения на него другого блока — формульного или графического
Выделение областей (Regions)
4. 2. Выделение областей (Regions)Документы составляются из отдельных блоков (областей), причем границы их обычно не видны. Опция Regions (Области) позволяет выделить все области и обеспечивает закраску промежутков между ними серым цветом. Сами блоки при этом выделены белым фоном. На рис. 4. 1 показан вид документа с выделенными областями его объектов.
Выделение областей особенно полезно для оценки их взаимного расположения и наложения. Заглядывая вперед, отметим, что операция Separate Region (Разделить области) в позиции Format (Формат) главного меню позволяет автоматически раздвинуть блоки для устранения наложения их друг на друга.
Вызов проигрывателя (Playback)
4. 6. Вызов проигрывателя (Playback)Любой видеофайл с расширением avi (не обязательно с описанной выше ани-мационной графикой) может быть просмотрен с помощью проигрывателя, запускаемого опцией Playback (Воспроизвести) в подменю позиции главного меню Animation. При этом проигрыватель появляется на экране (см. рис. 4. 6).
MathCAD 7.0
Диалоговое окно вставки единиц измерения размерных величин
17 Диалоговое окно вставки единиц измерения размерных величин
Операция Options... в подменю Math главного меню служит для смены используемой системы единиц
Окно вставки единиц измерения размерных величин имеет три кнопки Insert — вставляет выбранную единицу измерения с сохранением окна, OK — вставляет выбранную единицу измерения и закрывает окно, Cancel — отменяет операцию вставки размерных величин
При работе с размерными величинами MathCAD производит необходимые преобразования и выводит числовые значения величин вместе с единицами их измерения
Диалоговое окно встроенных функций
16 Диалоговое окно встроенных функций
Обратите внимание на то, что запись каждой функции дается в полной синтаксической форме. Это исключает довольно частые ошибки в формулах, вызванные неточностями записи функций. На месте параметров в выведенной функции имеются шаблоны данных для их ввода. Приведенное окно дает полный список встроенных в систему MathCAD функций и является хорошим средством для ознакомления с ними.
Экран системы с открытым подменю Insert
1 Экран системы с открытым подменю InsertPolar Plot [Ctrl+ 7] — создать шаблон графика в полярной системе (Полярный график) координат, Surface Plot [Ctrl+ 2] — создать шаблон для построения трехмерного (График поверхности) графика, Contour Plot [Ctrl+ 5] — создать шаблон для контурного графика (Карта линий уровня) трехмерной поверхности, 3D Scatter Plot создать шаблон для графика в виде точек (Точечный график) (фигур) в трехмерном пространстве, 3D Bar Chart (Трехмерная создать шаблон для изображения в виде гистограмма) совокупности столбиков в трехмерном про странстве, Vector Field Plot — создать шаблон для графика векторного (Векторное поле) поля на плоскости
Вид окна системы с подменю Insert Graph показан на рис 5. 1. В этом подменю видны команды создания шаблонов указанных выше типов графиков В окне редактирования показаны также два одинаковых графика, но в разных местах и разного размера
Графики функций в полярной системе координат
5 Графики функций в полярной системе координат

График распределения плотности ЗD-поверхности
11 График распределения плотности ЗD-поверхности
Использование гиперссылки
24 Использование гиперссылки
Использование гиперссылки в виде кнопки
26 Использование гиперссылки в виде кнопки
Два вида гиперссылок, реализованных в системе MathCAD, расширяют возможности подготовки сложных документов, а возможности использования гиперссылок делают более разнообразными.
Контурный график 3D-поверхности
10 Контурный график 3D-поверхности
Такое представление графика удобно для количественных оценок. Однако в большинстве случаев указание количественных значений уровней загромождает график. Возможно задание высот 3D-поверхности с помощью функциональной окраски. Тогда можно выполнить построение этой поверхности в виде распределения плотности окраски (см. рис. 5. 11).
При использовании цветной функциональной окраски описанные выше типы графиков выглядят весьма впечатляюще. Но неплохие результаты получаются и при задании монохромных графиков. В этом случае гамма цветов заменяется просто разной плотностью серого цвета, от ярко-белого до черного.
Иногда контурные графики получаются даже более информативными, чем просто трехмерные поверхности. У последних нередко одни части поверхности закрывают другие. Например, пик на переднем плане может закрыть меньшие пики или впадины на заднем плане. У контурных графиков такого эффекта нет, и на них легко обнаруживаются все пики и впадины, правда, при достаточно большом числе линий равного уровня и малом расстоянии между ними.
Окно объектной связи с приложениями
28 Окно объектной связи с приложениями
После выбора приложения для объектной связи с MathCAD на месте курсора мыши появляется пиктограмма с изображением объекта. Вид этой пиктограммы можно менять, если активизировать кнопку Смена значка... При этом появляется окно, в котором можно выбрать подходящий значок (пиктограмму), устраивающий пользователя (см. рис. 5. 29).
На рис. 5. 30 показан случай, когда в качестве объекта для вставки используются документы текстового редактора Word 95 из пакета Microsoft Office 95. Пиктограмма этого объекта показана в левом верхнем углу окна редактирования текущего документа.
Окно связи с другими компонентами системы MathCAD
27 Окно связи с другими компонентами системы MathCAD
Для реализации вставки объектов из других приложений надо выполнить операцию Object... (Объект). Она выводит окно с перечнем приложений, с которыми может осуществляться объектная связь (см. рис. 5. 28).
Операции ввода текста и математических символов в текстовые области
19 Операции ввода текста и математических символов в текстовые области
Перед вводом русскоязычного текста рекомендуется выбрать подходящий шрифт. У многих русскоязычных (кириллических) шрифтов в названии имеется слово "Суг". Если в начале ввода выяснилось, что введена буква не русского алфавита, то при попытке ее стирания шаблон текстовой области исчезает и его придется выводить снова.
Подготовка к заданию гиперссылки
20 Подготовка к заданию гиперссылки

Подменю позиции Insert (Вставка) главного меню
5. 1. Подменю позиции Insert (Вставка) главного менюУстановка любого объекта в окно редактирования называется вставкой MathCAD реализует различные механизмы вставки — от просто вывода шаблона объекта до вставки объекта, созданного в другом приложении, через буфер обмена. В версии MathCAD 7 0 все виды вставок включены в новую позицию главного меню Insert (Вставка).
При активизации этой позиции появляется подменю со следующими операциями:
Graph (Графика) — вставка шаблонов графики, Matrix... [Ctrl+ M] (Матрица) — вставка шаблонов матриц и векторов, Function... [Ctrl+ F] (Функция) — вставка шаблонов встроенных функций, Unit... [Ctrl+ U] (Единицы) — вставка единиц измерений размерных величин;
Picture [Ctrl+ T] (Рисунок) — вставка шаблона импортируемого рисунка;
Math Region — вставка в текстовую область (Математическая область) шаблона математической области;
Text Region (Текстовая область) — вставка текстовой области;
Page Break (Разрыв страницы) — вставка линии разрыва страницы;
Hyperlink (Гиперссылка) — вставка гиперссылки;
Reference... (Ссылка) — вставка обращения к заданному файлу активизацией кнопки,
Component... (Компонент) — вставка других компонентов системы, Object... (Объект) — вставка объекта с установлением динамической связи с порождающим его приложением.
Вид подменю позиции Insert главного меню показан на рис. 5. 1. Для создания графиков в системе MathCAD имеется программный графический процессор. Основное внимание при его разработке было уделено обеспечению простоты задания графиков и их модификации с помощью соответствующих опций. Процессор позволяет строить самые разные графики, например в декартовой и полярной системах координат, трехмерные поверхности, графики уровней и т д
Для построения графиков используются шаблоны Их перечень содержит подменю Graph (Графика) в позиции Insert (Включение) главного меню Большинство параметров графического процессора, необходимых для построения графиков, по умолчанию задается автоматически Поэтому для начального построения графика того или иного вида достаточно задать тип графика В подменю Graph содержится список из семи основных типов графиков. Они позволяют выполнить следующие действия X-Y Plot® (Декартов — создать шаблон двумерного графика график) в декартовой системе координат,

Поиск файла, который связывается с гипер-ссылкой
21 Поиск файла, который связывается с гипер-ссылкойДля завершения создания гиперссылки достаточно нажать кнопку ОК окна создания гиперссылки. При отказе от ее создания надо нажать кнопку Cancel.
Если установить курсор мыши на гиперссылку, то в строке состояния (внизу экрана системы) появится сообщение, которое было задано ранее (оно видно на рис. 5. 23). Такие сообщения очень полезны при большом числе ги-перссылок, поскольку позволяют судить об их назначении.
Для осуществления гиперссылки достаточно установить курсор мыши на подчеркнутое слово, гиперссылку, и быстро дважды щелкнуть левой клавишей мыши. Текстовое сообщение, в котором имеется гиперссылка, станет выделенным, и на экране появится вызываемый гиперссылкой документ — см. рис. 5. 24.
Показывает задание трех функций и вывод шаблона графика (внизу).
2 показывает задание трех функций и вывод шаблона графика (внизу).Незаполненный шаблон графика представляет собою большой пустой прямоугольник с шаблонами данных в виде темных маленьких прямоугольников, расположенных около осей абсцисс и ординат будущего графика. В средние шаблоны данных надо поместить имя переменной (х у оси абсцисс) и задать формулы для функций (у у оси ординат). Если строятся графики нескольких функций в одном шаблоне, то для их разделения следует использовать запятые. Чтобы перемещать по шаблонам метку их выбора и выделения, следует использовать клавиши перемещения курсора. Можно выбрать шаблон данных и прямо с помощью мыши, указав нужный шаблон ее курсором и нажав левую клавишу мыши.
Крайние шаблоны данных служат для указания предельных значений абсцисс и ординат, т. е. они задают масштабы графика. Если оставить эти шаблоны незаполненными, то масштабы по осям графика будут устанавливаться автоматически. Недостаток тут в том, что масштабы, скорее всего, окажутся

Представление 3D-поверхности векторами
14 Представление 3D-поверхности векторами
Эти графики применяются редко из-за трудностей построения множества стрелок, для каждой из которых надо рассчитывать градиент поля Но MathCAD дает удобную возможность широкого применения этого вида графиков Он особенно подходит для представления электромагнитных, тепловых, гравитационных и иных полей
Представление ЗD-поверхности трехмерными столбиками
Рис. 5. 13 Представление ЗD-поверхности трехмерными столбиками
Подобные графики широко применяются при анализе сложных статистических данных, например представленных тремя независимыми переменными Обычно их построение считается высшим пилотажем, но MathCAD превращает этот процесс в обыденную операцию При этом, как видно из рис. 513, достаточно наглядным является представление столбиками и сложных трехмерных поверхностей
Пример импорта графического изображения
18 Пример импорта графического изображения
Импортируемый рисунок можно, как и любой другой, перемещать с помощью мыши по экрану, растягивать его, выделять и помещать в буфер обмена и т. д. Заглядывая вперед, отметим, что можно перенести в текст документов и множество рисунков из электронного справочника системы. Это заметно облегчает подготовку в среде MathCAD хорошо иллюстрированных учебных программ.
Помимо импорта рисунков из файлов система MathCAD допускает копирование рисунков из буфера обмена системы Windows. Для этого надо ввести рисунок в этот буфер (например, используя графический редактор Windows Paint Brush или операции Copy либо Cut прикладных Windows-программ). Затем, перейдя к работе с системой MathCAD, нужно установить курсор на место верхнего левого угла будущего рисунка и выполнить операцию Paste в позиции Edit главного меню (или нажать клавишу F4).
Пример построения двух графиков трех функций
3 Пример построения двух графиков трех функций
Эти операции позволяют изменять заданные по умолчанию параметры графиков. Заметим, что окно задания форматов графиков появляется, если выделить график и, установив в его области курсор мыши, дважды быстро щелкнуть ее левой клавишей.
Графики можно перемещать по полю окна документа и изменять их размеры Для этого надо выделить график (он обводится сплошной линией) Проще всего это можно сделать так. поместить курсор мыши в область графика и щелкнуть один раз левой клавишей В правой части рис 5 3 показан тот же график после увеличения его размеров и завершения редактирования формата
Можно поступить и по-иному — поместить курсор мыши вблизи графика и, нажав ее левую клавишу, перемещать мышь в направлении графика наискосок Курсор начнет вычерчивать область выделения в виде прямоугольника из черных пунктирных линий Как только эта область захватит график и он тоже окажется обведен пунктирным прямоугольником, надо отпустить клавишу мыши График будет выделен
Стоит поместить графический курсор вблизи линий рамки, выделяющей область графика, при этом изображение курсора изменится: вмесго маленького красного крестика оно приобретет вид ладони. Если теперь нажать левую клавишу мыши и начать ее перемещать, то весь шаблон графика будет перемещаться по окну Установите его в нужное место и отпустите левую клавишу мыши. Рисунок окажется на новом месте.
Для изменения размеров рисунка нужно точно подвести графический курсор к специальным шаблонам на рамке, выделяющей рисунок Эти шаблоны имеют вид маленьких черных прямоугольников. Изображение курсора при этом заменяется на двустороннюю стрелку, указывающую, в каких направлениях можно растягивать рисунок. Нажав левую клавишу мыши, можно захватить соответствующую сторону или угол шаблона рисунка и, не отпуская клавишу, начать растягивать или сжимать шаблон. После того как клавиша будет отпущена, рисунок перестроится в новых размерах. Сжимать и растягивать графики можно в вертикальном, горизонтальном и диагональном направлениях
При любом виде выделения рисунка нажатие клавиши F3 стирает рисунок в окне и переносит его в буфер обмена. Переместив курсор, установленный на месте левого верхнего окна бывшего графика, в новое место и нажав клавишу F4, можно перенести рисунок на это место
Особо следует отметить возможность помещения текстовых комментариев в область графиков. Для этого вначале надо подготовить их в стороне от графика и выделить пунктирной линией Затем поместив курсор мыши в область текста, надо нажать ее левую клавишу и перенести текстовый блок в область рисунка. Установив текст в нужном месте, отпустите клавишу мыши Если при этих операциях или снятии выделений нанесенные на рисунок надписи исчезают, воспользуйтесь командой восстановления изображения на экране — Ctrl+ R
Этим методом не стоит злоупотреблять, так как надписи сверху, снизу и сбоку графиков (в пределах области их определения) можно создавать с по мощью соответствующих средств задания формата графиков Они будут описаны несколько позже Такие надписи никогда не исчезают Чтобы надписи были на русском языке, следует использовать соответствующие наборы шрифтов. Поскольку шрифт в процессе ввода текста менять нельзя, есть определенные трудности с созданием таких надписей на русском языке
Пример прямого построения графика параметрически заданной функции
6 Пример прямого построения графика параметрически заданной функцииПри прямом построении графика достаточно просто заполнить ее шаблон. Саму функцию надо описать ее уравнениями, которые вписываются на места шаблонов по осям Х и Y. Стоит вывести графический курсор мыши из области графика, как последний будет построен.
Шаблон графиков типа Polar Plot
4 Шаблон графиков типа Polar Plot
Перед построением таких графиков надо задать изменение ранжированной переменной W (или с другим именем) в заданных пределах. После вывода шаблона следует ввести W в шаблон снизу и функцию R (W) в шаблон справа, а также указать нижний предел изменения длины радиус-вектора R (W) — Rmin и шаблоне справа внизу и верхний предел — Rmax в шаблоне справа и сверху.
На рис. 5. 5 показано построение графиков в полярной системе координат:
слева — по описанному шаблону, справа — с помощью шаблона обычной двумерной графики X-Y Plot. Сейчас R (W) =i, так что в обоих случаях строится окружность (если дисплей имеет различные масштабы по вертикали и горизонтали, окружность превратится в эллипс).
При построении графика в полярной системе координат с использованием шаблона обычного 1рафика в прямоугольной системе координат надо по оси Х установить R (W) -cos (W), а по оси Y — R (W) -sin (W). Построение графиков в полярной системе координат с помощью шаблона обычной графики X-Y Plot в ряде случаев даже более предпочтительно, поскольку в математической литературе графики параметрически заданных функций чаще всего строятся именно таким образом. При задании даже простых функций R (W) графики в полярной системе координат могут иметь весьма причудливый вид.
Надо также отметить новую возможность прямого построения графиков функций в полярной системе координат, без определения диапазона изменения независимой переменной W. Пример такого построения дан на рис. 5. 6.
Связь с другими компонентами системы (Component...)
5. 18. Связь с другими компонентами системы (Component...)Одной из главных отличительных особенностей системы MathCAD 7. 0 PRO является возможность подключения к ней других математических систем — компонентов и использование входящих в них средств и функций, что намного увеличивает возможности объединенной вычислительной системы.
Для подключения к MathCAD новых компонентов используется операция Component... (Компоненты), выводящая диалоговое окно с перечнем компонентов, с которыми можно общаться после установления связи с тем или иным компонентом. Это окно показано на рис. 5. 27.
В этом окне можно выбрать одну из систем и подключить ее к MathCAD. После этого, нажав кнопку Finish (Конец), можно наблюдать загрузку системы. Работу с расширенной системой мы опишем позже, после более детального знакомства с собственными (и достаточно обширными) возможностями самой системы MathCAD.
Установка единиц измерения размерных величин (Units...)
5. 11. Установка единиц измерения размерных величин (Units...)Операция Units... (Единицы) служит для установки единиц измерения размерных величин в заданной системе. Размерные величины широко используются в физических и в научно-технических расчетах.
При использовании операции Units... появляется окно, имеющее список размерных величин Dimension и относящихся к ним единиц измерения Unit. В окне есть также указание на то, какая система единиц System используется. Вид окна показан на рис. 5. 17. По умолчанию используется система единиц SI.
Установка шаблона двумерных графиков (X-Y Plot @)
5. 2. Установка шаблона двумерных графиков (X-Y Plot @)Графики в системе MathCAD могут иметь различные размеры и перемещаться в окне редактирования документа. Для наиболее распространенных графиков в декартовой и в полярной системах координат в MathCAD предусмотрен упрощенный и очень удобный способ построения графиков без предварительного задания функции и ранжирования независимой переменной.
Именно так построены графики на рис 5 1 Для упрощенного построения двумерных графиков некоторой функции f (x) надо вывести их шаблон, по вертикали указать эту функцию, а по горизонтали — независимую переменную х. Таким образом можно строить на одном рисунке и графики многих функций, просто опишите их у вертикальной оси, используя запятые для разделения описаний функций. Графики будут построены линиями разного типа и цвета.
Можно вначале записать функцию, а затем вывести шаблон графика;
функция окажется записанной у вертикальной оси, и останется только указать независимую переменную у горизонтальной оси. Такой простой способ наверняка порадует начинающих пользователей, плохо сознающих (на первых порах), что графики в MathCAD всегда строятся по векторам и матрицам их отдельных точек. При указанном упрощенном способе построения графиков они строятся при изменении независимой переменной от -10 до+ 10. В дальнейшем операцией форматирования этот диапазон и все иные данные графиков можно изменить (это называют изменением формата).
Для вывода шаблона двумерной графики в декартовой системе координат служит операция X-Y Plot® (декартов график). Она выводит в текущее положение курсора шаблон графиков 2D-rana или графиков в декартовых координатах. Напоминаем, что это обычный график на плоскости с воображаемыми (или действительно нарисованными) осями Х (горизонтальная) и Y (вертикальная), расположенными под прямым углом друг к другу.
Каждая точка декартова графика характеризуется своими координатами х и у=f(х), где х — абсцисса точки, а у — ее ордината. Точки соединяются друг с другом разнообразными линиями (сплошной, пунктирной и т. д.). Могут быть показаны и исходные (узловые) точки графика в виде жирных точек, квадратиков, кружков и т. д.; возможно и построение на одном рисунке графиков нескольких функций.
Перед применением этой команды необходимо определить функции, графики которых должны строиться, и изменение их аргумента (например, х) в заданном интервале. Впрочем, простые функции, если они в дальнейшем не используются, можно указать в шаблоне самого графика. Далее надо приблизительно наметить место левого верхнего угла графика и установить на него графический курсор. Затем следует ввести команду (используя соответствующую позицию меню или нажав клавиши, задающие символ @).
Установка шаблона графиков в полярной системе координат (Polar Plot)
5. 3. Установка шаблона графиков в полярной системе координат (Polar Plot)В полярной системе координат каждая точка задается углом W, радиусом и длиной радиус-вектора R (W). График функции обычно строится при изменении угла W в определенных пределах, чаще всего от 0 до 2р. Опция Polar Plot (Полярный график) выводит шаблон таких графиков, показанный на рис. 5. 4. Этот шаблон имеет форму окружности и содержит шаблоны данных.
Установка шаблона импортируемого рисунка (Picture)
5. 12. Установка шаблона импортируемого рисунка (Picture)Ценной возможностью систем MathCAD является импорт графических файлов, создаваемых другими графическими системами, например графическими редакторами класса PaintBrush, системами AutoCAD, PCAD и др Это позво ляет включать в документы MathCAD высококачественные графические иллюстрации, что крайне необходимо при создании электронных книг
Перед импортом файла надо подготовить его в соответствующем прило жении и записать в виде файла в текущий каталог работы Файл может иметь расширение. bmp (BitMap) Воспринимаются и файлы с расширением msc из прежних версий системы MathCAD
Для импорта файла с рисунком достаточно выполнить операцию Picture (Рисунок) — появится шаблон рисунка с единственным маленьким шабло ном в левом нижнем углу В нем надо записать имя файла и, отведя курсор мыши в сторону от рисунка, щелкнуть ее левой клавишей На рис 518 показано, как рисунок из файла Columbia msc с созданным с помощью системы AutoCAD изображением космического челнока встраивается в документ системы MathCAD
Установка шаблона контурных ЗD-графиков (Contour Plot)
5. 5. Установка шаблона контурных ЗD-графиков (Contour Plot)Еще один широко распространенный тип графиков для представления трехмерных поверхностей — график из линий равного уровня. Такие графики широко применяются, например, в картографии. Операция Contour Plot (Карта линий уровня) служит для построения шаблона таких графиков. Он подобен шаблону, описанному в предыдущем разделе (кстати, как и предшествующие выводу шаблона действия по созданию матрицы М).
На рис. 5. 10 показано построение контурного графика в виде линий равного уровня. Численные значения уровней для разных кривых графика представлены рядом цифр.
Установка шаблона матриц и векторов (Matrix...)
5. 9. Установка шаблона матриц и векторов (Matrix...)Операция Matrix... (Матрицы) обеспечивает задание векторов или матриц Как известно, матрица является заданным своим именем объектом в виде массива данных MathCAD использует одномерные массивы — векторы и двумерные — собственно матрицы
Матрица характеризуется числом строк (Rows) и числом столбцов (Columns). Таким образом, число элементов матрицы или ее размерность равны Rows x Columns Элементами матриц могут быть числа, константы, пере менные и даже математические выражения Соответственно матрицы могут быть численными и символьными
Если использовать операцию Matrix..., то в текущем окне появится не большое окошко, позволяющее задать размерность вектора или матрицы (см рис 515 справа) Для этого нужно указать число строк Rows и число сголбцов Columns Нажав клавишу Enter или указав курсором мыши на изображение клавиши Insert (Вставить) в окошке, можно вывести шаблон матрицы или вектора (вектор имеет один из параметров размерности, равный 1)
Шаблон содержит обрамляющие скобки и темные маленькие прямоугольники, обозначающие места ввода значений (числовых или символьных) для элементов вектора или матрицы. Один из прямоугольников можно сделать активным (отметив его курсором мыши). При этом он заключается в уголок. Это указывает на то, что в него будут вводиться значения соответствующего элемента. С помощью клавиш перемещения курсора можно по горизонтали пробежаться по всем прямоугольникам и ввести все элементы вектора или матрицы.
Установка шаблона SD-графиков в виде гистограммы (3D Bar Chart)
5. 7. Установка шаблона SD-графиков в виде гистограммы (3D Bar Chart)Весьма pacпpocтраненной формой представления ЗD-поверхностей является также представление ее рядом трехмерных столбиков, высота которых определяется значением координаты z (x, у) Для этого используется операция 3D Bar Chart (Трехмерная гистограмма) — см рис 513
Установка шаблона точечного ЗD-графика (3D Scatter Plot)
5. 6. Установка шаблона точечного ЗD-графика (3D Scatter Plot)Нередко трехмерные поверхности представляют в виде находящихся в этом пространстве точек, кружочков или иных фигур. Каждая из этих фигур несет информацию о геометрическом положении ее центра в трехмерном пространстве. Такой график создается операцией 3D Scatter Plot (Точечный график) — см. рис. 5. 12.
Размеры точек, их вид и окраску можно изменять с помощью команды изменения формата ЗD-графика. Обычно достаточно наглядными являются графики с малыми фигурами, расположенными внутри параллелепипеда Однако в целом наглядность таких графиков не очень высока. Их стоит использовать не для показа трехмерных поверхностей, а лишь для демонстрации расположения на них небольшого числа объектов. Объекты могут быть не только в виде точек, но и иных фигур, крестиков, окружностей, квадратов и др

Установка шаблона трехмерных графиков (Surface Plot)
5. 4. Установка шаблона трехмерных графиков (Surface Plot)Эта операция служит для построения трехмерной поверхности Z (X, Y), предварительно представленной матрицей М ординат Z. При этом выводится шаблон графика, левый верхний угол которого помещается в место расположения курсора. Шаблон, в свою очередь, содержит единственный шаблон данных — темный прямоугольник у левого нижнего угла основного шаблона. В него надо занести имя матрицы со значениями ординат ЗD-поверхности. Разумеется, прежде чем строить график ЗD-поверхности, нужно ее определить математически. На рис. 5. 7 показан пример такого определения.

Установка шаблона ЗD-графиков с векторным представлением (Vector Field Plot)
5. 8. Установка шаблона ЗD-графиков с векторным представлением (Vector Field Plot)Еще один вид представления ЗD-поверхности векторное представление Оно задается построением коротких стрелочек векторов Стрелка обращена острием в сторону нарастания высоты поверхности, а плотность расположения стрелок зависит от скорости этого нарастания На рис 514 показан пример подобного графика Для его построения используется команда Field Plot (Векторное поле)
то появится окно текстового редактора
30 Установление объектной связи с текстовым редактором Word 95
Если активизировать значок-пиктограмму, то появится окно текстового редактора Word 95, которое также показано на рис. 5. 30. В этом окне можно подготовить любой документ, и он в дальнейшем будет вызываться активизацией значка объекта.
Объекты для связи с MathCAD могут быть самыми разнообразными; это текстовые и графические данные, таблицы и записи из баз данных, музыкальные фрагменты, видеоклипы и т. д. По существу, этот способ связи позволяет свести воедино самые различные приложения и обеспечить между ними полноценный обмен данными.
Вид экрана после задания гиперссылки
23 Вид экрана после задания гиперссылкиПосле ознакомления с вызываемым документом его можно закрыть. До этого возможно редактирование документа. Объектами гиперссылок Могут быть не только документы. Можно, к примеру, дать гиперссылку на рисунок, создаваемый графическим редактором, на электронную таблицу и т. д. Все это позволяет готовить вполне современные и удобные в применении документы не только расчетного, но и информационно-справочного и учебного характера.
Гиперссылку можно убрать с помощью опции Erase (Уничтожить), а также отредактировать, используя опцию Edit... (Редактировать), выводящую окно редактирования гиперссылки.
Вставка гиперссылки (Hyperlink)
5. 16. Вставка гиперссылки (Hyperlink)Гиперссылки — важный элемент создания сложных документов, обучающих программ и справочных систем. Напомним, что гиперссылка в системе MathCAD представляется подчеркнутым словом, при активизации которого вызывается связанный с ней документ (файл).
Для создания гиперссылки должен быть создан текстовый блок, в котором нужно выделить некоторый фрагмент текста, чаще всего какое-либо слово. Начало создания гиперссылки показано на рис. 5. 20.
После этого надо выполнить операцию Hyperlink (Гиперссылка) с опцией New (Новая) для вывода диалогового окна задания гиперссылки Оно также показано на рис 5. 20 под текстовым блоком В этом окне следует указать в верхнем свободном поле полное имя файла, который будет вызываться данной гиперссылкой В другом поле можно ввести текст сообщения, которое будет появляться в строке состояния (внизу экрана системы) при установке курсора мыши на гиперссылку.
Обычно точное имя файла (с полным путем доступа к нему) запомнить трудно Поэтому, активизируя клавишу Browse (Обзор) окна задания гиперссылки, можно вызвать окно поиска файла — см. рис. 521.
После нахождения файла его полное имя появляется в верхнем поле окна гиперссылки, теперь в нижнее поле можно ввести текст сообщения (см. рис. 5. 22).
Вставка линии разрыва страницы (Page Break)
5. 15. Вставка линии разрыва страницы (Page Break)Большие документы нередко занимают много страниц. Бывает крайне нежелательно, когда при печати таких документов какой-нибудь график или таблица обрываются линией раздела страниц. Недопустимы и ситуации, когда заголовок раздела оказывается на одной странице, а непосредственно сам раздел начинается на другой.
Для предотвращения таких ситуаций желательно прервать страницу в заданном месте. Для этого служит операция Page Break (Разрыв страницы), вставляющая в документ горизонтальную линию разрыва страницы. На рис. 5. 19 эта линия показана внизу окна редактирования.
Вставка объектов (Object...)
5. 19. Вставка объектов (Object...)Вставка объектов — пожалуй, самая мощная возможность системы MathCAD. Впрочем, она присуща большинству серьезных приложений для операционных систем класса Windows 95. Благодаря этой возможности легко устанавливается связь с самыми различными приложениями этой операционной системы, в том числе с довольно далекими от математических систем, такими, например, как текстовый процессор Word или база данных Acess из офисного пакета Microsoft Office 95.
Вставка обращения к заданному файлу активизацией кнопки (Reference...)
5. 17. Вставка обращения к заданному файлу активизацией кнопки (Reference...)Есть еще один удобный способ обращения к заданным файлам путем создания ассоциированного с ними графического объекта — использование кнопок Для этого существует операция Reference... (Ссылка) Она выводит окно задания такой ссылки, показанное на рис 5 25
В этом окне надо либо явно указать полное имя файла (на рис 5 25 это относится к файлу Demo1 mcd), пибо найти его, воспользовавшись кнопкой вызова окна просмотра Browse Нажав далее кнопку ОК, можно вывести по
Вставка текстовой области (Text Region...)
5. 13. Вставка текстовой области (Text Region...)Текстовые области вставляются в документы MathCAD для создания текстовых комментариев. В MathCAD 7. 0 PRO оставлена операция вставки расширяемой текстовой области — Text Region... (Текстовая область). Перед ее применением нужно установить курсор мыши (красный крест) в то место окна редактирования, откуда должен начинаться текст — это левый верхний угол будущей текстовой области. После этого исполняется данная операция и на месте курсора появляется прямоугольник (шаблон текстовой области) с текстовым маркером внутри него — см. рис. 5. 19.
Вставка в текстовую область математических формул (Math Region...)
5. 14. Вставка в текстовую область математических формул (Math Region...)В текстовые области нередко надо вставлять математические формулы. Такие объекты не должны быть исполняемыми в отличие от формул в формульных блоках. Эти формулы в ряде случаев (например, при символьных операциях) могут модифицироваться.
Для вставки в текстовые блоки математических формул надо выполнить операцию Math Region... (Математическая область). Кстати, эта операция доступна только в том случае, когда текстовый маркер установлен в нужное место текстовой области. Тогда выполнение операции Math Region... приведет к появлению в текстовой области шаблона в виде маленького черного квадрата. В этом квадрате можно задавать математические формулы, в том числе используя наборные панели с математическими символами (см. пример на рис. 5. 19).
Выбор значка для обозначения вставляемого объекта
29 Выбор значка для обозначения вставляемого объекта
Вывод функций (Choose function...)
5. 10. Вывод функций (Choose function...)Как правило, при подготовке документов имена функций пользователь вводи г самостоятельно. Поскольку функций, встроенных в систему, очень много (около 250), запомнить их все довольно сложно. Это и не нужно, ведь в MathCAD есть средство для ввода имен функций из их общего списка (каталога).
Операция Choose function... (Вставить функцию) выполняет следующие действия:
• выводит полный перечень встроенных в ядро системы функций;
• кратко поясняет назначение каждой функции;
• позволяет корректно ввести шаблон с именем функции в место расположения курсора, установленного в математическом выражении.
Для реализации этих возможностей команда выводит диалоговое окно, показанное на рис. 5. 16.
Вывод шаблонов вектора и матрицы и их заполнение
15 Вывод шаблонов вектора и матрицы и их заполнение
Пока идет ввод элементов векторов или матриц, пустые шаблоны отображаются без каких-либо комментариев. Однако, если закончить ввод до полного заполнения шаблонов, система выведет сообщение об ошибке — незаполненный шаблон приобретет красный цвет. Вывод несуществующей матрицы или ошибочное указание ее индексов также отображается красным цветом.
Если использовать операцию Insert (Включение) при уже выведенном шаблоне матрицы, то матрица расширяется и ее размер увеличивается. Кнопка Delete (Стирание) позволяет убрать расширение матрицы, вычеркнув из нее строку или столбец.
Каждый элемент матрицы характеризуется индексированной переменной, и его положение в матрице обозначается двумя индексами: один указывает номер строки, другой — номер столбца. Для набора индексированной переменной прежде надо ввести имя переменной, а затем перейти к набору индексов нажатием клавиши, вводящей символ]. Прежде указывается индекс строки, а затем через запятую индекс столбца. Примеры вывода индексированных переменных (элементов матрицы М) также даны на рис. 5. 14.
Вырожденная в одну строку или в один столбец матрица является вектором. Его элементы — индексированные переменные с одним индексом. Нижняя граница индексов задается значением системной переменной ORIGIN. Обычно ее значение задают равным 0 или 1.
Задание гиперссылки в виде кнопки, ассоциированной с файлом
25 Задание гиперссылки в виде кнопки, ассоциированной с файлом
месту расположения курсора мыши кнопку гиперссылки с указанным после нее именем вызываемого ею файла (вид этой кнопки показан на рис. 5. 25 под окном задания гиперссылки). Активизация кнопки ОК ведет к появлению окна с вызываемым документом (см. рис. 5. 26).
Задание и построение трехмерной поверхности без удаления невидимых линий
7 Задание и построение трехмерной поверхности без удаления невидимых линийНаглядность представления трехмерных поверхностей зависит от множества факторов: масштаба построений, углов поворота фигуры относительно осей, применения алгоритма удаления невидимых линий или отказа от него, использования функциональной закраски и т. д. Для изменения этих параметров следует использовать операцию установки формата графика (см. далее). На рис. 5. 8 показано то же построение, что и описанное выше, но с применением алгоритма удаления невидимых линий.

Задание и построение трехмерной поверхности с функциональной закраской
9 Задание и построение трехмерной поверхности с функциональной закраскойС помощью описываемых ниже команд изменения формата можно получить множество разновидностей 3D-графики. В частности, возможен вывод координатных осей. "параллелепипеда", обрамляющего фигуру, и иных деталей подобных графиков, например титульных надписей.
Поскольку график строится на основе матрицы, содержащей только координаты высот фигуры, то истинные масштабы по осям Х и Y не известны и на рисунках не проставляются. Могут, впрочем, выводиться просто порядковые номера элементов матриц в заданном направлении (по Х и по Y). Надо также следить за тем, как сформировать векторы Х и Y, с тем чтобы фигура выглядела естественно и занимала нужное место в пространстве. Все это несколько затрудняет быстрое создание графиков трехмерных поверхностей нужного вида.
Большие возможности дает несколько иной способ задания трехмерных поверхностей — в параметрическом виде. При этом приходится формировать три матрицы — X, Y и Z — и указывать их в шаблоне в виде X, Y, Z. В Главе 14 (в разделе 14. 1) дан ряд примеров такого задания трехмерных поверхностей.
Задание и построение трехмерной поверхности с удалением невидимых линий
8 Задание и построение трехмерной поверхности с удалением невидимых линийНетрудно заметить, что применение алгоритма удаления невидимых линий делает рисунок трехмерной поверхности намного более наглядным. Дальнейшее повышение наглядности восприятия 3D-поверхностей обеспечивается применением функциональной закраски. По существу, она дает дополнительную информацию о третьем измерении; в нашем случае, чем ниже расположена поверхность фигуры, тем она темнее (см. рис. 5. 9).

Задание трех функций и вывод незаполненного шаблона графика
2 Задание трех функций и вывод незаполненного шаблона графикане вполне удобными (например, будут представлены неокругленными десятичными цифрами), для представления целиком всего графика в максимальном размере. Рекомендуется всегда вначале использовать автоматическое масштабирование и лишь затем изменять масштабы на более подходящие.
Чтобы произошло построение графика в автоматическом режиме вычислений, достаточно вывести курсор за пределы графического объекта. В ручном режиме вычислений для этого нужно еще нажать клавишу F9. При построении область графика во время вычислений ординат функций покрывается зеленой штриховкой, затем графики функций появляются в шаблоне (см. рис. 5. 3).
Если что-либо в построенном графике не вполне удовлетворяет пользователя, можно применить описанные ниже операции изменения его формата.
Завершение создания гиперссылки
22 Завершение создания гиперссылки

MathCAD 7.0
Диалоговое окно форматирования текста
7 Диалоговое окно форматирования текста
Это окно содержит три перекчючателя для выбора стиля набора и разме ра шрифтов
Font Style (Стиль) — стиль шрифтов, Font (Шрифт) — набор шрифтов, Size (Размер) — размер шрифтов
Набор шрифтов определяется тем, какие шрифты инсталлированы в системе Windows, в которой работает MathCAD. Стиль шрифтов может быть нормальный (особо не называется) или-Bold (Полужирный) - полужирный шрифт;
Italic (Наклонный) - наклонный шрифт;
Underline (Подчеркивание) - подчеркнутый снизу шрифт
Эти три стиля шрифтов можно использовать в любой комбинации и с любым набором шрифтов Они могут быстро вводиться пиктограммами с буквами В, / и ц, размещенными в строке символов.
Имеется также ряд включаемых или выключаемых опций под именем Effect (Эффект):
Strikeout (Зачеркнутый) — перечеркнутые посередине символы;
Underline (Подчеркнутый) подчеркнутые снизу символы;
Substript (Подстрочный) — подстрочные символы;
Superscript (Надстрочный) — надстрочные символы.
Как обычно, кнопка ОК диалогового окна фиксирует выбор, а кнопка Cancel позволяет отказаться от модификации текстовых надписей На рис. 6 8 представлены образцы шрифтов для набора SchoolBook, содержащего буквы как латинского, так и русского алфавитов
Диалоговое окно обрамления документов
48 Диалоговое окно обрамления документов
В основном окне можно установить, какой колонтитул создается верхний, Headers, или нижний, Footers (в нужной позиции устанавливается жир ная точка) Опция Enable (Включить), будучи введенной (знак х), обеспечи вает печать колонтитулов, в противном случае колонтитулы не печатаются
Это окно содержит три окна ввода надписей Left (Слева), Center (По центру) и Right (Справа) Соответственно и введенные надписи будут печататься в выбранном колонтитуле с выравниванием по левому краю, по центру или по правому краю.
Имеется ряд кнопок для автоматического занесения в колонтитулы следующих данных:
Filename (Файл) — имя файла;
Page # (Стр №) — номер страницы;
Date (Дата) — текущая дата;
Time (Время) — текущее время.
Эти данные заносятся по месту расположения курсора после нажатия соответствующей кнопки внизу основного окна. Клавиша Fonts (Шрифты) дает возможность выбора подходящего шрифта для текстов колонтитулов.
Кроме тот о, клавиша Fonts выводит стандартное окно выбора шрифта, которым набираются упомянутые выше надписи. Они появляются только на распечатках документов (рис. 6. 49), но не в видимом окне редактирования.
Диалоговое окно задания цветов
38 Диалоговое окно задания цветов
Помимо указанных опций есть еще две, которые возможны только в том случае, если видеосистема компьютера может дать 256 цветов и выше:
Use Default Pallette — задание исходной цветовой палитры;
Optimize Pallette — оптимизация цветовой палитры для BitMap-рисунков.
С помощью указанных средств графическая оболочка системы MathCAD может быть подстроена под вкус любого пользователя. Подменю Color открывает доступ к командам цветового оформления документов, позволяющим придать им наглядный и эстетически приятный вид, удовлетворяющий самым изысканным запросам. Однако если предполагается печать документов монохромным принтером или их просмотр на монохромном дисплее, то к цветовым выделениям надо относиться внимательно.
Документ с колонтитулами, выведенный в режиме просмотра
49 Документ с колонтитулами, выведенный в режиме просмотра
Четыре кнопки внизу окна Fonts служат для вставки в панель окна ввода колонтитулов следующих данных:
Filename — имя файла;
Page # — номер страницы;
Date — дата;
Time текущее время.
Указанные выше данные вставляются в колонтитулы в символической форме, но отображаются при просмотре и печати страницы в явном виде.
Документ с закрытой областью
47 Документ с закрытой областью
Как видно из рис 6 47, после изображения замков выводятся данные о времени создания закрытой области Если теперь попытаться модифицировать введенное в нее математическое выражение или перетащить его на другое место, то из этого просто ничего не выйдет
Операция Unlock Area позволяет в случае необходимости открыть Закрытую область и выводит уже описанное окно ввода пароля Если в нем вве сти ранее заданный пароль, то замки в ограничителях закрытой области откроются и она станет открытой Выделив ограничители, их можно убрать (например, нажатием клавиши F3 или с помощью операции Delete в подменю позиции Edit главного меню) Ограничители задаются сразу парой и стираются одновременно
Два графика одной поверхности
36 Два графика одной поверхности
Форматирование цвета (Color)
6. 16. Форматирование цвета (Color)Для изменения цветов существует позиция Color (Форматирование цветов) подменю Format Она выводит подменю со следующими командами Background... (Фон) — выбрать цвет фона окна
Highlight... (Подсвеченное выражение) — выбрать цвет выделения выражений;
Annotation Color... (Аннотации) — выбрать цвет аннотаций.
Любая из этих команд выводит стандартное диалоговое окно, показанное на рис. 6. 38. Каждое окно обладает титульной строкой с названием соответствующей команды.
Форматирование цветов и линий
Форматирование цветов и линийПанель Color&Lines (Цвета и линии), как показано на рис. 6. 27, служит для установки цветовых параметров 3D-графики.
Она устанавливает следующие опции группы Shading (Раскраска):
Color (Цветная) — цветная раскраска;
None (Нет) — отсутствие раскраски;
Grayscale (Черно-белая) — раскраска точками с разной плотности.
Если используются возможности построения фигур с интерполяцией Interpolated Mesh (Сетка интерполяции), то панель Color&Lines позволяет установить число строк (No. of Rows) и столбцов (No. of Columns) для узловых точек фигуры.
Опция Hide Mesh (Невидимые линии) группы Fill Style (Стиль заполнения) позволяет включать или выключать алгоритм удаления невидимых линий каркаса изображения. Опция Path Plot (Площадки) этой группы задает особый вид графика — площадочный. Он показан на рис. 6. 27.

Форматирование графика 3D Bar Chart
34 Форматирование графика 3D Bar ChartГрафики этого типа довольно специфичны. Однако их удобно использовать для построения гистограмм, представляющих данные матриц.
На рис. 6. 35 представлены три типа гистограмм: Matrix, Stacked и Side By Side. Установка типа гистограмм производится в панели Color&Lines окна форматирования графика типа 3D Bar Chart.
Форматирование графика типа 3D Color&Lines
33 Форматирование графика типа 3D Color&Lines
Форматирование графика типа 3D Data Points
6. 13. Форматирование графика типа 3D Data PointsГрафик типа 3D Data Points — разновидность ЗD-rpaфикa. Этот тип графика представляет расположение точек в пространстве, заданное матрицей М. При этом точки могут быть заданы различными фигурами, например кружками или прямоугольниками, прямыми и наклонными крестиками и т. д.
Окно форматирования таких графиков подобно уже описанному для обычных ЗD-гpaфикoв. На рис. 6. 33 оно представлено с открытой панелью выбора цветов и линий.
Результат форматирования — график типа 3D Data Points — представлен слева от окна форматирования. Графики такого типа редко бывают наглядными Их надо применять лишь по прямому назначению — для отображения облака точек (или иных фигурок) в пространстве.
Форматирование графиков типа 3D Ваг
6. 14. Форматирование графиков типа 3D ВагЕще один вид графиков трехмерной поверхности — 3D Bar Chart — задается столбиками, высота которых определяется координатой функции z (x, у). Окно форматирования в данном случае практически такое же, как и для других видов трехмерной графики. На рис. 6. 34 оно показано при открытой панели Color&Line с заданием функциональной окраски столбиков графика.

Форматирование колонтитулов (Headers/Footers)
6. 20. Форматирование колонтитулов (Headers/Footers)При печати документов нередко требуется внести в заголовок (Header) или нижнюю строку (Footer) каждой страницы некоторую служебную информацию либо надпись, например имя файла, номер с границы, дату создания и др Такие надписи называют колонтитулами (верхними или нижними)
Эта возможность реализуется командой Headers/Footer (Колонтитулы) в позиции Edit главного меню, выводящей диалоговое окно, показанное на рис 6 48
Форматирование контурных графиков
6-12. Форматирование контурных графиковКонтурные графики строятся линиями равного уровня. Такие линии получаются, если трехмерная фигура пересекается рядом параллельных плоскостей. Этот вид графики широко применяется в картографии. Полезен он и для оценки числа пиков и впадин сложных поверхностей; нередко при обычном построении графиков эти пики и впадины попросту не видны, поскольку заслоняются передним планом фигуры.
Построение таких графиков — достаточно трудоемкая задача. MathCAD же делает ее ничуть не более сложной, чем построение обычного графика трехмерной поверхности. Если контурный график построен, то позиция Graph подменю Format будет содержать операцию установки формата таких графиков — 3D Plot.
Эта операция выводит окно форматирования контурных графиков. Большинство опций в этом окне уже описывалось. Наиболее важными являются те из них, которые находятся в панели Color&Lines (см. рис. 6. 30):
Contour Lines (Линии уровня) — показать контурные линии;
Numbered (Пронумеровать) — оцифровать контурные линии;
Auto Contour (Автолинии) — автоматически установить количество контурных линий;
No. Of Contours (Число линий) — установить заданное количество контур ных линий.
Форматирование координатных осей
Форматирование координатных осейОпции форматирования координатных осей сосредоточены в полях панели Axes (Оси). Она показана на рис. 6. 26.
Форматирование линий графиков
Форматирование линий графиковСледующая панель, Traces (Графики), показанная на рис. 6. 15, служит для управления отображением линий, которыми строится график.
С помощью опций этой панели можно управлять следующими параметрами линий графика:
Legend Label (Имя кривой) — указание типа линий у оси ординат, Symbol (Маркер) — выбор символа, который помещается на линию;
Line (Линия) — установка типа линий (сплошная, пунктирная и др.);
Color (Цвет) — цвет линий;
Type (Тип) — тип графиков;
Weight (Толщина) — толщина линий.
В средней части окна опций формата содержится каталог линий графиков с указанием следующих их установок:
Symbol (Маркер) — установка символа отметки базовых точек графика, Line (Линия) — установка типа линии;
Color (Цвет) — установка цвета линии и базовых точек;
Trace type (Тип) — установка типа графика
Форматирование математических выражений (Equation...)
6. 3. Форматирование математических выражений (Equation...)Математические выражения имеют довольно сложную структуру, они содержат переменные, константы, операторы и специальные знаки Все они могут иметь различный размер, чго иногда приводит к несоответствию вида этих объектов Чаще всего это связано с отказом от применения типовых устано вок MathCAD (по умолчанию) и неудачным форматированием математических выражений
Шрифты для математических символов привязаны к определенным их классам, например к числовым константам, переменным, надписям на графиках и т д Можно сказать, что они имеют определенные атрибуты Для переменных и надписей на графиках MathCAD по умолчанию использует шрифт Times Roman с размером 10 пунктов. Однако с помощью операции Equations... (Выражения) можно назначить для них, а также чисел и других символов в математических выражениях иной шрифт с иным размером Эта операция выводит диалоговое окно Format Equation, показанное на рис 6 4
Форматирование осей графика
Форматирование осей графикаВ панели X-Y Axes содержатся следующие основные опции, относящиеся к осям Х и Y (Axis X и Axis Y):
Log Scale (Лог. масштаб) — установка логарифмического масштаба;
Crid Lines (Линии сетки) — установка линий масштабной сетки;
Numbered (Пронумеровать) — установка цифровых данных по осям, Autoscale (Автомасштаб) — автоматическое масштабирование графика;
Show Markers (Нанести риски) — установка делений по осям;
Auto Grid (Автосетка) — автоматическая установка масштабных линий;
No. of Grids (Число интервалов) — установка заданного числа масштабных линий.
Все эти опции достаточно очевидны. Отметим лишь, что если опция Grid Lines отключена, то масштабная сетка графика не строится, хотя на осях размещаются короткие деления. Опция Numbered обеспечивает редактирование цифровых данных (указаний на масштаб). Например, она полезна для округ ления нижнего и верхнего пределов изменений значений абсцисс и ординат, которые при автоматическом выборе масштаба могут оказаться десятичными числами с дробной частью.
Возможна также установка следующих опций координатных осей (Axes Style):
Boxed (Рамка) — оси в виде прямоугольника;
Crossed (Репер) — оси в виде креста;
None (Ничего) — отсутствие осей;
Equal Scales (Равные деления) — установка равенства масштабов по осям графика.
В нижней части панели имеются следующие клавиши:
Close (OK) — закрытие окна;
Cancel (Отмена) — выход из установок;
Apply (Применить) — применение опций к выделенному графику, Help (Справка) — вывод подсказки.
Форматирование текста (Text...)
6. 5. Форматирование текста (Text...)Форматирование текста означает изменение типа шрифтов и их параметров Операция Text... (Текст) доступна лишь по отношению к выделенному фраг менту текста и активна только в том случае, когда курсор мыши находится в текстовой области Эта операция позволяет выбрать шрифт из имеющегося набора и изменить его в выделенной области текста При использовании операции Text... появляется окошко Text Format с каталогом шрифтов (см рис 67)
Графические установки по умолчанию
Графические установки по умолчаниюПанель Defaults (По умолчанию), как показано на рис. 6. 17, служит для установки опций графиков Change to Defaults (Вернуть значения по умолчанию) и Use for Defaults (Использовать для значений по умолчанию). Установленные и зафиксированные опции используются в дальнейшем при построении графиков функций одной переменной.

Графики функции, построенные с применением различных форматов
Рис. 6. 18 Графики функции, построенные с применением различных форматов
Графики, показанные на рис б 31, но представленные теперь в виде столбиковых диаграмм
37 Графики, показанные на рис б 31, но представленные теперь в виде столбиковых диаграмм
Изменение формата параграфа (Paragraph...)
6. 6. Изменение формата параграфа (Paragraph...)Если курсор мыши находится в текстовом блоке, то для форматирования параграфа можно использовать операцию Format Paragraph... (Формат параграфа) Она выводит диалоговое окно, показанное на рис. 6 9.
Образцы шрифтов набора SchoolBook
8 Образцы шрифтов набора SchoolBook
Многие шрифты, в частности наиболее распространенный True Type (ТТ), допускают изменение их размеров (см. пример внизу на рис. 6. 8), что также задается в указанном окошке. Можно, например, для заглавия документа выбрать большие жирные и наклонные буквы, а текстовые сообщения задать прямыми буквами малого или среднего размера с обычной жирностью Выбор типа шрифта зависит в основном от вкусов пользователя.
Обзор трехмерной поверхности
Обзор трехмерной поверхностиНа рис 6 25 панельный переключатель показан в положении View При этом возможна установка ряда параметров обзора SD-фигур, объединенных в несколько групп
Группа View (Вид) содержит опции. Rotation (Вращение) — задание угла поворота (от 0 до 180 градусов);
Tilt (Наклон) здание угла наклона (от 0 до 90 градусов),
Vertical Scale (Верт. масштаб) — задание относительного размера по вертикали (от 1до100%).
Группа Axes (Оси) задает тип отображения осей:
Perimeter (Периметр) — по периметру;
Comer (Репер) — в углу;
None (Ничего) — без вывода осей.
Группа Black Plans (Грани) содержит опции:
Show (Показать) — отображение в цвете;
Fill Color... (Закрасить) — установка цвета координатных плоскостей;
Enge Color... (Цвет ребер) — установка цвета ребер с целью выделения контуров граней и линий сетки.
При установке цветов появляется диалоговое окно выбора цвета. Выбор цвета определяется возможностями применяемого видеоадаптера. Группа Display As... (Отобразить как) служит для задания общего типа ЗD-графиков:
Surface Plot (Поверхность) — в виде ЗD-поверхности;
Contour Plot (Линии уровня) — в виде линий равного уровня;
Data Point (ЗD-точки) — в виде отдельных точек в ЗD-пространстве;
3D Bar Chart (ЗD-гистограмма) — в виде трехмерных гистограмм.
И наконец, группа Frames (Рамки) служит для установки опций видимости ограничительных элементов графиков:
Show Border (Показать обрамление) — задает рисунок в рамке;
Show Box (Показать ящик) — задает рисунок в трехмерном параллелепипеде.
На рис. 6. 25 показан график трехмерной поверхности с функциональной цветовой окраской и построением видимых линий каркаса (невидимые линии удалены). К сожалению, цвета графика в книге не различаются, так как печать черно-белая. Вместо цветов видна раскраска серым цветом разной плотности. Рядом с графиком помещена панель форматирования, которая дает информацию о всех опциях просмотра (панели View).

Окна выбора шрифтов для переменных
5 Окна выбора шрифтов для переменных
Параметры шрифтов устанавливаются раздельно для указанных выше объектов, но для всех подобных объектов в заданном документе остаются идентичными. Это позволяет выбрать стиль представления математических выражении, наиболее удобный для пользователя. Например, можно добиться приемлемого размера и стиля для всех составляющих математических выражений.
Следует отметить, что окно установки объектов можно активизировать и из окна выбора шрифтов, установив курсор мыши на маленький прямоугольник у правого верхнего угла этого окна и нажав левую клавишу мыши.
Окно для установки формата чисел
1 Окно для установки формата чисел
Это окно содержит три выделенные части В первой — Radix — устанавливается тип основания чисел Decimal (десятичное), Hex (шестнадцатиричное) или Octal (восьмеричное) Примеры вывода чисел в этих форматах даны на рис 6 1 Шестнадцатеричные числа отмечаются в конце символом "h", a восьмеричные — символом "о" Эти числа находят применение в основном для описания адресной системы компьютеров
Вторая часть Precision (точность) — задает погрешность вычислений в виде показателя степени -n для числа 10 в этой степени Задаются число отображаемых знаков Displayed (точность вывода), границы представления чисел в экспоненциальной форме Exponential Threshold (диапазон показателя), допустимая граница для комплексных чисел Complex Tolerance (комплексная точность) и допустимая граница для действительных чисел Zero Tolerance (точность нуля)
В третьей части — Imaginary (мнимая единица) — задается знак мнимой единицы для комплексных чисел 1 или J (напомним, что мнимая единица есть квадратный корень из -1) Комплексное число имеет представление вида
Z = а+ i * b,
где а = Re (Z) — действительная часть комплексного числа, a b = Im (Z) комплексная часть Z.
Если Re (Z)/Im (Z) >10n, то комплексное число Z выводится как действительное, а если Im (Z)/Re (Z) >10n, то число Z выводится как мнимое Значения п для этих представлений задает параметр Complex Tolerance Если действительное число больше числа 10 в степени п или меньше, чем 10 в степени -п, где п — значение параметра Exponencial Threshold, то число представляется в экспоненциальной форме Если значения чисел по модулю меньше указанных параметром Zero Tolerance, числа представляются в виде нулей Все это особенно важно при научно-технических расчетах, когда излишняя гоч-ность представления чисел ни к чему хорошему не ведет
С помощью диалогового окна можно сделать формат глобальным (Global) или локальным (Local) Последнее возможно, если соответствующее значение отмечено выделением Глобальный формат задает представление для всех числовых данных документа, а локальный — только для того блока, rде использовалась операция изменения формата
Для массивов чисел их вывод задается в виде матрицы, если поставить птичку" в прямоугольнике включения опции Display as Matrix (отображение в виде матрицы) Однако для больших массивов это может быть неприемлемо, так как такая матрица выходит за пределы экрана и даже страницы документа (см рис 6 2)
Окно форматирования математических выражений
4 Окно форматирования математических выражений
Это окно устанавливает группу объектов в математических выражениях, шрифтовое оформление которых подлежит модификации. К таким объектам относятся переменные (Variables), константы (Constant) и объекты пользователя (User N, где N — номер группы от 1 до 7).
Окно обеспечивает выбор шрифтового оформления для указанных выше объектов. При этом появляется окно с каталогом шрифтов и необходимыми для их задания опциями. На рис. 6. 5 приведен вид такого окна для выбора шрифта для переменных.
Окно свойств с включенной панелью Calculation
13 Окно свойств с включенной панелью CalculationЕще одно важное свойство математических выражений — их оптимизация. Опция Enable Optimization (Включить оптимизацию) включает режим оптимизации. При этом выражение, если оно вычисляется, представляется в аналитическом виде всегда, когда это возможно. Это свойство может привести к заметному ускорению вычислений в тех случаях, когда оптимизирующее выражение проще исходного. Особенно заметен выигрыш в скорости вычислений при использовании функций (например, функций вычисления интегралов или производных) численными методами.
Окно с опциями задания формата 2D-графика
14 Окно с опциями задания формата 2D-графикаКак видно из рис. 6. 14, диалоговое окно формата имеет панельный переключатель на четыре позиции:
X-Y Axes (X-Y Оси) — управление опциями осей;
Traces (Графики) — управление линиями графика;
Labels (Надписи) — управление метками (надписями) у осей;
Defaults (По умолчанию) — задание опций по умолчанию.
Важно отметить, что все установки опций графиков, которые видны в окнах формата, относятся к выделенному графику и могут при необходимости изменяться.
Окно с панельным переключателем для установки форматов графиков в полярной системе координат
21 Окно с панельным переключателем для установки форматов графиков в полярной системе координат
Переключатель содержит следующие позиции:
Polar Axes (Оси) — установка форматов отображения осей;
Traces (Графики) — управление линиями графика;
Labels (Надписи) — управление метками (надписями);
Defaults (По умолчанию) — задание опций по умолчанию.
На рис. 6.21 переключатель установлен в положение Polar Axes. При этом задаются форматы отображения радиус-вектора (Radial) и его угла (Angular). Возможные опции были описаны ранее, и нет смысла их повторять. Раздел Axes Style (Стиль осей) позволяет задать стиль отображения координатных осей в виде окружности вокруг графика Perimeter (Обрамление), в виде расположенных крестом осей Crossed (Визир) и без представления координатных осей None (Ничего).
Окно с предложением о вводе пароля
45 Окно с предложением о вводе пароля
Если не ввести пароль, то область будет закрыта навсегда Ввод пароля (рис 6 46) означает, что в дальнейшем область можно будет сделать откры той Обычно стоит предусмотреть такую возможность
Окно установки формата параграфа
9 Окно установки формата параграфа
Окно установки формата параграфа имеет две опции Indent (Отступы):
All Lines (Для всех строк) — установка отступа для всех строк, First Lines (Для первых строк) — установка отступа для первых строк
Можно задать абзацный отступ как для всех строк, так и только для первой строки Кроме того, можно задать тип равнения строк Alignment (Выравнивание)
Left (Слева) — по левому краю абзаца, Right (Справа) — по правому краю абзаца, Center (По центру) — по центру абзаца
На рис 6 10 показаны примеры различного выравнивания текста При выравнивании текста слева задан абзацный отступ для первой строки

Панель Axes для 3D Plot Format
26 Панель Axes для 3D Plot Format
С помощью этой панели для каждой координатной оси устанавливаются следующие опции:
Grid Lines (Линии сетки) — вывод масштабных линий;
Numbered (Пронумеровать) — оцифровка линий;
Auto Grid (Автосетка) — автоматический выбор числа линий;
No. of Grids (Число интервалов) — прямое задание числа интервалов;
Min. Val (Мин.) — минимальное значение координаты;
Max. Val (Макс.) — максимальное значение координаты.
Поскольку эти опции достаточно очевидны, ограничимся лишь их упоминанием.
Панель Color&Lines для 3D Plot Format
27 Панель Color&Lines для 3D Plot FormatДля демонстрации отличий в виде 3D графиков на рис 6 28 показан тот же график, что на рис 6 27, но при отключенной опции Path Plot Нетрудно заметить, насколько резко изменится вид графика
Панель Color&lines окна форматирования контурных 3D-графиков
30 Панель Color&lines окна форматирования контурных 3D-графиков
Интересным моментом форматирования контурных графиков является оцифровка линий уровня. Однако обычно она загромождает график. Последний на рис. 6. 30 представлен без оцифровки, но с применением функциональной закраски.
Панель Labels окна установки форматов графиков в полярной системе координат
22 Панель Labels окна установки форматов графиков в полярной системе координат
Опции панелей Traces и Labels также аналогичны ранее описанным. Панель Labels упрощена (рис 6. 22), на ней предусмотрена установка только дополнительной титульной надписи.
Панель Defaults позволяет зафиксировать введенные опции и использовать их в дальнейшем как опции по умолчанию. Таким образом, вы можете один раз настроить систему под нужный вид графиков и в дальнейшем использовать сделанные установки для построения других графиков
Панель Traces
15 Панель Traces
Узловые точки графиков (для которых вычисляются координаты) часто требуется выделить какой-либо фигурой кружком, крестиком, прямоугольником и т д Опция Symbol (Маркер) позволяет задать следующие отметки базовых точек графика каждой из функции none (ничего) — без отметки, x's — наклонный крестик, +'х — прямой крестик, box (квадрат) — квадрат, dmnd (ромб) ромбик, o's — окружность
Графики отдельных функций можно также выделять, используя для их построения линии различного типа Опция Line задает построение следующих типов линий
none (ничего) — линия не строится, solid (сплошная) — непрерывная линия, dash (пунктир) — пунктирная линия, dadot (штрих-пунктир) — штрих-пунктирная линия
Другой распространенный способ выделения линии, относящихся к раз личным кривым на графике, заключается в изменении их цвета Разумеется, этот метод эффективен при применении цветного дисплея и цветного (например, струйного) принтера для распечатки графиков Опция Color (Цвет) задает следующие основные цвета линии и базовых точек red — красный, blu — синий, gm — зеленый, суа — голубой, bm — коричневый, Ыс черный
Панель установки форматов 3D-графиков
25 Панель установки форматов 3D-графиковПанель установки и фиксации опций
17 Панель установки и фиксации опцийС помощью комбинаций этих опций можно создавать различные виды графиков, например: с обозначением функций или без них, с обозначением аргумента или без него и др. Обозначения исчезают, если задано, что они должны исчезнуть, как только будет снято выделение графика.
Панель задания дополнительных надписей
16 Панель задания дополнительных надписей
Для установки надписей служат небольшие окошки:
Title (Заголовок) - установка титульной надписи к рисунку;
X-Axis (Х-ось) - установка надписи по оси X;
Y-Axis (Y-ось) - установка надписи по оси Y.
В разделе Title содержатся опции Above (Сверху) и Below (Снизу) для установки титульной надписи либо над рисунком, либо под ним. Активизация этих опций задается установкой жирной точки в кружке. Кроме того, опция Show Title (Показать заголовок) позволяет включать или выключать отображение титульной надписи. Для ее активизации служит квадратное окошко, пустое при отказе от вывода надписи и с крестом — при выводе надписи.
Панель задания и вывода титульных надписей Title для 3D-графиков
29 Панель задания и вывода титульных надписей Title для 3D-графиков
Выведенные таким образом надписи органично присущи графику. Поэтому они не исчезают при перестройке графиков, что иногда случается с надписями, которые выполняются в виде текстовых блоков, наложенных на блоки графиков.
Подготовка к просмотру части графика
20 Подготовка к просмотру части графика
Перемещением мыши с нажатой левой клавишей можно выделить определенную часть графика. При этом минимальная и максимальная координаты по осям Х и Y отображаются в окне данной операции. После этого можно реализовать три варианта просмотра:
Zoom (Увеличение) — просмотр вырезанного участка;
Unzoom (Отмена увеличения) — отмена просмотра вырезанного участка;
Full View (Полный обзор) — полный просмотр.
Эти действия настолько очевидны, что дальнейшее их описание лишено смысла. В целом надо отметить, что форматирование графиков в декартовой системе координат позволяет получать практически все типы таких графиков, используемых в математической и научно-технической литературе.
Показывает, что в этом случае проблем с построением графика нет.
41 показывает, что в этом случае проблем с построением графика нет.Вообще надо отметить, что эта операция (увы!) в новой версии работает неустойчиво. Отмечались случаи, когда при большом числе перекрывающихся областей она отказывалась выполнить их разделение. Возможно, фирма MathSoft устранит этот недостаток при доводке версии MathCAD 7. 0 PRO. Вообще же говоря, при подготовке документов надо заранее побеспокоиться о правильном расположении блоков в них.
Попытка построить график функции
39 Попытка построить график функции
график остался непостроенным и буква f в названии функции оказалась выделенной красным цветом ошибки.

Построение графиков фрактальных поверхностей
31 Построение графиков фрактальных поверхностей
Прекрасной иллюстрацией применения контурных графиков является построение фрактальных поверхностей. Эту возможность иллюстрирует рис. 6. 31, на котором приведены графики двух таких поверхностей.
Еще две фрактальные поверхности показаны на рис. 6. 32. Этот рисунок является просто продолжением рис. 6. 31. Нетрудно заметить, что комбинация двух целых ранжированных чисел (меняющихся от О до 10) и третьего числа (заданного константой) позволяет строить весьма необычные рисунки.
Позиция Format главного меню
6. 1. Позиция Format главного менюПод форматом объектов подразумевается некоторый набор их характеристик:
размеры изображения объекта на экране, размеры и стиль символов математических выражений и текстовых комментариев, установки цвета и т. д. Начинающие пользователи системы MathCAD, как правило, вполне удовлетворены всеми форматами, которые заданы по умолчанию. И это не случайно — форматы выбраны с учетом устоявшейся практики научно-технических вычислений и технических характеристик современных ПК.
Однако по мере освоения системы те или иные форматы нужно будет изменить. К примеру, пользователя может не удовлетворить точность представления дробных чисел всего тремя цифрами после запятой или отсутствие изображения осей на графике, либо, напротив, их присутствие. Может потребоваться изменение размеров математических символов в формулах или шрифтов в текстовых комментариях.
В соответствии с новой концепцией пользовательского интерфейса системы MathCAD 7. 0 PRO, ориентированной на стандартный Windows-интерфейс, все операции изменения формата сведены в подменю позиции Format (Форматирование) главного меню. В прежних версиях MathCAD операции форматирования были разбросаны по разным позициям главного меню.
Подменю Format (Формат) имеет следующие позиции:
Number... (Формат числа) — установка формата чисел;
Equation... (Формат выражений) — установка формата выражений;
Text... (Формат текста) — установка формата текста;
Paragraph... (Формат параграфа) — установка формата параграфа;
Style... (Формат стиля) — установка формата стиля;
Properties... (Свойства) — установка свойств;
Graph (Формат графиков) — установка формата графиков;
Color (Цвет) — установка цвета;
Separate Region — разделение областей (блоков);
(Разделение областей)
Align Region — задание расположения областей вывода
(Расположение областей) символьных вычислений;
Lock Region — создание закрытых (недоступных (Запирание областей) для редактирования) областей;
Header/Footer... (Колонтитулы) — создание колонтитулов.
Ниже рассмотрено действие всех этих операций.
Представление большого массива чисел в виде матрицы
2 Представление большого массива чисел в виде матрицы

Представление большого массива в виде электронной таблицы
3 Представление большого массива в виде электронной таблицыЕсли опция Display as Matrix отключена, то большие массивы отображаются как электронные таблицы (со слайдерами для просмотра всего массива, появляющимися при активизации ячейки таблицы) Такая форма представления показана на рис 6 3.
Отображение больших массивов в виде электронной таблицы, несомненно, более компактно и удобно Но оно не совсем соответствует традиционной матричной форме представления двумерных массивов, принятой в математике. Следует обратить внимание на то, что при выделении таблицы появляются затемненные графы, в которых видны индексы ячеек таблицы (элементов массива)
Применение графического маркера
Применение графического маркераЕще одной возможностью при работе с 2D графиками является применение специального графического маркера в виде двух перекрещивающихся пунктирных линий Они появляются при выполнении операции X-Y Trace При этом появляегся перемещаемое окно этой операции, показанное на рис 6. 19
Примеры на форматирование 2D-графиков
Примеры на форматирование 2D-графиковВлияние некоторых опций показано на графиках, расположенных слева от диалогового окна установки опций. Напоминаем, что для визуализации оп ций при выведенном окне их установки служит клавиша Apply (Применить) каждого диалогового окна. Эта клавиша позволяет начать наблюдение за сделанными изменениями еще до закрытия окна задания опций, что заметно облегчает экспериментирование с различными форматами графиков.
В целом перечисленные опции предоставляют возможность создавать графики самых различных видов, удовлетворяющие любым запросам пользователя (см., например, шесть типов одного и того же графика на рис. 6. 18).
Задание различных форматов графики позволяет уверенно различать кривые на графике и соотносить их с той или иной функцией, а введение дополнительных надписей (титульной и по осям) — дополнительно разнообразить графики.
Примеры на применение графиков различного вида
6. 15. Примеры на применение графиков различного видаБогатые возможности графики системы MathCAD позволяют выполнять детальный анализ сложных трехмерных поверхностей путем построения различного типа графиков одной и той же поверхности. Во многих случаях благодаря этому можно выяснить с помощью второго графика особенности, мало заметные или вообще исчезающие при построении первого графика (см. рис. 6. 36).
На рис. 6. 37 показано два графика, которые были приведены на рис. 6. 31. Здесь они переформатированы под столбиковые диаграммы (при этом матрица А на левом графике взята со знаком минус).
Хотя эти графики выглядят не столь занимательно, как исходные (рис. 6. 31), но они позволяют понять, как образуются фрактальные кривые. Позже мы еще не раз будем пользоваться мощными средствами графической визуализации результатов математических вычислений, представляемыми MathCAD.
Графики трехмерных поверхностей, а также импортируемые рисунки могут перемещаться в любом направлении в нужное место окна текущего документа. Можно также плавно менять их размеры. Все эти действия осуществляются точно так же, как в случае с 2D-гpaфикaми.
С каждой версией MathCAD графические возможности системы улучшались и в версии 7. 0 PRO достигли высокой степени совершенства. Это позволило создавать математические графики практически всех типов Особенно удачно решено построение трехмерных графиков которое можно осуществ лять с удалением и без удаления невидимых линий каркаса с монохромной и цветной функциональной закраской с различными углами поворота и т д
Примеры выравнивания текста
Рис. 6. 10 Примеры выравнивания текстаВ прежних версиях MathCAD было два типа текстовых блоков в виде блока с малой шириной и в виде абзаца с полной шириной, равной ширине страницы В новой версии остался лишь один блок, с его помощью можно задавать как узкие надписи, так и надписи во всю ширину страницы
Пример документа с произвольно расположенными блоками
42 Пример документа с произвольно расположенными блокамиПример построения графика функции после ручной коррекции положения областей
41 Пример построения графика функции после ручной коррекции положения областей
Пример выравнивания блоков по вертикали
43 Пример выравнивания блоков по вертикали
потребоваться, например, в обучающих программах, где в такие области можно помещать примеры, запрещенные к применению учащимися.
Операция Lock Regions (Закрытые области) позволяет реализовать эту возможность. Она выводит подменю со следующими операциями по созданию и управлению такими областями:
Set Lock Area... (Область) — определить защищаемую область рабочего документа;
Lock Area... (Закрыть) — включить защиту области;
Unlock Area... (Открыть) — редактировать защищаемую область.
Первая из этих операций устанавливает на экран дисплея две горизонтальные черты — ограничители закрытой области с пиктограммой открытого замка в их начале (см рис 644) Пространство между ними и есть будущая закрытая область

это как раз тот пример,
32 Продолжение документа, показанного на рис. 6. 31
Фракталы — это как раз тот пример, когда полезна именно контурная графика. Вы можете построить графики (см. рис. 6. 31) в виде графиков трехмерных поверхностей. Хотя они тоже выглядят необычно, но не имеют того эстетического вида, который характерен для фракталов в виде графиков с линиями равного уровня.
Просмотр части графика
Просмотр части графикаОперация Format Zoom... позволяет просматривать выделенную часть графика в полярной системе координат Выделение производится изменением радиуса выделяющей пунктирной окружности Нажав кнопку Zoom окна просмотра, можно получить график выделенной части с увеличением (см рис 6. 24)

Просмотр части графика в полярной системе координат
24 Просмотр части графика в полярной системе координатНазначение остальных кнопок окна просмотра то же, что и у окна просмотра графиков в декартовой системе координат
Просмотр части графиков с увеличением
Просмотр части графиков с увеличениемЕще одна новая особенность при работе с 20-графиками заключается в возможности их просмотра с увеличением отдельных частей этих графиков. Она реализуется операцией X-Y Zoom, которая выводит информационное окно, показанное на рис. 6.20.
Работа со стилями текстовых комментариев
11 Работа со стилями текстовых комментариев
Окно выбора стилей имеет перечень стилей и ряд кнопок для задания следующих операций:
Apply (Применить) — применить выбранный стиль;
New... (Новый) — задать новый стиль;
Modify... (Модифицировать) — модифицировать выбранный стиль;
Delete (Стереть) — стереть заданный стиль;
Close (Закрыть) — закрыть окно и отказаться от выбора стиля.
На рис. 6. 11 справа показаны примеры применения различных стилей к надписям с названиями соответствующих стилей. Они дают наглядное представление о стилях, которое явно заимствовано из стилевого оформления текстовых документов в редакторе Word 95.
Операция New... позволяет задать новый стиль со своим именем, а операция Modify... — модифицировать уже имеющийся стиль. На рис. 6. 11 показаны дополнительные окна, которые появляются при выполнении операции Modify... (операция New... отличается от нее только вводом заголовка нового стиля).
В окне модификации стиля можно выбрать нужный набор символов (кнопка Font...) и задать параметры параграфа (кнопка Paragraph...). Задание нового стиля дополняет уже указанный список стилей.
Работа с графическим маркером
19 Работа с графическим маркером
При выключенной опции Track Data Points (Перемещение по точкам данных) маркер свободно перемещается по графику При этом его координаты отображаются в окне этой опции Поместив маркер на какую-либо интересную точку графика, можно примерно определить ее координаты
Однако вручную трудно точно совместить маркер с выбранной точкой графика. Поэтому предусмотрен режим слежения за кривой графика. Он реализуется включением опции Track Data Points. При этом перемещение маркера происходит по кривой графика, и можно легко установить его точно на любую точку этой кривой.
Разделение областей (Separate Regions)
6. 17. Разделение областей (Separate Regions)Области различных объектов в документах могут налагагься друг на друга. Это не только нарушает эстетический вид документов, но и приводит в ряде случаев к возникновению ошибочных ситуаций из-за невыполнения требуемой последовательности просмотра блоков.
Перемещение блоков в сложном и плотно заполненном блоками документе вручную — процесс весьма трудоемкий, к тому же делать это очень неудобно. Лучше воспользоваться операцией Separate Regions (Разделить области), обеспечивающей автоматическое разделение перекрывающихся областей. Эту операцию можно вводить также нажатием клавиш Ctrl+ S.
К сожалению, данная операция не всегда приводит к успеху. Проиллюстрируем это следующим примером. На рис. 6. 39 показана попытка построить график функции f (x). Она оказалась неудачной, поскольку шаблон графика налез на шаблон функции.
Можно было бы ожидать, что при выполнении операции Separate Region этот конфликт будет улажен. Но увы, как видно из рис. 6. 40, попытка разделения областей хотя и удалась (области разделились!), но область задания функции была перемещена под область с шаблоном графика. В результате
Создание закрытых областей в документе (Lock Regions)
6. 19. Создание закрытых областей в документе (Lock Regions)В ряде случаев в документе желательно создать некоторые закрытые (т. е. недоступные для редактирования посторонними лицами) области. Это может

Таблица ввода греческих букв
6 Таблица ввода греческих букв
Большинство греческих букв легко ассоциируются с латинскими Помни те, что есть комбинации клавиш для ввода математических спецсимволов Так, нажатие клавиш Ctrl+ P вводит константу "пи ', a Ctrl+ Z — знак беско нечности
Трассирование графика Format
Трассирование графика FormatВ полярной системе координат, как и в декартовой предусмотрена возможность трассирования графиков с помощью графического маркера. Она реализуется операцией Format Trace, которая выводит информационное окно, показанное на рис. 6 23

Трассирование графика в полярной системе координат
23 Трассирование графика в полярной системе координатТрассировка в данном случае производится вращательными движениями мыши и перемещением ее курсора по кругу На графике появляется радиальный отрезок пунктирной прямой и пунктирная окружность Отрезок прямой задает угол радиус-вектора, а окружность — положение его конца, т. е. расстояние от центра координатной системы до точки пересечения вращающегося отрезка с окружностью. Координаты (угол и расстояние) показывает окно трассировки.
Трассировка возможна без слежения за кривой рисунка и со слежением. Для осуществления слежения надо поставить "птичку" в прямоугольном окошечке опции Track Data Point. С помощью кнопок Copy Angle и Copy Radius положение конца радиус-вектора текущей точки (угла и длины радиус-вектора) можно скопировать в буфер обмена. А с помощью команды Paste в позиции Edit главного меню можно перенести это значение в математическое выражение, в котором оно нужно
Трехмерная поверхность при отключенной опции Path Plot
28 Трехмерная поверхность при отключенной опции Path Plot
В графике на рис 6 28 применена функциональная закраска типа Gray Scale (оттенками серого цвета) Она целесообразна, если устройства вывода (например, матричные или лазерные принтеры) не способны дать изображение в цвете
Последняя группа опций — Contours (Уровни) — задает параметры построения контурных графиков Для графиков, имитирующих объемность поверхности, эта группа опций недоступна. Поэтому мы опишем их действие несколько позже, при рассмотрении контурных графиков.
Три основных типа гистограмм (график 3D Bar Chart)
35 Три основных типа гистограмм (график 3D Bar Chart)
Графики в виде гистограмм, показанные на рис. 6. 35, широко применяются для отображения данных экономических, статистических и финансовых расчетов.
Установка формата чисел (Number...)
6. 2. Установка формата чисел (Number...)Операция Number... (Формат числа) выводит диалоговое окно (см. рис. 6. 1), сообщающее о формате числовых данных системы. Все имеющиеся в этом окне форматы могут быть изменены.
Установка формата двумерной графики (X-Y Plot)
6. 9. Установка формата двумерной графики (X-Y Plot)Позиция Graph в подменю Format задает форматы графиков. Начнем с операции X-Y Plot... (Формат декартовых графиков). Она выводит в центр текущего окна окно с опциями формата графиков 2D-типа (см. рис. 6. 14). Следует помнить, что для изменения формата уже построенного графика необходимо выделить его. Выделенный график обводится сплошной линией с маркерами его растяжения.

Установка форматов графиков трехмерных поверхностей (3D Plot...)
6. 11. Установка форматов графиков трехмерных поверхностей (3D Plot...)Позиция 3D Plot... (Формат 3D-графика) подменю Format служит для установки форматов представления 3D-графиков (см рис 6 25)
Панельный переключатель окна установки форматов 3D-графиков содержит следующие позиции
View (Вид) — установка опций обзора 3D-фигур, Axes (Оси) — установка опций представления осей;
Color&Lines (Цвет и линии) — установка цвета и типа линий, Title (Заголовок) — установка титульной надписи
Рассмотрим эти операции, начиная с обзора трехмерной поверхности
Установка форматов графиков в полярной системе координат (Polar Plot...)
6.10. Установка форматов графиков в полярной системе координат (Polar Plot...)Позиция Polar Plot... (Формат полярных графиков) главного меню обеспечивает задание форматов графиков, которые строятся в полярной системе координат. Она выводит окно с панельным переключателем (см. рис. 6.21).
Установка ограничителей закрытой области
44 Установка ограничителей закрытой областиOграничители закрытой области можно, как и любые объекты, выделять и перемещать вверх или вниз по документу Таким образом можно регулировать высоту закрываемой области После установки ограничителей закрываемой области надо поместить в нее те объекты, доступ к которым закрывается После этого надо исполнить операцию Lock Arrea..., которая вызывает появление окна с предложением о вводе пароля (см рис 6 45)
Установка свойств математического выражения
12 Установка свойств математического выражения
В данном случае окно имеет панельный переключатель с двумя позициями:
Displayed (Отображение) — свойства вывода;
Calculation (Вычисления) — свойства вычислений.
К свойствам вывода в данном случае относится лишь наличие или отсутствие подкраски фона математического выражения. Активизируя кнопку Choose Color... (Выбрать цвет), можно вызвать окно задания цвета фона выражений, оно показано справа от окна установки свойств на рис. 6. 12.
Панель Calculation (см. рис. 6. 13) предназначена для отключения или включения эволюции математических выражений. Под эволюцией математических выражений подразумевается их активность. Напоминаем, что обычно математические выражения активны и выполняют определенные действия. Однако, используя опцию Dissable Evalution (Отключение эволюции), выражение можно сделать пассивным, т. е. просто комментарием.

Установка свойств (Properties...)
6. 8. Установка свойств (Properties...)Одно из определяющих понятий в операционных системах Windows 95/NT — свойства различных объектов. Это могут быть цвета выделений, характер эволюции математических выражений и т. д. Операция Properties... (Свойства) позволяет устанавливать свойства различных объектов. Таким образом, это контекстно-зависимая операция и ее диалоговые окна могут несколько отли чаться для разных объектов. Выбор объектов, как обычно, задается установкой в них курсора мыши.
На рис. 6. 12 показано окно установки свойств для объекта — математического выражения.
Ввод пароля закрываемой области
46 Ввод пароля закрываемой области
Учтите, что при вводе пароля вместо символов нажимаемых клавиш в поле ввода (посередине окна) выводятся звездочки Это сделано для того, чтобы никто не мог посмотреть сзади, какой вы ввели пароль Пароль надо вводить такой, чтобы его можно было запомнить (неплохо записать его в свою записную книжку)
После ввода пароля выделенная область закрывается, а пользователь лишается возможности ее модернизации (см рис 6 47)
Выравнивание областей (Align)
6. 18. Выравнивание областей (Align)Операция Align Region служит для организации специального выравнивания областей различных блоков. Она выводит подменю с двумя позициями:
Across (Вдоль) — выровнять выделенные области вдоль горизонтальной
линии, расположенной посередине между верхними краями высшей и низшей из выделенных областей;
Down (Вниз) — выровнять выделенные области вдоль вертикальной линии, расположенной посередине между левыми краями самой правой и самой левой из выделенных областей. Эти операции применяются как элемент комбинированного форматирования документов. Подлежащие перемещению блоки должны быть предварительно выделены. На рис. 6. 42 показано произвольное расположение трех блоков документа и их выделение с помощью мыши (напоминаем, что оно выполняется перемещением мыши при нажатой левой клавише).
Если нужно расположить блоки строго друг под другом, то в данном случае надо использовать операцию Align Down. Результат выполнения этой операции представлен на рис. 6. 43: все блоки расположены друг под другом и выровнены по левому краю.
Рассматриваемые операции следует применять осторожно, поскольку иногда блоки могут перекрываться. Так, в данном примере применение операции Align Across приведет к наложению блоков. Вообще говоря, полезно при подготовке документов сразу избегать наложения блоков друг на друга.
Задание надписей над и под графиком поверхности
Задание надписей над и под графиком поверхностиПанель.Title (Заголовок), как показано на рис. 6. 29, позволяет расположить введенную в окно Title титульную надпись. Опции Above (Сверху) и Below ( Снизу) устанавливают местоположение надписи относительно рисунка, опция Show Title (Показать заголовок) позволяет показать или скрыть титульную надпись.
Задание надписей в графиках
Задание надписей в графикахПанель меток Label (Надписи) позволяет вводить в рисунок дополнительные надписи, что иллюстрирует рис. 6. 16. Эта панель появляется, если уже создан текущий график.
Задание стиля текстовых комментариев (Style...)
6. 7. Задание стиля текстовых комментариев (Style...)Под стилем текстовых комментариев подразумевается совокупность параметров различных текстовых объектов заголовков различного уровня, абзацев, списков (листов) и т д Все они должны иметь свой определенный шрифт, размеры симво лов и иные параметры Подготовка текстовых комментариев в определенном сти ле необходима при создании документов высокого полиграфического качества
Операция Style... (Формат стиля) позволяет устанавливать стили для различных текстовых объектов. При ее выполнении выводится окно выбора стилей Text Styles, показанное на рис. 6. 11 сверху.
Задание типа линий графиков
Задание типа линий графиковВажное значение имеет и тип графика Опция Туре (Тип) задает следующие типы графика
line (линия) — построение линиями;
points (точки) — построение точками;
err (интервалы) — построение вертикальными черточками с оценкой интервала погрешностей;
bar (столбец) — построение в виде столбцов гистограмм;
step (ступенька) — построение ступенчатой линией step;
draw (протяжка) — построение протяжкой от точки до точки.
Возможные конфликты с отметкой символами и типами линий автоматически устраняются. При этом приоритет отдается опции Type (Тип), а конфликтные типы линий или точек отмечаются тремя звездочками. Каждая из указанных опций имеет свое меню с традиционными правилами его использования.
Еще две опции связаны с возможностью удаления с графика вспомогательных надписей:
Hide Argument — прячет обозначения математических (Скрыть переменные) выражений по осям графика;
Hide Legend (Скрыть имена) — прячет обозначения имен кривых графика.
Замена латинских букв на греческие (Ctrl+ G)
6. 4. Замена латинских букв на греческие (Ctrl+ G)К специфическим операциям форматирования можно отнести замену латинских букв на греческие. Греческие буквы можно ввести сразу выбором одной из пиктограмм в палитре греческих букв. Однако для этого надо пользоваться мышью, что не всегда удобно.
Есть и второй, порою более быстрый путь ввода греческих букв: достаточно ввести ассоциированную с греческой буквой латинскую букву и нажать одновременно клавиши Ctrl и G. В результате латинская буква заменится греческой. На рис. 6. 6 показаны таблицы соответствия между латинскими и греческими буквами.
MathCAD 7.0
Демонстрация неполного исполнения документа при вводе операции Calculate
3 Демонстрация неполного исполнения документа при вводе операции Calculate
Кстати говоря, график на рис 7 3 не отличается высокой представитель ностью" Это связано с тем, что задано слишком малое число точек Так что этот график наглядно показывает, что малое число точек может сильно иска зить графическую визуализацию функции В нашем случае это не важно, надо было лишь проиллюстрировать исполнение блоков
Диалоговое окно изменения системы единиц размерных величин
7 Диалоговое окно изменения системы единиц размерных величин
Диалоговое окно установки опций
6 Диалоговое окно установки опций
Это окно имеет следующие панели:
Built-in Variables... — установить значения встроенных (Встроенные переменные) (системных) переменных, Units System (Единицы — вывести подменю с позициями, Dimension (Размерность) — установить размерность величин.
Рассмотрим назначение опций в каждой из этих панелей
Документ в режиме ручных вычислений до ввода операции Calculate
1 Документ в режиме ручных вычислений до ввода операции Calculate
Чтобы начались вычисления, надо выполнить операцию Calculate любым из описанных выше способов. Вид документа после ввода этой операции показан на рис. 7. 2. Нетрудно заметить, что теперь выведен вектор значений х и построен график функции.
Если, однако, пролистать документ дальше и перейти к ниже расположенному экрану, то можно обнаружить, что блоки в нем не выполнялись. Это иллюстрирует рис. 7. 3, в котором виден неисполненный блок построения функции tan (x).
Итак, операция Calculate исполняет только те блока, которые видны на текущем экране. Для исполнения последующих блоков надо вновь исполнять операцию Calculate. Другой способ исполнения последующих блоков описан ниже.
Документ в режиме ручных вычислении после ввода операции Calculate
2 Документ в режиме ручных вычислении после ввода операции Calculate
Форматирование размерных величин (Dimensions)
Форматирование размерных величин (Dimensions)Для изменения формата размерных величин служит панель Dimensions (Размерности) Она выводит диалоговое окно, показанное на рис 7 8
Исполнение всего документа (Calculate Worksheet)
7. 2. Исполнение всего документа (Calculate Worksheet)Если после подготовки документа с невычисленными блоками нужно исполнить весь документ от начала до конца, то следует использовать операцию Calculate Worksheet (Вычисление документа) На рис 7 4 показана та же часть документа, что и на рис 7 3, но после выполнения этой операции Нетрудно заметить, что теперь оба графика на ДВУХ экранах оказались построенными
Изменение формата размерных величин
8 Изменение формата размерных величин
Эта панель выводит перечень размерностей, который можно при необходимости редактировать Для этого надо установить "птичку" в прямоугольнике опции Display Dimensions (Просмотр размерностей)
Опции установки системы единиц
Опции установки системы единицSystem Utits выводит диалоговое окно для выбора систем единиц для размерных величин, показанное на рис. 7 7.
В этом окне можно выбрать одну из следующих систем единиц для размерных величин. SI, MKS, CGS, US и None (не используется ни одна из этих систем).
Оптимизация вычислений (Optimization)
7. 4. Оптимизация вычислений (Optimization)Oптимизация вычислений достигается заменой сложной функции или мате матического выражения их аналитическим представлением (если оно, конечно, есть) Для иллюстрации техники оптимизации рассмотрим рис 7 5
Пример на оптимизацию вычислений
5 Пример на оптимизацию вычислений
На рисунке вначале показано вычисление тройного интеграла обычным способом. Поскольку вычисления производятся численным методом, то они достаточно трудоемки и задержка выдачи результата заметна даже на скоростных ПК с процессором Pentium.
Во втором случае использовалась техника оптимизации. Выражение для интеграла, оформленное как функция 1 (n), было выделено, а затем исполнена операция Optimize (Оптимизация), после чего скорость вычислений увеличилась в несколько раз
Признаком оптимизации выражения является появление после него красной звездочки — знака *. Кроме того, установив в оптимизированное выражение курсор мыши и щелкнув ее левой клавишей, можно наблюдать появление окна с оптимизированным выражением; на рис. 7. 5 это окно также показано. Нетрудно заметить, что в нашем примере довольно сложный интеграл оказался замененным достаточно простым аналитическим выражением
Разумеется, вычисление по такому выражению намного проще, чем по полному интегралу. Особенно большой выигрыш оптимизация может дать при многократном вычислении сложных функций, содержащих интегралы, производные, суммы, произведения и ряды. Бывают, впрочем, случаи, когда исходное выражение превращается в не менее сложное оптимизированное выражение. Тогда оптимизация оказывается бесполезной Оптимизацию можно задать в тексте документа специальными словами — директивами, но эта возможность будет рассмотрена позже
Установка опций (Options...)
7. 5. Установка опций (Options...)В позиции Options... (Опции) сосредоточены различные опции вычислительных процессов Если активизировать эту позицию, то на экран будет выведено окно с панельным переключателем, показанным на рис 7. 6
Установка значений системных переменных (Built-in Variables...)
Установка значений системных переменных (Built-in Variables...)В системе MathCAD имеется несколько так называемых системных переменных. У них есть свои имена и значения, присваиваемые системой по умолчанию. Действие системных переменных глобальное, т е. они доступны в любом месте программы и их значения можно изменить также в любом месте программы.
Операция Built-in Variables... (Встроенные переменные) служит для установки значений системных переменных:
TOL [0. 001] — погрешность численных расчетов;
ORIGIN [0] — нижняя граница значения индекса индексации векторов и матриц;
PRNPRECISION [4] - число столбцов для WRITEPRN, PRNCOLWIDTH [8] — число десятичных знаков, используемых для записи числовых данных в WRITEPRN
При применении этой операции появляется окошко со списком указанных переменных (в квадратных скобках указаны их заданные значения) — см. рис. 7. 6
Можно откорректировать значения системных переменных. К назначению двух последних переменных мы вернемся позднее, при описании оператора записи данных на диск WRITEPRN Значения переменных можно вывести, указав после их имени знак =
Вид части документа после исполнения операции Calculate Worksheet
4 Вид части документа после исполнения операции Calculate Worksheet
Разумеется, такой же вид имел бы приведенный фрагмент документа при повторном исполнении команды Calculate
Вычисление в пределах экрана (Calculate)
7. 1. Вычисление в пределах экрана (Calculate)По умолчанию MathCAD работает в режиме автоматических вычислений. Однако иногда бывает удобнее работать в ручном режиме, например, если вычисления объектов при их изменении выполняются заново и долго. Ручной режим вводится операцией Calculate (Вычисления) из главного меню. Для ее выполнения надо нажать кнопку со знаком = в панели инструментов или клавишу F9. Разумеется, режим автоматических вычислений при этом должен быть отключен.
Из рис. 7. 1, иллюстрирующего работу MathCAD в режиме ручных вычислений видно, что вычислений не происходит. В частности, выражение х= не выводит, как в автоматическом режиме, вектор значений х, а в шаблоне графика нет собственно графика.
Вычисления в автоматическом режиме (Automatic Calculation)
7. 3. Вычисления в автоматическом режиме (Automatic Calculation)Операция Automatic Calculation (Автоматические вычисления) в подменю Math обеспечивает переключение между ручным и автоматическим режимами вычислений Если против названия этой операции мышью установить "птичку", то будет работать автоматический режим вычислений, в противном случае, когда "птички" нет, — ручной.
Как правило, автоматический режим вычислений намного удобнее ручного, поэтому он установлен по умолчанию
MathCAD 7.0
Действие операции Collect
9 Действие операции Collect
В том случае, когда комплектование по базису указанной переменной невозможно, система выдает сообщение об этом. Оно выводится в отдельном небольшом информационном окошке.
Действие операции Evaluate Symbolically
2 Действие операции Evaluate Symbolically
Операция Evaluate Symbolically одна из самых мощных. Как видно на рис. 8. 2, она позволяет в символьном виде вычислять суммы (и произведения) рядов, производные и неопределенные интегралы, выполнять символьные и численные операции с матрицами.
Эта операция содержит подменю со следующими командами:
Evaluate Symbolically [Shift+ F9] — выполнить символьное вычисление (Вычислить в символах) выражения;
Floating Point Evaluation... — выполнить арифметические (С плавающей точкой) операции в выражении с результатом в форме числа с плавающей точкой;
Complex Evaluation — выполнить преобразование с пред- (В комплексном виде) ставлением в комплексном виде.
Команда Evaluate Symbolically тут наиболее важная. Назначение других команд очевидно: они нужны, если результат требуется получить в форме комплексного или действительного числа. К примеру, если вы хотите вместо числа л получить 3. 141..., используйте команду Floating Point Evaluation. В режиме символьных вычислений результат может превосходить машинную бесконечность системы — см. пример на вычисление ехр ( 1000. 0) на рис. 7. 2. При этом число точных значащих цифр результата практически не ограничено (или, точнее говоря, зависит от емкости ОЗУ).
Действие операции Expand Expression
7 Действие операции Expand Expression
Действие операции Factor Expression
8 Действие операции Factor Expression
но-сопряженные корни, порождающее их выражение представляется квадратичным трехчленом. Примеры действия этой операции даны на рис. 8. 8.
В большинстве случаев (но не всегда) операция факторизации ведет к упрощению выражений. Термин факторизация не является общепризнанным в отечественной математической литературе, но мы его оставляем в связи с созвучностью с англоязычным именем этой операции.
Действие операции Simplify
3 Действие операции Simplify
Два последних примера на приведенном рисунке показывают, как с помощью операции Simplify можно выполнять символьные вычисления производных и определенных интегралов. Результатом вычислений могут быть специальные математические функции (см. последний пример, в котором символьное значение интеграла дает результат, выраженный через интегральный синус). Вполне возможно вычисление производных высшего порядка. На рис. 8. 4 показано последовательное применение операции Simplify для вычисления производных алгебраического выражения, от первой до пятой включительно.
Система MathCAD содержит встроенную функцию для вычисления значений определенных интегралов приближенным численным методом. Ею целесообразно пользоваться, когда нужно просто получить значение определенного интеграла в виде числа. Однако команда Simplify применительно к вычислениям определенных интегралов делает гораздо больше — она ищет аналитическое выражение для интеграла. Более того, она способна делать это и при вычислении кратных интегралов, пределы которых — функции. Наглядный пример этому дает рис. 8. 5.
На рис. 8. 6 показано применение операции Simplify для вычисления сумм и произведений символьных последовательностей. Результат операции, как и следовало ожидать, получается в символьной форме (если она существует).
Приведенные примеры могут создать впечатление, что MathCAD лихо справляется со всеми производными, интегралами, суммами и произведения-
Дифференцирование по заданной переменной (Differentiate)
8. 9. Дифференцирование по заданной переменной (Differentiate)Следующая группа символьных операций выполняется с выражениями, требующими указания переменной, по отношению к которой выполняется операция Для этого достаточно установить на переменной курсор ввода Само выражение при этом не указывается отдельно, поскольку указание в нем на переменную является одновременно и указанием на само выражение. Если выражение содержит другие переменные, то они рассматриваются как константы Изучим операции этой группы, начиная с операции дифференцирования
Нахождение символьного значения производной — одна из самых рас пространенных задач в аналитических вычислениях. Операция Differentiate (Дифференцировать по переменной) возвращает символьное значение производной выражения по той переменной, которая указана курсором Для вычисления производных высшего порядка (свыше 1) нужно повторить вычисление необходимое число раз На рис 811 показано применение операции дифференцирования
В трех последних примерах на рис 811 показано, что в выражениях, производная которых вычисляется, могут стоять и встроенные в систему специальные математические функции Они могут появляться и в результатах вычислений
Функции преобразований Фурье, Лапласа и Z-преобразований
8. 17. Функции преобразований Фурье, Лапласа и Z-преобразованийДля выполнения широко распространенных в технических и научных приложениях преобразований Фурье (Fourie и Inverse Fourie), Лапласа (Laplace и Inverse Laplace) и Z-преобразований (Z и Inverse Z) служат соответствующие операции в подменю позиции Symbolic главного меню
Для применения этих операций следует записать исходное выражение и отметить в нем переменную, относительно которой будет производиться преобразование Тогда указанные выше операции становятся доступными и выделяются четкими надписями
Не вдаваясь в суть перечисленных достаточно известных преобразований, приведем простейшие примеры их применения, они показаны на рис 8 20 Здесь даны примеры как прямого, так и обратного (Inverse) преобразования каждого типа
Интегрирование по заданной переменной (Integrate)
8. 10. Интегрирование по заданной переменной (Integrate)Другая не менее важная операция при символьных вычислениях — вычисление интегралов (или нахождение первообразных) для аналитически заданной функции. Для этого используется операция Integrate (Интегрировать по переменной). Она возвращает символьное значение неопределенного интеграла по указанной курсором ввода переменной. Выражение, в состав которого входит переменная, является подынтегральной функцией.
На рис. 8. 12 показаны примеры символьного интегрирования по переменной х. Визуализация таких вычислений (как и описанных выше), прямо скажем, не велика если бы не поясняющие текстовые комментарии, то было бы совсем неясно, откуда берутся выражения в документе и резульгаты чего они представляют
Как и для операции дифференцирования, в состав исходных выражений и результатов символьного интегрирования могут входить встроенные в систему специальные математические функции. На это указывают два последних примера из приведенных на рис. 8. 12.
Интерпретация результатов символьных операций в буфере обмена
8. 19. Интерпретация результатов символьных операций в буфере обменаНеобходимо отметить, что не всегда результат символьных операций выводится в окно редактирования. Иногда он оказывается настолько громоздким, что MathCAD использует специальную компактную форму его представления и помещает его в буфер обмена. Уже оттуда его можно вызвать в текстовом формате в окно редактирования, нажав клавишу F4 или клавиши Shift+ Ins. To же самое можно сделать с помощью команды Copy (Копировать) в позиции Edit (Правка) главного меню.
Записи математических выражений в буфере обмена напоминают их записи на языке Фортран:
• справедливы операторы арифметических операций+, -,* и /;
• возведение в степень обозначается как**;
• первая производная функции f (x) записывается в виде diff (f (x), x), а п-я производная в виде diff (f (x), x$n);
• частная производная обозначается как D, п-го порядка (D, n) и по п-му аргументу как (D [n]);
• интеграл с подынтегральной функцией/^) записывается как int (f (x), x);
• операторы суммы и произведения обозначаются как sum () и product ();
• композиция функций указывается символом @ [например, (exp@cos) (x) означает exp (sin (x)) \,
• кратная композиция указывается символами @@ [например, (f (@@3) (x) означает f (f (f (x)))};
• замещение любого корня уравнения указывается записью RootOf (уравнение) [например, оба корня i и -г уравнения Z** 2+ 1=0 представляются записью RootOf (Z** 2+ l)].
С помощью команды Save As... (Сохранить как) в позиции File папки обмена можно сохранить последнее содержимое буфера обмена в виде текстового файла. Это может быть полезным для осмысления и анализа полученного результата. В Windows 95 доступ к папке обмена обеспечивает приложение "Просмотр папки обмена", которое находится в папке "Стандартные" меню программ.
Комплектование по выражениям (Collect)
8. 7. Комплектование по выражениям (Collect)Операция Collect (Разложить по подвыражению) обеспечивает замену указанного выражения выражением, скомплектованным по базису указанной переменной, если такое представление возможно. В противном случае появляется окно с сообщением о невозможности комплектования по указанному базису. Эта команда особенно удобна, когда заданное выражение есть функция ряда переменных и нужно представить его в виде функции заданной переменной, имеющей вид степенного многочлена. При этом другие переменные входят в сомножители указанной переменной, представленной в порядке уменьшения ее степени. На рис. 8. 9 показаны примеры действия этой операции.
Обращение матриц (Invert)
8. 1 б. Обращение матриц (Invert)Обращение матриц означает создание такой матрицы А-1, для которой произведение ее на исходную матрицу А дает единичную матрицу, т. е. матрицу с диагональными элементами, равными 1, и остальными — нулевыми. Обращение допустимо для квадратных матриц с размером NxN, где N> 1 — число строк и столбцов матрицы. Такую же размерность имеет и обращенная матрица.
Обращение матриц — широко распространенная математическая задача. Существует множество программ на разных языках программирования, решающих эту задачу с той или иной степенью успеха. Для MathCAD это рутинная задача. На рис. 8. 19 приведены примеры выполнения типовых матричных операций. Последняя из них — обращение матрицы в символьной форме с помощью операции Invert.
Окно установки стиля эволюции
21 Окно установки стиля эволюции
В этом окне можно установить три тина вывода результата символьных преобразований:
Vertically, inserting lines — расположение результата под основным
(Вертикально, включая линии) выражением с включением пустых линий,
Vertically, without inserting lines — расположение результата прямо под
(Вертикально, без линий) основным выражением;
Gorizontally (По горизонтали) — расположение результата рядом (по го ризонтали) с основным выражением.
Кроме того, установкой знака "птички" в прямоугольниках можно ввести еще две опции:
Show Comments — наблюдать комментарии;
(Просмотр комментариев)
Evaluate in Place (Замещать) — заместить исходное выражение резуль татом его символьного преобразования.
Все варианты стиля вывода результатов символьных операций представлены на рис. 8. 21. В ряде случаев предпочтительно применение символьного оператора вывода —>, который делает символьные преобразования более наглядными.
Операции с выделенными матрицами
Операции с выделенными матрицамиОперации с выделенными матрицами представлены позицией подменю Matrix (Матричные операции), которая имеет свое подменю со следующими операциями:
Transpose (Транспонировать) — получить транспонированную матрицу;
Invert (Обратить) — создать обратную матрицу;
Determinant (Определитель) — вычислить детерминант (определитель) матрицы.
Операции преобразования
В MathCAD 7. 0 PRO в позиции Symbol содержится раздел операций преобразования, создающий подменю со следующими возможностями:
Fourier Transform — выполнить прямое преобразование Фурье
(Преобразование Фурье) относительно выделенной переменной;
Inverse Fourier Transform — выполнить обратное преобразование
(Обратное преобразование Фурье относительно выделенной
Фурье) переменной;
Laplace Transform — выполнить прямое преобразование (Преобразование Лапласа) Лапласа относительно выделенной пере менной (результат — функция от пере менной s);
Inverse Laplace Transform — выполнить обратное преобразование (Обратное преобразование Лапласа относительно выделенной Лапласа) переменной (результат — функция от переменной t);
Z Transform (Z-преобразование) — выполнить прямое Z-преобразование вы ражения относительно выделенной пере менной (результат — функция от пере менной z);
Inverse Z Transform — выполнить обратное Z-преобразование (Обратное Z-преобразование) относительно выделенной переменной (результат — функция от переменной n)
Операции с выделенными переменными
Операции с выделенными переменнымиК числу операций с выделенными переменными относятся
Solve (Решить — найти значения выделенной переменной,
относительно переменной) при которых содержащее ее выражение становится равным нулю (решить уравнение или неравенство относительно выделенной переменной);
Substitute (Заменить — заменить указанную переменную содержи-
переменную) мым буфера обмена;
Differentiate — дифференцировать все выражение, содержа- (Дифференцировать щее выделенную переменную, по отношению по переменной) к этой переменной (остальные переменные рассматриваются как константы);
Integrate (Интегрировать — интегрировать все выражение, содержащее
по переменной) выделенную переменную, по этой переменной;
Expand to Series... — найти несколько членов разложения выра- (Разложить в ряд) жения в ряд Тейлора относительно выделен ной переменной;
Convert to Partial Fraction — разложить на элементарные дроби выраже- (Разложить на элементарные ние, которое рассматривается как рацио-дроби) нальная дробь относительно выделенной пе ременной.
Операции с выделенными выражениями
Операции с выделенными выражениямиК операциям с выделенными выражениями относятся следующие Evaluate (Вычислить) — преобразовать выражение с выбором вида преоб разований из подменю,
Simplify (Упростить) — упростить выделенное выражение с выполнением таких операций, как сокращение подобных слагае мых, приведение к общему знаменателю, использова ние основных тригонометрических тождеств и т д, Expand (Разложить — раскрыть выражение [например, для по степеням) (Х+ Y) (Х- Y) получаем X2- Y2}, Factor (Разложить — разложить число или выражение на множи-на множители) тели [например X2-Y2 даст (X+ Y) (X-Y)], Collect (Разложить — собрать слагаемые, подобные выделенному по подвыражению) выражению, которое может быть отдельной переменной или функцией со своим аргументом (ре зультатом будет выражение, полиномиальное от носительно выбранного выражения),
Polynomial Coefficients — найти коэффициенты полинома по заданной
(Полиномиальные переменной, приближающего выражение,
коэффициенты) в котором эта переменная использована
Подстановка для заданной переменной (Substitute)
8. 12. Подстановка для заданной переменной (Substitute)Операция Substitute (Подстановка) возвращает новое выражение, полученное путем подстановки на место указанной переменной некоторого другого выражения. Последнее должно быть подготовлено и скопировано (операциями Cut или Copy) в буфер обмена. Наряду с получением результата в символьном виде эта команда позволяет найти и числовые значения функции некоторой переменной путем замены ее на числовое значение. На рис. 8. 15 представлены примеры операций с подстановкой.
Показываег интересное решение...
17 показываег интересное решение одной из таких задач — вычисление определенного интеграла, который не берется в замкнутой форме.Показывает результат решения кубического уравнения в символьном виде.
14 показывает результат решения кубического уравнения в символьном виде.Примеры матричных операций в символьной форме
19 Примеры матричных операций в символьной форме
При выполнении матричных операций в символьной форме проблема "разбухания" результатов становится весьма серьезной. Если, к примеру, для обратной матрицы с размером 2х2 или 3х3 еще можно получить ответ, размещающийся в окне документа, то для матриц большего размера это становится невозможным. Впрочем, большинство аналитических задач очень редко оперирует такими матрицами.
Примеры операций с подстановкой
15 Примеры операций с подстановкой
Подстановки и замены переменных довольно часто встречаются в математических расчетах, что делает эту операцию весьма полезной. Кроме того, она дает возможность перейти от символьного представления результата к числовому.
Примеры применения функций преобразования Фурье, Лапласа и Z-преобразований
20 Примеры применения функций преобразования Фурье, Лапласа и Z-преобразований
Не следует полагать, что для всех случаев результаты преобразования будут в точности совпадать со справочными и что результат двойного преобразования (вначале прямого, а затем обратного) приведет к первоначальной функции Указанные преобразования довольно сложны, и грамотное применение их требует соответствующих математических познаний Не случайно в ранние версии MathCAD (например, 3 0) они не были включены в виде команд
Примеры применения операции Polynomial Coefficients
10 Примеры применения операции Polynomial Coefficients
(степенной многочлен) или может быть представлено таковым относительно выделенной переменной На рис 810 показаны примеры применения этой операции
Результатом операции является вектор с коэффициентами полинома Операция полезна при решении задач полиномиальной аппроксимации и регрессии
Примеры разложения на дроби
18 Примеры разложения на дроби
Как видно из представленных примеров, применение этой операции в большинстве случаев делает результат более длинным, чем исходное выражение Однако он более нагляден и содействует выявлению математической сущности исходного выражения
Примеры решения уравнений
Рис. 8. 13 Примеры решения уравненийРанее отмечалось, что усложнение уравнения, например переход от квадратного уравнения к кубическому, может вызвать и существенное усложнение результата. Тогда система представляет решение в более компактном виде (но без общепринятой математической символики) и предлагает занести его в буфер обмена.
С помощью операции Paste (Вставить) в позиции Edit (Правка) главного меню можно перенести решение в основное окно системы, но оно имеет уже тип текстового комментария, а не математического выражения, пригодного для дальнейших преобразований. Впрочем, часть его можно (опять-таки с помощью буфера обмена) ввести в формульные блоки для последующих преобразований и вычислений.
Более того, форма представления результата в таком случае отличается от принятой в системе MathCAD (например, в качестве знака деления используется косая черта, для возведения в степень — составной знак** и т. д.). Это сделано ради компактности представления результатов вычислений.
Примеры символьного дифференцирования
11 Примеры символьного дифференцирования
Особое внимание стоит обратить на последний пример. Попытка вычислить производную от функции Бесселя здесь ведет к тому, что результат направляется в буфер обмена, поскольку представлен в виде функций или действий, содержащихся в ядре символьных операций системы, но недоступных символьному процессору. Поэтому результат дифференцирования вызывается из буфера обмена командой Paste (Вставить). Такой результат нельзя использовать в других операциях прямо, но он вполне подходит для творческого осмысления пользователем. Тот и решает, полезен результат или нет
Примеры символьного интегрирования
12 Примеры символьного интегрирования
Пример на разложение функции в ряд Тейлора
16 Пример на разложение функции в ряд Тейлора
Пример решения дифференциального уравнения второго порядка с применением преобразований Лапласа
22 Пример решения дифференциального уравнения второго порядка с применением преобразований Лапласа
На рис 8. 23 приведено решение другого дифференциального уравнения Используется тот же метод решения, что и в предыдущем примере.
Оба примера наглядно показывают, что помещаемый в буфер обмена результат символьных операций может быть очень полезным и порой предоставлять возможности, которые нельзя получить прямым образом. Это расширяет области применения системы MathCAD
Пример решения другого дифференциального уравнения
23 Пример решения другого дифференциального уравнения
Расширение выражений (Expand)
8. 5. Расширение выражений (Expand)Действие операции Expand (Разложить по степеням) в известном смысле противоположно действию операции Simplify. Подвергаемое преобразованию выражение расширяется с использованием известных (и введенных в символьное ядро) соотношений, например алгебраических разложений многочленов, произведений углов и т. д Разумеется, расширение происходит только в том случае, когда его результат однозначно возможен Иначе нельзя считать, что действие этой операции противоположно действию операции Simplify. К примеру, операция Simplify преобразует сумму квадратов синуса и косинуса в 1, тогда как обратное преобразование многозначно и потому в общем виде невыполнимо
При преобразовании выражений операция Expand Expression старается более простые функции представить через более сложные, свести алгебраические выражения, представленные в сжатом виде, к выражениям в развернутом виде и т д Примеры действия операции Expand Expression даны на рис. 8 7
Последний пример на этом рисунке показывает, что результатом операции может быть специальная математическая функция, которая считаегся более сложным выражением, чем порождающее ее выражение С виду, однако, выражения со специальными математическими функциями обычно выглядят гораздо проще, чем исходные выражения
Разложение на правильные дроби (Convert to Partial Fraction)
8. 14. Разложение на правильные дроби (Convert to Partial Fraction)Операция Convert to Partial Fraction (Разложить на элементарные дроби) возвращает символьное разложение выражения, представленное относительно заданной переменной в виде суммы правильных целых дробей. На рис 8 18 даны примеры такого разложения
Разложение выражений (Factor)
8. 6. Разложение выражений (Factor)Операция Factor Expression (Разложить на множители) используется для факторизации — разложения выражений или чисел на простые множители Она способствует выявлению математической сущности выражений, к примеру, наглядно выявляет представление полинома через его действительные корни, а в том случае, когда разложение части полинома содержит комплекс-
Разложение в ряд Тейлора по заданной переменной (Expand to Series...)
8. 13. Разложение в ряд Тейлора по заданной переменной (Expand to Series...)Операция Expand to Series... (Разложить в ряд) возвращает разложение в ряд Тейлора выражения относительно выделенной переменной с заданным по запросу числом членов ряда n (число определяется по степеням ряда). По умолчанию задано п=6. Разложение возможно для функции заданной переменной. В разложении указывается остаточная погрешность разложения. На рис. 8. 16 представлено применение этой операции для разложения функции sin (x)/x. Минимальная погрешность получается при малых х (см. графическое представление функции и ее ряда).
Символьные операции нередко можно комбинировать для решения сложных задач.
Решение кубического уравнения в символьном виде
14 Решение кубического уравнения в символьном виде
Последний пример наглядно иллюстрирует проблему "разбухания" результатов. Если при решении квадратного уравнения получены простые выражения, известные даже школьникам (рис. 8. 13 — первый пример), то при увеличении порядка уравнения всего на единицу результат оказался представленным весьма громоздкими и малопригодными для анализа формулами. Хорошо еще, что существующими!
В случаях, подобных приведенному, пользователю надо реально оценить свои силы в упрощении решения. Это придется сделать вручную. При технических расчетах специалист нередко знает, какие из параметров решения несущественны и может отбросить их. Однако для строгих математических расчетов это не всегда возможно, поэтому даже громоздкий результат может быть весьма полезным с познавательной точки зрения.
Решение уравнения относительно заданной переменной (Solve)
8. 11. Решение уравнения относительно заданной переменной (Solve)Если задано некоторое выражение F (x) и отмечена переменная х, то операция Solve (Решить) возвращает символьные значения указанной переменной х, при которых F (x) ==0. Это очень удобно для решения алгебраических уравнений, например квадратных и кубических, или для вычисления корней полинома.
Содержит примеры решения квадратного...
13 содержит примеры решения квадратного уравнения и нахождения комплексных корней полинома четвертой степени.
Стиль эволюции
Стиль эволюцииК стилю эволюции относится одна операция-
Evaluation Style... — задать вывод результата символьной операции под
(Стиль эволюции) основным выражением, рядом с ним или вместо него
В последующих разделах этой главы каждая из упомянутых выше операций будет рассмотрена более подробно с необходимыми примерами.
Транспонирование матрицы (Transpose)
8. 15. Транспонирование матрицы (Transpose)Символьный процессор системы MathCAD обеспечивает проведение в символьном виде трех наиболее распространенных матричных операций' транспонирование и обращение матриц, а также вычисление их детерминанта.
Эти операции в подменю Matrix обозначены так: Transpose (Транспонировать), Invert (Обратить) и Determinant (Найти определитель). Если элементы матрицы — числа, то выполняются соответствующие операции в числовой форме.
Транспонирование матрицы означает перестановку строк и столбцов. Оно реализуется операцией Transpose (Транспонировать). Подлежащая транспонированию матрица должна быть выделена.
Упрощение выражений (Simplify)
8. 4. Упрощение выражений (Simplify)Символьная операция Simplify (Упростить) — одна из самых важных. Эта операция позволяет упрощать математические выражения, содержащие алгебраические и тригонометрические функции, а также выражения со степенными многочленами (полиномами).
Упрощение означает замену более сложных фрагментов выражений на более простые. Приоритет тут отдается простоте функций. К примеру, функция tan (x) считается более сложной, чем функции sin (x) и cos (. x). Поэтому tan (x) упрощается так, что получает представление через соотношение этих функций, что несколько неожиданно, так как в некоторых пакетах символьной математики, например Derive, ситуация иная: они заменяют отношение sin (x)/cos (x) функцией tan (x).
Эта команда открывает широкие возможности для упрощения сложных и плохо упорядоченных алгебраических выражений. На рис. 8. 3 даны примеры применения операции Simplify.
Установка стиля эволюции символьных выражений (Evolution Style...)
8. 18. Установка стиля эволюции символьных выражений (Evolution Style...)Последняя позиция подменю Symbolic — Evalution Style... — служит для установки стиля эволюции выражений, над которыми выполняются символьные операции Напомним, что под эволюцией математических выражений в данном случае подразумеваеюя изменение их вида в результате символьных преобразований.
Данная операция выводит окно с установками стиля эволюции, показанное на рис. 8. 21.
Вид экрана системы с подменю позиции Symbolic главного меню
1 Вид экрана системы с подменю позиции Symbolic главного меню
Символьные операции разбиты на пять характерных разделов Первыми идут наиболее часто используемые операции Они могут выполняться с выра жениями, содержащими комплексные числа или имеющими решения в комплексном виде
Возможности символьного процессора (Symbolic)
8. 1. Возможности символьного процессора (Symbolic)Системы компьютерной алгебры снабжаются специальным процессором для выполнения аналитических (символьных) вычислений. Его основой является ядро, хранящее всю совокупность формул и формульных преобразований, с помощью которых производятся аналитические вычисления. Чем больше этих формул в ядре, тем надежней работа символьного процессора и тем вероятнее, что поставленная задача будет решена, разумеется, если такое решение существует в принципе (что бывает далеко не всегда).
Ядро символьного процессора системы MathCAD — несколько упрощенный вариант ядра известной системы символьной математики Maple V фирмы Waterloo Maple Software [12, 18], у которой MathSoft (разработчик MathCAD) приобрела лицензию на его применение, благодаря чему MathCAD стала (начиная с версии 3. 0) системой символьной математики.
Прямой доступ к большинству операций ядра (возможный в системе Maple V R3/R4), для пользователя MathCAD, к сожалению, закрыт. К примеру, библиотечный модуль Maple V содержит около 100 функций линейной алгебры, тогда как в модуле MathCAD 3. 0 есть только три важнейшие функции из этого раздела. Многие функции и правила преобразования в ядре используются лишь для получения промежуточных преобразований.
Тем не менее это обстоятельство нельзя считать уж слишком большим недостатком системы MathCAD. Во-первых, потому, что ее назначение иное — прежде всего решение задач в численном виде, а во-вторых, потому, что система Maple V явно избыточна (в ее ядре около 2800 функций и правил преобразования) и ориентирована на пользователей с весьма далекими от средних потребностями в решении задач компьютерной алгебры (символьной математики) [12].
Введение в систему MathCAD символьных вычислений придает ей качественно новые возможности, которые отсутствовали у прежних версий системы [5—7]. Теоретические сведения об алгоритмах компьютерной алгебры можно найти в книге [19]. Куда важней, что символьные вычисления выполняются в конечном счете столь же просто (для пользователя), как, скажем, вычисление квадрата х.
Операции, относящиеся к работе символьного процессора, содержатся в подменю позиции Symbolic (Символика) главного меню (см. рис. 8. 1).
Чтобы символьные операции выполнялись, процессору необходимо указать, над каким выражением эти операции должны производиться, т е надо выделить выражение (правила выделения неоднократно описывались выше) Для ряда операций следует не только указать выражение, к которому они относятся, но и наметить переменную, относительно которой выполняется та или иная символьная операция. Само выражение в таком случае не выделяется. ведь и так ясно, что если маркер ввода выделяет переменную какого-либо выражения, то это выражение уже отмечено наличием в нем выделяемой переменной
Вычисление двойных и тройных определенных интегралов
5 Вычисление двойных и тройных определенных интегралов
ми с помощью операции Simplify. К сожалению, это далеко не так. Нередко система не справляется с кажущимися простыми справочными примерами. Надо помнить, что символьный процессор системы MathCAD обладает заметно урезанной библиотекой функций и преобразований (в сравнении с библиотекой системы Maple V). Поэтому часто система не находит решение в замкнутом виде, хотя оно и приводится в справочнике. Тогда система повторяет введенное выражение или сообщает об ошибке.
Следует также отметить, что при выполнении командами меню Symbol символьных вычислений выражения необходимо указывать явно. Например, недопустимо вводить некоторую функцию пользователя F (x) и пытаться найти ее производные или интеграл. Это существенное ограничение, и котором надо всегда помнить. Однако оно преодолимо при выполнении вычислений с помощью функций системы SmartMath, которая описывается в дальнейшем;
Вычисление коэффициентов полиномов (Polynomial Coefficients)
8. 8. Вычисление коэффициентов полиномов (Polynomial Coefficients)Операция Polynomial Coefficients (Полиномиальные коэффициенты), в ранних версиях MathCAD отсутствующая, служит для вычисления коэффициентов полинома. Операция применяется, если заданное выражение — полином
Вычисление производных алгебраического выражения
4 Вычисление производных алгебраического выражения с порядком от 1 до 5
Вычисление сумм и произведений символьных последовательностей
6 Вычисление сумм и произведений символьных последовательностей
главное в том, что для вывода символьных вычислений в этом случае используется оператор —>.
В результате преобразований могут появляться специальные функции — как встроенные в систему (функции Бесселя, гамма-функция, интеграл вероятности и др.), так и ряд функций, дополнительно определенных при загрузке символьного процессора (интегральные синус и косинус, интегралы Френеля, эллиптические интегралы и др.) Последние нельзя использовать при создании математических выражений.
Выделение объектов символьных операций
8. 2. Выделение объектов символьных операцийДля проведения символьных операций нужно прежде всего выделить объект, над которым эти операции будут выполняться. Если объект отсутствует, доступа к соответствующим операциям в позиции Symbolic главного меню нет, а сами операции выделены затененным шрифтом. Объектом операции может быть самостоятельное математическое выражение, часть такого выражения или заданной пользователем функции, результат предшествующей операции и т д.
Напомним, что есть два вида выделения: пунктирными линиями и сплошными. Чтобы отметить объект пунктирной линией, достаточно установить на него курсор-крестик, нажать клавишу Ctrl или Shift и воспользоваться правой клавишей мыши.
Можно установить курсор около выбранного объекта и, нажав правую клавишу мыши, перемещать ее по столу При этом появляется пунктирный прямоугольник, который перемещением мыши можно расширять в различных направлениях. Как только этот прямоугольник захватывает один или несколько объектов, они оказываются также выделенными — обведенными пунктирной линией, отмечающей область, занимаемую объектом в окне.
Выделение пунктирной линией используется для перемещения объектов по окну. Для этого достаточно внутрь отмеченного объекта (выражения) поместить курсор мыши, нажать правую клавишу и, удерживая ее нажатой, перемещать мышь. При этом объект (или сразу несколько объектов) будет перемещаться по экрану и его можно оставить (отпустив клавишу мыши) на новом месте Напоминаем, что нажатие клавиши F3 ведет к переносу выражений в буфер обмена и стиранию их в окне. Нажатие клавиши F4 переносит выражения из буфера обмена на место, указанное курсором. Курсор можно перемещать как мышью, так и обычными клавишами управления им.
Для выполнения операций с символьным процессором нужно выделить объект (целое выражение или его часть) сплошными линиями, синими на экране цветного дисплея. Для выделения некоторой переменной в объекте нужно подвести к ее концу курсор мыши и нажать левую клавишу. Переменная будет отмечена жирной чертой (синей на экране цветного дисплея), расположенной сразу после переменной Перемещая курсор по полю объекта и нажимая левую клавишу повторно, можно выделить отдельные части выражения или выражение целиком.
Часть символьных операций производится указанием на объект как на выражение или его часть. Например, расширение или упрощение выражений требуют такого указания на объект Другие операции, такие, как вычисление производной или интеграла, требуют указания переменной, относительно которой производится операция, допустим, дифференцирования или интегрирования.
Если заданная операция невыполнима, система выводит в дополнительном окне сообщение об ошибке или просто повторяет выделенное выражение. Последнее означает, что операция задана корректно, но результат не может быть получен, например, если делается попытка разложить на множители объект, уже разложенный или не содержащий такого разложения в принципе.
При выполнении символьных операций иногда приходится сталкиваться с неприятной и трудной проблемой — "разбуханием" результатов, как промежуточных, так и конечных. Решения, которые хорошо известны профессиональному математику (и даже студенту), система обычно выдает с блеском — в виде, который описан в справочнике или учебнике. Примером может служить решение квадратного уравнения или вычисление простого неопределенного интеграла
Но даже незначительное усложнение задачи порою может породить очень сложное и громоздкое решение. Пример тому — решение кубического уравнения. В этом случае решение (по запросу системы) можно поместить в буфер обмена и использовать его для оценки пользователем (но не для дальнейших преобразований системой в автоматическом режиме).
Система MathCAD содержит пять типов символьных операций, выполняемых над объектами — выделенными математическими выражениями. При этом под математическим выражением подразумевается как полная математическая формула, так и функционально полная часть какой-либо формулы. Ниже представлено описание символьных операций над выражениями
Выполнение символьных вычислений (Evaluate Symbolically)
8. 3. Выполнение символьных вычислений (Evaluate Symbolically)Символьная операция Evaluate Symbolically [Shift+ F9] (Вычислить) обеспечивает работу с математическими выражениями, содержащими встроенные в систему функции и представленными в различном виде: полиномиальном, дробно-рациональном, в виде сумм и произведений, производных и интегралов и т. д. Операция стремится произвести все возможные численные вычисления и представить выражение в наиболее простом виде. Она возможна над матрицами с символьными элементами. Производные и определенные интегралы, символьные значения которых вычисляются, должны быть представлены в своей естественной форме.
Особо следует отметить возможность выполнения численных вычислений с повышенной точностью — 20 знаков после запятой. Для перехода в такой режим вычислений нужно числовые константы в вычисляемых объектах задавать с обязательным указанием десятичной точки, например 10. 0 или 3. 0, а не 10 или 3. Этот признак является указанием на проведение вычислений такого типа.
На рис. 8. 2 показаны типовые примеры действия операции Evaluate Symbolically.
Здесь слева показаны исходные выражения, подвергаемые символьным преобразованиям, а справа — результат этих преобразований. Так представлены и другие примеры, приведенные в этой главе.
Взятие определенного интеграла в символьной форме с заменой подынтегральной функции ее разложением
17 Взятие определенного интеграла в символьной форме с заменой подынтегральной функции ее разложением
Если пользователя (например, инженера) интересует просто числовое значение интеграла, надо лишь поставить после интеграла знак вывода = и значение интеграла будет вычислено адаптивным численным методом Симп-сона. Однако вычислить такой интеграл с помощью операции Simplify (Упростить) не удастся после долгих попыток система сообщит, что интеграл в замкнутой форме не берется.
Прием, который иллюстрирует рис. 8. 17, заключается в замене подынтегральной функции ее разложением в ряд Тейлора. Вначале получим такое разложение с избытком — для 10 членов ряда (однако учтенных нечетных членов тут нет, такова специфика функции). Далее, выделив четыре первых реальных члена и используя операции Copy (Копировать) и Paste (Вставить) в позиции Edit (Правка) главного меню, поместим это разложение на место шаблона подынтегральной функции. Теперь проблем с вычислением интеграла операцией Simplify не будет
Интеграл получен в форме числа е=ехр (1), помноженного на дробный множитель, представленный в рациональной форме (отношения целых чисел) Это обстоятельство, возможно, бесполезное для рядового пользователя, наверняка будет весьма положительно воспринято математиком, поскольку здесь напрашиваются определенные аналитические выводы (которых нельзя сделать при вычислении интеграла численными методами)
Биржевой анализ: Технический анализ - Инструменты - Софт