Система MathCAD Plus 6.0 Pro

       

С самого своего появления системы


С самого своего появления системы класса 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<d<1 колебания затухают по амплитуде, а при d=1 они становятся апериодическими. Наконец, при d<0 колебания возрастают по амплитуде. Физически d<0 означает, что система расходует свою энергию на создание колебаний. В дальнейшем (см. пакет 10) мы увидим примеры реального построения автоколебательных систем и рассмотрим влияние нелинейности системы на характер развития колебаний.

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<Ku).

В документе е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
 + u(t) = e(t).

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

= e(t) – u(t).

Решение этого уравнения возможно методом Рунге — Кутта, который не очень прост в реализации. Однако для одного уравнения можно исключить отдельное вычисление коэффициентов 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<d<1 колебания затухают по амплитуде, а при d=1 они становятся апериодическими. Наконец, при d<0 колебания возрастают по амплитуде. Физически d<0 означает, что система расходует свою энергию на создание колебаний. В дальнейшем (см. пакет 10) мы увидим примеры реального построения автоколебательных систем и рассмотрим влияние нелинейности системы на характер развития колебаний.

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<Ku).

В документе е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
 + u(t) = e(t).

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

= e(t) – u(t).

Решение этого уравнения возможно методом Рунге — Кутта, который не очень прост в реализации. Однако для одного уравнения можно исключить отдельное вычисление коэффициентов 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<Nend, или отрицательным в противном случае).

Ранжированные переменные широко применяются для представления численных значений функций в виде таблиц, а также для построения их графиков. Любое выражение с ранжированными переменными после знака равенства инициирует таблицу вывода. Несколько таких таблиц показано на рис. 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          

X !        X !               Вычисление факториала

|Z|         |Z                 Вычисление модуля комплексного Z

_

Z           Z "               Вычисление комплексно сопряженного с Z числа

(¦)         '                   Ввод пары круглых скобок с шаблоном

(          (                    Ввод открывающей скобки

)          )                    Ввод закрывающей скобки



Xn         X [ n            Ввод нижнего индекса n

X<n>           X Ctrl n       Ввод верхнего индекса n

На рис. 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<n>                                       M Ctrl ^ n         Выделение n-го столбца матрицы 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)          -- выполняет треугольное разложение матрицы MP × 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.

Через функцию erf(x)

легко вычисляется дополнительная функция ошибок:

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 (служит для построения гистограмм).

В функции hist(int, V) вектор int должен содержать значения границ, число попаданий данных из вектора V

должно подсчитываться. Если строится гистограмма из 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 показан пример проведения линейной регрессии для данных, представленных значениями элементов в векторах VX и VY.

Рис.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<x<1);

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<p£1 —  вероятность успеха в отдельном испытании, k

-- целое неотрицательное число);

Å 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<p£1);

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<b и a£x£b);

Å 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

функции распределения Вейбулла.

Третья группа задает обращения (квантили) функций распределения случайных величин. Они позволяют по заданной вероятности вычислить такое значение x, при котором вероятность равна или меньше заданного значения p. Квантили для различных распределений задаются  функциями, представленными ниже.



Квантили распределения:

Å 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<p<1);

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<p<1);

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 показаны примеры построения графиков для различных статистических функций и задания векторов чисел с различным распределением.

Рис. 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 2  + y x +
 y2.

Нетрудно заметить, что нулевые значения переменных в точке разложения можно не указывать. Если нужно указать значения переменных, это делается с применением знака =. Например, если бы надо было вычислить разложение в точке с 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 показаны примеры вычисления пределов в системе MathCAD PLUS 6.0, где указанная возможность также содержится. Для вычисления пределов нужно заполнить шаблоны, входящие в главный шаблон для вычисления пределов, а затем ввести функцию, имя переменной, по которой ищется предел, и значение переменной -- аргумента функции.

Рис. 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

должны идти в порядке возрастания.

На рис. 11.14 показан пример применения функции



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):=
· x + 32        °F:= 1

Затем, используя кнопку 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 -- сортирует матрицу по заданной строке путем перестановки столбцов матрицы.

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


Содержание раздела