Текст
                    Самоучитель №1 по освоению MathCAD 11!

"Tlathsoft
MathCAD 11
С помощью этого самоучителя вы за несколько дней научитесь использовать систему MathCAD 11 для решения самых разнообразных математических задач. Вы узнаете как:
•	Создавать, редактировать, сохранять и распечатывать документ MathCAD
•	Использовать инструменты MathCAD для решения различных задач математики и физики
*	Проводить вычисления в численном или аналитическом виде
•	Представлять результаты вычислений в виде двух- и трехмерных графиков, гистограмм и даже анимационных роликов
•	Выполнять эффективный обмен данными между документом MathCAD и другими приложениями, файлами данных
•	Использовать средства MathCAD для обработки графической и звуковой информации
дцдлЕктикд
Ю.М. Бидасюк
Оглавление
Введение	12
Глава 1. Пользовательский интерфейс и основные функции MathCAD 11	15
Глава 2. Основы построения вычислений в MathCAD 11	31
Глава 3. Построение и форматирование графиков	53
Глава 4. Операции с матрицами и решение алгебраических задач	71
Глава 5. Решение задач математического анализа	89
Глава 6. Решение дифференциальных уравнений	112
Глава 7. Работа с внешними источниками данных	130
Глава 8. Теория вероятностей и математическая статистика	142
Глава 9. Обработка экспериментальных данных средствами MathCAD	152
Глава 10. Программирование в среде MathCAD	173
Глава 11. Дополнительные возможности MathCAD	182
Приложение А. Ответы на тесты	190
Приложение Б. Комбинации клавиш, используемые в MathCAD	196
Приложение В. Кнопки панелей инструментов	201
Предметный указатель	206
Содержание
Как организована книга	12
Глава 1. Пользовательский интерфейс и основные функции MathCAD 11	15
Как запустить MathCAD	15
Элементы рабочего окна MathCAD	17
Строка заголовка и кнопки управления окном	17
Строка меню	17
Рабочая область и курсор документа MathCAD	19
Строка состояния	20
Контекстные меню	21
Панели инструментов	21
Как показать или скрыть панель инструментов	21
Назначение панелей инструментов	22
Основные приемы работы с документами	23
Создание нового документа	23
Открытие и закрытие документа MathCAD	23
Переключение между несколькими открытыми документами	23
Сохранение документа	24
Печать	24
Использование справочной системы MathCAD	24
Использование окна справки	26
Контекстная справка	27
Учебники и шпаргалки	27
Справочные таблицы MathCAD	28
Резюме	29
Тесты	30
Глава 2. Основы построения вычислений в MathCAD 11	31
Простейшие вычисления	31
Ввод выражений с клавиатуры	31
Вставка шаблонов сложных математических операторов	33
Вставка функций	33
Работа с переменными	34
Присваивание значения переменной	35
Использование значения переменной	35
Переменные диапазона	36
Работа с функциями пользователя	37
Задание негладких функций	38
Глобальное присваивание	38
Управление процессом вычислений	,	38
Форматирование результата вычислений	39
Единицы измерения физических величин	40
Вычисления в символьном виде	42
Использование меню Symbolics	42
Использование панели инструментов Symbolic	42
Ввод и форматирование текста	44
Создание и изменение размеров текстового блока	44
Форматирование текстового блока	45
Форматирование абзаца	46
Применение стилей	47
Размещение блоков на странице	47
Защита документа	49
Резюме	50
Тесты	51
Глава 3. Построение и форматирование графиков	53
Построение двухмерного графика	53
Простой способ построения декартова графика	53
Изменение масштаба графика	54
Изображение нескольких функций на одном графике	56
Использование переменных диапазона	56
Построение графика в полярной системе координат	57
График параметрически заданной функции	58
Форматирование двухмерного графика	59
Форматирование осей координат декартова графика	59
Форматирование полярного графика	60
Форматирование линий на графике	61
Добавление подписей на график	63
Построение и форматирование трехмерного графика	64
Построение графика в виде поверхности	64
Форматирование графика поверхности	65
График векторного поля		67
Построение правильных многогранников	67
График параметрически заданной поверхности	68
График параметрически заданной кривой	68
Резюме	69
Тесты	70
Глава 4. Операции с матрицами и решение алгебраических задач	71
Основные операции с векторами и матрицами	71
V
Содержание	7
Простой способ ввести матрицу	71
Основные операторы и функции для работы с массивами	73
Вывод и изменение отдельных элементов массива	75
Использование переменных диапазона	76
Оператор векторизации	76
Объединение матриц и выделение подматрицы	77
Собственные векторы и собственные числа	77
Решение систем линейных уравнений	79
Символьные операции с матрицами	80
Решение уравнений	81
Численный поиск корня уравнения	81
Поиск аналитического решения уравнений	82
Вычисление корней полинома	82
Системы нелинейных уравнений	83
Численный поиск решения системы уравнений	83
Решение систем уравнений в символьном виде	84
Решение однородной системы линейных уравнений	85
Приближенное решение системы, которая не имеет точного корня	86
Резюме	87
Тесты	88
Глава 5. Решение задач математического анализа	89
Пределы последовательностей и функций	89
Пределы последовательностей	90
Предел функции в точке	91
Односторонние пределы функции	92
Вычисление сумм и произведений	92
Численное вычисление суммы ряда	93
Символьное вычисление сумм	94
Вычисление произведений	95
Дифференцирование	95
Вычисление производной первого порядка	,	95
Вычисление односторонних производных	96
Производные высших порядков	96
Интегрирование	97
Численное интегрирование	97
Символьное интегрирование	100
Интегрирование функций с параметром	102
Кратные интегралы	103
Исследование функций	104
Вычисление линейных асимптот	104
Определение точек экстремума функций	104
Разложение функции в степенной ряд Тейлора	106
Разложение функции в ряд по одной переменной в окрестности нуля	107
8
Содержание
л
Разложение функции в ряд в окрестности произвольной точки	107
Разложение в ряд функции нескольких переменных	108
Интегральные преобразования	108
Резюме	109
Тесты	ПО
Глава 6. Решение дифференциальных уравнений	112
Возможности MathCAD для решения задач с дифференциальными уравнениями	112
Решение обычных дифференциальных уравнений и их систем	113
Использование группы решения	113
Решение систем дифференциальных уравнений	114
Решение задачи Коши без использования группы решения	115
Решение жестких уравнений и систем	116
Получение решения задачи Коши на верхней границе интервала интегрирования	119
Приведение краевых задач к задачам Коши	'	121
Решение уравнений в частных производных	122
Использование группы решения для дифференциальных уравнений параболического типа	122
Решение дифференциальных уравнений гиперболического типа и систем 123
Использование функции numol	124
Решение уравнения Пуассона с нулевыми граничными условиями	125
Решение уравнения Пуассона с ненулевыми граничными условиями	127
Резюме	127
Тесты	128
Найдите правильный ответ	128
Правда или ложь?	129
Глава 7. Работа с внешними источниками данных	130
Таблицы ввода данных в MathCAD	130
Создание таблицы данных	130
Заполнение таблицы данных с клавиатуры	131
Импорт данных из внешнего файла	132
Вставка данных из файла в таблицу	132
Установление постоянной связи с файлом для чтения	134
Экспорт данных во внешние файлы	135
Обмен данными с другими приложениями	136
Компонент Microsoft Excel	136
Компонент MATLAB	138
Другие компоненты	-	140
Использование утилиты MathConnex	140
Резюме	140
Тесты	141
Содержание	9

Глава 8. Теория вероятностей и математическая статистика	142
Распределения вероятностей случайных величин	142
Вычисление плотности распределения вероятности	143
Вычисление функции распределения	144
Вычисление обратной функции распределения	145
Генерация случайных чисел с различными	распределениями вероятностей	146
Основы статистического анализа данных средствами MathCAD	147
Первичная обработка данных	147
Средние значения случайной величины	147
Анализ погрешностей и отклонения от среднего	148
Оценка степени отклонения распределения случайной величины от нормального	148
Корреляция двух наборов случайных величин	148
Построение частотных гистограмм	149
Резюме	149
Тесты	150
Глава 9. Обработка экспериментальных данных средствами MathCAD	152
Интерполяция	15 2
Линейная интерполяция	153
Интерполяция кубическими сплайнами	154
Интерполяция В-сплайнами	155
Двухмерная сплайн-интерполяция	156
Экстраполяция	157
Регрессия	158
Линейная регрессия	159
Полиномиальная регрессия	160
Многомерная полиномиальная регрессия	161
Аппроксимация набора точек различными элементарными функциями	163
Аппроксимация набора точек функциями, заданными пользователем	165
Оценка точности аппроксимирующей функции	166
Сглаживание	167
Дискретное преобразование Фурье	169
Резюме	169
Тесты	171
Глава 10. Программирование в среде MathCAD	173
Что такое программирование в MathCAD	173
Создание локальной переменной внутри программы	174
10
Содержание
Значение, возвращаемое программой	174
Проверка условий в программах	175
Создание циклов	176
Циклы с оператором while	176
Циклы с оператором for	176
Использование операторов break и continue	178
Рекурсия	178
Обработка ошибок	179
Резюме	'	180
Тесты	181
Глава 11. Дополнительные возможности MathCAD	182
Обработка изображений и звука с помощью MathCAD	182
Чтение графических файлов	182
Отображение массива в виде изображения	183
Запись массива в графический файл	184
Работа со звуковыми файлами	184
Анимация графиков	187
Использование элементов управления в документах MathCAD	187
Резюме	188
Тесты	’	189
Приложение А. Ответы на тесты	190
Приложение Б. Комбинации клавиш, используемые в MathCAD	196
Греческие буквы	196
Вставка шаблонов	197
Редактирование и управление документом	199
Приложение В. Кнопки панелей инструментов	201
Предметный указатель	206
Содержание
11
Введение
Миллионы людей во всем мире каждый день сталкиваются с необходимостью решения различных математических задач. При этом до изобретения компьютера большую часть времени занимали самые рутинные расчеты: вычисление интегралов и производных, решение уравнений и их систем, построение графиков и т.д. На сегодняшний день существует большое количество различных программных продуктов, предназначенных для математических расчетов. Среди них, без сомнения, наиболее универсальной и простой для изучения является система MathCAD, последней (одиннадцатой) версии которой и посвящена данная книга. Также к несомненным преимуществам системы MathCAD следует отнести возможность оформления результатов вычислений в виде готового документа и высокую степень интеграции с другими Windows-приложениями.
Интерфейс MathCAD построен таким образом, чтобы быть как можно более интуитивно понятным. Поэтому, если у вас возникла необходимость выполнить ту или иную операцию, не спешите искать ее описание в учебнике, а изучите панели инструментов, меню, попытайтесь догадаться, как это может быть реализовано. И, поверьте, в большинстве случаев вы очень быстро самостоятельно найдете решение проблемы.
Конечно, данная книга не охватывает все возможности MathCAD 11, но назначение самоучителя не в этом. Основная цель данной книги — помочь людям, которые каждый день сталкиваются с необходимостью математических расчетов, освоить современные средства компьютерной математики и в кратчайший срок научиться использовать для своих расчетов систему MathCAD. В книге рассматривается применение MathCAD для решения задач из различных областей математики: линейной алгебры, математического анализа, математической статистики, а также построение графиков, импорт и экспорт данных и т.д.
Материал в книге изложен в такой форме, чтобы быть понятным и полезным как для читателей, уже знакомых с предыдущими версиями MathCAD, так и для читателей, не знакомых с компьютерной математикой и даже не знакомых с работой в среде Windows. Конечно, материал книги требует некоторых элементарных знаний высшей математики. Это означает, что книга в первую очередь ориентирована на студентов высших учебных заведений, научных работников и инженеров, а также всех, кто хочет быстро самостоятельно научиться проводить вычисления в среде MathCAD.
Как организована книга
Данная книга построена в виде учебника. Это означает, что для наилучшего понимания ее следует читать последовательно, главу за главой. В любом случае следует вначале внимательно прочитать первые две главы книги, в которых описаны самые основные понятия и операции, используемые в MathCAD. Последующие главы в меньшей степени связаны между собой, и к ним, при желании, можно обращаться как к справочнику. Но для читателей, которые не знакомы ни с предыдущими версиями MathCAD, ни с другими системами компьютерной математики, автор настойчиво рекомендует прочитать всю книгу от начала до конца.
Чтобы проверить, как усвоен материал, в конце каждой главы предложены тесты. Ответы на тесты можно найти в конце книги в приложении А.
Если вам потребуется освежить в памяти содержимое той или иной главы, то не обязательно перечитывать ее целиком. Может быть, достаточно обратиться к разделу “Резюме” в конце данной главы, где коротко перечислены все ее основные темы. Если вы читаете книгу последовательно, то также не следует игнорировать раздел “Резюме”. Прочитав этот раздел после главы, вы сможете систематизировать полученные знания.
Глава 1
Пользовательский интерфейс и основные функции MathCAD 11
В этой главе...
♦	Как запустить MathCAD
♦	Элементы рабочего окна MathCAD
♦	Панели инструментов
♦	Основные приемы работы с документами
♦	Использование справочной системы MathCAD
♦	Резюме
It—первой главе книги вы научитесь запускать MathCAD, разберетесь с назначени-1=^ ем элементов, которые находятся в его рабочем окне, а также научитесь выполнять основные действия с документами, — такие как создание, открытие, закрытие, сохранение, печать. Данную главу следует прочитать очень внимательно тем, кто плохо знаком с работой в среде Windows, поскольку здесь также описана работа с основными элементами интерфейса Windows: окнами, меню, кнопками, контекстными меню.
Как запустить MathCAD
Если на вашем компьютере установлен MathCAD 11, то запустить его можно несколькими способами. Во всех перечисленных ниже способах будет предполагаться, что ваш компьютер включен и на нем установлена операционная система Windows версии 98 или выше (Me, 2000, ХР).
Лч,  Если на рабочем столе Windows есть пиктограмма MathCAD 11, то вы можете запустить его двойным щелчком левой кнопкой мыши на MathCAD и этом значке.
	Если на панели быстрого запуска Windows, которая обычно находится внизу экрана рядом с кнопкой Start (Пуск в русскоязычных версиях Windows), есть значок MathCAD 11, то одним щелчком на этом значке вы также сможете запустить MathCAD.
	Также можно запустить MathCAD с помощью меню Start (Пуск). По умолчанию команда запуска MathCAD размешается в меню Start'=>Programsc> MathSoft Apps^MathCAD^MathCAD 11 Enterprise Edition (Пускс>Программы^ MathSoft Apps=>... в русскоязычных версиях Windows, также в Windows ХР вместо Programs будет All Programs (Все программы)).
	Если MathCAD был установлен правильно, то двойным щелчком в окне Му Computer (Мой компьютер) на имени любого файла MathCAD (файлы с расширением .med) вы запустите MathCAD, и данный файл будет открыт в нем для редактирования.
Если ни одним из вышеперечисленных способов вам не удалось запустить MathCAD, т.е. описанные выше пиктограммы и команды отсутствуют, но тем не менее, вы уверены, что система MathCAD 11 установлена на вашем компьютере, тогда можно найти на жестком диске файл mathcad.exe, который и запускает систему MathCAD (именно на него должны указывать все перечисленные выше ярлыки). Для этого в Windows 98 нужно выполнить следующую последовательность действий.
1.	Выберите команду Start->Search->Files and Folders (Пуск->Найти->Файлы и Папки).
2.	В открывшемся окне в поле Name (Имя) введите mathcad.exe, а в поле Location (Где искать) лучше всего будет выбрать Му Computer (Мой компьютер).
3.	Щелкните на кнопке Find (Найти). Возможный результат такого поиска приведен на рис. 1.1.
4.	После этого двойным щелчком на имени найденного файла запустите MathCAD 11.
В Windows 2000, ХР то же самое можно выполнить с помощью следующей последовательности действий.
1.	Выберите команду Starts Search (Пуск^> Найти).
2.	В открывшемся окне на панели слева выберите область поиска All files and folders (Все файлы и папки).
3.	Задайте для поиска имя файла mathcad.exe и расположение — Local Hard Drives (Локальные жесткие диски), как это показано на рис. 1.2.
4.	Щелкните на кнопке Search (Поиск) и среди найденных файлов выберите mathcad.exe (см. рис. 1.2).
5.	Теперь двойным щелчком на имени этого файла запустите MathCAD 11.
Рис. 1.1. Результаты поиска файла mathcad.exe в Windows 98
16
Гпава 1. Пользовательский интерфейс и основные функции MathCAD 11
В Search Results
File Edit View Favorites Teels Help

Address
Search Compamor
Search by any or all of the criteria below.
All or part of the file name: | mathcad.exe
t Name __	; v | In Folder__ ~ |
! gMATHCAD.EXE-188539‘IF.pf	C:\WINDOW5\Pref... 74 KB
'C^mathcad )	C:\ProgramFiles\M... 1OO5KB
PF File
Application
A word or phrase in the file:
When was it modified?
What size is it?
More advanced options
Look in:
ard Drives (C?;d1]e; Jt)
Нужный файл mathcad.exe
Рис. 1.2. Результаты поиска файлаmathcad.exe в Windows ХР
Элементы рабочего окна MathCAD
После запуска MathCAD 11 открывается рабочее окно, которое имеет приблизительно такой вид, как на рис. 1.3.
Далее мы подробно рассмотрим все элементы этого окна, хотя назначение многих из них станет ясно только в последующих главах.
Строка заголовка и кнопки управления окном
Самой верхней строкой в окне MathCAD, как и в любом другом окне Windows, является строка заголовка. В левой части этой строки расположены пиктограмма и название работающего приложения (у нас это MathCAD), а дальше название активного документа, т.е. документа, который вы в данный момент редактируете (на рис. 1.3 это документ под названием Untitled:1). В правой части строки заголовка расположены кнопки управления окном — это кнопки (слева направо) свернуть в значок, развернуть во весь экран (вместо этой кнопки появляется кнопка свернуть в окно, если окно уже развернуто во весь экран), закрыть окно.
DB правом верхнем углу окна MathCAD можно увидеть два набора кнопок управления окном, верхний из них расположен в строке заголовка окна MathCAD — эти кнопки позволяют разворачивать, сворачивать и закрывать окно приложения MathCAD, в то время как кнопки, находящиеся под ними, позволяют выполнять те же действия, но только с активным документом.
Строка меню
Под строкой заголовка в рабочем окне MathCAD расположена строка меню. Каждое слово в этой строке — это заголовок определенного меню, которое можно раскрыть щелчком на этом заголовке. Меню содержат различные команды, управляющие
Элементы рабочего окна MathCAD
17
Панель инструментов Standard
Строка меню	Панель инструментов Resources
Панель инструментов Formatting
Вертикальная полоса прокрутки
Горизонтальная полоса прокрутки Курсор
Строка состояния
Панель инструментов Math
Рис. 1.3. Рабочее окно MathCAD 11
работой MathCAD. В каждом меню собраны команды, сходные по своему назначению. Ниже будет вкратце описано назначение каждого меню, хотя, естественно, назначение большинства команд будет разъясняться по ходу изложения материала книги.
	File — команды этого меню предназначены для работы с файлами документов MathCAD. С их помощью можно создать новый документ или открыть уже имеющийся, сохранить на диске или распечатать созданный документ.
	Edit — в этом меню собраны стандартные средства редактирования документа. Это копирование (Сору), удаление (Delete) и вставка (Paste), а также поиск по документу (Find) и отмена последних действий (Undo). MathCAD И запоминает и дает возможность отменить до 100 действий. Возможность отменить последние действия очень полезна, если вы случайно стерли что-нибудь нужное, но следует помнить, что изменения форматирования отменить нельзя, поскольку они не рассматриваются как изменения содержимого документа.
	View — это меню управляет видом интерфейса MathCAD. Здесь есть команды для показа и сокрытия панелей инструментов, изменения масштаба документа и т.д.
	Insert — команды этого меню позволяют вставить в документ различные объекты, такие как график, таблицу, функцию и т.д.
	Format — команды этого меню позволяют управлять форматом отображения всех объектов MathCAD — текста, графиков, формул и пр.
	Tools — это меню содержит различные вспомогательные команды, такие как проверка орфографии, изменение настроек активного документа и системы
18
Глава 1. Пользовательский интерфейс и основные функции MathCAD 11
MathCAD. Автор не рекомендует изменять что-либо из этих настроек, если только это не будет явно указано в книге, поскольку это может привести к неожиданным последствиям.
	Symbolics — в этом меню содержатся команды, управляющие символьными вычислениями.
	Window — это меню содержит стандартные команды управления окнами открытых документов. Команды этого меню пригодятся вам при работе с несколькими документами MathCAD одновременно.
	Help — это меню предоставляет доступ к справочной системе MathCAD, таблице физических констант, шпаргалкам, учебникам и т.д.
-	Для некоторых команд меню слева от них есть те или иные пиктограммы. Это озна-чает, что то же самое действие можно выполнить, щелкнув на кнопке с указанным изображением на панели инструментов Standard (о панелях инструментов речь пой-.. ''S дет далее). Также справа от некоторых команд меню написаны комбинации клавиш, позволяющие вызывать эти команды. Знание комбинаций клавиш для часто используемых вами команд поможет ощутимо ускорить работу с MathCAD. Основные комбинации клавиш MathCAD и Windows перечислены в конце книги в приложении Б.
Рабочая область и курсор документа MathCAD
Большую часть окна MathCAD занимает белое пространство — рабочая область документа MathCAD. Именно здесь вы будете вставлять формулы, графики и любые другие объекты, составляющие содержимое документа. Сразу после запуска MathCAD рабочая область пуста, в ней есть только серая полоса справа — граница области печати (для чего она нужна, вы узнаете дальше в этой главе в разделе “Печать”) и красный крестик в левом верхнем углу — курсор MathCAD. Курсор показывает то место на странице, где будет начинаться следующий ввод. Его можно установить в любом месте документа простым щелчком мыши. Для того чтобы проиллюстрировать работу с курсором MathCAD, воспользуемся простым примером — численно проверим справедливость известной тригонометрической формулы 2аш2(х)= 1 -cos(2x) при х= 1. Для этого выполните следующую последовательность действий (результат каждого шага показан на рис. 1.4).
1.	Установите курсор в любом месте рабочей области документа.
2.	Введите с клавиатуры символы в следующей последовательности: 2 s i n ( 1 ) А 2 (обратите внимание на то, что знак умножения после двойки был вставлен в выражение автоматически).
3.	Нажмите клавишу <=>. MathCAD вычислит введенное выражение и запишет результат справа от знака равенства.
4.	Снова щелкните на свободном месте в рабочей области документа, чтобы установить там курсор.
5.	Введите второе выражение, которое необходимо вычислить: 1 - с о s ( 2 ) и также нажмите <=>.
Обратите внимание, что при вводе формул курсор MathCAD приобретает вид двух линий синего цвета — вертикальной и горизонтальной. Это так называемые линии редактирования — очень удобное средство для ввода и редактирования формул.. Когда некоторое выражение находится над горизонтальной линией редактирования и слева или справа от вертикальной, то будем говорить, что выражение заключено между линиями редактирования (если потребуется заключить между линиями редактирования один символ, то будем говорить просто — установить на него курсор). Если вставлять в формулу любую функцию или простой оператор, то выражение, заключенное между линиями редактирования, автоматически будет рассматриваться как аргумент.
Элементы рабочего окна MathCAD
19
J Zsin(l):
Шаг 4

1 *
2l 2sin(l)J = 1.4161
Рис. 1.4. Простейшие вычисления с помощью MathCAD
Если во время редактирования нажать клавишу <Space> (<Пробел>), то линии редактирования увеличатся и будут заключать уже большую часть формулы. При повторном нажатии клавиши <Space> между линиями будет заключена еще большая часть формулы. И так можно нажимать, пока вся формула не окажется заключена между линиями редактирования. Если после этого опять нажать <Space>, то линии редактирования вернутся в положение, где они находились до первого нажатия <Space>. Этот процесс иллюстрирует рис. 1.5. На нем каждый следующий кадр соответствует очередному нажатию клавиши <Space> (для первого кадра взят результат шага 3 из предыдущего примера в этом разделе).
21 2sin(l)-‘= 1.4161
Zsintl)2!- 1.416!
2sin(l) 1= 1.4161
2 sin(l)2 = 1.4161|
2 sin(l) - 1.416!
Рис. 1.5. Результаты последовательных нажатий клавиши <Space>
Строка состояния
Самая нижняя строка в окне MathCAD называется строкой состояния. В правой части этой строки (см. рис. 1.3) вы увидите надпись Press F1 for help, но если навести указатель мыши на любую кнопку панелей инструментов или команды меню, то в этом месте строки состояния появится короткая подсказка о том, что это такое. Эти подсказки могут быть очень полезны, когда необходимо быстро вспомнить, для чего предназначена та или иная кнопка, команда меню и др.
В левой части строки состояния находятся четыре “окошечка”. В первом из них обычно написано Auto, это означает, что MathCAD сейчас находится в режиме автоматических вычислений (об этом подробнее вы узнаете в следующей главе). Второе и третье “окошечки” показывают, включены ли на клавиатуре режимы Caps Lock и Num Lock соответственно. В четвертом (см. рис. 1.3) написано Pagel, это означает, что сейчас курсор находится на первой странице документа.
20
Глава 1. Пользовательский интерфейс и основные функции MathCAD 11
Контекстные меню
Если щелкнуть правой кнопкой мыши на рабочей области документа MathCAD или на любом объекте в этой области, то на экране появится так называемое контекстное меню. Во всех контекстных меню находятся команды, позволяющие вырезать (Cut), копировать (Сору) данный объект либо вставить на его место объект из буфера обмена (Paste).Также в контекстных меню можно найти команды, специфические для каждого объекта, которые управляют его выводом на экран и вычислением (если это вычисляемый объект).
Панели инструментов
В рабочем окне MathCAD под строкой меню находится несколько рядов различных кнопок — это так называемые панели инструментов MathCAD. Они предназначены для быстрого выполнения различных команд (для выполнения команды достаточно одного щелчка мыши на соответствующей кнопке). Панели могут быть
Рис. 1.6. Панель инструментов Math в виде отдельного окна
прикреплены к рабочей области сверху (см. рис. 1.3),
снизу, слева, справа а также “плавать” в отдельном окне. На рис. 1.6 показана панель
инструментов в виде отдельного окна.
Как показать или скрыть панель инструментов
По умолчанию в MathCAD показаны только несколько основных панелей инструментов. Показать другие панели или скрыть показанные можно с помощью подменю View=>Toolbars. На рис. 1.7 изображено, как оно выглядит. Каждая строка этого под-
меню соответствует определенной панели инструментов. Возле некоторых названий панелей в меню стоят флажки. Это означает, что данная панель сейчас показана на экране.
Вы, наверное, уже заметили, что в подменю View->Toolbars часть названий панелей инструментов отделена от других горизонтальной чертой (разделителем). Панели инструментов, названия которых расположены ниже разделителя, содержат математические команды и знаки, которые постоянно используются в расчетах, например команды вставки графика или матрицы, символы бесконечности, мнимой единицы и т.д. Поэтому с целью ускорения работы эти панели можно показать или скрыть одним щелчком мыши. Для этого предназначена панель инструментов Math (исключение — кнопка, открывающая панель инструментов Modifier, расположена на панели Symbolic, поскольку обе эти панели предназначены для управления символьными вычислениями). Каждая кнопка на или скрыть определенную панель инструментов.
Рис. 1.7. Меню панелей инструментов этой панели позволяет показать В приложении В описано, какие
панели инструментов соответствуют каждой кнопке на панели Math.
Панели инструментов
View Insert Format Tools Symbolics Windo»
1 .Toolbars	Q v	Standard
	•V	Formatting
V Stains Bat	V	Math
Header and Footer...		Controls Resources
Refresh	Ctd+R		Calculator Graph Matrix
Evaluation :
Calculus
Boolean Programming Greek Symbolic
21
Назначение панелей инструментов
В данном разделе мы кратко рассмотрим принципы, по которым команды MathCAD сгруппированы в панели инструментов. Это поможет при поиске нужной команды — вы будете сразу искаТь ее на соответствующей панели.
	Standard — как уже говорилось, кнопки этой панели дублируют основные команды различных меню.
	Formatting — здесь собраны команды, предназначенные для форматирования текста, такие как изменение стиля и шрифта текста, выравнивание, создание списков (не путайте с меню Format, где собраны команды для форматирования всех объектов MathCAD).
	Math — эта панель уже рассматривалась выше. Она служит для показа и сокрытия девяти математических панелей инструментов.
	Controls — эта панель позволяет создавать интерактивные презентации в MathCAD, т.е. вставлять в обычный документ MathCAD элементы управления Windows, такие как кнопки, переключатели, поля ввода и др. Описание применения этих компонентов выходит за рамки данной книги, так как они не используются непосредственно для расчетов (коротко о них будет рассказано в главе 11, “Дополнительные возможности MathCAD”).
	Resources — эта панель содержит одно меню, которое дает доступ к различным разделам справочной системы MathCAD — справочным таблицам, учебникам, шпаргалкам, электронным книгам. О справочной системе и ее разделах речь пойдет ниже в этой главе.
Дальше перечислены математические панели, вызываемые кнопками на панели Math.
	Calculator — эта панель позволяет вставлять в документ основные математические символы и операции. Эта панель фактически дублирует обычный калькулятор, так что назначение большинства кнопок вполне очевидно.
	Graph — кнопки этой панели позволяют вставить в документ шаблоны для различного вида графиков.
	Matrix — здесь сосредоточены различные операции с векторами и матрицами.
	Evaluation — эта панель предоставляет доступ к командам управляющим процессом вычисления, а также вставки пользовательских операторов.
	Calculus — эта панель содержит операции высшей математики (производные, интегралы, пределы и др ), а также знак бесконечности.
	Boolean — здесь находятся команды, задающие уравнения и неравенства, а также различные логические операции.
	Programming — операторы этой панели позволяют ввести ветвление в вычисления MathCAD, т.е. практически полноценно программировать.
	Greek — эта панель служит для вставки в документ греческих символов
	Symbolic — здесь сосредоточены ключевые слова, управляющие символьными вычислениями.
	Modifier — эта панель вместе с панелью Symbolic содержит ключевые слова, используемые при символьных вычислениях. Здесь расположены команды, задающие тип символьной переменной. Напомним, что кнопка, вызывающая эту панель, находится на панели инструментов Symbolic.
22 Глава 1. Пользовательский интерфейс и основные функции MathCAD 11
Основные приемы работы с документами
Все документы MathCAD хранятся на жестком диске компьютера в виде файлов с расширением .med. Любой такой файл можно открыть для редактирования в MathCAD. Основные операции для работы с документом MathCAD, такие как создание, открытие, сохранение, печать, собраны в меню File. Большая часть из них также вынесена на панель Standard.
Рис. 1.8. Диалоговое окно создания нового документа
Создание нового документа
Для создания нового документа предназначены команда меню File=>New..., а также соответствующая кнопка на панели инструментов Standard. Данная команда вызывает диалоговое окно создания документа (рис. 1.8), где можно выбрать шаблон для создаваемого документа. При щелчке на кнопке создания нового документа на панели инструментов Standard создается документ по шаблону Normal. Используя панель Standard, также можно создать документ на основании любого шаблона. Для этого нужно щелкнуть на кнопке с изображением маленького черного треугольника рядом с кнопкой создания нового документа и в раскрывшемся меню выбрать нужный шаблон. Выбор шаблона определяет стили форматирования различных элементов текста и параметры страницы, но никак не отражается на процессе вычислений. При подготовке данной книги автор пользовался только шаблоном Normal, что и вам рекомендует. Если вам все же захочется использовать другие шаблоны, то для упрощения работы с ними (для шаблонов, отличных от Blank Worksheet или Normal) документ
сразу будет содержать краткое описание шаблона с примерами заданных в нем стилей.
В диалоговом окне New, как и во всех других окнах, кнопка ОК позволяет принять сделанный выбор и создать документ по выбранному шаблону, а кнопка Cancel (Отмена) — отменить выбор и не создавать документ.
Открытие и закрытие документа MathCAD
Открыть документ для редактирования можно с помощью команды меню File^Open... или соответствующей кнопки на панели инструментов Standard. Эти команды позволяют открыть диалоговое окно открытия файла. В раскрывшемся диалоговом окне найдите на диске файл, который нужно открыть, щелкните на его названии, а затем — на кнопке Open.
Для того чтобы закрыть документ, можно воспользоваться командой меню File^Close, а можно, как уже упоминалось выше, щелкнуть на кнопке закрытия окна в правой части строки меню (но не в строке заголовка окна MathCAD).
Переключение между несколькими открытыми документами
В MathCAD можно открыть для редактирования несколько документов сразу. Конечно, в каждый момент времени вы будете редактировать только один, активный документ. Все выполняемые команды работы с файлом (сохранение, закрытие, печать) также относятся только к активному документу. Но если одновременно открыто не-
Основные приемы работы с документами
23
сколько документов, можно быстро активизировать любой из них. Для этого служит меню Window. В этом меню под разделителем перечислены названия всех открытых документов. Слева возле названия активного документа стоит флажок. Щелчком на названии любого документа его можно сделать активным.
Сохранение документа
После завершения работы с документом его необходимо сохранить на диске (желательно также периодически сохранять его в процессе работы). Для сохранения документа служат две команды меню FileXSave и File^Save as... (первая из них также вынесена в виде кнопки на панель инструментов Standard). Если вы создали новый документ и сохраняете его в первый раз, то между этими командами не будет никакой разницы — обе будут открывать диалоговое окно сохранения, где вас попросят ввести имя для нового файла и выбрать каталог на диске для его размещения. Но если документ был открыт из существующего файла либо уже был сохранен, то выбор команды File->Save или щелчок на кнопке панели инструментов приведет к перезаписи существующего файла. Команда File->Save as... в таком случае поведет себя точно так же, как и раньше, что* позволит сохранить файл под другим именем или в месте, отличном от изначального, если есть такая необходимость
Печать
Если к вашему компьютеру подключен принтер, то MathCAD позволит вам сразу же распечатать созданный документ. Перед печатью необходимо установить параметры страницы. Для этого служит команда File->Page Setup. Эта команда открывает диалоговое окно, позволяющий изменить размер листа бумаги, его ориентацию и поля. Для любых документов в Украине и России стандартным является размер бумаги А4 и поля 2 см (если нужно, для скоросшивателя устанавливают левое поле в 3 см). Поскольку ни один из стандартных шаблонов MathCAD не устанавливает поля таким образом, то это нужно всегда делать вручную перед печатью.
После установки полей и размера листа бумаги внимательно просмотрите весь документ: не выходят ли какие-либо его элементы за область печати (область между левой границей рабочей области и сплошной серой вертикальной линией в правой части рабочей области). Разместите все элементы внутри области печати, иначе они не будут напечатаны или будут частично перенесены на другую страницу.
После установки параметров страницы выберите команду File^Print Preview для того, чтобы увидеть, как документ будет выглядеть на печати. Если больше никаких изменений не требуется, то можно смело начинать печатать. Для этого служит команда File^Print... Эта команда инициирует процесс печати и на экран выводится диалоговое окно Print (рис. 1.9).
По аналогии со всеми остальными диалоговыми окнами, для печати нужно щелкнуть на кнопке ОК, а для отказа от печати — на кнопке Cancel.
( (УЧ Если на печати документ выглядит не так, как в окне предварительного просмотра, II । обратитесь к документации по принтеру. Возможно, это связано с необходимостью j J*_L изменения некоторых его настроек.
Г О
Использование справочной системы MathCAD
Справочная система MathCAD — это огромная база данных, в которой можно найти описание любого элемента, любой команды MathCAD, а также большое количество примеров их использования и даже справочник физических и математических формул и величин. Поэтому не вызывает сомнения, что справочная система MathCAD
24 Глава 1. Пользовательский интерфейс и основные функции MathCAD 11
Выберите принтер
Задайте количество копий
Щелкните здесь для начала печати
Задайте, какие страницы нужно распечатать
Рис. 1.9. Диалоговое окно печати документа
по объему превосходит не только данную, но и любую другую напечатанную книгу по MathCAD. Однако справочная система неудобна для начального знакомства с MathCAD, поэтому она не заменит вам эту книгу, а лишь дополнит ее, если описанных здесь приемов окажется недостаточно. Кроме того, справочная система написана на английском языке, и локализация ее для нас появится еще не скоро.
Все компоненты справочной системы MathCAD можно найти в меню Help (рис. 1.10). Команды этого меню разделены на четыре категории.
zQ MathcS'Heip i fT\ It? What's This? Shift+F1
BQevelopef’ssReferenCe'A W?Author's SSerehcb V-y (Tutorials 'X. Hh i QuickSb.eets  “J, lfc\4:fieferenceiabieg<Jlil=, К E-books	/
User Forums
Mathcad Update	у
i: About Mathcad...
Справка и руководства no Mathcad
Справочные ресурсы Mathcad
Ресурсы Internet
Рис. 1.10. Команды меню Help
 Первая группа — вызов окна справки по MathCAD и справка по элементам интерфейса. Также здесь находятся два руководства: руководство разработчика (Developer's reference) и руководство для авторов (Author’s reference). Руководство разработчика предназначено для программистов, которые хотят использовать в своих проектах вычислительные средства MathCAD. Руководство для авторов предназначено для людей, которые хотят средствами MathCAD создать математическую электронную книгу или Web-сайт.
Использование справочной системы MathCAD
25
	Вторая группа — это Центр ресурсов MathCAD. Здесь можно найти учебники (Tutorials), шпаргалки (Quicksheets) по использованию функций MathCAD, справочные таблицы (Reference Tables), а также электронные книги (E-books), описывающие различные расширения MathCAD.
	Третья группа — ресурсы Internet, посвященные MathCAD. Здесь есть ссылки на несколько Web-сайтов: collab.mathsoft.com — посвящен совместной работе над проектами (команда меню User Forums), mathcad.com— официальный Web-сайт компании MathSoft, посвященный системе MathCAD. Команда Mathcad Update позволяет получить с Web-сайта mathcsd. com последнее обновление для MathCAD.
 Наконец, окно, вызываемое командой About Mathcad, содержит информацию о версии продукта, авторских правах и лицензии, а также позволяет зарегистрировать вашу копию MathCAD через Internet.
Использование окна справки
Для вызова окна справки по MathCAD (рис. 1.11) можно выбрать команду меню Help=>Mathcad Help, щелкнуть на кнопке вызова .справки на панели инструментов Standard или нажать <F1> на клавиатуре. Левая часть окна справки предназначена для навигации по справочной системе, а в правой части непосредственно отображаются вызываемые разделы справочной системы.
|j? Mathcad Help
s	а ф
Hide	Нлте Print Johans
....................  "	...'....'................    "	3
Contents 11 гюеи ] Seach |
|G^:ting Started
!+;Equations
Text
i+; ф Computational Features	|
+' ф Layout T ools
Worksheet Management
Vectors and Matrices	|
'+ ф Strings
+ ф Functions
* ф Operators
Solving and Optimization . .
Data Management
Data Analysis • Statistics
Graphs
.+ ф Symbolic Calculation
- ф Units and Dimensions	rJ
mathcad 11
Mathcad is the industry standard calculation software for technical professionals, educators, and college students. Mathcad is as versatile and powerful as programming languages, yet it's as easy to learn as a spreadsheet. Plus, it is fully wired to take advantage of the Internet and other applications you use every day.
a
Рис. 1.11. Окно справки MathCAD
Левая часть окна справки MathCAD содержит три вкладки. Для того чтобы перейти к нужной вкладке, следует щелкнуть на ее корешке. Каждая из вкладок предоставляет свои возможности по поиску необходимого раздела справки.
	Contents — здесь разделы справки собраны в древовидную структуру по тематике. Этой закладкой полезно пользоваться, если вы знаете, к какой тематике относится ваша задача, но не знаете, какие средства MathCAD помогут вам ее решить.
Каждой главе здесь соответствует пиктограмма — книжка, а каждому разделу — листок со знаком вопроса. Для того чтобы показать (или скрыть) содержание главы, нужно щелкнуть на значке “+” (или для сокрытия) слева от пикто
26
Гпава 1. Пользовательский интерфейс и основные функции MathCAD 11
граммы главы или дважды щелкнуть на названии главы. Двойной щелчок на названии раздела покажет этот раздел в правой части окна справки.
	Index — предметный указатель. Как в любой книге, здесь собраны все ключевые понятия в алфавитном порядке. Этой вкладкой полезно пользоваться, если вы ищете описание какой-либо конкретной команды MathCAD.
	Search — позволяет найти все разделы справочной системы, где упоминается введенное слово или словосочетание. Это наиболее универсальное средство поиска. Его стоит использовать только в том случае, если не удалось найти нужную информацию с помощью вкладок Contents и Index.
Часто разделы справки MathCAD содержат гиперссылки на другие разделы. Но при переходе к другому разделу предыдущий, естественно, исчезает с экрана. Если возникает необходимость вернуться к предыдущему просмотренному разделу, это можно сделать с помощью кнопки Back в строке кнопок в верхней части окна справки.
Контекстная справка
Система контекстной справки MathCAD позволяет быстро получить описание любого элемента интерфейса, оператора, функции или сообщения об ошибке.
Для того чтобы получить контекстную справку по какому либо элементу интерфейса, можно воспользоваться командой меню Help^What’s This? или соответствующей кнопкой на панели инструментов Standard. После выбора этой команды указатель мыши превратится в стрелку со знаком вопроса. Если теперь щелкнуть на любом элементе интерфейса в окне MathCAD, то сразу же откроется раздел справки, посвященный данному элементу. Есть также другой способ получения контекстной справки по элементам интерфейса. Можно просто подвести указатель мыши к нужному элементу и нажать клавишу <F1>.
Для получения контекстной справки по функциям MathCAD следует в выражении, содержащем нужную функцию, заключить ее в линии редактирования и нажать <F1>. Поскольку сам по себе оператор MathCAD нельзя заключить в линии редактирования, то для получения контекстной справки достаточно поставить курсор рядом с нужным оператором и также нажать <F1>.
Для получения информации об ошибках MathCAD просто щелкните на выражении с ошибкой и нажмите <F1>.
Учебники и шпаргалки
Учебники и шпаргалки являются дополнительными средствами справочной системы MathCAD. И учебники, и шпаргалки — это настоящие документы MathCAD, т.е. вы свободно можете копировать их фрагменты в свой документ (как копировать объекты из одного документа в другой будет описано в следующей главе).
Список учебников MathCAD можно вызвать с помощью команды меню Help^Tutorials (рис. 1.12). Каждое название учебника в этом списке — это гиперссылка, т.е. достаточно щелкнуть на нем мыщью, чтобы вызвать соответствующий учебник. Первые два учебника в списке (Overview and Quick tour, New features in MathCAD 11) — это обзоры возможностей MathCAD. Из них можно узнать, что вообще может MathCAD 11. Следующие два учебника помогут научиться использовать вычислительные возможности MathCAD — один на начальном уровне, второй — на более высоком. Последний в списке пятый учебник расскажет о разных способах получения помощи в среде MathCAD.
После выбора команды меню Help=>QuickSheets вы увидите перечень доступных шпаргалок MathCAD. Каждая шпаргалка — это решение отдельной практической задачи, поэтому их можно использовать как шаблоны для проведения собственных расчетов.
Использование справочной системы MathCAD
27
Рис. 1.12. Окно вызова учебников MathCAD
Справочные таблицы MathCAD
Кроме информации о самой системе MathCAD, справочная система содержит также многочисленные справочные таблицы по физике и математике. Для вызова справочных таблиц нужно выбрать команду меню Help^Reference Tables. В этих таблицах вы сможете найти следующую информацию.
	Фундаментальные физические константы.
	Основные формулы по физике (почему-то разработчики включили сюда только формулы по механике).
	Периодическую систему элементов Д. И. Менделеева (причем для каждого элемента даны все его основные физико-химические свойства) — приведено даже где, кем и когда этот элемент был открыт (рис. 1.13).
	Таблицу основных интегралов и производных.
	Таблицы по геометрии — площади, периметры, поверхности и объемы различных фигур.
	Таблицу классификации многогранников.
	Таблицы по механике — центры масс и моменты инерции тел различной формы.
	Таблицы по электрике — емкости различных систем и свойства различных колебательных контуров.
	Таблицы, содержащие различные физические свойства газов, жидкостей и твердых тел.
Конечно, справочные таблицы MathCAD не претендуют на полноту и никак не могут соперничать с серьезными справочниками. Если бы разработчики сделали попытку пополнить данные таблиц, то это повлекло бы за собой резкое увеличение занимаемого системой объема памяти на жестком диске, а также усложнило бы поиск нужной информации. Однако данные электронные справочные таблицы имеют один большой плюс по сравнению с печатными справочниками — любая величина из них, при необходимости, может быть быстро скопирована в документ MathCAD.
28
Гпава 1. Пользовательский интерфейс и основные функции MathCAD 11
де *
^Mathcad Popup -
BASIC SCIENCE RE₽E
refererice tables
Periodic Table of Elements
de Selenium
Atomic number:
34
Atomic mass.
73.96
Alkali Metals
Atomic radius-
Alkaline Earth Metals
Melting temperature:
Boiling temperature.
Transition Element
Critical temperature:
Standard state-
Solid
Color:
Discoverer:
Date discovered.
1817
Where disco-
Sweden
E0EI01;
Press F1 fa help
Рис. 1.13. Периодическая система элементов в справочных таблицах MathCAD
jLQjxJ
Tm:= 490 K
Tb = 958.1 К
Tc •= 1757
Gray, metallic lustre Jons Berzelius
- 17 ra:= 116-10 u
0®

Резюме
Теперь подведем итоги, чему же мы научились в этой главе. Прежде всего мы познакомились с основами работы в среде MathCAD. Мы научились запускать MathCAD различными способами: с рабочего стола, с панели быстрого запуска, из меню Start (Пуск). Осваивая запуск MathCAD, нам также пришлось познакомиться с системой поиска файлов в Windows.
Также мы разобрались со всем тем, что можно увидеть в окне MathCAD после его запуска, т.е. с интерфейсом. Основные элементы интерфейса MathCAD: строка меню, панели инструментов, строка состояния, рабочая область и курсор. Мы кратко рассмотрели назначение всех элементов интерфейса — подробнее назначение всех элементов будет рассмотрено в следующих главах.
Также в этой главе мы научились основным приемам работы с файлами документов MathCAD с помощью команд меню File. Для создания нового документа служит команда New, для открытия документа — Open, для сохранения — Save, для печати — Print. Можно открыть для редактирования одновременно несколько документов и переключаться между ними с помощью меню Window.
Мы также узнали, как с помощью команд меню Help получить доступ к справочной системе MathCAD. Были рассмотрены все разделы справочной системы: общая справка (а также различные способы поиска нужной информации в справке), учебники, шпаргалки, справочные таблицы, ресурсы Internet.
Резюме
29
Тесты
Эти тесты помогут вам закрепить материал данной главы. Ответы ищите в приложении А.
Найдите правильный ответ
Каждый из предложенных вопросов может иметь несколько правильных ответов.
1.	Какого меню нет на панели меню MathCAD И:
a)	Format;
б)	Math;
в)	Tools;
г)	Symbolics.
2.	Какие команды находятся во всех контекстных меню MathCAD И:
a)	Cut;
б)	Paste;
в)	Paste Special...;
г)	Format....
3.	Какие панели инструментов по умолчанию изображены в окне MathCAD 11:
a)	Standard;
б)	Math;
в)	Tools;
г)	Symbolic.
4.	Что из перечисленного можно найти в справочных таблицах MathCAD 11:
а)	формулу площади поверхности шара;
б)	плотность воды;
в)	формулу зависимости координаты от времени при равноускоренном движении; г) закон Ома;
д)	электрическую емкость шара.
Правда или ложь?
Каждое утверждение либо верно, либо нет.
5.	В MathCAD можно открывать для редактирования несколько документов.
6.	Все команды меню можно найти в виде кнопок на панелях инструментов.
7.	Курсор MathCAD всегда имеет форму красного крестика.
8.	Для изменения размера бумаги и полей служит команда меню File1^ Print Preview.
30 Глава 1. Пользовательский интерфейс и основные функции MathCAD 11
Глава 2
Основы построения вычислений в MathCAD 11
В этой главе...
♦	Простейшие вычисления
♦	Работа с переменными
♦	Работа с функциями пользователя
♦	Глобальное присваивание
♦	Управление процессом вычислений
♦	Форматирование результата вычислений
♦	Единицы измерения физических величин
♦	Вычисления в символьном виде
♦	Ввод и форматирование текста
♦	Размещение блоков на странице
♦	Защита документа
♦	Резюме
га	к
данной главе собраны все основные приемы и понятия, необходимые для эф-фективного выполнения вычислений и оформления документов в системе MathCAD. Рассмотрены такие вопросы, как ввод и форматирование текста, ввод и форматирование формул, вставка единиц измерения физических величин, а также управление вычислениями и защита документа от редактирования.
Простейшие вычисления
Выполнение вычислений — это основное предназначение системы MathCAD. В предыдущей главе мы уже встречались с примерами простых вычислений в MathCAD. Сейчас пришло время подробнее рассмотреть этот процесс. Каждому математическому оператору в MathCAD соответствует та или иная кнопка на панелях математических инструментов, а также клавиатурное сочетание для быстрого ввода с клавиатуры.
Ввод выражений с клавиатуры
Простые арифметические выражения могут быть введены с клавиатуры. Для того чтобы проиллюстрировать, как вводятся арифметические выражения, рассмотрим пример — вычислим выражение (1/2 + 3/41(5/6 - 7/8)/9 (результат каждого шага показан на рис. 2.1).
1.	Установите курсор в свободном месте рабочей области документа и введите с клавиатуры 1/2. Вы увидите, что после нажатия клавиши </> в том месте, куда нужно ввести двойку, появится черный квадратик, т.н. поле ввода. Эти черные квадратики всегда обозначают в формулах место для ввода. Не стоит пытаться его стереть, просто введите двойку, и она займет его место.
2.	Сейчас линии редактирования охватывают только цифру 2, так что если сейчас нажать <+>, то введенное за ним число будет прибавлено к двойке, а не к 1/2. Поэтому следует нажать клавишу <Space> (<Пробел>), чтобы линии редактирования охватили всю дробь.
3.	Введите “+” и второе слагаемое первой дроби: 3/4.
4.	По аналогии с п. 2, для того, чтобы операцию умножения применить к двум слагаемым, их необходимо поместить между линиями редактирования. Для этого два раза нажамите <Space>. После этого можно вводить знак умножения (*). Как видим, MathCAD сам вставил в выражение скобки там, где это было необходимо.
5.	Вторые скобки придется открывать и закрывать вручную, поскольку MathCAD не может однозначно определить, нужны они или нет. Введите: (5/6 <Space> -
7 / 8 ).
6.	Теперь между линиями редактирования заключена вся вторая скобка, так что если сейчас ввести / 9, то получится правильное выражение, но для порядка лучше предварительно нажать <Space>, чтобы черта дроби охватила все выражение.
7.	И наконец, для того, чтобы вычислить введенное выражение, нужно нажать клавишу <=>. Нажатие этой клавиши не только вводит данный символ в выражение, но служит сигналом для MathCAD, что выражение введено и его пора вычислять (для того чтобы ввести знак равенства не понадобилось помещать все выражение между линиями редактирования, поскольку положение данного знака в выражении всегда однозначно).
Шаг 1 Шаг 2
Шаг 4
Шаг 7
Шаг 5	Шаг 6
Рис. 2.1. Ввод арифметических выражений в MathCAD
Итак, данный пример показал, как просто можно ввести с клавиатуры любое арифметическое выражение. Потренируйтесь немного в введении различных формул, для того чтобы освоиться с использованием линий редактирования и клавиши <Space>. Посмотрите на формулы на рис. 2.2, подумайте, как они были введены, попробуйте ввести их сами (для возведения в степень используется клавиша <А>, для извлечения квадратного корня — <\>).
; л Выражения MathCAD могут содержать не только действительные, но и комплексные числа. Комплексное число вводится как сумма действительной и мнимой части. Для ,	того чт°бы ввести мнимую часть числа, введите численное значение, а затем нажми-
ШКНЙ	те букву i (или j) на клавиатуре. При этом принципиально важно не вводить знак
умножения между численным значением и мнимой единицей.
32
Глава 2. Основы построения вычислений в MathCAD 11
3
1
П2 3 ^4+5
= 0.084
^21 = 0.406 26
+ П =025
< 6+7+8+Р )
Рис. 2.2. Примеры различных арифметических выражений
Вставка шаблонов сложных математических операторов
Для ввода более сложных математических конструкций можно воспользоваться различными панелями математических инструментов (вообще-то, и рассмотренные выше операторы сложения, умножения и др. также можно найти в виде кнопок на панели инструментов Calculator). Каждая кнопка на панелях математических инструментов вставляет в документ шаблон соответствующего оператора. На рис. 2.3 изображены шаблоны MathCAD для определенного интеграла, суммы и производной произвольного порядка.
d1 d,'
Рис. 2.3. Шаблоны мате
матических операторов
После вставки шаблона в документ необходимо заполнить его значениями, т.е. ввести числа или выражения вместо черных квадратиков в шаблоне. Для того чтобы заполнить то или иное поле, просто щелкните на соответствующем черном квадратике и введите нужное значение. На рис. 2.4 приведен пример заполнения значениями и вычисления определенного интеграла.
Рис. 2.4. Заполнение значениями шаблона определенного интеграла
400
0
daj = 4.221
Вставка функций
Кроме операторов, вычисляемые выражения MathCAD могут содержать также и различного рода функции. Функции можно вводить двумя способами. Первый способ — просто ввести ее с клавиатуры, как это было сделано с функциями sin и cos в примере из предыдущей главы. После функции в скобках нужно ввести аргумент или несколько аргументов через запятую. Этот способ подходит, если точно известно, как пишется данная функция в MathCAD, сколько у нее аргументов и т.д.
Второй способ — вставить нужную функцию из библиотеки функций MathCAD. Для того чтобы открыть диалоговое окно вставки функции, из библиотеки можно выбрать команду меню Insert^Function или щелкнуть на соответствующей кнопке на панели инструментов Standard. В открывшемся диалоговом окне из списка Function Category выберите категорию функций, а из списка Function Name — нужную функ-
Простейшие вычисления
33
цию. После этого в поле внизу окна можно найти транскрипцию и короткое описание выбранной функции (на рис. 2.5 выбрана функция, возвращающая значение полинома Лежандра (функция Leg) из категории специальных функций Special). Если этого описания будет недостаточно, то можно щелкнуть на кнопке с изображением знака вопроса в левом нижнем углу окна для вызова соответствующего раздела справки. После выбора функции, которую необходимо вставить, можно щелкнуть на кнопке ОК, для того чтобы вставить функцию в документ и закрыть окно. Кнопка Insert также позволяет вставить выбранную функцию в документ, но при этом диалоговое окно закрыто не будет. Это можно использовать для вставки в документ нескольких функций сразу. Для закрытия диалогового окна без вставки функции в документ нужно щелкнуть на кнопке Cancel (Отмена). Если вставить функцию таким способом, после имени функции в скобках через запятую будут вставлены поля для ввода аргументов.
I Insert FiffMhiHi

(Solving
Список разделов___
библиотеки функций
Список функций в данном разделе
Транскрипция функции-----[£eg(n X)
Statistics
String
Trigonometric
Truncation and Round-Off
unction Name libeta ~
InGamma mhypei
Tcheb
Ucheb
iReturns the value of the Legendre Do^nomial of degree n at x. Краткое описание функции----------------н
Insert
Cancel I
Щелкните здесь для получения более полной справки...	___ „т „
н	...илиздесьдлятого,
чтобы вставить функцию в документ
Рис. 2.5. Диалоговое окно вставки функции
Следует заметить, что в MathCAD понятие функции намного шире, чем обычное математическое понятие функции. Функции MathCAD ближе к функциям' языков программирования. С помощью тех или иных функций можно решать уравнения, считывать данные из файла и многое другое.
Работа с переменными
В большинстве задач решение не может быть записано в виде одной формулы. Для того чтобы связать между собой отдельные этапы решения задачи, результат любого вычисления можно присвоить некоторой именованной переменной, а затем использовать ее в дальнейших вычислениях. Также переменные применяются для хранения начальных условий или параметров задачи. В таком случае достаточно будет только изменить начальное условие, а пересчет всей задачи выполняется автоматически.
Значение любой переменной может быть использовано только “после” того, как оно было присвоено. Понятие “после” в документе MathCAD означает, что выражение, использующее значение переменной, должно располагаться на странице ниже (или на одном уровне, но правее), чем выражение, ее задающее. Подробнее об этом рас-
сказано в разделе “Размещение блоков на странице” в этой главе.
34
Гпава 2. Основы построения вычислений в MathCAD 11
Присваивание значения переменной
Для присваивания переменной числа или результата выражения следует выполнить такую последовательность действий:
1.	Установите курсор в свободном месте рабочей области и вводится имя переменной.
Я Имя может быть любой длины. Оно может состоять из букв (английских или русских), цифр и символа подчеркивания, но не может начинаться с цифры и содержать пробелы. Также имя переменной может содержать нижний индекс, устанавливаемый нажатием клавиши < . >. Нс путайте текстовый нижний индекс в имени переменной с указателем элемента вектора, этот индекс является всего лишь частью имени. Текстовые индексы не только расширяют возможности набора имен переменных—они используются для обозначения производных в дифференциальных уравнениях в частных производных. Конечно, желательно использовать короткие одно- или двухбуквенные имена переменных. Тогда и набирать их быстрее и формулы выглядят компактнее.
2.	Введите оператор присваивания (:=). Для этого достаточно нажать клавишу < : > на клавиатуре или щелкнуть на кнопке с соответствующим изображением на панели инструментов Evaluation.
3.	Далее введите число или выражение, результат которого необходимо присвоить переменной.
 Если при оформлении документа необходимо, чтобы присваивание выглядело на эк-ft	ране как знак равенства без двоеточия, то следует воспользоваться командой View
Definition As=>Equal контекстного меню оператора присваивания (рис. 2.6). Напомним, что контекстное меню можно вызвать щелчком правой кнопкой мыши на операторе.
View Definition As »
Cut	Colon Equal
S=i copy
Properties.,,
^Disable Evaluation
Optimise
Рис. 2.6. Контекстное меню оператора присваивания
Использование значения переменной
После того как переменной было присвоено значение, ее можно использовать в любых выражениях как обычное число. Существенная разница между числом и переменной проявляется лишь в том, что если в выражении, значение которого присвоено переменной, что-то изменить, то автоматически изменятся значения всех выражений, куда эта переменная входит. Также, если необходимо просто вывести значение переменной, то можно ввести ее имя и нажать клавишу <=>. Рассмотрим использование переменных на примере (рис. 2.7). Для этого выполните следующие действия.
1.	Присвойте переменной а значение 5 (воспользуйтесь последовательностью действий, приведенной выше).
2.	Затем присвойте переменной Ь значение а2.
Работа с переменными
35
3.	Выведите значение переменной Ь. Очевидно, это будет 25.
а := 5
Ь = 25
Рис. 2.7. Пример использования переменных
Теперь если изменить значение переменной а, то автоматически изменится и значение переменной Ь. Это иллюстрация того факта, что MathCAD при внесении каких-либо изменений в документ, пересчитывает заново все формульные блоки, находящиеся ниже строки, где были внесены изменения.
Переменные диапазона
Переменные MathCAD, которые рассматривались до сих пор, хранили одно числовое значение. Однако переменная в MathCAD может хранить и несколько значений. Для этого есть две принципиально разные возможности. Первая — присваивание переменной в качестве значения одно- или двумерного массива чисел (вектор или матрица). Работа с векторами и матрицами будет рассмотрена подробно в главе 4, “Операции с матрицами и решение алгебраических задач”.
Вторая возможность — создание переменной диапазона (Range Variable). Такая переменная хранит последовательность чисел, заполняющих заданный диапазон с заданным шагом (рис. 2.8).
а:=1.. 5	Ь:=0,2..8	с:=1,0.8..0
Рис. 2.8. Примеры переменных диапазона
Как видно из рисунка, для того чтобы задать переменную диапазона, необходимо ввести первый, второй и последний элементы последовательности. Например, i : = 1,3. . 7 означает, что переменная i будет содержать последовательность чисел от единицы до семи с шагом два (шаг задает разность между первым и вторым элементом), т.е. {1, 3, 5, 7}. Если второй элемент последовательности не указан, то шаг принимается равным единице (см. переменную а на рис. 2.8)
Для того чтобы ввести оператор, задающий переменную диапазона (две точки— ..), можно нажать на клавиатуре клавишу < ; > или щелкнуть на соответствующей кнопке на панели инструментов Matrix.
Таким образом переменная диапазона, так же как и массив, хранит целый набор значений, но, в отличие от массивов, невозможно получить доступ к отдельному элементу этой переменной. Подобных переменных нет ни в одном языке программиро
36
Гпава 2. Основы построения вычислений в MathCAD 11
вания. Но если проводить аналогию с языками программирования, то использование переменных диапазона ближе всего к заданию цикла в программах. Конечно, они не обладают всеми возможностями циклов (в MathCAD есть возможность создавать и полноценные циклы), но с помощью переменных диапазона можно, например, задать значения всех элементов матрицы или вывести график по точкам (рис. 2.9). Использование переменных диапазона для этих целей будет рассмотрено подробнее в главах 3 и 4.
О Верхняя граница диапазона необязательно должна быть элементом последовательности. Это число просто ограничивает последовательность сверху (или снизу для убывающей последовательности). Например, переменная а := 1,4.. 9 будет содержать последовательность {1,4, 7}.
0.. 3
j := 0..2
х:=0..Ю
ГО
Рис. 2.9. Применение переменных диапазона
Работа с функциями пользователя
В MathCAD, как и в языках программирования, есть возможность задания функций пользователя. Имена функций в MathCAD подчиняются тем же правилам, что и имена переменных. Для задания функции пользователя нужно ввести имя, а затем в круглых скобках через запятую ввести все аргументы. Для аргументов можно использовать любые имена, подчиняющиеся тем же правилам, что и имена переменных. Далее, как обычно, нужно ввести оператор присваивания (:=) и после него — выражение, зависящее от введенных аргументов (рис. 2.10).
у:=3
О :=	gfx.y) := х2 + у2
х+ 1 •
fU)-2	g(l,Z) = 5
=	§<У,У) = I8
Рис. 2.10. Использование функций пользователя
' л  Выражение, присваиваемое функции, может содержать переменные и функции, оп-ределенные ранее. При этом следует помнить, что если один из аргументов имеет такое же имя, как и определенная ранее переменная, то в выражении это имя всегда будет рассматриваться как имя аргумента. На рис. 2.10 имя у для функции д являет-
ся аргументом, а для функции f — заданной ранее переменной.
Работа с функциями пользователя
37
Задание негладких функций
В математике, кроме гладких функций, часто используются разрывные функции и так называемые кусочно-непрерывные функции. Это функции, которые сами по себе непрерывны, но производная от них содержит один или несколько разрывов. Простейшим примером кусочно-не прерывной функции является модуль. MathCAD позволяет задавать наравне с гладкими также любые кусочно-непрерывные или разрывные функции. Для этого можно использовать методику, которая будет описана в главе 10, “Программирование в среде MathCAD”, а также встроенные негладкие функции.
	Ф(х) — ступенчатая функция Хевисайда. Возвращает нуль при л<0и единицу при х > 0.
	sign (х) — возвращает 1 при х > 0, -1 при х < 0 и 0 при х = 0.
	if (с,х,у) — наиболее универсальная негладкая функция. Возвращает выражение х, если условие с выполняется, и у — в обратном случае (о построении условий подробно будет рассказано в главе 10, “Программирование в среде MathCAD”). Перечисленные выше функции могут быть выражены через функцию if следующим образом: Ф(х) : = if(х>0,1,0) , sign(х) : = if(х>0,1,-1)-if(х=0,0,1).
Этих функций достаточно для построения почти любой негладкой функции.
Глобальное присваивание
Иногда в документах возникает необходимость несколько нарушить обычный порядок вычислений, т.е. использовать значение некоторой переменной выше на листе, чем расположен оператор присваивания. В таких случаях следует вместо обычного оператора присваивания < : > использовать так называемый оператор глобального присваивания. На экране этот оператор выглядит так: =. Вставляется он с помощью клавиши < ~ > или кнопки с соответствующим изображением на панели инструментов Evaluation. Использование оператора глобального присваивания полностью аналогично обычному оператору присваивания. Если вы хотите, чтобы этот оператор выглядел на экране как обычный знак равенства, то следует поступать так же, как и в случае с обычным оператором присваивания: вызвать его контекстное меню и выбрать в нем команду подменю View Definition As^Equal.
Если в документе используются глобальные присваивания, то MathCAD проводит вычисления в следующей последовательности.
1. Вычисляются сверху вниз все блоки с оператором глобального присваивания. Значение всех заданных переменных и функций запоминается.
2. Снова с самого начала документа вычисляются сверху вниз все оставшиеся блоки. При этом используются значения запомненных переменных, но блоки с оператором глобального присваивания повторно не вычисляются.
Это означает, что в блоках с оператором глобального присваивания нельзя использовать результат вычислений из обычного блока. Понятно, что если бы это было возможно, то неаккуратное использование оператора глобального присваивания могло бы привести к зацикливанию или неверным вычислениям.
Управление процессом вычислений
После запуска MathCAD находится в режиме автоматических вычислений. Это означает, что при внесении каких-либо изменений в документ, все видимые в данный момент формульные блоки и графики пересчитываются и строятся заново. В некото
38
Гпава 2. Основы построения вычислений в MathCAD 11
рых случаях такой режим работы может быть нежелательным, например, если в документе есть сложные вычисления, требуется обработка больших объемов данных или выполняются какие-либо операции, занимаюшие много времени. В таких случаях работать с документом оказывается очень неудобно, и возникает необходимость запретить автоматическое вычисление либо для всего документа, либо для блоков, содержащих наиболее сложные вычисления.
Для того чтобы временно отключить вычисление одного блока, можно воспользоваться командой контекстного меню Disable Evaluation. После выбора этой команды MathCAD при просчете документа вообще не будет “обращать внимание” на данный блок и производить вычисления так, как будто его удалили. Для того чтобы возобновить вычисление “отключенного” блока, нужно выбрать команду контекстного меню Enable Evaluation.
Для того чтобы отключить/включить режим автоматического вычисления для всего документа, нужно выбрать команду меню Tools^Calculate^Automatic Calculation (если флажок возле этой команды меню установлен, значит, режим автоматического вычисления включен). При отключенном режиме автоматического вычисления, для того чтобы пересчитать все блоки в документе можно выбрать команду меню Tools^Calculate^Calculate Worksheet или нажать на клавиатуре <Ctrl+F9>. Для того, чтобы пересчитать не весь документ, а лишь тот блок в котором находится курсор, следует выбрать команду меню Tools^Calculate^Calculate Now или нажать <F9> на клавиатуре (если курсор находится в свободном месте рабочей области, то пересчитаны будут все блоки, которые в данный момент видны на экране).
Форматирование результата вычислений
В различных задачах выводить результаты вычислений требуется в различном виде: как десятичную или простую дробь, десятичную дробь в обычной или экспоненциальной форме. Диалоговое окно форматирования результата вычисления для того или иного формульного блока можно вызвать двойным щелчком на этом результате или выбором команды меню Format^Result.... В этом диалоговом окне для изменения формата отображения численного результата служит вкладка Number Format (рис. 2.11). В списке Format, слева на этой вкладке, можно выбрать один из пяти различных форматов отображения числа, а с помощью полей ввода и флажков справа можно настроить выбранный формат.
	General — это используемый по умолчанию формат результатов вычислений. Число представляется в виде десятичной дроби. Количество знаков после запятой задается в поле Number of decimal places. Если установлен флажок Show trailing zeros, то дробь будет при необходимости дополнена нулями до количества знаков, указанного выше. Поле Exponential threshold задает границу перехода к экспоненциальной форме записи. При установленном флажке Show exponents in engineering format в экспоненциальной форме записи используются только порядки, кратные
трем. Это является стандартной инженерной формой записи, поскольку для физических величин в системе СИ со степенями, кратными трем связаны раз-
Рис. 2.11. Диалоговое окно форматирования результата вычислений
личные стандартные приставки: кило-, мега-, милли- и ДР-
Форматирование результата вычислений
39
	Decimal — формат вывода результата в виде десятичной дроби без экспоненты.
	Scientific — в этом формате результат всегда выводится в экспоненциальной форме.
	Engineering — также используется только экспоненциальная форма записи дробей, но при этом используются только порядки, кратные трем.
	Fraction — в этом формате результат выводится в виде простой дроби. Конечно, далеко не всегда можно точно представить результат в виде простой дроби, поэтому точность такого представления задается в поле Level of accuracy (точность задается в знаках после запятой). Если установлен флажок Use mixed numbers, то результат будет представлен в смешанной форме в виде целой и дробной частей.
После выбора нужного формата его можно применить к текущему формульному блоку, щелкнув на кнопке ОК. Также можно назначить выбранный формат для использования по умолчанию во всех последующих вычислениях. Для этого нужно щелкнуть на кнопке Set as Default.
Единицы измерения физических величин
При проведении физико-технических расчетов почти всегда имеют дело не просто с абстрактными числами, а с некоторыми физическими величинами. MathCAD может рассматривать числа в формулах как физические величины и предоставляет широкие возможности по форматированию их единиц измерения.
Для того чтобы число в выражении рассматривалось как некоторая физическая величина, нужно просто ввести после него единицы измерения. Например, для того чтобы присвоить переменной и значение 22 0 вольт, нужно ввести с клавиатуры: и : 2 2 0 V (конечно, при условии, что v не использовалось ранее как имя переменной). Аналогично следует поступать в случае сложных единиц измерения. Например, для присваивания переменной Е значения 100 вольт/метр введите: Е : 1 0 0 v / m (рис. 2.12, первая строка). Если теперь вывести значения двух этих переменных, то переменная и будет выведена так же, как и была, — в вольтах, а переменная е, как и все переменные со сложными или нестандартными единицами измерения, будет приведена к основным единицам измерения системы СИ (см. рис. 2.12, вторая строка). Такими единицами в системе MathCAD считаются метр, килограмм, секунда, ампер, кельвин, кандела и моль.
u:= 220V u = 220 V
Е := 100 - Е = 100
m	3A
— = 2.2 m E
Рис. 2.12. Правильное и неправильное использование единиц измерения
Далее, если вычислить отношение и/Е, то кроме числа, результат будет содержать и правильные единицы измерения — метры (см. рис. 2.12, третья строка). Таким образом в выражениях, содержащих физические величины, результат всегда автоматически приводится к международной системе единиц СИ. Также любые выражения всегда проверяются на соответствие единиц измерения в слагаемых суммы. Если единицы не совпадают, будет выведено сообщение об ошибке (см. рис. 2.12, третья строка). Данную возможность можно использовать для перевода величин из одних единиц измерения в другие, например, из метров в футы или из джоулей в калории.
40	Гпава 2. Основы построения вычислений в MathCAD 11
Для любого результата вычислений есть возможность изменить его единицы измерения. Если щелкнуть на формульном блоке, содержащем результат вычислений, то справа от единиц измерения результата появится черный квадратик — поле для ввода единиц измерения, к которым необходимо привести результат. Если введенные здесь единицы измерения не будут соответствовать единицам результата, то MathCAD автоматически допишет нужный коэффициент.
Если вы не знаете, как записываются в MathCAD единицы измерения требуемой величины, то можно воспользоваться другим способом их вставки в выражение. Для этого выполните следующие действия.
1.	Если вы вставляете единицы измерения для введенной с клавиатуры величины, то после числа необходимо ввести знак умножения (клавиша <*>). Если хотите изменить единицы измерения результата вычислений, то установите курсор на черный квадратик, обозначающий поле ввода единиц измерения (см. врезку).
2.	Выберите команду меню Insert^Unit или щелкните на соответствующей кнопке на панели инструментов Standard. В результате раскроется диалоговое окно вставки единиц измерения (рис, 2.13).
3.	В списке Dimension выберите нужную физическую величину (щелкните на ее названии). На рис. 2.13 это электрическое напряжение — potential.
4.	Теперь список Unit содержит все поддерживаемые MathCAD простые единицы измерения данной величины. Выберите из этого списка нужные единицы измерения.
5.	Щелкните на кнопке Insert для того, чтобы вставить выбранные единицы измерения. При этом окно вставки единиц измерения останется открытым. Таким образом можно вставлять сразу несколько единиц измерения или строить сложные единицы. Для того чтобы вставить в документ выбранные единицы измерения и закрыть окно, щелкните на кнопке ОК.
Рис. 2.13. Вставка единиц измерения физической величины
То же окно Insert Unit можно использовать и для замены одних единиц измерения другими. Для этого установите курсор на единицах, которые необходимо заменить. При этом в окне Insert Unit вместо кнопки Insert появится кнопка Replace. Выберите нужные единицы измерения и щелкните на этой кнопке. Единицы измерения в формуле будут заменены.
В MathCAD по умолчанию все результаты вычислений представлены в системе СИ. Но это можно изменить. Для этого выберите команду меню Tools^Worksheet Options. В открывшемся окне щелкните на корешке вкладки Unit System. Эта вкладка содержит
Единицы измерения физических величин
41
всего один переключатель — Default Units. Положения этого переключателя соответствуют различным системам единиц. Для того чтобы изменить используемую систему, установите переключатель в соответствующее положение и щелкните на кнопке ОК.
Вычисления в символьном виде
Кроме численных расчетов, MathCAD предоставляет средства и для проведения символьных вычислений. Это означает, что вы можете вычислять и преобразовывать выражения с буквенными параметрами, не подставляя при этом их значения, и в итоге получать результат в виде аналитической зависимости от этих параметров (а не число или набор чисел, как при стандартных численных расчетах).
Использование меню Symbolics
Проводить символьные вычисления можно двумя способами.
Первый способ — использование команд меню Symbolics. В таком случае результат вычисления будет помещен в отдельный формульный блок. Для того чтобы вычислить выражение таки способом, выполните следующую последовательность действий.
1.	Введите выражение, которое необходимо вычислить. Например, на рис. 2.14 вычисляется производная от функции sin(.r)\
2.	Установите линии редактирования так, чтобы они охватывали все вычисляемое выражение. Для этого может потребоваться несколько раз нажать <Space>.
3.	Выберите команду меню Symbolics^Evaluate^Symbolically. После этого выражение будет вычислено, и результат вычисления будет помещен в отдельный формульный блок.
d . , ,х — smjx) dx
. , .х Л . . ,.. cos(x) Sini^x)  1п(!ИЦХ)) + X-
\	sin(x)
Рис. 2.14. Вычисления с помощью команд меню Symbolics
Кроме вычисления выражений в символьном виде, есть возможность также производить различные преобразования функций, решать уравнения и т.д. Для этих целей служат другие команды меню Symbolics, а также его подменю Variable, Matrix и Transform. Так, например, для того, чтобы вычислить производную из предыдущего примера, достаточно ввести функцию, установить курсор на переменную дифференцирования, т.е. х, и выбрать команду меню Symbolics^Variable^Differentiate.
Использование панели инструментов Symbolic
Второй способ проведения символьных вычислений — использование панели математических инструментов Symbolic. В этом случае все вычисления будут происходить в одном формульном блоке. Этот способ подразумевает следующую последовательность действий.
1.	Сначала введите выражение, которое необходимо вычислить или преобразовать.
2.	Далее следует ввести знак символьного вычисления (—>). Для этого нажмите на клавиатуре <Ctrl+.> или щелкните на кнопке с соответствующим изображением на панели инструментов Symbolic.
42
Гпава 2. Основы построения вычислений в MathCAD 11
3.	Выражение будет вычислено, и результат записан справа от стрелки в том же формульном блоке.
Этот способ также дает возможность производить символьное преобразование функций. Для этого нужно в п. 2 нажать вместо <Ctrl+.>, сочетание клавиш <Ctrl+Shift+.>. При этом появится стрелка с полем ввода слева. В это поле следует ввести одно из ключевых слов (символьных операторов). Все допустимые символьные операторы можно найти в виде кнопок на панели инструментов Symbolic. Можно вводить даже несколько символьных операторов для одного выражения. Это можно сделать двумя способами. Во-первых, результат, стоящий справа от стрелки, можно рассматривать как новое выражение для преобразования, т.е. после него можно сразу ввести новый знак символьного вычисления с новым оператором. Во-вторых, можно к одному выражению применить сразу несколько операторов. Для этого после ввода первого из них нажмите <Ctrl+Shift+.>, появится новое поле ввода для другого ключевого слова.
При проведении символьных вычислений или преобразований вы можете использовать следующие символьные операторы (в некоторых случаях после ключевого слова нужно ввести имя переменной или число).
	float — указывает на то, что результат должен быть выведен в виде числа с плавающей запятой. После слова float через запятую должно быть указано количество знаков после запятой, которые должны быть выведены в результате. Не стоит воспринимать символьные вычисления с использованием оператора float как обычные численные расчеты. Выражение все равно вначале вычисляется аналитически. Поэтому при численных расчетах максимальное количество знаков после запятой равно 15, а при использовании символьного оператора float — 250.
	complex — если результат введенного выражения — комплексное число, то данный оператор позволяет всегда увидеть результат в виде а + i-b.
	assume — позволяет наложить те или иные ограничения на параметры выражения. Подробнее использование этого символьного оператора описано в главе 5, “Решение задач математического анализа”.
	solve — позволяет найти решения уравнения или системы уравнений. Подробнее использование этого символьного оператора описано в главе 4, “Операции с матрицами и решение алгебраических задач”.
	simplify — производит попытку упростить введенное выражение.
	substitute — подстановка вместо одного из параметров в выражении другого параметра, числа или выражения. Например, ввод substitute, x=sin (0) приведет к тому, что везде во введенном выражении переменная х будет заменена на выражение sin(0).
	factor — в зависимости от введенного выражения, данный оператор выполняет одно из следующих преобразований: сворачивает полином в произведение полиномов, раскладывает целое число на простые множители или приводит дроби к общему знаменателю.
	expand — раскрывает все скобки в выражении.
	coeffs — если вычисляемое выражение — полином, то данный оператор дает возможность получить все полиномиальные коэффициенты в виде вектора. Если выражение является полиномом по нескольким переменным, то после ключевого слова coeffs через запятую нужно ввести имя переменной, по которой нужно вычислять полиномиальные коэффициенты.
	collect — производит попытку привести выражение к полиному по заданной переменной (имя переменной должно быть указано через запятую).
Вычисления в символьном виде
43
	series — разложение функции в степенной ряд Тейлора. Подробнее использование этого символьного оператора описано в главе 5.
	parfrac — преобразует отношения двух полиномов в сумму более простых дробей.
	fourier, invfourier — прямое и обратное преобразования Фурье. Через запятую после ключевого слова должна быть указана переменная, по которой должно проводиться преобразование. Использование всех интегральных преобразований описано в главе 5.
	laplace, inviaplace — прямое и обратное преобразование Лапласа.
	ztrans, invztrans — прямое и обратное Z-преобразование.
В большинстве случаев оба описанных способа, использование команд меню Symbolics или панели инструментов Symbolic, обладают одинаковыми возможностями, и выбирать какой-либо из них нужно только из соображений удобства и наглядности результата. Более подробно символьные вычисления на конкретных примерах будут рассмотрены в следующих главах книги.
Ввод и форматирование текста
Текстовые комментарии являются неотъемлемой частью любого профессионального документа MathCAD. Обычно формулы не имеют никакого смысла, если к ним нет соответствующих комментариев. Конечно, вы можете заметить, что примеры в данной книге редко содержат какие-либо текстовые комментарии. Но это только по той причине, что, как правило, подробное описание всех формул в примерах можно найти в тексте книги.
MathCAD 11 предоставляет широкие возможности для ввода и форматирования текстов. Для тех, кто ранее работал с текстовыми редакторами, такими как Microsoft Word, часть изложенного в этом разделе материала покажется уже знакомой.
Создание и изменение размеров текстового блока
Создать текстовый блок в MathCAD можно двумя способами. Во-первых, можно выбрать команду меню Insert^Text Region или нажать соответствующую ей клавишу < " >. Это приведет к тому, что в рабочей области документа сразу появится текстовый блок в виде черной рамки с красной вертикальной линией — текстовым курсором. Во-вторых, можно просто вводить нужный текст в рабочей области. В таком случае MathCAD вначале создаст формульный блок и введенный текст будет рассматривать как имя переменной. Но как только в первый раз будет нажата клавиша <Space> для ввода второго слова в тексте, формульный блок сразу превратится в текстовый.
V	По умолчанию для текстовых блоков MathCAD 11 установлен шрифт Arial. Но MathCAD
II	;	не может правильно отображать русские символы этим шрифтом. Эту проблему решить
\i	можно, просто выбирая для каждого текстового блока русский вариант этого шрифта
°	(Arial Суг). Но для того чтобы сэкономить время, лучше изменить шрифт прямо в описа-
нии стиля текста, устанавливаемом по умолчанию (стиль Normal). Как это сделать, вы узнаете далее в этом -кс разделе. При этом стоит выбирать такой шрифт, чтобы русские буквы присутствовали сразу в основном варианте шрифта, например MS Sans Serif.
Во время ввода текстового комментария MathCAD увеличивает ширину текстового блока, пока он не достигнет границы страницы. После этого ввод переносится на новую строку. После того как ввод завершен, можно изменить размер текстового блока. Для этого служат черные квадратики на границе текстового блока. Если подвести указатель к одному из этих квадратиков, то он примет форму двойной стрелки. После этого нужно нажать левую кнопку мыши и, удерживая ее, переместить границы текстового блока так, как это необходимо (рис. 2.15). При этом пунктирные линии обозначают, какими окажутся границы текстового блока, после того как кнопка мыши будет отпущена.
44	Гпава 2. Основы построения вычислений в MathCAD 11
Текстовые комментарии являются неотъемлемой частью ‘любого профессионального документа MathCAD|
<______________________________1____________________
Рис. 2.15. Изменение размеров текстового блока
Следует заметить, что на самом деле при изменении размеров текстового блока значение имеет только ширина блока. После того как кнопка мыши будет отпущена, высота блока будет автоматически увеличена или уменьшена так, чтобы вмещать весь текст и не содержать пустых строк.
Форматирование текстового блока
Для оформления текстовых блоков MathCAD предоставляет широкие возможности, которыми обладают профессиональные текстовые редакторы. Для форматирования текстовых блоков служат команды Text, Paragraph и Style из меню Format и из контекстного меню текстового блока. Наиболее часто используемые команды форматирования можно найти также в виде кнопок на панели инструментов Formatting.
Команда меню Format->Text вызывает ракрытие диалогового окна Text Format, предназначенного для изменения параметров шрифта в выделенном фрагменте текста (рис. 2.16). Если фрагмент текста не был выделен, то изменения будут касаться следующего введенного текста.
Для того чтобы выделить фрагмент текста, установите указатель мыши в начале фрагмента, нажмите левую кнопку мыши и, удерживая ее, переведите указатель в конец фрагмента. Также можно установить курсор в начало фрагмента и, удерживая клавишу <Shift>, перевести курсор в конец фрагмента. Выделенный фрагмент текста обозначается на экране инвертированием цветов текста и фона (белые буквы на черном фоне).
Выбор шрифта.........его начертания.....и размера
Пример текста с выбранными параметрами
Рис. 2.16. Диалоговое окно форматирования текста
Ввод и форматирование текста
45
Это окно содержит списки, позволяющие выбрать шрифт (Font) и размер шрифта (Size) на панели инструментов Formatting. Список Font Style позволяет выделить выбранный фрагмент текста курсивом (Italic), полужирным начертанием (Bold) или их комбинацией (функции этого списка также дублируются на панели Formatting в виде кнопок Bold и Italic).
Также в этом окне имеется группа флажков Effects, позволяющих выделить фрагмент текста зачеркиванием (Strikeout) или подчеркиванием (Underline), а также в виде верхнего (Superscript) или нижнего (Subscript) индекса. Все эффекты, определяемые флажками этой группы (кроме зачеркивания), также представлены кнопками на панели инструментов Formatting.
Раскрывающийся список Color (Цвет), позволяет выбрать цвет текста. Раскрывающийся список Script позволяет выбрать кодовую страницу для ввода текста на языках, отличных от английского (для ввода текста на русском языке здесь необходимо выбрать Cyrillic). В области Sample можно сразу увидеть результат изменений шрифта, перед тем как применять его к выделенному фрагменту в документе.
Как и во всех диалоговых окнах, для того чтобы принять внесенные изменения, нужно щелкнуть на кнопке ОК, а для того чтобы отклонить их и закрыть окно диалога, — на кнопке Cancel.
Примеры применения различных начертаний шрифта и эффектов можно увидеть на рис. 2.17.
Текст можно выделить полужирным шрифтом, курсивом, подчеркиванием или зачеркиванием, а также с помощью , верхнего или нижнего индексов или любой их _______________________ - — -  
Рис. 2.17. Примеры форматирования текста
Форматирование абзаца
Кроме изменений параметров шрифта, есть возможность также изменять форматирование абзаца. При вводе текста в MathCAD, понятие “абзац” не является синонимом понятию “текстовый блок”. Текстовый блок может содержать несколько абзацев, причем с различным форматированием. Для того чтобы внутри текстового блока начать новый абзац, достаточно нажать клавишу <Enter>. Для форматирования абзаца нужно установить курсор внутри него и выбрать команду меню Format^Paragraph или команду Paragraph из контекстного меню. В результате на экране раскроется диалоговое окно Paragraph Format (рис. 2.18).
Рис. 2.18. Диалоговое окно форматирования абзаца
Это окно содержит следующие элементы.
	Группа элементов Ident позволяет настроить для абзаца отступы слева (поле ввода Left) и справа (Right), а также отступ или выступ для первой строки абзаца (для
46
Глава 2. Основы построения вычислений в MathCAD 11
того, чтобы определить расположение первой строки в абзаце, нужно выбрать из раскрывающегося списка Special значение First Line и в поле By ввести значение для отступа). Величины отступов задаются в сантиметрах и определяют расстояние от границы текстового блока до соответствующей границы текста в абзаце.
	Раскрывающийся список Bullets позволяет сделать данный абзац элементом нумерованного (Numbers) или маркированного (Bullets) списка. То же самое позволяют сделать и соответствующие кнопки на панели инструментов Formatting.
	Группа переключателей Alignment позволяет выбрать выравнивание для данного абзаца. В MathCAD поддерживаются три типа выравнивания: по центру (Center), по правому (Right) и левому (Left) краю. Для изменения выравнивания абзацев также есть кнопки на панели инструментов Formatting. Следует заметить, что выравнивание производится по границам текстового блока, а не страницы, как во многих текстовых редакторах.
Применение стилей
Как уже упоминалось выше, в MathCAD есть возможность форматирования текстовых блоков или отдельных абзацев на основе стилей. Каждый стиль — это набор настроек форматирования текста и абзаца, которые можно быстро применить к выбранному текстовому блоку. Набор стилей, доступных при оформлении документа, зависит от шаблона, который был выбран при создании документа (см. предыдущую главу). По умолчанию для всех текстовых блоков используется стиль Normal. Этот стиль содержат
все шаблоны, даже шаблон Blank Worksheet, где он является единственным.
Для того чтобы применить один из доступных стилей к абзацу, вначале нужно установить курсор внутри абзаца. Для того чтобы применить стиль к нескольким абзацам или ко всему текстовому блоку, нужно выделить эти абзацы, как было сказано выше. Далее выберите команду Style из меню Format или контекстного меню. Эта команда инициализирует диалог выбора стилей текста (рис. 2.19).
В левой части этого окна расположен список всех доступных стилей форматирования. Для выбора стиля нужно просто щелкнуть на его названии (на рис. 2.19 выбран стиль Normal). Кнопки в правой части окна позволяют выполнять следующие действия с выбранным стилем:
|TrxtSty1r%
Styles
Heading 1 Heading 2 Heading 3 Indent
Normal
Paiagiaoh Subtitle Title
X|
Apply	j
New	|
| Modtly
]
Close *
Рис. 2.19. Диалоговое окно выбора стиля
	Apply — применить указанный стиль к выделенным абзацам;
	New... — создать новый стиль;
	Modify... — изменить указанный стиль;
	Delete — удалитьгуказанный стиль (можно удалить любой стиль, кроме Normal);
	Close — закрыть диалоговое окно без каких-либо изменений в документе.
Есть более быстрый способ применить один из стилей к выделенным абзацам. Для этого можно воспользоваться раскрывающимся списком стилей на панели инструментов Formatting. Просто выберите нужный стиль из списка, и он тут же будет применен к абзацу, в котором находится курсор или ко всем выделенным абзацам.
Размещение блоков на странице
Документ MathCAD состоит из отдельных блоков. Каждый блок документа может содержать данные определенного типа (но только одного в одном блоке) — формулы (вычисляемые выражения), текстовые комментарии, графики, элементы управления,
Размещение блоков на странице
47
компоненты для связи с другими рпиложениями. Обычно в документе не видны границы тех блоков, из которых он состоит, но если выбрать команду меню View^Regions, то вся рабочая область документа окрасится в серый цвет, и только области, соответствующие тем или иным блокам, останутся белыми (рис. 2.20). Повторный выбор этой же команды меню выключает режим выделения блоков.
Точки привязки блоков
Блоки можно как угодно перемещатьвнутри документа. Для того чтобы переместить один блок внутри документа, нужно выбрать его, щелкнув на нем мышью. При этом вокруг блока появится черная рамка. Если подвести указатель мыши к этой рамке, то он примет форму руки (рис. 2.21). Теперь можно нажать левую кнопку мыши и, удерживая ее нажатой, “перетащить” выделенный блок в другое место документа.
„ . г j2 4 fi'x) := е х
-------------------------
Рис. 2.21. Перемещение одного блока
Аналогично можно перемещать сразу несколько блоков. Для этого щелкните в любом месте рядом с теми блоками, которые необходимо переместить, и, удерживая нажатой левую кнопку мыши, “растяните” появившуюся область выделения так, чтобы она (хотя бы частично) перекрывала все нужные блоки (рис. 2.22). При этом вокруг этих блоков появятся пунктирные рамки.
Рис. 2.22. Выделение нескольких блоков
48
Гпава 2. Основы построения вычислений в MathCAD 11
Переместить группу блоков можно так же, как и один блок, перетаскиванием любого из блоков с помощью захвата его пунктирной рамки (при этом указатель мыши также примет форму руки). Для выделенной группы блоков также прменимы такие команды меню Edit или контекстного меню, как Cut, Copy, Delete.
При включенном режиме выделения блоков в левой части каждого блока видны маленькие черные точки (см. рис. 2.20) — точки привязки блоков. Эти точки определяют реальное взаимное размещение блоков в документе при его вычислении. При обработке документа (вычислении формул, построении графиков) MathCAD обрабатывает все блоки последовательно, слева направо, и построчно, сверху вниз. Поэтому если какие-либо одни формулы в документе должны использовать результаты других, а так это обычно и бывает, то точка привязки каждой следующей по ходу вычислений формулы должна находиться либо ниже предыдущих, либо в той же строке, но правее. Несоблюдение этого правила может приводить к ошибкам (рис. 2.23) или неправильным вычислениям.
объекты MathCAD, включая текстовые блоки и графики. Для текстовых блоков точки привязки не так важны как для вычисляемых блоков. Они используются только для выравнивания блоков (выравнивание блоков будет рассмотрено ниже).
Конечно, можно перемещать блоки вручную, но в MathCAD есть команды, позволяющие частично автоматизировать процесс правильного размещения блоков на странице. Команда меню FormatoSeparate Regions разделит все пересекающиеся блоки в документе (при этом разделение проводится только по вертикали). Команды Format^Align Regions^Across и FormatoAlign RegionsoDown выравнивают выделенные блоки соответственно по горизонтали и по вертикали. Следует отметить, что эти команды ориентируются исключительно на точки привязки, а вовсе не на границы блоков.
1 ; Ei	= 11	
,D := —: Lz	-1	 	
			This variable or function is not defined above.	
Рис. 2.23. Непоследовательное размещение блоков
Точки привязки имеют все
Защита документа
Одно из применений системы MathCAD — это создание презентаций или учебных программ. В таких случаях может возникнуть необходимость запретить возможность редактирования документа или отдельных блоков, или даже скрыть отдельные блоки. В MathCAD существуют средства защиты документа, позволяющие выполнять подобные задачи.
Для того чтобы скрыть отдельные области документа от просмотра, можно в документе создать определенную область, которую потом можно скрыть и заблокировать. Для создания такой области выберите команду меню InsertoArea. После выбора этой команды на экране появятся две горизонтальные линии (границы области) с пиктограммами з виде треугольников на левом конце (рис. 2.24).
зону можно закрыть
Дважды щелкнув на этих пиктограммах,
а:= J.2
Границы зоны
Рис. 2.24. Вставка скрываемой области в документ
Для того чтобы скрыть содержимое области, нужно дважды щелкнуть на одном из треугольников слева или на одной из горизонтальных линий. При этом на экране останется одна линия и один треугольник. Двойной щелчок на этом треугольнике позволит снова раскрыть для редактирования содержимое скрываемой области. После сокрытия содержимого области вычисления будут проходить так же, как и раньше, как будто все блоки стоят на прежних местах.
Защита документа
49
После того как область была скрыта, ее можно заблокировать паролем, чтобы никто кроме вас не смог просмотреть и изменить заключенные внутри блоки. Для этого нужно выбрать команду Lock из подменю Format=>Area или из контекстного меню, вызываемого щелчком на одной из границ скрываемой области. В открывшемся диалоговом окне в двух полях ввода нужно ввести и подтвердить пароль, а затем, как обычно, щелкнуть на кнопке ОК. Теперь область заблокирована, ее уже нельзя раскрыть двойным щелчком, поэтому пиктограмма на левом конце линии превратилась в замок. Для разблокировки области служит команда Unlock из подменю Format=>Area или из контекстного меню. После выбора этой команды у вас спросят пароль, а после его правильного ввода область будет разблокирована.
Кроме защиты документа, скрываемые области можно использовать и для того, что-u	бы скрыть лишнюю информацию из документа перед печатью. Но в таком случае
вам будет мешать горизонтальная черта с пиктограммой. Ее можно убрать с помо--	щью команды Properties из меню Format или из контекстного меню скрываемой об-
ласти (для того чтобы выбрать эту команду, необходимо чтобы область не была заблокирована). В открывшемся окне на вкладке Area есть группа флажков Show. Для того чтобы область не была вообще никак отмечена на экране, сбросьте все установленные флажки в этой группе. Единственная возникающая при этом проблема — границы области теперь видны на экране только при включенном режиме View-t>Regions, а иначе найти их проблематично. Поэтому такую операцию стоит выполнять только перед распечаткой, когда весь документ уже готов.
Есть также другой способ защиты документа, позволяющий запретить изменение отдельных или всех блоков в документе, но при этом не убирать их с экрана. Именно этот способ подходит для обучающих программ. Для того чтобы защитить документ таким способом, выполните следующую последовательность действий.
1.	Определитесь, какие блоки не нужно защищать от редактирования. Для каждого из этих блоков выполните следующее:
♦	щелкните на блоке, чтобы его выбрать;
♦	выберите команду Properties из меню Format или из контекстного меню;
♦	в открывшемся окне выберите вкладку Protect;
♦	сбросьте флажок Protect region from editing (он единственный на этой вкладке).
2.	Выберите команду меню Tools=>Protect Worksheet.
3.	В открывшемся окне установите переключатель Protection Level в положение Content, если хотите оставить для пользователя возможность создавать новые блоки в вашем документе, или Edit, если хотите полностью запретить редактирование документа (кроме разрешенных в п. 1 блоков).
4.	Введите и подтвердите пароль в полях ввода.
5.	Щелкните на кнопке ОК для установки защиты.
Теперь, хотя все блоки в документе изображены на экране, редактировать их будет нельзя. Для того чтобы снять защиту, нужно выбрать команду меню Tools=>Unprotect Worksheet. Вам будет предложено ввести пароль, и тогда защита будет снята.
Резюме
Подведем итоги данной главы.
Простые арифметические формулы можно ввести с клавиатуры. Для более сложных вычислений используются математические панели инструментов. Каждая кнопка на этих панелях инструментов вставляет в документ шаблон соответствующего математического оператора, который далее необходимо заполнить. Кроме математических
50	Глава 2. Основы построения вычислений в MathCAD 11
операторов можно также использовать различные функции, которые вставляются в документ с помощью команды меню Insert^Function.
В вычислениях можно использовать именованные переменные и функции. Присваивание значения переменной или функции осуществляется с помощью оператора := (клавиша <:>). Если возникает необходимость использовать в документе значение переменной выше того места, где ей присваивается значение, то следует воспользоваться оператором глобального присваивания (клавиша < ~ >).
Для любого блока формул можно запретить его вычисление с помощью команды контекстного меню Disable Evaluation. Для того чтобы отключить автоматическое вычисление всего документа, нужно выбрать команду меню ToolsoCalculateoAutomatic Calculation. После этого для того, чтобы вычислить документ, нужно нажать <Ctrl+F9>.
Любое число может рассматриваться как значение некоторой физической величины, если рядом стоят единицы измерения. Для того чтобы вставить в формулу единицы измерения, воспользуйтесь командой меню Insert^Unit или просто введите нужные единицы с клавиатуры.
MathCAD позволяет производить вычисления в символьном виде. Для этого служат меню Symbolics и панель инструментов Symbolic.
Для того чтобы создать текстовый блок, нажмите на клавиатуре клавишу < " >. Для форматирования текстовых блоков предназначены диалоговые окна, вызываемые с помощью команд Text, Paragraph, Style из меню Format.
Для того чтобы увидеть границы блоков, составляющих документ, выберите команду меню View^Regions. Для выравнивания блоков на странице служат команды меню Align Regions из меню Format. Для того чтобы разделить по вертикали перекрывающиеся блоки, воспользуйтесь командой меню Formats Separate Regions.
Для защиты содержимого документа от редактирования служит команда меню Tools^Protect Worksheet. При этом будут защищены все блоки документа, кроме тех для которых был сброшен флажок Protect region from editing на вкладке Protect окна Properties. Для того чтобы скрыть отдельные блоки документа от просмотра и печати нужно создать скрываемую область. Для этого выберите команду меню lnsertc>Area. Содержимое такой области можно показать, спрятать, а также защитить паролем.
Тесты
Эти тесты помогут вам закрепить материал данной главы. Ответы ищите в приложении А.
Найдите правильный ответ
Каждый из предложенных вопросов может иметь несколько правильных ответов.
1. Что получится, если при таком расположении линий редактирования, изображенном на рисунке, ввести оператор деления (/):
-з
2. Какие из перечисленных имен переменных являются допустимыми в MathCAD: a) FirstParameterOfFunctionF;
б) Переменная—!;
Тесты
51
Глава 3
Построение и форматирование графиков
В этой главе...
♦	Построение двухмерного графика
♦	Форматирование двухмерного графика
♦	Построение и форматирование трехмерного графика
♦	Резюме
Почти ни один технический расчет не обходится без построения графиков. Графики являются удобнейшим средством представления любой информации. MathCAD обладает обширным арсеналом средств для построения двух- и трехмерных графиков и диаграмм. В данной главе будут рассмотрены основные приемы построения и форматирования различных графиков, а также требования к представляемой на графиках информации.
MathCAD позволяет использовать в документах двухмерные и трехмерные графики. Для вставки графиков в MathCAD служит панель инструментов Graph, для форматирования графиков — подменю FormatoGraph.
Построение двухмерного графика
На графиках могут быть изображены как функции, так и наборы данных (массивы), хотя в действительности при изображении функций они преобразуются в набор точек, т.е. в тот же массив. Система MathCAD предоставляет возможность построить двухмерный график в прямоугольной декартовой или в полярной системе координат.
Простой способ построения декартова графика
Для того чтобы быстро построить декартов график какой-либо функции, выполните следующую последовательность действий.
1.	Установите курсор в том месте документа, где должен находиться график, и вставьте шаблон декартова графика с помощью команды меню InsertoGrapho X-Y Plot или соответствующей кнопки на панели инструментов Graph (рис. 3.1).
2.	Шаблон содержит два поля для ввода (черных квадратика) и прямоугольную рамку — место для будущего графика. В поле ввода, расположенном возле оси ординат, введите нужную функцию. Это может быть как встроенная функция, так и заданная ркнее функция пользователя, и даже целое выражение, зависящее от некоторого аргумента. Единственное требование, налагаемое на вводи
мую функцию, — она должна быть действительной (если она комплексна в некоторой области, то эта область не будет отображена на графике вообще). В качестве аргумента функции для графика можно использовать любое имя переменной, не использовавшееся ранее в документе. Это имя следует ввести в поле ввода, расположенное возле оси абсцисс.
3.	Щелкните на рабочей области документа где-нибудь вне графика. После этого график будет построен.
Если после того, как график построен, нужно изменить его размеры, то щелкните снова на графическом блоке. При этом вокруг него появится черная рамка с такими же квадратиками по периметру, как и в текстовых блоках (рис. 3.2). По аналогии с текстовыми блоками, “перетаскивание” этих квадратиков приведет к соответствующему изменению размеров графика.
Рис. 3.2. График в декартовой системе координат
Изменение масштаба графика
Нетрудно заметить, что если задавать изображаемую на графике функцию так, как описано выше, то диапазон значений аргумента всегда будет [-10,10]. Диапазон значений функции также определяется автоматически, причем не всегда удачно. Изменить граничные значения осей абсцисс и ординат можно следующим образом.
У ‘
1.	Щелкните на графике. При этом, кроме черной рамки вокруг него, появятся также четыре числа, обозначающие граничные значения осей (см. рис. 3.2). Эти числа помечены маленькими черными уголками внизу. Это означает, что в данный момент MathCAD автоматически устанавливает границы осей.
54
Гпава 3. Построение и форматирование графиков
2.	Щелкните на том числе, которое хотите изменить. Например, чтобы изменить верхнюю границу оси абсцисс, щелкните на одном из чисел, расположенных рядом с осью абсцисс.
3.	Введите новое значение вместо старого. Обратите внимание, как только вы начнете вводить новое значение, старое исчезнет вместе с черными уголками, обозначающими автовыбор границ.
' ‘/'"А/	Если необходимо, чтобы граница снова устанавливалась автоматически, то нужно
6	;	щелкнуть на этой границе и удалить введенное в нее число, оставив незаполненное
дДЩдд поле ввода (черный квадратик). Если после этого установить курсор где-нибудь вне §1:'.- графика, то удаленная граница будет выбрана автоматически.
Есть также другой более удобный способ изменения масштаба графика. Для того чтобы быстро и наглядно изменить все четыре границы, выполните следующие действия.
1.	Если курсор находится вне графика, то щелкните на графике, в котором нужно изменить масштаб.
2.	Выберите команду Zoom (Масштаб) из подменю Format=>Graph или из контекстного меню графика. Данная команда инициализирует окно X-YZoom (рис. 3.3).
3.	Выделите на графике область, которая должна быть увеличена. Для этого щелкните в месте, где должен быть один из углов прямоугольной области. Удерживая нажатой левую кнопку мыши, растяните область выделения до необходимых размеров. При этом в окне X-Y Zoom в текстовых областях появятся значения границ осей, соответствующие выделенной области.
4.	Далее, для того чтобы сузить границы графика до границ выделенной области, щелкните на кнопке Zoom. Если вас не устраивает сделанное изменение масштаба, то можно щелкнуть на кнопке Unzoom, чтобы отменить последнее увеличение, или на кнопке Full View, чтобы отобразить график целиком и восстановить автоматический выбор границ (любые изменения масштаба графиков не расцениваются в MathCAD как изменения документа, поэтому их невозможно отменить командой Edit=>Undo). В окне X-Y Zoom также есть кнопки ОК и Cancel. Они эквивалентны кнопкам Zoom и Unzoom, но после выполнения действия закрывают окно.
...и щелкните здесь, чтобы изменить масштаб
Рис. 3.3. Изменение масштаба графика
I
Построение двухмерного графика
55
Изображение нескольких функций на одном графике
В MathCAD на одном графике можно изобразить несколько функций (рис. 3.4). Для этого нужно ввести их в поле ввода функции через запятую (при этом каждая из них может зависеть от своего аргумента). Если необходимо, можно также через запятую ввести аргументы каждой функции в поле ввода аргументов. Например, для построения графиков на рис. 3.4 нужно выполнить следующую последовательность действий.
1.
Установите курсор в свободном месте рабочей области и вставьте шаблон декартова графика.
2.	Введите в поле для ввода функции: sin ( х )
3.	Нажмите <, >. После этого появится новое поле для ввода функции ниже введенной ранее функции.
4.	В этом поле ввода введите вторую функцию: COS ( X ) .
5.	Щелкните на рабочей области документа где-нибудь вне графического блока. После этого на графике будут построены обе функции.
Максимально можно изобразить на одном графике 16 различных функций. Функций, построенные на одном графике, изображаются линиями различного цвета и типа. Например, первая функция изображается сплошной
/ х.
Рис. 3.4. Несколько функций на одном графике
красной линией, вторая — пунктирной синей и т.д. Цвета
и типы линий не заданы для
графиков жестко — их можно изменить. О том, как это сделать, будет рассказано ниже.
Использование переменных диапазона
При построении графика функция представляется в виде набора точек на плоскости. То есть для построения графика перебирается определенное количество значений аргумента, и для каждого из них вычисляется значение функции. Если для построения графика пользоваться способом, описанным выше, то вы не контролируете количество точек, изображаемых на графике. В таком случае всегда по оси абсцисс выбирается диапазон [-10,10] и количество точек — 100. Для того чтобы иметь возможность при построении графика управлять количеством точек и диапазоном изменения аргумента, поступают следующим образом. Аргумент функции задают заранее как переменную диапазона (рис. 3.5). Вообще говоря, это стандартный метод построения графиков в MathCAD, а описанный выше — упрощенный (необходимая переменная диапазона задается автоматически).
Во многих случаях возникает необходимость задавать не шаг изменения аргумента, J а количество точек на графике. Напрямую переменные диапазона не поддерживают ' такой возможности, но этот недостаток можно обойти. Пример построения графика с заданным количеством точек показан на рис. 3.6. Выбраны границы диапазона — [-1,1] и количество точек—400. Поступая аналогично, можно в любой задаче получить контроль над количеством элементов в переменной диапазона.
Переменные диапазона дают возможность построить не только график функции, но и графически изобразить одномерный массив или вектор (рис. 3.7). О векторах речь пойдет в следующей главе, а пока достаточно знать, что вектор содержит набор чисел и эти числа можно изобразить на графике. В таком случае переменная диапазона играет роль индекса — номера элемента вектора. Поэтому шаг переменной диапазона в таком случае обязательно должен равняться единице.
56
Гпава 3. Построение и форматирование графиков
xmin := -1 xmax := 1 N := 400
x-0.,5	y:=0,0.1..5
sin(2x)
sin(2y)
Рис. 3.5. Построение графиков с использо-
ванием переменных диапазона
xmax - xmin
xl := xmin + Ах
Рис. 3.6. Управление количеством точек на графике
Рис. 3.7. Изображение вектора на графике
Построение графика в полярной системе координат
Кроме декартовой системы координат, MathCAD позволяет строить графики в полярной системе координат. В полярной системе координат каждая точка задается двумя координатами: радиус-вектором и полярным углом. При изображении графика в полярной системе координат функция обычно задает зависимость радиус-вектора от угла.
Для вставки шаблона полярного графика выберите команду меню Inserts Graphs Polar Plot или щелкните на соответствующей кнопке панели инструментов Graph. Этот шаблон, так же как и декартов график, содержит два поля ввода: для функции и для аргумента. Если аргумент не был описан ранее как переменная диапазона, то выбирается стандартный диапазон изменения угла — 2л.
Пример полярного графика приведен на рис. 3.8.
Е.	У полярных графиков в MathCAD есть одна особенность, которой не должно быть
у нормального полярного графика. Здесь возможны отрицательные значения радиус-1,	вектора. Эти значения отображаются на графике так же, как и положительные, но
Ш	со сдвигом угла на п. Например, постройте графйк функции cos(4x). Вы получите
вместо ожидаемого четырехлистника восьмилистник. "Лишние" участки на графике
появляются в областях, где значение косинуса отрицательно.
Построение двухмерного графика
57
Рис. 3.8. График в полярной системе координат (кардиоида)
Для полярного графика можно изменять границы только для радиус-вектора. Поля для изменения этих границ расположены справа от графика. Здесь проявляется еще одна особенность полярных графиков в MathCAD — возможность установки для нижней границы радиуса-вектора значений, отличных от нуля, т.е. можно получить график, для которого в начале координат радиус будет равняться, например, пяти.
Также, по аналогии с декартовым графиком, масштаб полярного графика можно изменять с помощью команды Zoom из подменю Format^Graph или из контекстного меню графика. При этом инициализируется окно Polar Zoom. Поскольку изменение масштаба для полярных графиков касается только радиуса-вектора, то выделить область для масштабирования можно простым щелчком мыши на графике на нужном расстоянии от начала координат. Такое изменение масштаба является более естественным, чем ввод границ вручную, поскольку не дает возможности изменять нижнюю границу радиуса-вектора.
Г рафик параметрически заданной функции
До сих пор при построении графиков мы в одном поле ввода задавали функцию, а в другом — аргумент. Но, кроме явного, существуют и другие способы задания функции. Например, можно задать функцию параметрически, т.е. указать зависимость обеих координат от некоторого параметра. В MathCAD можно построить график неявно заданной функции, если ввести в оба поля ввода функции, зависящие от одного параметра (рис. 3.9).
1-2 cos(t)
Рис. 3.9. Примеры параметрически заданных функций
58
Гпава 3. Построение и форматирование графиков
Форматирование двухмерного графика
После того как график построен, можно настроить его внешний вид. Этот процесс называется форматированием графика. Для того чтобы вызвать окно форматирования декартова графика, нужно выбрать команду меню Format^Graph^X-Y Plot, а дня полярного — Polar Plot. Если перед выбором этих команд меню был выбран какой-либо график, то все изменения будут касаться только его. Если же курсор находился в свободном месте рабочей области, то окно форматирования также можно вызвать, а изменения формата будут касаться всех созданных в будущем графиков в данном документе. Окно форматирования любого графика также можно вызвать с помощью команды Format из контекстного меню или двойным щелчком на графике.
Форматирование осей координат декартова графика
Для изменения формата осей координат служит вкладка X-Y Axes в окне форматирования графика. Каждой оси соответствует своя группа элементов на этой вкладке (группы X-Axis и Y-Axis). В этих группах собраны следующие флажки, управляющие форматированием каждой оси.
	Log Scale (Логарифмический масштаб) — установка логарифмического масштаба для данной оси. Графики в логарифмическом масштабе часто используются в радиоэлектронике, атомной и ядерной физике и др. По умолчанию данный флажок сброшен, т.е. используется линейный масштаб.
	Grid Lines (Линии сетки) — включение отображения линий сетки. Линии сетки заменяют деления на данной оси. Они используются только для большей наглядности графика, хотя если график перегружен линиями, то наглядность теряется. Для линий сетки можно установить любой цвет. Для этого щелкните на кнопке Grid Color на той же вкладке (эта кнопка активна, только если линии сетки включены). По умолчанию данный флажок сброшен, т.е. на графике отображается не сетка, а деления на осях.
	Numbered (Нумерация) — нумерация делений на данной оси. Если эта опция включена, то возле каждого деления на оси будет записано соответствующее значение координаты. По умолчанию данный флажок установлен.
	Autoscale (Автомасштаб) — если данный флажок установлен, то границы графика, введенные в соответствующие поля или установленные автоматически, не обязательно будут границами изменения координат. Границы координат будут установлены после округления границ графика до ближайших делений на осях (естественно, округление производится только в сторону увеличения диапазона). Данный флажок по умолчанию установлен.
	Show Markers (Показать метки) — если данный флажок установлен, то вы можете установить на графике несколько меток (по две для каждой оси). Метка — это пунктирная линия, отмечающая определенное значение переменной на графике. После установки данного флажка возле оси появятся поля ввода. В такое поле нужно ввести значение координаты, где должна быть установлена метка. После того как метка будет отображена на графике, число, задающее ее координату, будет перемещено в область графика рядом с соответствующей линией (рис. 3.10). Таким образом, для того чтобы отредактировать или стереть метку, нужно будет щелкнуть на подписи метки — числе, расположенном рядом с линией (см. рис. 3.10).
	Auto Grid (Автоматическая сетка) — если данная опция включена, то автоматически будет установлено количество делений на оси. Если данный флажок сброшен, то становится активным поле Number of Grids, где можно вручную ввести требуемое количество делений (на самом деле в данном поле указывается количество отрезков, на которые ось разбивается делениями).
Форматирование двухмерного графика
59
Значения координат существующих меток,
Рис. 3.10. Использование меток на графике
Ниже групп X-Axis и Y-Axis в том же окне расположена группа элементов Axis Style, где есть переключатели, которые управляют расположением осей на графике.
	Boxed — оси в виде рамки вокруг графика. На все стороны рамки нанесены деления, а возле нижней и левой сторон они могут быть пронумерованы (если установлены флажки Numbered).
	Crossed — оси в виде прямых, пересекающихся в начале координат.
	None — оси отсутствуют.
По умолчанию данный переключатель установлен в положение Boxed, хотя, вероятно, более привычным для вас окажется другой вариант расположения осей — Crossed.
Также в группе Axis Style есть флажок Equal Scales. Если этот флажок установлен, то по осям автоматически устанавливаются одинаковые масштабы. Этот параметр действует, только если на графике хотя бы одна граница оси была оставлена для автовыбора (см. раздел “Изменение масштаба графика” в этой главе).
Форматирование полярного графика
В окне форматирования полярного графика для форматирования осей служит вкладка Polar Axes. Элементы этой вкладки во многом повторяют вкладку X-Y Axes окна форматирования декартова графика.
Группа флажков Radial, форматирование радиальной оси, содержит все описанные выше элементы за исключением Autoscale. Действие этих флажков аналогично описанному выше. Следует только заметить, что линии сетки радиальной оси (при установленном флажке Grid Lines), а также линии меток (при установленном флажке Show Markers) имеют вид концентрических окружностей с центром в начале координат.
Группа Angular, форматирование угловой оси, содержит всего три флажка: Grid Lines, Numbered и Auto Grid. Линии сетки угловой оси (при установленном флажке Grid Lines) изображаются в виде лучей, выходящих из начала координат под различными углами. Если установлен флажок Numbered, то значения различных углов располагаются по периметру графика.
Группа Axis Style содержит три варианта расположения осей.
	Perimeter — радиальная ось не изображена, а угловая изображается в виде окружности вокруг графика. Нумерация радиальной оси расположена по вертикали от центра к угловой оси.
60
Гпава 3. Построение и форматирование графиков
	Crossed — угловая ось не изображена, а радиальная изображается в виде двух декартовых осей, пересекающихся в начале координат. Формат обеих осей задается форматированием радиальной оси.
	None — оси и нумерация отсутствуют.
Форматирование линий на графике
Для изменения внешнего вида линий на графике щелкните на корешке вкладки Тraces в окне форматирования графика (рис. 3.11). На этой вкладке есть список всех шестнадцати кривых, которые можно изобразить на графике (т.е. перечислены все, как построенные, так и непостроенные кривые, причем первые ничем не отделены от вторых). Функции, построенные на графике, соответствуют кривым в списке в том же порядке, как были введены. Для каждой из кривых можно настроить несколько параметров, что поможет отличить одну кривую от другой и сделать график более наглядным. Для настройки вида определенной кривой щелкните на нужной строке в списке. После этого группа элементов, расположенная в строке под списком, будет содержать все параметры выбранной кривой, где их и можно изменять. Перечень параметров приведен ниже.

Список линий на графике
Traces J Labels I Defaults!
Параметры выбранной линии...
...можно настроить здесь
Hide Argument's
iV Hide Legend
(face 4
Lace 5
lines lines lines
none none none
dadot solid dot
f none	j i soiid"" ; red У j j lines
mag cpa brn
Cancel | Arc!
.J
Рис. 3.11. Вкладка, с помощью которой можно изменить вид кривых на графике
	Legend Label — название данной кривой в легенде графика. Это название не играет никакой роли, пока не будет сброшен флажок Hide Legend на этой же вкладке.
	Symbol — символ точек на графике. Напомним, что кривая на графике — это набор точек, соединенных линиями. Если из списка выбран один из символов, то все точки этого набора будут помечены этим символом. Список содержит пять вариантов символов: x’s — х, +’s — +, box — С, dmnd — 0, o’s — °. Если выбрано значение попе, то точки выделятся не будут.
	Line — тип линии для кривой. Возможны четыре различных типа линии: solid (сплошная), dot (пунктирная), dash (штриховая), dadot (штрихпунктирная).
	Color — цвет линии. В отличие от линий сетки, где можно установить любой цвет, здесь нужно выбирать из восьми жестко заданных цветов линий: red (красный), Ыи (синий), grn (зеленый), mag (фиолетовый), суа (голубой), brn (коричневый), Ык (черный), wht (белый).
	Туре — тип графика. MathCAD предоставляет возможность строить графики восьми различных типов.
Форматирование двухмерного графика
61
♦	line — изображение графика в виде линии. На линии можно также обозначить точки с помощью меню Symbol.
♦	points — изображение только точек на графике.
♦	error — изображение интервалов погрешности. Этот тип должен быть выбран одновременно для двух соседних кривых. Первая из них задает верхнюю границу интервала, вторая — нижнюю.
♦	bar — гистограмма. Точки графика изображаются в виде незакрашенных вертикальных столбцов выбранного цвета.
♦	step — ступенчатая линия (рис. 3.12, вторая кривая).
♦	draw — изображение графика в виде линий без возможности отметить точки. Также, по неизвестным автору причинам, последняя точка из изображаемой последовательности не будет изображена на графике этого типа.
♦	stem — точки на графике изображаются выбранным символом, а от каждой точки опущена “ножка” — перпендикуляр к оси X.
♦	solidbar — еще одна гистограмма, только столбцы закрашены светлым оттенком выбранного цвета (см. рис. 3.12, первую кривую).
Несколько общих рекомендаций по использованию типов графиков. Для построения графиков функций стоит использовать тип line или draw, все остальные типы стоит использовать для изображения дискретных наборов значений (результатов экспериментов, экономических данных, функций дискретного аргумента). Графики непрозрачны и изображаются по порядку от первого к последнему. Это значит, что если, например, для последней кривой на графике выбран тип solidbar, то он может просто закрыть все остальные кривые. Поэтому если требуется изобразить несколько дискретных наборов значений на одном графике, то лучше пользоваться типом step. А типом solidbar стоит пользоваться только для самой первой кривой на графике, как это сделано на рис. 3.12.
Рис. 3.12. Использование различных типов кривых на графике
 Weight — толщина линии. Толщину можно варьировать от обычной (1) до очень большой (9). Также в данном раскрывающемся меню есть значение р. Оно дает возможность построить кривую с наименьшей толщиной — в один пиксель. Следует предупредить, что такая кривая может быть не напечатана на некоторых принтерах, которые не обладают нужной разрешающей способностью.
Если на графике изображено несколько кривых, то для такого графика необходима легенда — краткое описание каждой кривой. Для того чтобы создать для графика легенду, нужно сбросить флажок Hide Legend на вкладке Trace окна форматирования
62
Гпава 3. Построение и форматирование графиков
графика. При этом в нижней части графика появится перечень всех изображенных кривых с названиями (значениями поля Legend Label). Если график снабжен легендой, то может возникнуть желание спрятать выражения, которые непосредственно задают кривые. Для этого на той же вкладке нужно установить флажок Hide Arguments. Выражения будут спрятаны, только когда график не выделен. Если щелкнуть на графике, то выражения, задающие кривые, будут видимы и доступны для редактирования.
Добавление подписей на график
В MathCAD есть несколько способов снабдить график текстовыми подписями. Самый простой способ создать подписи — это воспользоваться вкладкой Labels окна форматирования графика. Эта вкладка позволяет создать заголовок графика (группа Title) и подписи к осям (группа Axis Labels). Использование вкладки Labels показано на рис. 3.13.
Если эти флажки установлены, то соответствующие надписи будут отображены
Скорее всего, если вы введете подписи или легенду на русском языке, то они не будут правильно отображены на графике. Это связано с тем, что они форматируются стилем Variable, который используется для всех буквенных выражений в вычисляемых блоках. Для того чтобы этот стиль правильно отображал русские буквы, установите курсор на любом буквенном выражении в блоке формул или на графике. При этом в поле, отображающем текущий стиль, должно быть написано — Variable. Теперь выберите из раскрывающегося списка шрифтов шрифт, поддерживающий кириллицу, например Times New Roman Cyr (по умолчанию для данного стиля установлен Times New Roman). После этого все введенные на русском языке подписи к графикам отобразятся правильно.
Описанный способ вставки подписей имеет несколько существенных недостатков: нельзя изменить их положение относительно осей, нельзя изменить форматирование шрифта конкретной подписи, нельзя создать подписи непосредственно в области осей координат для большей наглядности графика. Поэтому есть также другой, лишенный перечисленных недостатков, способ — ввести все необходимые подписи в виде текстовых блоков, отформатировать их нужным образом, а затем “перетащить” их в нужное место графика (рис. 3.14).
Е Сразу после того, как вы перетащили текстовый блок в область графика, вызовите его контекстное меню и выберите команду Bring to Front. Если этого не сделать, то после того как вы снимете выделение с текстового блока, он станет недоступным для редак-v тирования или перемещения. Он окажется как бы под графиком, и для того чтобы получить доступ к такому текстовому блоку, придется перемещать или удалять график.
Форматирование двухмерного графика
63
Рис. 3.14. Подписи на графике в виде текстовых блоков
Построение и форматирование трехмерного графика
Кроме двухмерного графика в документ MathCAD можно также вставить различные трехмерные графики. Конечно, не все графики, называемые трехмерными в MathCAD, являются трехмерными в действительности. Они называются трехмерными только потому, что отображают функции двух переменных (или матрицы). В MathCAD есть следующие типы трехмерных графиков.
	Surface Plot (График поверхности) — график в виде трехмерной поверхности.
	Contour Plot (Контурный график или линии уровня) — также график поверхности, но спроектированный на одну из координатных плоскостей, а изменение функции по оставшейся оси изображается в виде линий уровня.
	Scatter Plot — отображение набора точек в трехмерном пространстве.
	Vector Field Plot — изображение двухмерного векторного поля.
	Bar Plot — трехмерная гистограмма.
	Patch Plot — также гистограмма, но отображаются только верхние грани столбиков.
Для каждого из них, кроме Patch Plot, есть отдельная кнопка на панели инструментов Graph. Также можно выбрать тип графика уже после создания в окне форматирования.
Построение графика в виде поверхности
Наиболее распространенным из трехмерных графиков, является график поверхности. Для построения графика функции вида Дл,у) в виде трехмерной поверхности нужно выполнить следующую последовательность действий.
1.	Задайте нужную функцию как функцию пользователя. Например, как на рис. 3.15: z(x,y) := (х2 - y2)-sin(x + у).
2.	Вставьте в документ шаблон поверхностного графика. Для этого установите курсор в свободном месте рабочей области и выберите команду меню Insert^Graph^Surface Plot или щелкните на соответствующей кнопке на панели инструментов Graph.
3.	Как видите, шаблон трехмерного графика имеет лишь одно поле для ввода. В это поле и нужно ввести имя заданной функции z (ни в коем случае не z (х, у)).
64
Гпава 3. Построение и форматирование графиков
Форматирование графика поверхности
Как видите, график, изображенный на рис. 3.15, имеет не очень привлекательный вид. Это так называемый “проволочный каркас” поверхности. Для того чтобы настроить внешний вид графика так, как это необходимо, его нужно отформатировать. Следует сразу заметить, что возможности MathCAD в построении и форматировании трехмерных графиков настолько разнообразны, что в данной книге нам придется ограничиться описанием лишь некоторых, наиболее часто используемых, настроек. Рассмотрим форматирование трехмерных графиков поверхности на примере, приведем описанный выше график к такому виду, как на рис. 3.16. Для этого следует выполнить следующие действия.
, ч ) 2 2j . . ч 2(х,у) := х - у sin(x+y)
Z
Рис. 3.15. График функции в виде поверхности
Рис. 3.16. Поверхностный график после форматирования
1.	Прежде чем приступать к собственно форматированию трехмерных графиков, стоит научиться изменять точку наблюдения трехмерной поверхности (приближать, удалять, поворачивать в разных плоскостях). Для того чтобы повернуть график в том или ином направлении, установите указатель мыши над графиком, нажмите левую кнопку и, удерживая ее, перемещайте указатель в направлении вращения. При этом не важно, что указатель мыши выходит за пределы графика, пока кнопка нажата, график будет вращаться. Для того чтобы приблизить или отдалить изображение поверхности, поступают аналогичным образом, только перед тем, как нажать кнопку мыши, следует нажать и удерживать клавишу <Ctrl> на клавиатуре. Тогда перемещение мыши вверх будет отдалять график, а вниз — приближать. Если у вашей мыши есть колесико, то приблизить или отдалить график можно также, вращая колесико.
2.	Щелкните на графике и выберите команду меню Format^Graph^3D Plot или команду Format контекстного меню графика или просто дважды щелкните мышью на графике. Это приведет к открытию окна форматирования графика поверхности. После выполнения каждого из последующих шагов можно щелкать на кнопке Apply в этом окне, для того чтобы сразу увидеть результат изменений.
3.	На вкладке General (Главная) в полях ввода, объединенных в группу View (Вид), можно указать положение точки наблюдения (в виде трех углов Эйлера) и коэффициент увеличения графика. Этими полями стоит пользоваться, только если вы не смогли добиться нужного вида графика при выполнении п.1.
Построение и форматирование трехмерного графика
65
Рис. 3.14. Подписи на графике в виде текстовых блоков
Построение и форматирование трехмерного графика
Кроме двухмерного графика в документ MathCAD можно также вставить различные трехмерные графики. Конечно, не все графики, называемые трехмерными в MathCAD, являются трехмерными в действительности. Они называются трехмерными только потому, что отображают функции двух переменных (или матрицы). В MathCAD есть следующие типы трехмерных графиков.
	Surface Plot (График поверхности) — график в виде трехмерной поверхности.
	Contour Plot (Контурный график или линии уровня) — также график поверхности, но спроектированный на одну из координатных плоскостей, а изменение функции по оставшейся оси изображается в виде линий уровня.
	Scatter Plot — отображение набора точек в трехмерном пространстве.
	Vector Field Plot — изображение двухмерного векторного поля.
	Bar Plot — трехмерная гистограмма.
	Patch Plot — также гистограмма, но отображаются только верхние грани столбиков.
Для каждого из них, кроме Patch Plot, есть отдельная кнопка на панели инструментов Graph. Также можно выбрать тип графика уже после создания в окне форматирования.
Построение графика в виде поверхности
Наиболее распространенным из трехмерных графиков, является график поверхности. Для построения графика функции вида z(x,y) в виде трехмерной поверхности нужно выполнить следующую последовательность действий.
1. Задайте нужную функцию как функцию пользователя. Например, как на рис. 3.15: z(x,y) := (х1 2 3 - y2)-sin(x + у).
2. Вставьте в документ шаблон поверхностного графика. Для этого установите курсор в свободном месте рабочей области и выберите команду меню Inserts Graph ^Surface Plot или щелкните на соответствующей кнопке на панели инструментов Graph.
3. Как видите, шаблон трехмерного графика имеет лишь одно поле для ввода. В это поле и нужно ввести имя заданной функции z (ни в коем случае не z (х,у>).
64
Гпава 3. Построение и форматирование графиков
4.	Выберите вкладку Appearance (Внешний вид). На этой вкладке в группе Fill Options (Параметры поверхности) установите переключатель в положение Fill Surface (Закрасить поверхность).
5.	После этого станет активным переключатель Color Options (Параметры цвета) в той же группе (будьте внимательны, поскольку такие переключатели есть во всех трех группах на этой вкладке). Установите переключатель в положение Colormap (Градиентная заливка) для того, чтобы поверхность окрашивалась в различные цвета в зависимости от высоты (координаты Z).
6.	Если вы используете закрашенный график поверхности, то оси координат могут оказаться частично закрытыми графиком. Для того чтобы этого не происходило, выберите снова вкладку General, и в группе Axes Style (Вид осей) установите переключатель в положение Perimeter (Периметр). Это приведет к тому, что положение осей перестанет быть жестким. Теперь они будут располагаться по периметру куба, ограничивающего график, и всегда на его передних гранях.
7.	Выберите вкладку Axes (Оси). Эта вкладка сама содержит три вкладки для каждой из осей (X-Axis, Y-Axis и Z-Axis). Для того чтобы изобразить на графике линии сетки, установите на каждой из этих вкладок в группе Grids (Сетка) флажок Draw Lines (Отобразить линии).
8.	После этого станет активным поле Line Color (Цвет линий). Цветной прямоугольник показывает, какой цвет сейчас выбран для линий сетки. Для того чтобы изменить этот цвет, щелкните на этом цветном прямоугольнике и выберите в открывшемся окне нужный цвет.
9.	Выберите вкладку Lighting (Освещение). Для того чтобы включить освещение графика, установите флажок Enable Lighting (Включить освещение). После этого станут активными все параметры на вкладке. Здесь можно включить и настроить до восьми различных источников света, для каждого из них есть отдельная вкладка (Light 1, Light 2 и т.д.). Но для того чтобы быстро создать освещение для графика, лучше воспользоваться заготовленными схемами освещения. Их можно выбрать из раскрывающегося списка Lighting Scheme (Схема освещения). На рис. 3.16 выбрана схема освещения Scheme 1.
10.	Сейчас линии на графике изображены в виде так называемого каркаса (Wireframe). На рис. 3.16 линии изображены в виде линий уровня по оси Z. Такой вид является удобным для сложных поверхностей, где важно не перегрузить график линиями. Для того чтобы добиться такого отображения линий, выберите вкладку Special (Специальные настройки). В группе элементов Contour Options (Параметры линий уровня) выберите из раскрывающегося списка внизу значение Z-Contours (Линии уровня по оси Z). Далее, в той же группе следует установить флажок Draw Lines (Отобразить линии).
11.	Если плотность линий уровня оказалась слишком маленькой или слишком большой, то сбросьте флажок Auto Contour (Автоматическое количество линий уровня) и в поле ввода Number (Количество) введите требуемое количество линий (на рис. 3.16 установлено число 19).
12.	Если вас не устраивает диапазон изменения координат X и Y, то его можно изменить. Для этого выберите вкладку QuickPlot Data. На этой вкладке есть группы элементов Rangel (Диапазон 1) и Range 2 (Диапазон 2). В полях ввода Start (Начало) и End (Конец) этих групп можно указать диапазоны изменения обеих переменных. Также здесь можно указать тип координатной системы (переключатель Coordinate System): Cartesian (Декартова), Spherical (Сферическая), Cylindrical (Цилиндрическая).
66
Гпава 3. Построение и форматирование графиков
Теперь ваш график должен быть похож на рис. 3.16. Конечно, нельзя придумать универсального способа форматирования трехмерных графиков, но всегда следует добиваться того, чтобы на графике можно было увидеть все особенности изображаемой функции и при этом он не быть перегружен различными дополнительными элементами.
В том случае если необходимо быстро построить красивый трехмерный график, “не влезая” в многочисленные настройки форматирования, можно воспользоваться Мастером построения графиков. Для запуска этого мастера следует выбрать команду меню Insert^Graph^Plot Wizard. Мастер построения графиков — это последовательность диалоговых окон. Каждое из этих окон содержит переключатели, определяющие внешний вид будущего графика (конечно, каждый переключатель на самом деле меняет сразу множество настроек форматирования графика). Также каждое окно содержит изображение, показывающее, как будет выглядеть график при том или ином положении переключателя.
График векторного поля
Одним из вариантов трехмерного графика, как уже упоминалось выше, является график векторного поля. Хотя на самом деле этот график вовсе не трехмерный. Его объединяет с остальными видами трехмерных графиков лишь то, что он изображает функцию двух переменных. График векторного поля, как можно понять из названия, предназначен для изображения векторных функций от векторного аргумента. Для того чтобы построить такой график, нужно вычислить значения векторной функции в узлах прямоугольной сетки и ввести их в виде двух прямоугольных матриц А и В (рис. 3.17). Далее следует вставить в документ шаблон графика Vector Field Plot и в поле ввода ввести (А, В) (обязательно в скобках, поскольку иначе это будет рассматриваться как два отдельных графика).
i:=0..20	j;=0..20
О	10	20
(А.В)
Рис. 3.17. Построение графика векторного поля
Построение правильных многогранников
Трехмерные графики в MathCAD также дают возможность просто построить практически любой правильный многогранник. Для этой цели существует встроенная
Построение и форматирование трехмерного графика
67
р := Polyhedron("#27“)
Р “icosahedron" '
PolyLookup(27) = “dodecahedron" ч "5|2 3"	>
Рис. 3.18. Построение многогранника
функция Polyhedron (S) (рис. 3.18). Аргументом данной функции должна быть строка, задающая либо порядковый номер многогранника (при этом перед числом обязательно должен стоять символ #), либо его имя, либо код, описывающий правило построения многогранника (напомним, что для того чтобы введенное выражение было строкой, следует вводить его в кавычках). Значение, возвращаемое функцией Polyhedron, не может быть использовано нигде, кроме шаблона трехмерного графика.
Для того чтобы определить название и код многогранника по его номеру, можно воспользоваться функцией PolyLookup(п). Аргументом данной функции может быть как число, задающее номер многогранника, так и строка, задающая его название или код. Результатом данной функции будет вектор из трех строк, содержащих соответственно название многогранника, название сопряженного многогранника (для равномерных многогранников) либо другое название того же многогранника и код (см. рис. 3.18).
Для того чтобы построенный многогранник (или любой другой трехмерный график) выглядел полупрозрачным (см. рис. 3.18), следует в окне форматирования графика на вкладке Advanced ввести отличное от нуля значение в поле Transparency.
График параметрически заданной поверхности
Для параметрического задания поверхности требуется три функции двух переменных. Каждая из этих функций задает одну из координат точек поверхности. Эти три функции нужно ввести в поле ввода трехмерного графика через запятую. Но для того чтобы они воспринимались как одна поверхность, их нужно взять в скобки. Пример построения параметрической поверхности показан на рис. 3.19.
Диапазоны изменения параметрических переменных, так же как и в случае простого графика поверхности, можно изменить с помощью полей вкладки QuickPlot Data в окне форматирования трехмерного графика.
График параметрически заданной кривой
Кроме параметрической поверхности, можно также изобразить на трехмерном графике параметрическую кривую. Для такой цели подойдет трехмерный график типа Sacatter Plot. Для вставки шаблона такого графика нужно выбрать команду меню lnsert^>Graph^>3D Scatter Plot или щелкнуть на соответствующей кнопке на панели инструментов Graph. Также можно изменить уже вставленный график на Scatter Plot, установив переключатель на вкладке General в окне форматирования графика в соответствующее положение.
Параметрическая кривая в пространстве задается тремя функциями одной переменной. На рис. 3.20 изображена трехмерная параметрическая кривая. Для того чтобы получить приведенный график, на вкладке QuickPlot Data окна форматирования графика в группе Range был установлен диапазон изменения параметрической переменной от 0 (поле ввода Start) до 20 (поле End) и количество точек — 50.
68
Гпава 3. Построение и форматирование графиков
x(u,v) = cos(u) sin(v) y(u,v) := sin(u) sin(v) 2(u,v) := cos(v)
(=t,y,z)
Рис. 3.19. Параметрическое задание поверхности шара
x(t) := t sin(t) y(t) := t-cos(t)
:= t
ft?.*)
Рис. 3.20. Трехмерная параметрическая кривая
Резюме
Подведем итоги главы.
Для вставки шаблонов различных графиков в документ служит панель инструментов Graph, а также подменю Insert^Graph. Для форматирования графиков служит подменю Formatc>Graph и команда Format контекстного меню графиков.
На графике может быть изображена функция или набор точек, заданный в виде массива (на самом деле функция также превращается в набор точек, перед тем как будет построена на графике). Также на графике можно отображать параметрически заданные кривые и поверхности.
Двухмерный график можно построить в декартовой (X-Y Plot) или полярной (Polar) системе координат. Перед построением графика функции можно задать аргумент как переменную диапазона. Это делается для того, чтобы заранее задать для графика диапазон изменения аргумента и количество точек, иначе они будут заданы автоматически (диапазон [-10,10] и 100 точек).
На одном графике можно изобразить до 16 различных функций. Для того чтобы изобразить несколько функций на одном графике, их нужно ввести через запятую в соответствующем поле ввода. Также в поле ввода аргументов нужно ввести аргументы каждой функции через запятую.
В окне форматирования двухмерного графика можно настроить вид осей (вкладка X-Y Axes или Polar Axes) и кривых (вкладка Traces) на графике.
В этой главе мы познакомились с построением и форматированием трехмерных графиков поверхностей. На графике поверхности можно построить как поверхность вида z(x,y), так и параметрически заданную поверхность вида {х(и,г), y(u,v), г(и,г)} или параметрическую кривую — {x(z), y(t), z(z)}.
Резюме
69
Глава 4
Операции с матрицами и решение алгебраических
задач
В этой главе...
♦	Основные операции с векторами и матрицами
♦	Собственные векторы и собственные числа
♦	Решение систем линейных уравнений
♦	Символьные операции с матрицами
♦	Решение уравнений
♦	Системы нелинейных уравнений
♦	Резюме
В данной главе рассмотрены средства пакета MathCAD для решения алгебраических задач, таких как решение уравнений и систем уравнений. Сначала вы научитесь основным приемам работы с векторами и матрицами, поскольку операции с ними являются основой линейной алгебры. В этой главе уже не все примеры будут описаны в виде пошаговой инструкции, поскольку большинство используемых операций было описаны в главе 2, “Основы построения вычислений в MathCAD 11”.
Основные операции с векторами и матрицами
До сих пор мы использовали в расчетах переменные с одним числовым значением — скаляры. Но очень часто необходимо использовать массивы чисел. MathCAD поддерживает два вида массивов — одномерные (векторы) и двумерные (матрицы). Элементами массива могут быть числа, строки, математические выражения и даже другие массивы. Основные операции для работы с векторами и матрицами собраны на панели математических инструментов Matrix (напомним, что инициализировать эту панель можно щелчком на соответствующей кнопке панели Math).
Простой способ ввести матрицу
В MathCAD есть несколько способов ввести матрицу (здесь и далее под матрицей подразумевается массив любой размерности). Если матрица небольшого размера и ее элементы не являются функциями индексов, то проще всего ее ввести целиком с клавиатуры. Для этого выполните следующие действия.
1.	Установите курсор в свободное место рабочей области документа.
2.	Введите имя переменной, которой хотите присвоить массив чисел (вектор или матрицу), и нажмите < : > для ввода оператора присваивания.
3.	Выберите команду меню Inserts Matrix или на панели инструментов Matrix щелкните на кнопке Matrix or Vector.
4.	В открывшемся диалоговом окне Insert Matrix (рис. 4.1, справа) введите количество строк (Rows) и столбцов (Columns). Очевидно, для создания одномерного массива (вектора) в поле Columns следует ввести единицу.
5.	После того как размеры были установлены, для вставки шаблона матрицы в документ щелкните на кнопке ОК.
6.	Теперь на листе появился шаблон для матрицы (рис. 4.1, слева). Введите элементы матрицы в поля ввода, обозначенные черными квадратиками.
Количество строк
Количество столбцов
• /
Шаблон матрицы 3x3
Рис. 4.1. Вставка шаблона матрицы в окно Insert Matrix
Для перемещения курсора от одного элемента матрицы к другому можно использовать клавиши-стрелки, но при вводе значений в пустой шаблон матрицы удобно пользоваться клавишей <ТаЬ>, которая переводит курсор к следующему незаполненному полю ввода элемента матрицы.
Существуют и другие способы ввода массивов данных в MathCAD. Некоторые из них будут рассмотрены дальше в этой главе, а другие — в главе 7, “Работа с внешними источниками данных”.
Если после вставки шаблона массива и заполнения его значениями возникла необходимость добавить или удалить несколько строк или столбцов, то не обязательно удалять введенную матрицу и вводить ее заново целиком. Диалоговое окно Insert Matrix поможет скорректировать в матрице количество строк или столбцов.
	Для того чтобы добавить строки и столбцы в матрицу, установите курсор на элемент матрицы, СПРАВА от которого вы хотите вставить столбцы (НИЖЕ которого вы хотите вставить строки). Введите в окне Insert Matrix количество строк и столбцов, которые необходимо вставить, и щелкните на кнопке Insert (рис. 4.2).
	Для того чтобы удалить строки и столбцы из матрицы, установите курсор на элемент матрицы, который находится в САМОМ ЛЕВОМ столбце из тех, которые нужно удалить (в САМОЙ ВЕРХНЕЙ строке из тех которые нужно удалить). Введите в окне Insert Matrix количество строк и столбцов, которые необходимо удалить, и щелкните на кнопке Delete (рис. 4.3).
72
Гпава 4. Операции с матрицами и решение алгебраических задач
При таком положении курсора...
...здесь будут вставлены строки...
...а здесь —столбцы
Рис. 4.2. Вставка строк и столбцов в таблицу
Щелкните здесь для удаления Матрица после удаления
При
Рис. 4.3. Удаление строк и столбцов из матрицы
Если окно диалога Insert Matrix используется для добавления или удаления элементов массива, то в полях Rows и Columns допустимы нулевые значения, а если создается новая матрица, то оба значения должны быть больше нуля.
После того как вы вставили или удалили элементы массива, закрывать окно Insert Matrix следует только щелчком на кнопке Cancel, а не ОК.

Основные операторы и функции для работы с массивами
К основным матричным операциямможно отнести арифметические операции — поэлементное сложение, вычитание и матричное умножение, а также некоторые специфические матричные операции, такие как транспонирование, вычисление обратной матрицы, определителя и др. Арифметические операции с матрицами вводятся точно так же, как и с числами, т.е. с помощью клавиш <+>, <->, <*> или соответствующих кнопок на панели инструментов Calculator. Другие матричные операции можно найти в виде кнопок на панели инструментов Matrix. Там можно найти следующие операторы: транспонирование (Мт), обращение матрицы (X’1), определитель или модуль вектора (|х|, этот оператор идентичен оператору модуля на панели Calculator), скалярное произведение векторов (этот оператор идентичен обычному оператору умножения), векторное произведение векторов (применим только для трехкомпонентных векторов), сумму элементов вектора (Sv). Для того чтобы применить к матрице одну из операций панели Matrix, нужно ввести имя матрицы, а затем щелкнуть на соответст
Основные операции с векторами и матрицами
73
вующей кнопке на панели инструментов. Примеры использования основных операций с матрицами и векторами изображены на рис. 4.4.
/1 2 s'1
А := 7 3 1 АТ
<5 2 4;
и = 3 V := 2
'1 1 2 3	5> 2	А’1»	(-0.227 0.523	-0.182 0.818	0.5 -1.25	|А| = -44
ч8 1	4?		ч 0.023	-0.182	0.25 ;	
	'29'				Г 5 >	
AV =	16 U-V		= 16	Ux V =	-10	У1 II
	<21>				< 5 )	
гапИА) = 3 ti(A) = 8
Рис. 4.4. Основные операции с векторами и матрицами
Одна особенность связана в MathCAD с обратными матрицами. Вычисление обратной матрицы не только записывается как возведение в степень -1, но рассматривается буквально как возведение в отрицательную степень. Таким образом, в MathCAD возможны выражения, недопустимые в математике. Например: А /В, где А и В — матрицы, или А3 (на самом деле эти выражения означают А В’1 и (А1)3 соответственно).
Другие матричные операции заданы в MathCAD в виде функций (напомним, что для вставки функции следует выбрать команду меню Insert^Function). В окне вставки функции они собраны в категории Vector and Matrix. Вот некоторые из функций для работы с матрицами, которые вам пригодятся при решении различных алгебраических задач.
	identity (п) — возвращает единичную матрицу размера пхп. Аргумент функции (п) должен быть обязательно целым положительным числом.
	diag(v) — аргумент данной функции — вектор v. Функция возвращает диагональную матрицу, у которой на диагонали расположены элементы вектора v.
	rank(M) — возвращает ранг (количество линейно-независимых строк или столбцов) матрицы м.
	tr(М) — возвращает след (сумму диагональных элементов) матрицы и.
	norme(M) — возвращает евклидову норму матрицы (корень из суммы квадратов всех элементов).
	norml (М), norm2(M), normi (М) — функции, возвращающие Ar, L2- и нормы матрицы соответственно.
	conde (М), condl(M), cond2(М), condi (М) — эти функции возвращают число обусловленности матрицы, которое вычисляется исходя из нормы матрицы, поэтому каждой норме соответствует свое число обусловленности (например, condi (М) вычисляется как normi (М) -normi (М’1)). Число обусловленности — это величина, которая характеризует устойчивость решения неоднородной системы линейных уравнений по отношению к флуктуациям в векторе неоднородности. Оно имеет принципиальное значение при приближенном решении системы для сходимости метода итераций.
На рис. 4.4 приведены примеры использования функций rank и tr. Естественно, в категории Vector and Matrix собрано гораздо большее количество функций, необходимых для решения алгебраических задач. Использование многих из этих функций описано далее в этой главе.
74
Гпава 4. Операции с матрицами и решение алгебраических задач
Вывод и изменение отдельных элементов массива
В отличие от переменных диапазона, которые также хранят набор значений, в массивах можно получить доступ к отдельным элементам. Для использования отдельного элемента массива в MathCAD предусмотрен оператор нижнего индекса (Subscript). Этот оператор можно вставить в документ с помощью кнопки на панели Matrix или клавиши <[> на клавиатуре. Если нужно получить доступ к элементу вектора, то номер элемента записывается в появившемся поле ввода. Для доступа к элементу матрицы в поле ввода нужно записать номер строки и номер столбца через запятую. Например, для того чтобы изменить элемент матрицы М, стоящий в первой строке и во втором столбце, нужно последовательно ввести: М [ 0, 1 : (на экране это будет выглядеть как : =), затем значение, которое нужно присвоить элементу (или М [ 0, 1 = — для того, чтобы вывести значение элемента).
6 В MathCAD элементы векторов и матриц по умолчанию нумеруются начиная с нуля. Для того чтобы нумеровать их с единицы (или с любого другого числа, если есть ; такая необходимость), нужно установить значение встроенной переменной ORIGIN, • равное единице. Для этого можно в начале документа ввести ORIGIN: =1, а можно выбрать команду меню Tools=>Worksheet Options и в открывшемся диалоговом окне на вкладке Built-in Variables ввести 1 в поле Array origin (ORIGIN). Далее в этой главе во всех примерах будет подразумеваться, что переменной ORIGIN присвоено значение единица, поскольку в математике для векторов и матриц это наиболее естественная нумерация элементов. Таким образом, после изменения встроенной переменной ORIGIN, для того чтобы ввести значение того же элемента матрицы Л/, стоящего в первой строке и втором столбце, теперь нужно будет ввести: М [ 1, 2 :.
z	Если ввести описанным выше способом элемент матрицы, которого не существует,
Uto матрица автоматически будет увеличена до такого размера, чтобы вместить введенный элемент. Даже если матрица предварительно не была создана, то ввод, например, элемента матрицы М43 приведет к созданию матрицы 4x3, в которой все элементы, кроме введенного, будут иметь значение нуль. Иллюстрацию сказанного можно увидеть на рис. 4.5.
Mj:=3 М = (3)
М2 := 1
М4.Г4
(D
о о
А
Рис. 4.5. Поэлементное увеличение размеров матрицы
Кроме доступа к отдельным элементам матрицы, MathCAD дает возможность выводить и изменять отдельный столбец или строку матрицы. Для того чтобы вывести столбец матрицы, введите ее имя, щелкните на кнопке с изображением М< > на панели инструментов Matrix и в появившемся поле введите номер столбца. Результатом такого выражения будет вектор, элементами которого будут элементы указанного столбца матрицы. Данную операцию можно использовать как для выделения из матрицы блока (подматрицы) в виде отдельного столбца, так и для записи в матрицу нового вектора значений вместо указанного столбца.
Этот же оператор можно использовать для выделения строки матрицы. Для этого, прежде чем применять к матрице оператор выделения столбца, ее нужно транспонировать, ведь столбец транспонированной матрицы соответствует строке исходной. Пример выделения из матрицы строк и столбцов показан на рис. 4.6.
Основные операции с векторами и матрицами
75
Рис. 4.6. Работа со строками и столбцами матрицы
Использование переменных диапазона
Для того чтобы ввести матрицу, элементы которой являются функциями индексов, пользуются переменными диапазона. Например, если нужно ввести матрицу А размера 4x5, каждый элемент которой равен сумме номера строки и удвоенного номера столбца, то следует выполнить следующую последовательность действий (напомним, что каждая следующая строка должна вводиться ниже предыдущей).
1.	Введите переменную диапазона, элементы которой пробегали бы все номера строк в будущей матрице: i : = 1. . 4.
2.	Введите аналогичную переменную диапазона для столбцов: к : = 1. . 5.
3.	Теперь, для того чтобы задать описанную выше матрицу, достаточно ввести: Аьк := i+2k.
Этот пример как нельзя лучше иллюстрирует тот факт, что использование переменных диапазона аналогично использованию циклов в различных языках программирования.
Матрицу, элементы которой являются функциями индексов, можно ввести и другим (I ) способом, без использования переменных диапазона. Для этого служит встроенная '’Sy	функция matrix. Использование этой функции для ввода той же матрицы, что
*	ив предыдущем примере, показано на рис. 4.7. Как видите, для использования
функции matrix зависимость значений элементов матрицы от индексов должна быть описана в виде функции пользователя. Оба описанных способа абсолютно эквивалентны, и выбор того или другого может лишь немного повлиять на лаконичность и наглядность конечного документа.
Оператор векторизации
В MathCAD очень часто массивы используются для хранения различных наборов значений. Для таких массивов редко используются матричные операции, чаще нужно применить ту или иную скалярную операцию ко всем элементам массива. Это можно сделать с помощью переменных диапазона, но есть и другой, более лаконичный способ. Речь идет об операторе векторизации (Vectorize). На экране этот оператор изображается в виде стрелки над выражением, к которому он применен. Для его вставки в документ служит кнопка на панели Matrix, а также комбинация клавиш <Ctrl+->. Проиллюстрируем применение оператора векторизации на примере поэлементного умножения двух матриц айв. Для этого следует ввести А * В, далее нужно нажать <Space> для того, чтобы линии редактирования охватили все выражение, и ввести оператор векторизации. Если теперь ввести “=”, то результатом будет матрица, каждый элемент которой равен соответствующему элементу матрицы А, умноженному на соответствующий элемент матрицы в.
76
Гпава 4. Операции с матрицами и решение алгебраических задач
Объединение матриц и выделение подматрицы
Присоединить одну матрицу к другой можно двумя различными способами. Во-первых, если матрицы имеют одинаковое количество строк, то вторую можно присоединить к первой сбоку. В таком случае, например, после объединения двух матриц 3x2 и 3x5 получится одна матрица 3x7. Для объединения двух матриц таким способом в MathCAD предусмотрена встроенная функция augment. Аргументами этой функции может быть любое количество матриц с одинаковым количеством строк. Результатом функции augment является матрица — результат последовательного соединения матриц слева на право (рис. 4.8).
fig,k) > i + 2 k
А := niatrix(4,5 ,f)
<0 2 4 6 8 s)
1 3 5 7 9
2 4 6 8 10
(.3 5 7 9 11У
А :=	'1 2' 3 4 ч5 6;	В :=	'”9 8 7 6 5'' 7 3 2 1 0	
			(8 5	9 6 3;
С :=	augment(A,B)			
	'1 2	8 7	6 5'	
С =	3 4	3 2	1 0	
	ч5 6	5 9	6 3;	
Рис. 4.8. Объединение матриц с помощью функции augment
Рис. 4.7. Ввод матрицы с помощью функции matrix
Рис. 4.9. Объединение матриц с помощью функции stack
Если две матрицы имеют одинаковое количество столбцов, то их можно объединить, расположив одну под другой. Для такого объединения матриц служит функция stack. Ее использование полностью аналогично использованию функции augment (рис. 4.9), и эта функция также может объединить любое количество матриц.
Если есть необходимость выделить из матрицы некоторый блок (подматрицу), то в этом поможет встроенная функция submatrix. Эта функция имеет пять аргументов —• submatrix (М, imin, imax, jmin, jmax). Здесь M — исходная матрица, imin, imax — номера первой и последней строк исходной матрицы, входящих в выделяемый блок, jmin, jmax — аналогично, номера первого и последнего столбцов. Функция submatrix возвращает матрицу, полученную из исходной “вырезанием” указанных строк и столбцов.
Во многих задачах полезным является совместное использование функций augment и submatrix. Пример такого совместного использования — решение неоднородной системы линейных уравнений Ах = В методом Крамера приведен на рис. 4.10. Напомним, что в этом методе возникает необходимость построить три матрицы (Al, А2 и АЗ на рис. 4.10), где один из столбцов исходной матрицы А заменяется на вектор неоднородности В.
Собственные векторы и собственные числа
Одной из основных задач линейной алгебры, а также математической физики является задача на собственные значения. В самом простом виде задача на собственные значения матрицы формулируется следующим образом: требуется найти такие значения X, чтобы матричное уравнение А-х = Х-Е-х имело решение (А — квадратная матрица пхл, Е — единичная матрица пхп). В таком случае число X называют собственным числом матрицы А, а n-компонентный вектор х, приводящий уравнение с заданным X в тождество, — собственным вектором.
Собственные числа являются корнями уравнения |А-ЛЕ|=0. Это уравнение степени п, а значит, количество собственных чисел всегда меньше или равно п. Если уравне-
Собстеенные векторы и собственные числа
77
ние имеет кратные корни, то соответствующие собственные числа называют вырожденными. Кратность корня в таком случае называется кратностью вырождения собственного числа. Вырожденному собственному числу может соответствовать один собственный вектор, а может и целое подпространство векторов. Во втором случае в таком подпространстве выбираются базисные векторы, которые и называются собственными векторами для данного собственного числа.
Э 6 з'
А := 6 4 7
ч0 9 4;
аа
В := 3
Al := augment(B, submatrix(A, 1,3,2,3))
А2 := augment(subinatrix(A,l,3,l,l),B,sutaiatrix(A,l,3,3,3))
АЗ .= augment(subniatrix(A,l ,3,1,2) ,B)
А1 =	<0 6 3> 3 4 7 ч2 9 4;	А2 =	Э о з^ 6 3 7 <о 2 4,	АЗ =	<1 6 0> 6 4 3 ч0 9 2;
х1 :=	АН	х2 *=	А2|	хЗ := -	А3|
	|А|		|А|		|А|
х1 = —	2.379	- -	1.172	хЗ = 3.138	
Рис. 4.10. Решение неоднородной системы уравне-
ний методом Крамера
Для поиска собственных векторов и собственных чисел матриц MathCAD предусмотрены следующие возможности (их использование показано на рис. 4.11).
	Для вычисления собственных чисел матрицы А (решения простой задачи на собственные значения) служит функция eigenvals (А). Единственный аргумент этой функции — матрица лхя, для которой нужно найти собственные значения. Функция возвращает все собственные значения матрицы в виде вектора длины п. Если матрица имеет вырожденные собственные значения, то вектор, возвращаемый функцией eigenvals, будет иметь несколько повторяющихся значений.
	Для того чтобы найти собственные векторы матрицы А, можно воспользоваться функцией eigenvecs (А). Эта функция также требует единственного аргумента — матрицы. Она возвращает все п собственных векторов в виде матрицы лхл (каждый собственный вектор — столбец в этой матрице). Если матрица имеет вырожденные собственные значения, то в матрице может быть несколько одинаковых столбцов.
Очевидно, что собственные векторы матрицы можно определить только с точностью до произвольного множителя. Таким образом, для определенности вводят некоторое дополнительное условие на длину (модуль) этих векторов. Такие условия называют условиями нормировки. В MathCAD все вычисляемые собственные векторы нормированы на единицу.
	Функция eigenvec(A,X) позволяет найти для матрицы А собственный вектор, соответствующий введенному собственному значению X. В случае если А. — вырожденное собственное число, то данной функцией лучше не пользоваться, поскольку она всегда возвращает только один собственный вектор. А в том случае если одному вырожденному собственному числу соответствует подпространство собственных векторов, то результат данной функции будет лишен смысла, поскольку это будет лишь один вектор из целого пространства.
78	Гпава 4. Операции с матрицами и решение алгебраических задач
i<1 2 S'1
А:= 7 3 1
V 2
(-44
eigenvals(A) = И ч1 >
eigenvec(A,l)
' 0.236
-0943
ч 0.236 >
' 0.7	0.577 -0.236'
eigenvecs(A) = -0.661 0.577 0.943 ..-0 272 0.577 -0.236;
Рис. 4.11. Вычисление собственных векторов и собственных чисел матрицы
Кроме описанной выше простой задачи на собственные значения, встречается также обобщенная задача на собственные значения: Ах = Х.Вх, где В — это также некоторая квадратная матрица. Для обобщенной задачи важно, чтобы элементы обеих матриц были действительными числами.
Для вычисления собственных чисел обобщенной задачи на собственные значения, заданной матрицами А и В, служит функция genvals (А, в), а для вычисления собственных векторов — функция genvecs (А, В). Использование этих функций полностью аналогично eigenvals и eigenvecs.
Решение систем линейных уравнений
В математике рассматриваются системы линейных уравнений двух видов — однородные и неоднородные.
Неоднородная система уравнений в матричном виде записывается следующим образом: Ах = В. Здесь А — матрица коэффициентов системы, В — вектор, задающий неоднородность, х — вектор неизвестных системы. Неоднородная система имеет одно решение, если определитель матрицы отличен от нуля, а иначе система решения не имеет вообще.
Для нахождения точного решения неоднородных систем линейных уравнений в линейной алгебре используются три основных метода: метод Крамера, метод обратной матрицы и метод исключений Гаусса. Решение неоднородной системы методом Крамера с использованием средств MathCAD было уже показано выше (см. рис. 4.10). Решение методом обратной матрицы в MathCAD осуществляется предельно просто. Нужно ввести матрицу коэффициентов А, вектор неоднородности В, а затем для нахождения решения достаточно ввести: х := В-А’1.
Для решения средствами MathCAD системы уравнений методом Гаусса нужно выполнить следующую последовательность действий.
1.	Введите матрицу коэффициентов системы А и вектор неоднородности в (рис. 4.12, первая строка).
2.	Создайте расширенную матрицу системы С. Она представляет собой матрицу А, к которой справа дописан вектор в. Для создания такой матрицы можно воспользоваться функцией augment (рис. 4.12, вторая строка).
3.	Далее нужно преобразовать расширенную матрицу с помощью прямого и обратного метода Гаусса. После этого левая часть матрицы С1 будет представлять собой единичную матрицу. Для реализации такого преобразования в MathCAD служит функция rref (рис. 4.12, третья строка).
Решение систем линейных уравнений
79
4.	Последний столбец, полученный в ходе преобразования матрицы, — это и есть решение системы уравнений. Теперь можно воспользоваться оператором выделения столбца или функцией submatrix для того, чтобы выделить этот вектор X из матрицы С1 (рис. 4.12, четвертая строка).
А 6 зу
А := 6 4 7 \0 9 4,
С := augment(A,B)
Cl := nef(C)
Х:= Cl<4>
В := 3
''1 6 3 0''
С = 6473
,0942;
"Г 0 О -2.379'
С1 = 0 10 -1.172 ,0 0 1 3.138 ; /-2.379>
Х = -1.172 ,3.138 ,
Рис. 4.12. Решение системы линейных уравнений методом Гаусса
Однако если вас интересует только решение системы, а не метод, каким оно было получено, то лучше воспользоваться встроенной функцией Isolve, позволяющей сразу получить решение неоднородной системы уравнений. Для этого достаточно ввести: х := lsolve(A, В). Аргументы этой функции — это матрица коэффициентов системы А и вектор неоднородности В. Функция возвращает вектор х, который содержит решение системы.
Однородная система уравнений в матричном виде записывается так: А х = 0. Такая система может иметь нетривиальные решения только в том случае, если определитель матрицы равен нулю. Если решение однородной системы уравнений существует, то это не одно решение, а некоторое пространство решений. Реализация в MathCAD поиска решений однородной системы линейных уравнений будет рассмотрена далее в этой главе.
Символьные операции с матрицами
В MathCAD 11 все вышеперечисленные операции с матрицами можно использовать также и в символьных вычислениях (см. раздел “Вычисления в символьном виде” главы 2). Во многих случаях для вычисления той или иной операции в символьном виде достаточно вместо знака равенства ввести знак символьного вычисления (—>). Конечно, если матрица зависит от нескольких параметров, то и имя, которое вы присваиваете матрице и используете далее в вычислениях, также должно быть именем функции, зависящей от этих параметров (рис. 4.13, первая строка).
Для символьного транспонирования, обращения и вычисления определителя есть специальные кнопки на панели инструментов Symbolic. Также эти операции можно выполнить с помощью команд Transpose, Invert и Determinant подменю Symbolics^Matrix. Просто установите курсор внутри нужной матрицы и выберите нужную команду меню. Результат появится в отдельном блоке формул ниже исходной матрицы. Как примеры основных операций с матрицами, во второй строке на рис. 4.13 показано применение в символьных вычислениях операций матричного умножения и вычисление определителя.
80
Гпава 4. Операции с матрицами и решение алгебраических задач
' 1	1-х
А(а,х) := -2х х
,а 1-х
2
|А(а,х) | -> х - а х
v(x) := х
и
A(a,x) v(x) ->
(1-х)х.
lsolve(A(a,x), v(x)) —>
eigenvals(A(a,x)) —>
Рис. 4.13. Примеры символьных операций с матрицами
Также можно использовать в символьных вычислениях все описанные в этой главе встроенные функции для работы с матрицами. Во второй и третьей строках на рис. 4.13 показано использование функций Isolve, eigenvals submatrix. Для использования любых других функций следует поступать аналогично — использовать знак символьного вычисления (или команду меню Symbolical Evaluated Symbolically) и везде после имени матрицы в скобках перечислять параметры, от которых зависят ее элементы.
Решение уравнений
Решение уравненияс одним неизвестным типа /(л) = 0 является самой простой из задач алгебры. MathCAD 11 позволяет находить корни любого уравнения в численном виде, а для многих уравнений и в аналитическом (символьном) виде.
Численный поиск корня уравнения
Для того чтобы численно найти один из корней того или иного уравнения, воспользуйтесь встроенной функцией root. Рассмотрим процесс поиска корня на примере уравнения 1п(х) = х-2 (рис. 4.14).
1.
Сначала лучше привести уравнения к виду Дх) = 0 и задать левую часть в виде функции пользователя.
2.	Далее необходимо локализировать нужный корень, т.е. определить приблизительно, в каком месте на числовой оси он находится. Для этого постройте график введенной функции. Локализировать корень можно двумя способами. Во-первых, можно приблизительно определить положение корня. В этом случае для успешного решения важно, чтобы между приблизительным и точным решениями функция была монотонной (не имела максимумов и минимумов). Во-вторых, можно определить диапазон значений переменной х, в котором находится корень. В таком случае важно, чтобы заданный диапазон включал только один корень — искомый, а также чтобы функция существовала во всех точках диапазона.
3.	Если для локализации корня использовано его приближенное значение, то прежде чем использовать
ад := 1п(х) - х + 2
х.= 4 root(f(x),x) = 3.146 гоо1(ад ,х,0.01,1) =0.159
Рис. 4.14. Численное решение уравнения с одним неизвестным
Решение уравнений
81
функцию root, нужно присвоить это значение переменной х. Например, для нах< ждения корня х = 3.146 достаточно предварительно ввести х := 4 (см. рис. 4.14).
4.	Теперь, для того чтобы найти и вывести корень уравнения, следует ввест root (f (х) , х) =. Два аргумента этой функции — функция, корни которо ищутся, и ее аргумент.
5.	Если корень был локализирован в некотором диапазоне [а, Ь] значений х, т выполнять п. 3 не нужно, а для нахождения корня следует ввестг. root(f(x),x,a,b)=.
Поиск аналитического решения уравнений
Функцию root также можно использовать в символьных вычислениях. Каг и в примерах, описанных выше, для этого достаточно ввести вместо знака равенств? знак символьного вычисления. При этом функция f может зависеть не только от переменной х, но и от произвольных внешних параметров. Конечно, далеко не все уравнения имеют аналитическое решение, и если MathCAD не сможет найти решение в символьном виде, то будет выдано сообщение об ошибке.
При использовании функции root в символьных вычислениях, если уравнение удастся решить аналитически, то вы получите сразу все корни уравнения в виде вектора. Но если уравнение имеет бесконечное число корней (например, оно содержит тригонометрические функции), то будет выведен только один из них. Таким обра
зом, при поиске аналитического решения уравнения теряет всякий смысл локализа-
ция корня, неважно каким из двух описанных выше способов.
Кроме функции root, для решения уравнения в символьном виде можно воспользоваться другим эквивалентным способом. Введите левую часть такого уравнения, затем — знак символьного вычисления с модификатором solve,х (если решить уравнение нужно относительно переменной л). То же самое вы подучите, если также введете левую часть уравнения, установите курсор на переменной х и выберите команду меню Symbolics;tVariable;tSolve.
Вычисление корней полинома
Если левая часть уравнения (функция /(х)) имеет вид полинома, то есть возможность сразу найти все его корни. Полином в таком случае следует вводить не как функцию, а как вектор коэффициентов. Причем нулевым элементом вектора должен быть свободный член, первым — коэффициент при .г, вторым — при х2 и т.д. Встроенная функция polyroots возвращает вектор корней полинома, если аргументом для нее задан вектор коэффициентов (рис. 4.15).
Конечно, выписывать коэффициенты полинома можно и вручную, но в MathCAD (1 ) есть более “изяшный” способ сделать это. Введите полином (можете ввести его 5ц,;	даже в свернутом виде, см. рис. 4.15) и выберите команду меню Symbolics=>Collect.
Также для этой цели можно воспользоваться знаком символьного вычисления с оператором collect,х. Именно такой способ использован на рис. 4.15. Далее можно полученный вектор присвоить переменной и использовать ее как аргумент для функции polyroots.
Если полином задан в свернутом виде, то для получения того же полинома, но в виде простой суммы можно выбрать команду меню Symbolics^Expand или воспользоваться знаком символьного вычисления с модификатором expand.
82	Гпава 4. Операции с матрицами и решение алгебраических задач
(х + 1) ?х^ - 4;Д:? + х - 2* coeffs.x ->
4
-10
-5
2
С-2\
polyroots(v) =
-2
-1
4
-10
-5
2
Г 8 \
к 1;
Рис. 4.15. Пример использования функции polyroots
Системы нелинейных уравнений
Для решения систем нелинейных уравнений в MathCAD вводится понятие “группа решения”. Такая группа состоит из следующих последовательно расположенных элементов.
1.	Ключевое слово given (дано). Оно означает начало группы решения.
2.	Набор условий. В случае системы уравнений это и есть сами уравнения. При вводе уравнений следует пользоваться не обычным знаком равенства, а знаком, вводимым с панели Boolean или нажатием <Ctrl+=> на клавиатуре. Также условия могут быть неравенствами. При решении системы нелинейных уравнений такие условия могут помочь выделить нужный корень.
3.	Функция, решающая введенную систему. Она заканчивает группу решения.
Вся область документа, заключенная между ключевым словом given и функцией, считается содержимым группы решения. Это означает, что здесь не может быть ничего, кроме условий, заданных как уравнения или неравенства (с помощью кнопок на панели Boolean). Кроме решения систем уравнений, такие группы используются для решения систем дифференциальных уравнений и задач оптимизации.
Численный поиск решения системы уравнений
После теории перейдем к практике и узнаем, как применяются группы решений для решения системы нелинейных уравнений. Для этого следует выполнить следующие действия (рис. 4.16).
1.	Для поиска решения системы уравнений всегда должна быть задана начальная точка для локализации корня. То есть если в системе два неизвестных х и у, то следует присвоить переменных с такими именами значения, в окрестности которых вы хотите искать решение. На рис. 4.16 — гто первая строка.
2.	Введите ключевое слово given для начала группы решения. Обратите внимание, что операторы присваивания должны находиться перед группой решения.
3.	Введите последовательно все уравнения системы. На забывайте, что знак равенства в уравнениях следует вставлять только с помощью комбинации <Ctrl+=>.
Системы нелинейных уравнений
83
х := -1 у = 2
given
2	2 n
x + у = 9
2 y=x
x< О
(-1.594 findfx.y) =
I 2.541
Рис. 4.16. Решение системы нелинейных уравнений
4. Если нужно сузить область поиска решения, то задайте ограничивающие условия с помощью неравенств. В примере на рис. 4.16 решение ищется только в области отрицательных значений х (условие х<0).
5. Для того чтобы решить введенную систему и закончить группу данного решения, введите функцию find(x,y). Аргументы этой функции — это неизвестные, значения которых необходимо найти. Поскольку было введено два аргумента, то результат выводится в виде двухкомпонентного вектора. Первый элемент — значение х, второй — у.
На рис. 4.16 справа на графике проиллюстрировано решение такой системы уравнений. Каждое уравнение изображено в виде отдельной кривой на графике, а решение — точка пересечения этих кривых.
Решение систем уравнений в символьном виде
Если в системе количество уравнений т меньше количества неизвестных п, то решением системы должны быть т функций от л-m переменных. Эти переменные называются свободными параметрами системы. Зачастую в системе можно любые неизвестные выбирать свободными параметрами. Именно поэтому функция find требует задания в качестве аргументов всех переменных, относительно которых решается система уравнений. Если неизвестные, перечисленные как аргументы функции find можно аналитически выразить через остальные (свободные) параметры, то показать эту аналитическую зависимость можно только с помощью знака символьного вычисления (-э).
В качестве примера можно рассмотреть поиск точек пересечения прямой и окружности в зависимости от радиуса окружности (рис. 4.17). Здесь задана система из двух уравнений, но зависящая от трех параметров: х, у, г. Функция find(х,у) может вывести в данном случае только зависимость параметров х и у от г. Конечно, никто не запрещает выбрать любой другой параметр в качестве свободного и записать, скажем, f ind(x, г).
л При символьном решении системы уравнений, так же как и при символьном реше-нии одного уравнения, вы сразу получите все корни. Как видно из рис. 4.17, резуль-тат функции find в таком случае — это матрица, в которой каждый столбец соответ-^4 ствует одному решению системы. Поэтому здесь. как и при использовании функции root, в символьных расчетах локализация корня не нужна.
Решить систему уравнений в символьном виде можно и другим эквивалентным способом — с помощью уже известного символьного оператора solve. Такой способ для той же системы, что была решена выше, реализует следующая последовательность действий (рис. 4.18).
1.	Вставьте на свободное место рабочей области документа заготовку матрицы с двумя строками и одним столбцом.
84	Гпава 4. Операции с матрицами и решение алгебраических задач
given
2	2	2
X + у = г
х=у
( 1 о
find(x,y) ->
Рис. 4.17. Вычисление точек пересечения прямой и окружности
2.	Вместо элементов матрицы введите два уравнения системы. Вводить их следует так же, как и в группу решения, с использованием комбинации клавиш <Ctrl+=>.
3.	Далее следует вставить знак символьного вычисления с ключевым словом solve. Это можно сделать, щелкнув на соответствующей кнопке на панели инструментов Symbolic.
4.	В поле ввода после слова solve следует ввести уже не одну переменную, как раньше, а через запятую две переменные, относительно которых нужно решить систему: solve,х,у.
Рис. 4.18. Решение системы уравнений в одну строку
О Обратите внимание, что ответ, полученный с помощью оператора solve, содержит одно важное отличие от результата функции find—каждое решение системы в полученной матрице представляет собой отдельную строку (а не столбец, как v в функции find).
Основное преимущество такого способа — решение системы находится в одну строку без таких громоздких конструкций, как группа решения. Хотя для больших систем уравнений с громоздкими аналитическими решениями ситуация может оказаться обратной — одна строка окажется слишком длинной для размещения на странице. В таком случае лучше пользоваться функцией find, поскольку ее результат можно выводить по частям и размещать так, как удобно.
Решение однородной системы линейных уравнений
Описанная выше методика может быть использована для поиска решения однородной системы линейных уравнений. Как известно, для того чтобы однородная система линейных уравнений имела решение, определитель соответствующей матрицы должен равняться нулю. Это означает, что количество независимых уравнений в системе меньше, чем количество неизвестных. Значит, такую систему уравнений можно решать мето
Системы нелинейных уравнений	85
дом, описанным в предыдущем разделе. Но вначале нужно выделить в системе эти самые независимые уравнения. В этом нам поможет уже упоминавшаяся функция rref, которая с помощью метода исключений Гаусса приводит матрицу к ступенчатому виду. На рис. 4.19 вначале с помощью функции rank определено количество линейнонезависимых строк в матрице А, а затем с помощью функции rref эти строки выделены.
Теперь для такой матрицы мы получили систему из двух уравнений с четырьмя неизвестными. Поэтому решение системы будет иметь два свободных параметра. На рис. 4.20 система решена относительно параметров х1 и х2, а параметры хЗ и х4 выбраны в качестве свободных. В последней строке на рис. 4.20 на основе результата функции find построено общее решение х(хЗ,х4) однородной системы уравнений, заданной матрицей А. Показано также, что вектор х действительно является решением при любых значениях параметров хЗ и х4.
'1324'
0 12 3
14 4 7
<1201,
given
xl — 4x3 — 5x4 = 0
rank(A) = 2
<1 0 -4 -5')
х2 + 2x3 + 3x4 = 0
( 4 хЗ + 5 x4 find(xl,x23 —>
1-2x3 - 3x4
ч0 0 0 0 ,
Рис. 4.19. Получение системы уравнений с четырьмя неизвестными
Рис. 4.20. Решение системы уравнений относительно х! и х2
Приближенное решение системы, которая не имеет точного корня
Иногда система нелинейных уравнений может не иметь точного решения ни в одной точке. В таком случае при использовании функции find вы получите сообщение об ошибке. Всеже иногда возникает необходимость для таких систем находить значения параметров, при которых уравнения, входящие в систему удовлетворяются хотя бы приближенно. Для этой цели служит встроенная функция minerr. Ее применение полностью аналогично применению функции find, и если система имеет решение, то и результат будет такой же. Но если система решения не имеет, то функция minerr найдет точку, которая наиболее близка к решению системы (рис. 4.21).
Рис. 4.21. Решение системы уравнений с помощью функции minerr
86
Гпава 4. Операции с матрицами и решение алгебраических задач
Глава 5
Решение задач математического анализа
В этой главе...
♦	Пределы последовательностей и функций
♦	Вычисление сумм и произведений
♦	Дифференцирование
♦	Интегрирование
♦	Исследование функций
♦	Разложение функции в степенной ряд Тейлора
♦	Интегральные преобразования
♦	Резюме
О
данной главе рассматривается решение основных задач математического анализа средствами MathCAD. Большинство описанных вычислений редко встречается в виде отдельной задачи, а чаще является частью более сложного расчета. Таким образом, как математический анализ является основой всей высшей математики, так и навыки, полученные в данной главе, пригодятся вам практически в любых задачах.
Основными объектами математического анализа являются функции и последовательности (которые в MathCAD описываются так же, как и функции). Основными операциями математического анализа являются: дифференцирование, интегрирование, разложение в степенной ряд и вычисление границ. Все инструменты MathCAD, помогающие решать подобные задачи, а также работать с рядами, представлены на панели инструментов Calculus и уже упоминавшейся ранее панели Symbolic. Следует отметить, что хотя все используемые символьные операторы можно найти на панели инструментов Symbolic, в данной главе описан их ввод с клавиатуры. Можно применять оба способа, но ввод операторов с клавиатуры, по мнению автора, более удобен. Единственное, что нужно помнить при вставке операторов с помощью панели инструментов Symbolic, это то, что вместе с ними вставляется и знак символьного вычисления, т.е. вводить его отдельно перед вставкой оператора не следует.
Пределы последовательностей и функций
Вычисление пределов является одной из основных задач математического анализа. Большинство пределов, используемых в реальных задачах, может быть вычислено вручную, хотя иногда это весьма сложно. Система MathCAD позволяет с высо-
кой эффективностью находить любые пределы. Это означает, что если предел последовательности или функции существует, то MathCAD почти наверняка его найдет.
Операторы MathCAD для вычисления пределов расположены на панели математических инструментов Calculus (рис. 5.1). Данная панель инструментов содержит три кнопки, щелкнув на которых вы можете вставить в документ операторы предела в точке (двухстороннего предела, Two-sided Limit), а также левостороннего (Left-sided Limit) и правостороннего (Right-sided Limit) пределов. Найти эти кнопки на панели несложно, поскольку изображения на них соответствуют стандартной математической записи соответствующих операторов.
Рис. 5.1. Панель инструментов Calculus
Пределы последовательностей
Последовательности в MathCAD задаются точно так же, как и функции. При этом нигде не упоминается, что это функции дискретного аргумента, а для нахождения предела _го и не важно. Говорят, что последовательность {а,} имеет границу а, если для любого малого положительного числа е существует такой номер N, что выполняется неравенство: |а, - а| < е для любых i, больших чем N. Фактически предел последовательности, если он существует, — это число, к которому приближаются элементы последовательности при значении индекса i, стремящемся к Для вычисления в MathCAD предела последовательности выполните следующую последовательность действий:
L 1- Прежде всего, в свободное место рабочей области документа вставьте , ,	шаблон оператора предела в точке. Это можно сделать, щелкнув на соот-
---——	ветствующей кнопке панели инструментов Calculus или используя комбинацию клавиш <Ctrl+L>.
2. Шаблон содержит три поля ввода, назначение которых очевидно. Введите в поле ввода справа от слова lim общий элемент последовательности, зависящий от некоторого индекса, например i. В оставшихся двух полях ввода внизу от слова lim следует ввести имя индекса i, слева от стрелки, а справа от стрелки — знак бесконечности. Для того чтобы ввести знак бесконечности, можно щелкнуть на кнопке с соответствующим изображением на панели инструментов Calculus, а можно использовать комбинацию клавиш <Ctrl+Shift+Z>.
3. Для того чтобы вычислить введенный предел, введите знак символьного вычисления (—>). Напомним, что для этого можно воспользоваться соответствующей кнопкой на панели инструментов Symbolic или комбинацией клавиш <Ctrl+.>. Обратите внимание, что пределы, в отличие от большинства математических операций в MathCAD, можно вычислять только в символьном виде, а при попытке вычислить предел численно (с помощью знака “=”) будет выдано сообщение об ошибке.
После выполнения указанных действий справа от знака символьного вычисления появится значение предела заданной последовательности, конечно, только в том случае, если этот предел существует. Примеры вычисления пределов последовательностей приведены на рис. 5.2. Если последовательность не имеет предела, то вместо ответа будет выдано слово undefined — “не определен” (см. пример на рис. 5.2 в нижней строке). Не стоит путать последовательность, не имеющую предела, и бесконечно большую последовательность (предел которой равен бесконечности). Для бесконечно большой последовательности предел будет найден правильно и будет выдан результат в виде знака ~ (см. пример на рис. 5.2 в первой строке справа).
90
Гпава 5. Операции с матрицами и решение алгебраических задач
lim -Ji 1
i-> co
lim n -» co
2 / s 2n foO ( e j 2n l^nj
lim ln(i +1) —> co co
lim isinQ -> undefined
Рис. 5.2. Примеры вычисления пределов последовательностей
Предел функции в точке
Необходимость вычисления пределов функции возникает в задачах даже чаще, чем пределов последовательностей. Во многих задачах можно столкнуться с функциями, значение которых в тех или иных точках с формальной математической точки зрения не определено. Такая ситуация может возникнуть в точках разрыва функции или в особых точках, где в значении функции возникает неопределенность типа 0/0 или оо/оо. Для анализа первого случая служат односторонние пределы, которые будут рассмотрены в следующем разделе, а второй случай — разрешение неопределенностей — будет рассмотрен сейчас.
Рассмотрим, например, функцию tan(x)/x и попытаемся вычислить ее значение в особой точке л = 0. Известно, что с формальной точки зрения функция в данной точке не существует, поскольку и числитель, и знаменатель обращаются в нуль. Также известно, что предел данной функции в точке т = 0 существует и равен единице. Именно это значение обычно и называют значением функции в данной точке. На примере функции tan(x)/x хорошо видно как ведет себя MathCAD в подобных ситуациях (рис. 5.3). Как видите, попытка просто вычислить значение функции в особой точке, где т = 0, не дает правильного ответа. Более того, в данной точке MathCAD приписывает нулевое значение и функции tanCij/.r, и обратной ей — .r/tanft), что, казалось бы, совсем уж абсурдно. Причина данной ошибки заключается в способе вычисления дробей в MathCAD: вначале вычисляется числитель дроби, и если он оказался равным нулю, то и вся дробь принимается равной нулю и знаменатель даже не вычисляется. Для того чтобы получить правильное значение функции в особой точке, следует вычислить ее предел в этой точке. Для этого служит тот же оператор, что и для вычисления пределов последовательностей и та же последовательность, действий, что была описана выше, с той разницей, что пределом устанавливается не бесконечность, а нуль (см. рис. 5.3).
fp:) :=	fi'O) =0 lim -> 1
х	х -> О
g(x) := —gfO) = 0 lim gfx) -> 1 tan(x)	x 0
Рис. 5.3. Раскрытие неопределенности 0/0
Если возникает необходимость построить график функции, которая содержит осо-Ь : бую точку, то из-за упомянутой выше особенности MathCAD при вычислении дро-. бей график будет содержать дефект (на рис. 5.4 график слева). Исправить эту ошиб-ку и получить правильный график на всем интервале можно, если при вычислении функции в особой точке заменить значение функции на значение предела. Это можно сделать с помощью встроенной функции if (см. рис. 5.4). В результате на графике получится правильная непрерывная функция (на рис. 5.4 график справа).
Пределы последовательностей и функций
91
g(x)	gfO) = 0 ton g(x) -> 1
Рис. 5.4. Построение графика функции с неопределенностью
Односторонние пределы функции
Кроме оператора предела в точке, который еще называют оператором двухстороннего предела, на панели инструментов Calculus есть еще две кнопки, позволяющие вставить операторы односторонних пределов. Эти пределы используются в задачах с разрывными функциями. В точках разрыва не определено не только значение самой функции, но и значение ее двухстороннего предела (рис. 5.5). Поэтому для исследования точек разрыва функции вычисляют левый и правый пределы в этой точке. Использование операторов этих пределов в MathCAD полностью аналогично использованию оператора двухстороннего предела (см. рис. 5.5). В точках, где функция непрерывна, все три предела будут иметь одинаковое значение — значение функции в этой точке.
ton ад —»undefined
х—> 1
ton ад о ton ад -»1 х-> 1 +	х-> 1~
Рис. 5.5. Исследование функции в точке разрыва
Вычисление сумм и произведений
Необходимость вычисления сумм и произведений рядов часто возникает в самых различных задачах, хотя традиционно работу с рядами относят к задачам математи-
92
Гпава 5. Операции с матрицами и решение алгебраических задач
веского анализа. Вычисление сумм и произведений большого числа элементов является задачей непосильной для ручных расчетов, поэтому использование компьютера в таких задачах просто необходимо. Система MathCAD обладает эффективными средствами для вычисления сумм и произведений как конечного, так и бесконечного числа элементов. Операторов, отвечающих за работу с рядами в MathCAD, всего четыре, и каждый из них можно вставить в документ с помощью соответствующей кнопки на панели инструментов Calculus. Все эти операторы можно использовать как в численных, так и в символьных расчетах.
Численное вычисление суммы ряда
Для вычисления сумм в MathCAD используются два оператора: Summation (Суммирование) и Range Variable Summation (Суммирование по переменной диапазона). Основным оператором вычисления сумм является первый из них — Summation. Помимо панели инструментов Calculus, шаблон этого оператора можно вставить с помощью комбинации клавиш <Ctrl+Shift+4>.
После вставки в документ шаблон этого оператора содержит четыре поля ввода. Поскольку все операторы в MathCAD изображаются по общепринятым в математике правилам, то заполнение этих полей не должно вызвать вопросов. Как и в математической записи суммы, здесь нужно в соответствующих местах указать общий член ряда, зависящий от некоторого целочисленного индекса, а также имя этого индекса и границы его изменения при суммировании.
После заполнения полей шаблона оператора суммы, для того чтобы вычислить ее численно, как обычно, следует ввести знак “=”. Численно можно вычислить любую сумму арифметического ряда с конечным числом элементов, а также сумму элементов вектора (рис. 5.6).
2
а := 3
4 ь,
100
V - = 5.187
*—< п
п= 1
(-1)
i—4- = -0.821
2 п
Рис. 5.6. Вычисление сумм
Второй оператор суммирования, Range Variable Summation, также суммирует элементы ряда, но несколько иным образом. В этом оператора суммирования нигде не указываются границы изменения переменной-индекса, но переменная с таким именем должна быть заранее описана как переменная диапазона (рис. 5.7). Единственное преимущество такого подхода — это возможность использовать дробные значения индекса. Такая необходимость возникает в задачах очень редко, так что чаще всего использование оператора суммирования по переменной диапазона не имеет смысла, хотя иногда такая запись суммы может быть более наглядной.
к:=1„ 10	п:= 0,0.1.. 10
У к к= 1.291 к
Vn П= 20.418 п
Рис. 5.7. Вычисление сумм по переменной диапазона
Вычисление сумм и произведений
93
Символьное вычисление сумм
Как уже говорилось, суммирование рядов можно производить не только численно, но и аналитически. Аналитическое суммирование, как и все символьные вычисления в MathCAD, обладает гораздо большими возможностями, чем численное (рис. 5.8). Вы можете, например, вычислять суммы функциональных рядов или рядов с переменными границами. Кроме этого, только символьный процессор обладает такой важнейшей способностью, как вычисление сумм бесконечных рядов. Для того чтобы аналитически вычислить ту или иную сумму, достаточно после оператора суммирования вместо знака “=” ввести знак символьного вычисления (—>).
СО	СО	П
V-I n	X	Х—Л X
\ п х	\	ехр(х)
—'	,	,.2	п!
п <= О С*-1) п = О
V1 -—> Psi(b + 1) + 7 f п
П« 1
1	12
V ---------> 1 + Zeta(3)-я
—<	3	б
п=1 п(п+1)
Рис. 5.8. Вычисление различных сумм в символьном виде
Конечно, символьный процессор сможет вычислить сумму только при условии, что для нее существует аналитическое выражение. Но здесь следует упомянуть об одной интересной особенности символьного процессора MathCAD. Результаты символьных вычислений иногда могут содержать специальные функции, которых нет в библиотеке функций MathCAD. Так, например, результаты вычислений примеров на рис. 5.8 в последней строке содержат специальные функции Psi и Zeta, а также константу у. Подобных функций и констант в MathCAD несколько. Все они могут быть использованы только в символьных вычислениях. Это означает, что вы не сможете построить их график или использовать в любых выражениях, которые вычисляются численно (исключение составляет упомянутая функция Psi; она включена в библиотеку встроенных функций в категорию User Defined). Единственный способ полноценно использовать эти функции в расчетах — это задать их самостоятельно. Для того чтобы узнать, как задается каждая из специальных символьных функций, можно обратиться к соответствующему разделу справочной системы MathCAD.
/'(лГ’’г. Если возникает необходимость вычислить значение той или иной специальной сим-вольной функции в одной точке, то нет необходимости искать в справочной системе хХи-' ее описание и задавать ее вручную. Для этого достаточно воспользоваться модифи-^3 катером символьных вычислений float. Например, если есть необходимость вычислить значение функции Zeta в точке х-3 с точностью до пятого знака после запятой, то достаточно ввести Zeta(3), затем нажать на клавиатуре <Ctrl+Shift+.> для вставки оператора символьного вычисления с полем ввода для оператора. В этом поле следует ввести float, 5. Точно так же можно вычислить значение любой специальной символьной функции или константы с любой точностью.
Еще одна интересная особенность связана с использованием оператора суммирования по переменной диапазона в символьных расчетах. Этот оператор можно использовать, и не задавая заранее переменную диапазона. В таком случае если имя индекса суммирования задано, например к, то будет вычислена сумма с нулевой нижней и переменной верхней границами, а после вычисления вместо значения верхней границы будет подставлено имя переменной суммирования — к.
94
Гпава 5. Операции с матрицами и решение алгебраических задач
Вычисление произведений
Кроме вычисления суммы элементов ряда, часто возникает необходимость в вычислении их произведения. Вычисление произведений в MathCAD осуществляется аналогично вычислению сумм. Произведения также вычисляются с помощью двух операторов, которые можно вставить щелчком на соответствующей кнопке на панели инструментов Calculus. Эти операторы называются Iterated Product (Произведение) и Range Variable Iterated Product (Произведение по переменной диапазона). Их использование как в численных, так и в символьных расчетах подчиняется тем же правилам, что и суммирование. Поэтому мы не будем на них подробно останавливаться, лишь приведем несколько примеров их использования (рис. 5.9).
еП = 18.708
п = 0
И	| Г(к) Г(2 + к)
п = 2
Рис. 5.9. Вычисление произведений рядов
Дифференцирование
Среди всех задач математического анализа дифференцирование считается самой простой для вычисления. В принципе производная от практически любой функции может быть аналитически вычислена вручную, хотя для сложных функций ручной расчет может быть чрезвычайно трудоемким. Поэтому применение MathCAD для дифференцирования функций может не только сэкономить время и силы, но и избавить от возможных ошибок, неизбежно возникающих при сложных ручных расчетах.
Система MathCAD позволяет производить дифференцирование функций как в символьном виде, так и численно. Традиционно считается, что численное дифференцирование производится быстрее, чем символьное, хотя и с ограниченной точностью. Но для большинства функций MathCAD производит символьное дифференцирование со скоростью, достаточной не только для вычисления одной производной, но и использования данной операции в различных итерационных процессах, где производная должна вычисляться сотни и даже тысячи раз. Поэтому в данной книге мы ограничимся рассмотрением только символьного дифференцирования как наиболее интересного и обладающего большими возможностями.
Вычисление производной первого порядка
Для вычисления производной первого порядка в MathCAD служит оператор Derivative, вставляемый с помощью кнопки с соответствующим изображением на панели инструментов Calculus или комбинации клавиш <Shift+/>. Шаблон данного оператора содержит два поля ввода, в которые следует ввести дифференцируемую функцию и переменную дифференцирования. Оператор производной, как и все операторы в MathCAD, записывается в общепринятой в математике форме, поэтому заполнение шаблона не должно вызвать вопросов.
После того как поля ввода заполнены, для получения аналитического выражения производной следует ввести знак символьного вычисления (—>). Таким способом можно найти выражение производной для функций любой сложности и даже функ
Цифференцирование
95
ций с параметрами и функций нескольких переменных. Несколько примеров вычисления производных приведены на рис. 5.10. Как видите, символьный процессор далеко не всегда приводит вычисленное выражение производной к самому простому виду, хотя всегда находит его правильно.
— X -> X <1п(х) + 1)
dx
d . ,. n	. .. n cos(x)
— Sltuxl —> sinfxl n--
dx	sin(x)
d ln(x) 1 liA) dx x 2	2
x x
Рис. 5.10. Символьное дифференцирование
Если необходимо получить не аналитическое выражение производной, а вычислить ее значение в нужной точке числовой оси, то и в этом случае можно не использовать численное дифференцирование. Достаточно определить требуемую производную как некоторую функцию пользователя. Тогда в дальнейшем можно получать ее численные значения, просто вводя нужную величину переменной в скобках (рис. 5.11).
D(x) := --Х7' D(x) -э хХ (ta(x) + 1) dx
D(2) = 6.773
Рис. 5.11. Подсчет значения производной в точке
При дифференцировании функции нескольких переменных производная по одной переменной называется в математике частной производной. Математическая запись таких производных отличается от обычных. Для вычисления частных производных в MathCAD служит тот же оператор Derivative. Для того чтобы привести частную производную к стандартной математической записи, следует шелкнуть правой кнопкой мыши на операторе производной и в появившемся контекстном меню выбрать команду View Derivative As1^ Partial Derivative.
Вычисление односторонних производных
Возможности MathCAD позволяют продифференцировать любую непрерывную функцию, но иногда возникает необходимость находить производную от функции вблизи точки разрыва. В математике для дифференцирования функции вблизи точки разрыва используют операцию односторонней производной. В MathCAD нет встроенных операторов для вычисления односторонних производных, но вычислить их все-таки можно. Для этого следует скомбинировать оператор обычной производной с операторами односторонних пределов, как это сделано в примере на рис. 5.12.
Производные высших порядков
Для вычисления производных высших порядков в MathCAD предусмотрен отдельный оператор, называемый Nth Derivative. Этот оператор можно также вставить с помощью кнопки на панели инструментов Calculus, а также с помощью комбинации клавиш <Ctrl+Shift+/>. Шаблон этого оператора содержит на два поля ввода больше, чем оператор обычной производной. В эти два поля ввода должен быть вписан поря-
96
Гпава 5. Операции с матрицами и решение алгебраических задач
док производной, причем достаточно ввести значение в одном из них, а в другом оно появится автоматически. Производные высших порядков можно вычислять и в символьном виде, и численно, но при численных расчетах вы можете вычислить производную не выше пятого порядка. Это связано с тем, что используемый алгоритм численного дифференцирования очень быстро теряет точность при росте порядка производной. В символьном же виде вычисление производных высших порядков производится так же просто и точно, как и производной первого порядка (рис. 5.13).
й;х):=
lim — fl'x) О х1+ dx
lim	— fl'x)	-1
х-> 1” &
X
Рис. 5.12. Вычисление односторонних производных
d!0 1	3628800	d3 . „ , z 3
—-------->------- —,sin(a x) —» -cos(a-X)a
dx x x4	dx
d^ -x2	i 2|	2 i 2|	4 i 2i
—je	-» 12 exp(-x - 48x exp>-x + 16 x exp.-x
dx
Рис. 5.13. Вычисление производных высших порядков
Интегрирование
Как и большинство математических операций, интегрирование в MathCAD может проводиться как численно, так и в символьном виде. Каждый способ вычислений имеет свои преимущества и недостатки и, в отличие от дифференцирования, здесь нельзя сказать однозначно, как лучше всего проводить вычисления. Какой способ интегрирования вы выберете для той или иной функции в своих задачах, будет зависеть только от вашего опыта, интуиции, а также требований конкретной задачи.
Численное интегрирование
Численно можно вычислить с большей или меньшей точностью любой сходящийся определенный интеграл с конечными или бесконечными пределами интегрирования. Для этого следует сначала вставить в документ шаблон оператора определенного интеграла (Definite Integral). Это можно сделать с помощью кнопки на панели инструментов Calculus или комбинации клавиш <Shift+7>.
Интегрирование
97
Шаблон оператора определенного интеграла содержит четыре поля ввода, в которые следует ввести в соответствии с общепринятыми математическими правилами интегрируемую функцию, переменную интегрирования, а также верхний и нижний пределы интегрирования. После заполнения всех полей ввода для вычисления интеграла следует ввести знак “=”. На рис. 5.14 приведены несколько примеров численного вычисления интегралов.
-----dx = 0.605 х + 1
^dx= 1.849 х
J0
Рис. 5.14. Численное интегрирование
При численном интегрировании основная проблема состоит в том, что интегрирование с высокой точностью сложных функций требует значительного времени. В таких случаях приходится искать компромисс между точностью и скоростью расчета. В MathCAD вы можете сами контролировать точность проводимых вычислений. Для этого служит встроенная переменная тоь. Ее значение можно изменить двумя способами.
	Присвоить ей значение, так же как и обычной переменной в документе, с помощью оператора присваивания (:=) или глобального присваивания (=), например ТОЬ: =10“8.
	Вызвать диалоговое окно Worksheet Options (напомним, что вызвать это окно можно с помощью команды меню Tools4>Worksheet Options) и на вкладке Built-in Variables изменить значение в поле ввода Convergence Tolerance (TOL).
По умолчанию переменной тоь присвоено значение 0.001, и чем меньше значение вы ей присвоите, тем выше будет точность численного интегрирования (наименьшее значение, которое можно присвоить данной переменной, — 10”15, наибольшее — единица) и, соответственно, тем ниже будет скорость вычислений. Конечно, нельзя сказать однозначно, какой будет точность вычисления того или иного интеграла при заданном значении тоь. Все численные методы интегрирования в MathCAD строятся на последовательных приближениях, и значение переменной тоь указывает, какой должна быть разница между двумя последовательными приближениями для остановки вычислений. Поэтому не стоит воспринимать значение этой переменной как точность вычисления интеграла, можно лишь с уверенностью сказать: точность будет не ниже значения тоь. Пример вычисления одного и того же интеграла при различных значениях тоь приведен на рис. 5.15. Также следует помнить, что слишком низкое значение ТОЬ может привести к тому, что MathCAD не сможет вычислить интеграл и выдаст ошибку (см. рис. 5.15 последнюю строку), поэтому для большинства однократных интегралов значение тоь лучше всего выбирать в диапазоне 10”3 — 10”6.
Точность численного интегрирования также зависит от численного метода, который используется для вычисления интеграла. Конечно, существует великое множество различных численных методов интегрирования, и для того или иного интеграла сложно заранее определить, каким методом его можно вычислить наиболее быстро и точно. В MathCAD встроено несколько основных методов численного интегрирования. Каждый из этих методов предназначен для своего класса интегралов. Поэтому по умолчанию MathCAD автоматически выбирает тот или иной метод в зависимости от введенной подынтегральной функции и границ интегрирования. Также, при желании
98	Гпава 5. Операции с матрицами и решение алгебраических задач
можно выбрать численный метод вручную, но в большинстве случаев это только ухудшит результат. Для того чтобы выбрать численный метод для вычисления интеграла, вызовите его контекстное меню (напомним, что для этого нужно щелкнуть на нем правой кнопкой мыши). Это контекстное меню содержит, кроме стандартных команд, еще и следующие команды выбора численного метода (рис. 5.16).
TOL := 10°
TOL := 10"
TOL := 10“
TOL := 10“
ИО
cos't4' dt = 0.913018552880079
plO
соs't4' dt = 0 837330311025834
/10
cos' t4* dt = 0.837330311025801
10
f!0
i
cosk * dt = i]i
"и
| Can't converge to a solution. |
Рис. 5.15. Изменение точности численного интегрирования
10
cosk4'|dt = 0.83733 । iv' с AutoSelect
Infinite Linjit a.
Singular Endpoint
X, Cut
Й’ Properties,..,,
 i Disable Evaluation
Рис. 5.16. Выбор метода численного интегрирования
	Auto Select — автоматический выбор метода. В большинстве случаев этот вариант является наилучшим, поскольку не требует от вас знания, для каких интегралов оптимальным является тот или иной метод. Если установлен автоматический выбор, можно увидеть, какой численный метод выбран: рядом с его названием в контекстном меню будет установлен черный кружок. Если тот или иной метод был выбран вручную, рядом с его именем будет установлен обычный флажок.
	Romberg — метод Ромберга. В этом методе подынтегральная функция аппроксимируется полиномом, поэтому он эффективен для функций, которые плавно меняются на всем интервале интегрирования, а сам интервал интегрирования конечен. ,
	Adaptive — адаптивный метод. Этот метод наилучшим образом приспособлен для вычисления интегралов от быстро меняющихся функций. Метод Adaptive
Интегрирование
99
выбирается автоматически для большинства интегралов, поскольку является наиболее универсальным.
	Infinite Limit — метод, предназначенный для вычисления интегралов, в которых одна или обе границы интегрирования удалены на бесконечность (несобственные интегралы первого рода). Использование для таких интегралов любого метода кроме данного приведет к ошибке. Во многих случаях если одна или обе границы интегрирования очень большие числа, то более точный ответ может быть получен, если установить границы интегрирования в бесконечность и ирпользовать метод Infinite Limit (конечно, при условии, что функция интегрируема в бесконечных пределах).
	Singular Endpoint — незамкнутый метод Ромберга. Этот метод предназначен для вычисления несобственных интегралов второго рода, т.е. интегралов с конечным отрезком интегрирования, но с подынтегральной функцией, которая не существует на одной или на обеих границах интервала. Для таких интегралов почти всегда можно также использовать и обычный метод Ромберга или адаптивный метод, причем даже при автоматическом выборе метода для большинства несобственных интегралов второго рода будет установлен метод Adaptive. Это происходит по той причине, что метод Singular Endpoint используется, только если два первых не дали удовлетворительного результата. Также следует заметить, что для успешного вычисления интеграла неопределенность должна быть только на границе интервала интегрирования. Если подынтегральная функция содержит особенность внутри интервала, то интеграл следует разбить на два.
Символьное интегрирование
Символьный процессор MathCAD позволяет вычислять как неопределенные, так и определенные интегралы. Для вычисления неопределенного интеграла, а точнее первообразной функции, в MathCAD предусмотрен отдельный оператор — Indefinite Integal. Этот оператор можно вставить с помощью соответствующей кнопки на панели инструментов Calculus или с помощью комбинации клавиш <Ctrl+I>. Шаблон данного оператора содержит два поля ввода, куда должны быть введены подынтегральная функция и переменная интегрирования. После заполнения шаблона следует ввести знак символьного вычисления >” (напомним, что для ввода этого знака можно воспользоваться соответствующей кнопкой на панели инструментов Symbolic или комбинацией клавиш <Ctrl+.>). После этого справа от стрелки будет выведена функция, которая является первообразной от подынтегрального выражения (рис. 5.17). Если первообразную функцию нельзя записать в аналитическом виде, справа от стрелки будет еще раз переписан тот же интеграл (см. пример на рис. 5.17 последнюю строку).
2-х	2
хе dx —> -х -ехр(-х) - 2хехр(-х) - 2ехр(-х)
—sm/jj— dx -> -ln(l + cos(x)) 1 + cos(x)
sin(x)
2
——dx sin(x)
Рис. 5.17. Вычисление неопределенных интегралов
100
Гпава 5. Операции с матрицами и решение алгебраических задач
В символьном виде можно также вычислять и определенные интегралы. Для этого служит тот же оператор Definite Integral, который использовался для численного интегрирования, только, как и всегда в символьных вычислениях, вместо знака “=” следует использовать знак Для того чтобы вычислить в символьном виде определенный интеграл, MathCAD сначала вычисляет первообразную, т.е. повторяет действия неопределенного интеграла. Далее, из значения первообразной на верхней границе вычитается ее значение на нижней границе. Полученное в результате выражение и возвращается как ответ (рис. 5.18).
Рис. 5.18, Определенные интегралы в символьном виде
При символьном интегрировании, как и всегда в символьных вычислениях, можно получить результат с любой точностью. Значение переменной TOL, очевидно, не имеет никакого значения для символьных вычислений. При этом в большинстве случаев результат будет получен гораздо быстрее, чем точный численный результат.
Недостатком символьного интегрирования является тот факт, что первообразные далеко не всех функций существуют в аналитическом виде и поэтому некоторые интегралы просто не могут быть вычислены в символьном виде. Стоит отметить, что существует несколько интегралов, которые не имеют аналитического выражения, но часто встречаются в практических задачах. Эти интегралы в математике носят определенные названия и заданы в MathCAD в виде специальных символьных функций или констант (об этих функциях речь шла выше в разделе “Вычисление сумм и произведений”). Таким образом, многие интегралы, которые не имеют аналитического выражения через элементарные функции, будут все же вычислены символьным процессором и записаны с использованием специальных символьных функций MathCAD (рис. 5.19). Однако следует помнить, что результат символьного интегрирования в данном случае является лишь удобной записью того же интеграла. Если вам понадобится определить значение одной из этих функций в точке на числовой оси, то придется вычислять соответствующий интеграл численными методами.
у^- dx -э у ln(x)2 - dilog(x)
X - X
Рис. 5.19. Интегралы, выраженные через специальные символьные функции MathCAD
Конечно, вычисление интегралов — это, по-видимому, самая сложная задача для символьного процессора MathCAD. Поэтому стоит признать, что опытному математику не составит большого труда придумать интеграл, имеющий аналитическое выражение, но не берущийся в MathCAD (особенно это касается кратных интегралов). Тем
Интегрирование
101
не менее, символьному процессору MathCAD под силу взять почти любой однократный интеграл, который имеет аналитическое выражение через элементарные функции или через специальные символьные функции MathCAD.
Интегрирование функций с параметром
Нужно быть очень острожным при символьном интегрировании функций, зависящих от параметра. Следует помнить, что MathCAD воспринимает все неопределенные параметры в функциях как произвольные комплексные числа. Поэтому интеграл от функции с параметром будет вычислен только в том случае, если он существует при всех значениях параметра на комплексной плоскости. Конечно, такое условие выполняется далеко не для всех функций. Поэтому даже для самых простых интегралов введение параметра может привести к тому, что интеграл не будет вычислен символьным процессором (рис. 5.20).
— со	— со
Рис. 5.20. Введение параметра может сделать невозможным вычисление простого интеграла
Решением данной проблемы является использование модификатора символьных вычислений assume. С его помощью можно наложить определенные ограничения на значения параметров, входящих в подынтегральное выражение. Для этого необходимо выполнить следующую последовательность действий.
1.	Введите интеграл, который необходимо вычислить.
2.	Введите знак символьного вычисления с полем ввода для модификатора. Напомним, что для этого служит комбинация клавиш <Ctrl+Shift+.>.
3.	В поле ввода введите ключевое слово assume и через запятую условие, накладываемое на параметр подынтегрального выражения или несколько условий через запятую. Вы можете использовать в модификаторе assume следующие варианты условий.
♦	a=real — при вычислении интеграла параметр а будет восприниматься как произвольное действительное число. Как и во всех условиях, здесь должен быть использован знак логического равенства (напомним, что для вставки этого знака служит комбинация клавиш <Ctrl+=>).
♦	а>1 — данное условие заставляет символьный процессор MathCAD воспринимать параметр а как действительное число, которое больше единицы. Таким условием может быть любое неравенство. Не стоит вводить сложные неравенства или неравенства с несколькими параметрами, поскольку в большинстве случаев это приведет к тому, что интеграл вычислен не будет.
♦	a=RealRange(0,10) — данное условие указывает на то, что параметр а может быть любым действительным числом, принадлежащим заданному отрезку числовой оси (как пример указан отрезок [0, 10]). То же самое можно сделать и с помощью условий описанного выше Типа, но в таком случае потребуется задать два условия, и модификатор символьных вычислений примет следующий вид: assume,а>0,а<10.
4.	Теперь, после того как вы щелкнете на свободном месте рабочей области, введенный интеграл будет вычислен с учетом ограничений, наложенных на значения параметров (рис. 5.21).
102	Гпава 5. Операции с матрицами и решение алгебраических задач
1
Рис. 5.21. Решение проблемы вычисления интеграла с параметром
Кратные интегралы
Кроме однократных интегралов, в MathCAD есть возможность вычислять двойные, тройные интегралы, а также интегралы более высокой кратности. Для вычисления кратных интегралов не предусмотрено отдельного оператора, для этого служит уже знакомый оператор определенного интеграла (Definite Integral). Для того чтобы получить шаблон кратного интеграла, например тройного, нужно поступить следующим образом: установите курсор на свободном месте рабочей области и щелкните три раза подряд (по кратности интеграла) на кнопке вставки оператора определенного интеграла панели инструментов Calculus. В результате получится шаблон, содержащий поля ввода для трех верхних и трех нижних границ интегрирования, трех переменных интегрирования и подынтегральной функции. Заполните шаблон необходимыми значениями и введите “=” для вычисления интеграла численными методами или для вычисления в символьном виде (рис. 5.22).
г10 гх
е ydydx = 7.425
J0 J0
Рис. 5.22. Вычисление кратных интегралов
Во многих задачах при вычислении кратного интеграла известны не границы интегрирования по каждой переменной, а область интегрирования в виде некоторой фигуры на плоскости или в пространстве. К сожалению, система MathCAD пока не предоставляет возможности интегрирования по области, и в таких случаях необходимо вручную выводить функциональные границы интегрирования, задающие необходимую область. Например, в нижней строке на рис. 5.22 производится интегрирование по объему, ограниченному конусом.
При численном интегрировании есть возможность выбирать численный метод отдельно для интегрирования по каждой переменной в кратном интеграле. Для этого следует щелкнуть правой кнопкой мыши на соответствующем знаке интеграла и в появившемся контекстном меню выбрать один из предложенных методов
(возможные численные методы интегрирования были описаны выше).
Кратные интегралы являются сложной задачей как для символьных, так и для численных расчетов. Для них в еще большей мере справедливы все приведенные выше рассуждения относительно скорости и точности вычислений. В любом случае стоит вначале попытаться вычислить интеграл в символьном виде, и если результат получен
Интегрирование
103
не будет, вычислять его численно. Однако перед численным вычислением следует определиться, с какой минимальной точностью необходимо получить результат, и задать соответствующее значение перемененной TOL.
Исследование функций
Описанные выше операции математического анализа могут быть использованы при исследовании функций. Исследование функций включает большое количество различных этапов. В данном разделе мы остановимся только на двух этапах исследования функций, в которых используются рассмотренные выше операции математического анализа: поиск асимптот и поиск точек экстремума и перегиба.
Вычисление линейных асимптот
Операция предела MathCAD может быть использована для определения линейных асимптот различных функций. Точное определение асимптоты можно найти в любом учебнике по математическому анализу, поэтому приводить его не будем. Выражаясь простыми словами, линейной асимптотой называется прямая вида у = к-х + Ь, к которой стремится функция при значении аргумента, стремящемся к бесконечности. Для вычисления каждого из коэффициентов к и Ь в уравнении асимптоты нужно вычислить предел от специально сконструированного выражения (рис. 5.23).
ад >
2х^ - х + 2 х+ 1
х
Рис. 5.23. Исследование асимптотического поведения функции
Определение точек экстремума функций
Для поиска точек экстремума можно воспользоваться тем обстоятельством, что в этих точках производная от функции равна нулю, или, если функция зависит от нескольких переменных, частные производные по всем аргументам равны нулю. Рассмотрим вначале процедуру определения точек экстремума функций одной переменной. В этом случае нужно вычислить производную от исходной функции и найти точки, в которых она обращается в нуль. Далее следует вычислить вторую производную во всех полученных точках. Если вторая производная положительна, то соответствующая точка — локальный минимум, если отрицательна — локальный максимум, ес-
104	Гпава 5. Операции с матрицами и решение алгебраических задач
ли равна нулю — точка не является точкой экстремума, а точкой перегиба. Пример исследования функции, содержащей точки всех трех перечисленных типов, приведен на рис. 5.24. Данный пример содержит большое количество различных операций, поэтому рассмотрим его построчно.
5 4,3
О := х + х - Зх	f q >
О
а := ifi'x) —> 5	4	solve,x —> -9
dx	у
2	\ ^ /
d(x) :=	20 х3 + 12 х2 - 18-х
dx2
Г ° 1 О
-1.8 ч 1 >
Рис. 5.24. Определение точек экстремума функции
1.	Ввод функции f (х), которую необходимо исследовать.
2.	Вычисление производной от функции f (х) и нахождение ее нулей. Здесь использовано замечательное свойство символьных вычислений: вы можете выстраивать целые “цепочки” символьных преобразований. Если перед такой цепочкой поставить оператор присваивания и имя переменной, как это и сделано на рис. 5.24, то присвоен будет только результат последнего шага в цепочке преобразований, следовательно, все нули производной записываются в вектор а.
3.	Функция d(x) задана как вторая производная от функции f (х).
4.	Вычисление значений функции d(x) во всех точках, где производная равна нулю. Для того чтобы получить значения функции сразу во всех точках, здесь использован оператор векторизации. В результате видно, что точками экстремума являются лишь две точки.
5.	Вычисление значений функции f(x) в точках возможного экстремума. Теперь исследование функции завершено и в результате получены две точки экстремума: максимум в точке (-1.8, 9.098) и минимум в точке (1, -1), а также точка перегиба (0, 0).
При исследовании на экстремум функции нескольких переменных вычисления усложняются, но принцип остается тот же. Пример поиска экстремума функции двух переменных приведен на рис. 5.25. Разберем его также построчно.
1.	Ввод функции двух переменных f (х,у), которую необходимо исследовать.
2.	Вычисление частных производных по всем аргументам и поиск точек, где они все равны нулю одновременно (для этого нужно решить систему уравнений). Напомним, что если символьный оператор solve решает систему уравнений, то каждая строка в результирующей матрице соответствует одному решению.
Исследование функций
105
Рис. 5.25. Поиск экстремума функции нескольких переменных
3.	Далее нужно найти вторые производные по всем аргументам и вычислить их значения во всех точках возможного экстремума. Каждая из этих точек является точкой экстремума только в том случае, если обе вторые производные одинакового знака и не равны нулю. В нашем случае только одна точка из двух удовлетворяет этому требованию — нулевая строка матрицы а. В другой точке вторые производные имеют различные знаки. Такие точки в математике называют седлами. Локализировать точки возможного экстремума можно также и по графику. В окрестности экстремума линии уровня близки к концентрическим окружностям, а в окрестности седла — к гиперболам.
4.	Вычисление значения функции f (х,у) в точках возможного экстремума. В результате исследования функции получена одна точка экстремума (0.5, -0.75, -0.438) и одна седловидная точка (0.333, 0.333, -0.148).
Разложение функции в степенной ряд Тейлора
Еше одной очень важной операцией математического анализа является разложение функций в степенной ряд Тейлора. Разложить функцию в ряд можно в окрестности любой точки, в которой функция существует и дифференцируема бесконечное число раз. Для разложения в ряд функции нескольких переменных требуется существование производных по каждой переменной.
Система MathCAD позволяет раскладывать функции в степенной ряд Тейлора по одной или сразу по нескольким переменным в окрестности любой точки. Для разложения функций в степенной ряд служит команда меню Symbolic^Variable^Expand to Series, а также символьный оператор series. Поскольку оператор series обладает гораздо большими возможностям, чем команда меню (с помощью команды меню можно разложить в ряд только по одной переменной и только в окрестности нуля), то автор рекомендует использовать только его.
106
Гпава 5. Операции с матрицами и решение алгебраических задач
Разложение функции в ряд по одной переменной в окрестности нуля
Наиболее простым вариантом разложения в степенной ряд является разложение в окрестности нуля. Такой степенной ряд называется рядом Маклорена и является частным случаем ряда Тейлора. Для того чтобы разложить функцию в ряд Маклорена по одной переменной до любой степени, например до шестой, нужно ввести функцию и нажать на клавиатуре <Ctrl+Shift+.>. Слева от стрелки появится поле ввода для им-вольного оператора. В это поле ввода следует ввести series,х, 6 (рис. 5.26).
. I 2 i .	,	,	. 2 1 3 1 4	59 5
sin.x +х senes,х,о —>1х+1х х х---------х
6	2	120
Рис. 5.26. Разложение функции в ряд Маклорена
Следует отметить, что введенное число 6 (порядок разложения) — это, если быть ' II Г* точным, порядок малости остаточного члена в ряду Тейлора. Это означает, что по-рядок малости последнего члена в выражении, которое вы получите в результате разложения, будет на единицу меньше, чем введенное число.
. Если при вводе оператора series опустить порядок разложения, т.е. ввести se-Н ries,x, то разложение будет выполняться до шестого порядка.
Разложить функцию в ряд можно и другим способом. Для этого введите функцию, которую необходимо разложить в ряд, установите курсор на переменной, по которой будет производиться разложение (если функция зависит от одной переменной, то это не обязательно), и выберите команду меню Symbolics^Variable^Expand to Series. В появившемся диалоговом окне вы сможете выбрать порядок разложения. Как уже было сказано, данный способ подходит только для разложения в ряд в окрестности нуля и только по одной переменой.
Разложение функции в ряд в окрестности произвольной точки
Символьный оператор series позволяет также раскладывать функцию в ряд Тейлора в окрестности любой точки, в которой существует данная функция и все ее производные. Для того чтобы сделать это нужно при вводе модификатора series после ввода имени переменной нажать <Ctrl+=> и ввести значение переменной, в окрестности которого будет производиться разложение. Например, чтобы разложить функцию в ряд до пятого порядка в окрестности точки х = 1, следует в поле ввода для символьного оператора ввести series,х=1,5 (рис. 5.27).
— series,х =1,5 —> 1 - 2 (х - 1) + 3 (х - 1)^ - 4 (х - 1)^ + 5 (х - 1)^ х
Рис. 5.27. Разложение функции в ряд в окрестности произвольной точки
Как видно из рис. 5.27, результатом такого разложения является полином по степеням выражения (х-1). Для того чтобы преобразовать такое выражение к полиному по х, можно воспользоваться одним из трех следующих символьных операторов: expand (раскрывает все скобки), collect (преобразует выражение к полиному по выбранной переменной, в нашем случае следует ввести collect,х), simplify (упрощает выражение). Но если вы попытаетесь провести такое преобразование в той же строке,
Разложение функции в степенной ряд Тейлора
107
что и разложение в ряд, то выражение останется непреобразованным по неизвестным автору причинам (во всех других случаях подобные цепочки символьных преобразований MathCAD выполняет корректно).
Поэтому для проведения данного преобразования нужно скопировать результат разложения в ряд в свободное место документа. Для этого вначале следует выделить нужное выражение. Это можно сделать с помощью мыши следующим образом: щелкните левой кнопкой мыши возле левой границы выражения и, удерживая кнопку нажатой, переместите указатель мыши таким образом, чтобы все выражение было изображено белыми знаками на черном фоне. Далее вызовите контекстное меню выделенного фрагмента и выберите команду Сору (можно также воспользоваться комбинацией клавиш <Ctrl+C>). Теперь установите курсор в свободном месте документа, вновь вызовите контекстное меню и выберите команду Paste (или нажмите <Ctrl+V> на клавиатуре). К полученному отдельному выражению теперь можно применить один из перечисленных выше операторов для преобразования его в полином по х.
Разложение в ряд функции нескольких переменных
Функция нескольких переменных может быть разложена в степенной ряд сразу по нескольким переменным. В MathCAD такую возможность предоставляет тот же символьный оператор series. Для того чтобы с его помощью разложить функцию в ряд по нескольким переменным, нужно ввести все эти переменные через запятую после слова sreies. Например, для разложения функции по двум переменным х и у до четвертого порядка нужно ввести в поле ввода для модификатора символьных вычислений series, х, у, 4. Напомним, что порядок малости члена ряда в таком случае считается как сумма степеней всех переменных в произведении, т.е. второму порядку малости будут соответствовать члены ряда х2, у2, ху.
Разложение функции в ряд по нескольким переменным также можно производить в окрестности любой точки. Для этого, как и при разложении функции одной переменной, после ввода каждого имени переменной нажмите <Ctrl+=> и введите нужное значение (рис. 5.28).
/	112 12
— series,х = 1 ,у = 2,3 -» х-у+- (х-1) + - (у - 2)
у	4	2	8
Рис. 5.28. Разложение функции в ряд по двум переменным
Интегральные преобразования
Интегральные преобразования ставят в соответствие заданной функции /(х) другую функцию F(t), которая называется образом исходной функции. При этом вся информация, содержащаяся в исходной функции, будет содержаться и в образе. Это означает, что, зная образ, всегда можно вычислить исходную функцию. Такой переход называется обратным интегральным преобразованием. Интегральные преобразования облегчают решение многих математических задач, в основном связанных с решением дифференциальных уравнений (иногда, переход от функции к ее образу позволяет перейти от сложного дифференциального уравнения к простому алгебраическому).
С помощью MathCAD можно осуществлять прямые и обратные преобразования трех видов: Фурье, Лапласа и Z-преобразование. Для этого следует ввести исходную функцию, для которой нужно найти образ (либо образ, по которому нужно восстановить функцию), и ввести знак символьного вычисления с полем ввода для модификатора (напомним, что для этого служит комбинация клавиш <Ctrl+Shift+.>). В поле
108	Гпава 5. Операции с матрицами и решение алгебраических задач
ввода нужно ввести оператор одного из преобразований и после него, через запятую, переменную, по которой будет проводиться преобразование.
Для проведения прямого и обратного преобразования Фурье служат символьные операторы fourier и invfourier соответственно. Примеры использования этих операторов приведены на рис. 5.29. Обратите внимание, что результат прямого преобразования Фурье всегда является функцией переменной со, а результат обратного — функцией переменной t. Эти имена сложились исторически, поскольку преобразование Фурье использовалось изначально для анализа колебаний, где t — это время, а со — это частота. Подобные устоявшиеся имена переменных есть и в остальных преобразованиях.
sin(ax) fourier,х —>	- а) + 1я Д(ш + а)
, ,	. . „ .	1 exp(i a t)
Д(х - a) invfouner.x —>------
2 я
Рис. 5.29. Прямое и обратное преобразования Фурье
Для проведения прямого и обратного преобразования Лапласа служат символьные операторы laplace и invlaplace соответственно. Преобразование Лапласа чаще всего используется для решения дифференциальных уравнений, поскольку с его помощью можно привести дифференциальное уравнение к алгебраическому. Примеры использования преобразования Лапласа приведены на рис. 5.30.
. . . Ьх, ,	а
sin(ax) е laplace,х —>---------
(s - b) + а
а ---------- invlaplace,х —> exp(b t) sin(a t) (х - b)^ + &
Рис. 5.30. Прямое и обратное преобразования Лапласа
Для проведения прямого и обратного Z-преобразования служат символьные операторы ztrans и invfztrans соответственно. Примеры использования этих операторов приведены на рис. 5.31.
х	г
е ztran$,x —»-------
z - ехр(1)
X	1 -П
------ invxtrans.x —> —1 п
,	2
(х-2)
Рис. 5.31. Прямое и обратное Z-преобразование
Резюме
Подведем итоги прочитанной главы.
Здесь были рассмотрены средства MathCAD для решения основных задач математического анализа. Основные инструменты, которые могут понадобиться для таких задач, можно найти на панелях инструментов Calculus и Symbilic.
Сначала были рассмотрены задачи вычисления пределов последовательностей и функций. Отмечено, что при вычислении предела функции в точке есть возможность вычислять двухсторонний предел, а также односторонние пределы. Для этих целей слу-
Резюме
109
Глава 6
Решение дифференциальных уравнений
В этой главе...
♦	Возможности MathCAD для решения задач с дифференциальными уравнениями
♦	Решение обычных дифференциальных уравнений и их систем
♦	Решение уравнений в частных производных
♦	Резюме
Дифференциальные уравнения (далее просто ДУ) являются основой огромного количества расчетных задач из самых различных областей науки и техники. Данная глава посвящена средствам MathCAD для решения задач, имеющих в своем составе одно или несколько дифференциальных уравнений.
Возможности MathCAD для решения задач с дифференциальными уравнениями
Математический пакет MathCAD 11 обладает средствами для решения как обычных ДУ (неизвестная функция зависит от одного аргумента) и их систем, так и ДУ в частных производных. Конечно, средства MathCAD для решения ДУ имеют некоторые ограничения. Многие классы сложных уравнений не поддерживаются в MathCAD, и даже для поддерживаемых уравнений иногда бывает невозможно достичь приемлемой точности (это касается в первую очередь ДУ в частных производных). Так что для сложных дифференциальных задач автор может посоветовать читателю обратиться к средствам других, более специализированных пакетов, например MATLAB. О подключении этой и других внешних программ к MathCAD можно прочитать в главе 7, “Работа с внешними источниками данных”.
Можно исследовать с помошью MathCAD задачу Коши (или начальную задачу) и краевую задачу для любых систем ДУ первого порядка. Очевидно, что дифференциальное уравнение любого порядка можно привести к системе уравнений первого порядка простой заменой переменных (у0(х) = Х*),	=?’(*), У2С*) = y”W ) Из ДУ в ча-
стных производных есть возможность решать только уравнения с двумя независимыми переменными: одномерные параболические и гиперболические уравнения, такие как уравнения теплопроводности, диффузии, волновые уравнения, а также двухмерные эллиптические уравнения (уравнения Пуассона и Лапласа).
В MathCAD нет универсальной функции для решения ДУ, а есть около двадцати функций для различных видов уравнений, дополнительных условий и методов реше
ния. Эти функции можно найти в библиотеке функций (напомним, что вызвать ее можно с помощью команды меню Inserts Function) в категории Differential Equation Solving (решение дифференциальных уравнений).
Решение обычных дифференциальных уравнений и их систем
Решение ДУ в MathCAD ВОЗМОЖНО Ш С ИСПОМШИШ ГРУПШЛ Мшения (см. главу 4 раздел Системы нелинейных уравнений”), так и без нее, с помощью одной функции, которой в виде аргументов передаются все параметры задачи. Оба способа обладают одинаковыми возможностями и использование каждого зависит от конкретных целей (как и всегда, при использовании группы решения, такая запись уравнений более привычна и наглядна для читателя, однако отдельная функция может быть использо-када. в составе других функций и программ).
Использование группы решения
Для решения задачи Коши или краевой задачи с уравнением типа у”(х) = /(у(х), у’(х), х) можно построить группу решения. Функцией, завершающей группу решения в задачах с обычными ДУ, является функция odesolve. На рис. 6.1 показан пример построения группы решения для решения задачи Коши с уравнением у”(х) = sin(y’(x) -х-у(х) +Х2) и начальными условиями у(0) = 1 и у’(0) = 0 (два условия, поскольку уравнение второго порядка). Группа решения такой задачи состоит из следующих элементов.
1.	Ключевое слово given.
2.	Уравнение, решение которого нужно найти. Вы можете ввести любое уравнение вида y”(x)=f(y(x),y’(x),x) (уравнения высших порядков и уравнения нелинейные по у”(х) можно привести к системе ДУ первого порядка и решать способами, описанными далее в этой главе). Обратите внимание, что после каждого имени неизвестной функции должна быть введена в скобках независимая переменная (х).
Производные в уравнениях можно вводить с помощью обычного оператора производной, вставляемого с панели математических инструментов Calculus, а также с помощью штрихованной записи (см. рис. 6.1). Штрих вводится с помощью клавиатурного сочетания <Ctrl+F7>. Обратите внимание, что штрихи следует вводить между именем функции и независимой переменной в скобках.
3.	Далее следует ввести дополнительные условия, накладываемые на решение, поскольку любое ДУ имеет бесконечное количество решений (или не имеет вообще). Количество дополнительных условий должно быть равно порядку уравнения, т.е. для уравнения второго порядка — два условия. Напомним, что при вводе уравнений и условий в составе группы решения следует пользоваться не обычным знаком равенства, а знаком, вводимым с помощью клавиатурного сочетания <Ctrl+=>.
Условия могут иметь вид: у(а) = с;, у\а) = с2 в начальной точке для задачи Коши (смешанные условия вида у(а) + у’(а) = с не поддерживаются в MathCAD). В случае краевой задачи нужно задать по одному такому условию на каждой границе интервала интегрирования.
4.	Группа решения завершается функцией odesolve (х,Ь). Первый аргумент функции — независимая переменная интегрирования. Очень важно, чтобы одно и то же имя переменной использовалось при введении уравнения и в функции odesolve. Второй аргумент — это верхняя граница отрезка интегрирования [а, Ь].
Решение обычных дифференциальных уравнений и их систем	113
Функция odesolve возвращает решение задачи в виде функции. Конечно, эта функция не имеет символьного (аналитического) представления и может только вернуть численное значение решения уравнения в любой точке интервала [а, Ь].
given
у“(х) = siniy(x) - х у(х) + X2'
У(Ф = 1 ЛФ = О
Y := odesolve(x,5)
Рис. 6.1. Решение задачи Коши с помощью функции odesolve
Функция odesolve использует для решения уравнений метод Рунге-Кутта четвертого порядка с фиксированным шагом интегрирования. Если щелчком правой кнопки мыши на блоке формул с функцией odesolve вызвать соответствующее контекстное меню, то можно изменить метод вычисления решения, выбрав один из трех вариантов: Fixed — метод Рунге-Кутта с фиксированным шагом интегрирования (этот метод используется по умолчанию), Adaptive — также метод Рунге-Кутта, но с переменным шагом, изменяемым в зависимости от скорости изменения функции решения, Stiff— метод, адаптированный для решения жестких уравнений и систем (используется так называемый метод RADAU5). Различные виды уравнений и методы их численного исследования будут рассмотрены далее в этой главе.
Решение систем дифференциальных уравнений
Для того чтобы решить систему ДУ, можно, как и в задаче из предыдущего раздела, построить группу решения с функцией odesolve. Уравнения и дополнительные условия записываются после ключевого слова given с использованием знака равенства <Ctrl+=>. Очевидно, что в данном случае количество условий должно равняться сумме порядков всех уравнений, например для системы из двух уравнений первого порядка необходимо два дополнительных условия.
Лишь функция odesolve для системы уравнений имеет несколько иной, по сравнению с одним уравнением, синтаксис. Теперь она возвращает вектор функций, составляющих решение системы. Поэтому теперь в качестве первого аргумента функции odesolve нужно ввести вектор, состоящий из имен функций, использованных при вводе системы. Это нужно для того, чтобы конкретизировать их последовательность в векторе ответа. Второй и третий аргументы функции odesolve — независимая переменная системы и верхняя граница области интегрирования, т.е. то же самое, что и в задаче с одним уравнением. Иллюстрацию всего вышесказанного можно увидеть на рис. 6.2, где приведен пример решения задачи Коши с нелинейной системой из двух ДУ первого порядка.
114
Гпава 6. Решение дифференциальных уравнений
given
ад) = ад + -1 - ад2 - ад2'ад ад = -:<t) + !i - ад2 - ад21-ад
= 0 у(О) = 0.05
:= odesolve
X
Y
t:= 0,0.01 ..20
Рис. 6.2. Решение системы дифференциальных уравнений
Если вы попытаетесь вывести значение функции решения одного ДУ в любой точке вне интервала интегрирования, то результатом будет сообщение об ошибке, поскольку эта функция определена только на этом интервале. Но если то же самое попытаться сделать с решением системы уравнений, то вы получите какой-то результат. Но ни в коем случае не стоит воспринимать этот результат как решение системы ДУ в этой точке. А если вы действительно хотите получить решение в этой точке, увеличьте границу интервала интегрирования (последний аргумент функции odesolve).
Решение задачи Коши без использования группы решения
Кроме описанного выше способа, для решения задачи Коши с обычным ДУ или их системой можно обойтись и без группы решения. Это означает, что есть функции, которые через свои аргументы получают всю информацию о системе уравнений и начальных условиях и возвращают требуемое решение. Таких функций в MathCAD 11 несколько. Все они решают задачу Коши для системы ДУ первого порядка, но каждая из них использует для этого свой метод. Для простых систем не играет большой роли, какой метод использовать — все равно получите решение достаточно быстро и с высокой точностью. Но для сложных или специфических систем бывает, что некоторые методы вообще не могут дать удовлетворительного решения за приемлемое время. Именно для таких сложных, но не редких случаев в MathCAD и введено несколько различных методов решения систем ДУ.
	rkfixed — метод Рунге-Кутта с фиксированным шагом интегрирования. Самый простой и быстрый метод, но дфтеко не всегда самый точный. Полностью аналогичен использованию функции odesolve с выбранным в контекстном меню методом Fixed.
	Rkadapt — метод Рунге-Кутта с переменным шагом интегрирования. Величина шага адаптируется к скорости изменения функции решения. Данный метод по
Решение обычных дифференциальных уравнений и их систем
115
зволяет эффективно находить решения уравнений, в случае если оно содержит как плавные, так и быстро меняющиеся участки. Полностью аналогичен использованию функции odesolve с выбранным в контекстном меню методом Adaptive.
	Bulstoer — метод Булирша-Штера. Этот метод более эффективен, чем метод Рунге-Кутта, в случае если решение является плавной функцией.
□ Обратите внимание, что имена функций Rkadapt и Bulstoer записаны с большой буквы. В MathCAD для некоторых имен функций неважно, с какой буквы они записаны, но для перечисленных функций это принципиально. На самом деле в MathCAD также существуют функции с такими же именами, только записанными с маленькой буквы — rkadapt и bulstoer. Эти функции используются в тех случаях, когда важным является решение задачи в конечной точке интервала интегрирования. Их применение будет описано ниже в данной главе. Это же замечание касается и функций Stif fr, Stif fb и Radau, которые будут рассмотрены в следующем разделе.
Применение в документах любой из перечисленных функций выглядит сходным образом. Например, функция Rkadapt имеет следующий синтаксис: Rkadapt (у, а, Ь, п, D) (функции rkfixed и Bulstoer применяются абсолютно аналогично). Разберем назначение каждого аргумента по отдельности.
	у — вектор начальных значений неизвестных функций, входящих в систему. В случае одного уравнения и одной неизвестной функции — это просто число.
	а — начало отрезка, на котором ищется решение системы (отрезка интегрирования). Именно в этой точке значения неизвестных функций принимаются равными элементам вектора у.
	Ь — конец отрезка интегрирования. На рис. 6.3 выбрано а = 0, Ь = 5.
	п — количество частей, на которые разбивается отрезок [а, Ь] при решении системы. Чем больше это число, тем точнее получается решение, но расчет занимает больше времени.
	D(x,y) — векторная функция, элементы которой содержат правые части уравнений системы в нормальной записи (когда левые части — первые производные от соответствующих функций, а в правых частях производные отсутствуют). Аргументами этой функции являются: вектор у, элементы которого соответствуют различным неизвестным функциям системы, и скалярный аргумент х, соответствующий независимой переменной в системе. В случае одного уравнения функция D может быть скалярной функцией, зависящей от двух скалярных переменных х и у.
На рис. 6.3 с помощью функции Rkadapt решена та же задача, что и на рис. 6.1. Сравните эти два решения для того, чтобы лучше понять назначение аргументов Rkadapt и матрицы, которую эта функция возвращает. Возвращаемым значением всех вышеперечисленных функций является матрица. Первый столбец этой матрицы — это точки, на которые разбивался отрезок [а, Ь], а остальные столбцы — это значения функций системы в этих точках. Если в аргументе функции Rkadapt было указано количество отрезков л = 50, то матрица будет содержать 51 строку, что соответствует всем точкам, в которых были вычислены решения системы.
Решение жестких уравнений и систем
Сложно дать математически точное определение жесткости, поскольку задачи, входящие в этот класс, весьма разнообразны. Чаще всего жесткими дифференциальными уравнениями называются уравнения, в решении которых есть плавно меняющаяся компонента, а также быстро затухающие возмущения.
116
Гпава 6. Решение дифференциальных уравнений
D(x,y) :=
У:- Rkadapt(y,0,5,50,D)
i := 0 .. rows(Y)
Рис. 6.3. Решение задачи Коши с помощью функции Rkadapt
Для жестких задач не работает обычный метод Рунге-Кутта или Булирша-Штера. Наличие быстро затухающего возмущения приводит к тому, что эти численные методы дают расходящееся решение. Для жестких задач разрабатываются специальные методы. Как уже упоминалось, в MathCAD предусмотрены три различные функции для решения жестких задач:
	Radau — метод RADAU5 для жестких систем. Полностью аналогичен использованию функции odesolve с выбранным в контекстном меню методом Stiff.
	Stif fb — метод Булирша-Штера, адаптированный для жестких систем.
	Stiff г — метод Розенброка.
Функция Radau имеет тот же синтаксис, что и функции rkfixed, Rkadapt, Bul-stoer — Radau (у, a, b, n, D). Все аргументы имеют то же назначение, и результат имеет ту же структуру, что было описано выше.
Использование функций Stiffb и Stiffr выглядит следующим образом: Stif fb (у, а, b, n, D, J). Первые пять аргументов имеют то же назначение, что и в перечисленных выше функциях, но здесь есть еще один дополнительный аргумент — матричная функция J(x,y). Аргументы этой функции те же, что и у функции D, а строится она следующим образом:
 для системы из п уравнений матрица J состоит из п строк и п + 1 столбцов;
d	 элементы первого столбца (столбца с индексом 0) матрицы
Ло =	J — производные от элементов вектора D(x,y) по независимой
переменной (т);
d  оставшаяся часть матрицы J (квадратная матрица пхп) — матрица •Аун ~~dv~^^x’y^ Якоби системы уравнений.
Решение обычных дифференциальных уравнений и их систем
117
На рис. 6.4 показан пример использования функций Radau и Stiffb для задачи Коши с уравнением вида: у’(х) = L-y(x) + cos(.vj - L sin(.r). Такая задача может быть решена аналитически, и ее общее решение имеет следующий вид: у(х) = sin(x) +у(О)-е£Т Если в этой задаче выбрать верхнюю границу отрезка интегрирования b одного порядка с периодом изменения функции sin(x) (например, Ь= 10, см. рис. 6.4), а параметр L очень большим отрицательным числом (так, чтобы выполнялось условие b»-L~‘), то задача становится жесткой, и обычные численные методы не могут найти ее решение.
у:=2 L = -1015
D(x,y) := L y + cos(x) - L sin(x) J(x,y) := (-sin(x) - L cos(x) L)
Yb := Stiffb(y,0,10,200,D,J) Yr:» Radau(y,0,10,200,D)
i := 0.. row-s(Yb) k := 0.. row-s(Yr) x:= 0,0.5.. 10
Рис. 6.4. Сравнение функций Radau и Stiffb на примере простой жесткой задачи
Как видно из рис. 6.4, функция Radau в такой задаче не дает точного решения на всем отрезке интегрирования. Конечно, это не означает, что среди трех перечисленных функций какие-то лучше решают жесткие задачи, а какие-то хуже. Просто для каждой конкретной задачи оптимальным будет свой метод решения. Именно поэтому в MathCAD их предусмотрено такое большое количество.
Линейная система ДУ первого порядка является жесткой, если соответствующая матрица Якоби содержит сильно различающиеся по величине собственные значения. На рис.6.5 показан пример решения такой системы с помощью функций Stiffr и Radau. Как видим, для такой задачи все функции (функцию Stiffb попробуйте применить к этой задаче самостоятельно) дают точный ответ (на рис. 6.4 и 6.5 для сравнения приведены графики гладких компонент точного решения соответствующих задач).
Конечно, точность решения, выдаваемого различными функциями, будет изменятся в зависимости от величины параметра L, определяющего, “насколько” жесткой является задача. Попробуйте, постепенно увеличивая (по модулю) параметр L, проверять решения, выдаваемые всеми описанными функциями. Общие тенденции таковы:
	при значениях |L| < 103 все функции выдают точные решения;
	при |L| > lOMO6 перестают работать функции rkfixed, Rkadapt, Bulstoer (система становится жесткой). Функции, предназначенные для жестких систем, продолжают выдавать решения. Точность этих решений зависит от выбранной функции и, конечно, от решаемой задачи;
118
Гпава 6. Решение дифференциальных уравнений
fl)	10
y:=	a:=-0.5	L:=10
D(x.y) :=
а-У0 + Lyj
-Lyi
J(x,y)
0 a L
0 0 -L
Yb := Stifft(y,0,5,200,D,J) Yr:= Radau(y,0,5,200,D)
i0.. rows(Yb) к := 0.. rows(Yr) x:=0,0.2..5
Рис. 6.5. Решение жесткой системы линейных уравнений
	при |L| > 1013 перестает работать функция Stiffr. Для “более жестких” задач следует применять функции Radau и Stiffb.
Конечно, в реальных задачах вы не будете заранее знать точного решения и не сможете так просто определить, насколько точен результат, выданный той или иной функцией (иногда для сложной задачи непросто даже определить, является ли она жесткой). Единственный совет, который здесь можно дать,— пробуйте различные функции, а для оценки точности результата можно просто подставить полученное решение в уравнение (существуют и другие методы контроля точности, но их описание выходит за рамки данной книги). Если задача является жесткой, то не поленитесь вычислить матрицу Якоби (конечно, если это возможно) и воспользоваться функциями Stiffb или Stiffr, которые часто (хоть и не всегда) оказываются более точными, чем Radau.
Получение решения задачи Коши на верхней границе интервала интегрирования
Как уже было сказано, в MathCAD также существуют пять функций: rkadapt, bulstoer, radau, stiffb и stiffr, действия которых отличны от соответствующих функций записанных с большой буквы. Эти функции следует использовать в тех случаях, когда интерес представляет решение не на всем интервале интегрирования, а только в конечной точке интервала. Перечисленные функции дают возможность находить это значение с высокой и контролируемой точностью. Использование этих функций на примере функции bulstoer и той же задачи, что решалась ранее, показано на рис. 6.6. Эта функция возвращает матрицу, структура которой уже была описана ранее: в первом столбце содержатся значения независимой переменной, а в остальных — соответствующие значения неизвестных функций системы. Использование функции bulstoer, как и остальных вышеперечисленных функций, выглядит следующим образом: bulstoer(у,а,Ь,асе,D,kmax,s). Рассмотрим, как и ранее, назначение каждого из аргументов по отдельности (см. рис. 6.6).
Решение обычных дифференциальных уравнений и их систем
119
	у — вектор значений неизвестных функций системы в начальной точке отрезка интегрирования.
	а — начало отрезка интегрирования.
	Ь — конечная точка отрезка интегрирования. Если вы еще не забыли материал предыдущих двух разделов, то уже заметили, что эти же первые три аргумента задавались и для соответствующих функций, записанных с большой буквы.
	асе — величина, задающая точность, с которой необходимо найти решение в конечной точке интервала интегрирования. Естественно, во всех остальных точках интервала точность будет намного ниже.
	D — уже знакомая функция D(x,y), содержащая правые части уравнений системы в нормальной записи.
	krnax — максимальное количество интервалов, на которые будет разбит отрезок интегрирования. Рассматриваемые функции разбивают отрезок интегрирования не на равные интервалы, а таким образом, чтобы получить точное решение в конечной точке. Зачастую для этого достаточно небольшого количества интервалов.
	s — минимальный шаг между точками. Этот параметр накладывает нижнюю границу на длину интервалов. Два последних аргумента никак не влияют на точность вычисления значений в конечной точке отрезка интегрирования. Подбором этих параметров можно добиться приемлемой точности вычисления внутри интервала интегрирования. Такая возможность может пригодиться, если вы, например, хотите вычислить точное значение функции в конечной точке интервала интегрирования и построить график поведения функции на всем интервале.
Y- bulstoeriy,0,5,10 ^,D,10,0.1!
Y	0.838438557519705
rows(Y)-l ,1
Y:= bulstoer!y,0,5,10 ^,D,10,0.1>
Y	, = 0.838424496672918
rows(Y)-! ,1
Y := Bulsloet(y,0,5,100,D)
Y . . = 0.838424738962545 rows(Y)-l ,1
Y:= Bulstoe<y, 0,5,10000, D)
Y	, = 0.838424496672383
rows(Y)-l ,1
Рис. 6.6. Точность функций
Bulstoer и bulstoer на конце интервала интегрирования
На рис. 6.6 видны преимущества функции bulstoer в том случае, когда необходимо знать решение только в конечной точке отрезка интегрирования:
120
Гпава 6. Решение дифференциальных уравнений
	вы всегда знаете заранее, с какой точностью получен результат (в конечной точке);
	скорость работы функции bulstoer в среднем намного выше, чем функции Bulstoer, поскольку точность вычислений внутри интервала очень низкая.
Приведение краевых задач к задачам Коши
Как вы, наверное, уже заметили, в MathCAD все функции предназначены только для решения задачи Коши. И действительно, для решения краевой задачи в MathCAD нет отдельной функции. Однако есть функции, позволяющие превратить краевую задачу в задачу Коши. Эти функции “угадывают” недостающие начальные условия, исходя из того, что решение должно удовлетворять заданным условиям в конечной точке интервала интегрирования. Простейшей из функций, предназначенных для приведения краевой задачи к задаче Коши, является функция sbval. Для того чтобы решить двухточечную краевую задачу с помощью этой функции, следует выполнить следующие действия (рис. 6.7).
1.	Залайте вектор v с количеством элементов равным количеству недостающих начальных условий. Значения элементов этого вектора — это начальные приближения, исходя из которых будет происходить поиск недостающих начальных условий. На данном этапе не конкретизируется, какой из элементов вектора будет соответствовать начальному значению той или иной неизвестной функции в задаче.
2.	Задайте функцию D(x,y). Эта функция уже описывалась выше. Она представляет собой вектор, каждый элемент которого — это правая часть одного из уравнений системы.
3.	Задайте еще одну векторную функцию load(x,v). Это функция от скалярного аргумента х и вектора v, который имеет столько же компонент, сколько недостающих начальных условий в системе. Сам вектор load должен содержать такое же количество элементов, как и вектор D, т.е. столько, сколько должно быть начальных условий в задаче. Если начальное значение какой-либо из функций известно, то соответствующий элемент вектора load должен содержать это значение. Для функций, начальное значение которых не известно, соответствующий элемент вектора load должен содержать один из элементов вектора v.
4.	Следует задать еще одну векторную функцию score(х,у). Аргументы этой функции — скаляр х и вектор у, который имеет столько элементов, сколько уравнений в системе. Количество компонент вектора score должно равняться количеству граничных условий, заданных в конечной точке отрезка интегрирования. На самом деле каждая компонента этого вектора задает одно из граничных условий в конечной точке. Например, если в задаче есть граничное условие у,(Ь) = с, то один из элементов вектора score должен быть функцией, которая обращается в нуль при значениях х = Ь и у,(6) = с. Конкретный вид этой функции не играет особой роли, поэтому проще всего задавать ее в таком виде: score* (х, у) ;= у,-с. Таким же образом должны быть заданы все элементы вектора score для всех конечных условий задачи.
5.	Теперь все введенные величины нужно использовать как аргументы в функции sbval. Использование этой функции выглядит следующим образом: Y := sbval (v, a, b, D, load, score). Аргументы а и b — это начало и конец отрезка интегрирования, а все остальные аргументы были описаны выше.
6.	Результатом функции sbval будет вектор, содержащий недостающие начальные значения. Их последовательность задается той последовательностью, в которой были использованы компоненты вектора v в функции load. Постройте вектор начальных значений, используя известные начальные значения, а также элементы вектора У, там где значения были неизвестны (см, рис. 6.7).
Решение обычных дифференциальных уравнений и их систем
121
7.	Теперь можно решать полученную задачу как задачу Коши, с помощью, например, функции Rkadapt, что и сделано на рис. 6.7. Также на рис. 6.7 показано, что полученное решение действительно удовлетворяет конечному условию исходной задачи.
О’
score(x,y) := Уд - 4
D(x,y)
load(x,v) :=
Y := sbval(v,0,3,D,load,score)	Y = (-2.908)
2 := Rkadapt(y,0.3,100,D)	^^(Z)-! - 4
Рис. 6.7. Решение краевой задачи с помощью функций sbval и Rkadapt
Решение уравнений в частных производных
Как уже упоминалось в начале главы, в системе MathCAD есть возможность решать ДУ в частных производных и их системы. Средства MathCAD позволяют решать одномерные параболические и гиперболические уравнения (с одной пространственной и одной временной переменной), а также двумерное уравнение Пуассона. Такой, казалось бы, узкий круг решаемых задач на самом деле охватывает подавляющее большинство задач, возникающих в физике и технике
Использование группы решения для дифференциальных уравнений параболического типа
Для решения дифференциальных уравнений в частных производных параболического типа можно построить группу решения с функцией pdesolve. Такая группа решения состоит из следующих элементов (рис. 6.8).
1.	Ключевое слово given, для того, чтобы сигнализировать о начале группы решения.
2.	Уравнение, которое нужно решить. Уравнение должно иметь такой вид: и,(х, г) —fix, t, и, и,, и.а). Для ввода производных в данном случае нельзя пользоваться обычным оператором производной, а нужно пользоваться нижним индексом, как это обычно делается в литературе для записи уравнений в частных производных. При этом нижний индекс следует вводить не как элемент массива (клавиша < [ >), а как текстовый нижний индекс (клавиша < . >). То есть, для того чтобы ввести вторую производную от функции и по переменной х, следует набрать на клавиатуре: и . х х.
3.	Граничные условия для функции и(х, t). Если уравнение второго порядка по х, то и граничных условий должно быть два. Вы можете использовать как граничные условия Дирихле (и(х0, г) = w(t)), так и граничные условия Неймана (их(х0, t) = w(t)) или даже их комбинацию (что и было сделано в задаче на рис. 6.8).
4.	Начальное значение для неизвестной функции — и(х, 0).
122
Гпава 6. Решение дифференциальных уравнений
given 2
и^хД) = a u^xj)	T s 15
u(0,t) = 50 u/L,t) = O ^з°
u(x,O) = 0
Рис. 6.8. Решение одномерной задачи теплопроводности
5.	Функция pdesolve(u,x,xrange, t, trange,xpts, tpts). Ее аргументы имеют следующее назначение.
♦	и — имя функции, относительно которой решается уравнение. Для системы уравнений здесь должен быть вектор имен функций (как в odesolve).
♦	х — имя пространственной переменной.
♦	хгапде — двухкомпонентный вектор, задающий начало и конец интервала изменения пространственной переменной.
♦	t — имя временной переменной. Основная разница между пространственной и временной переменными в данном случае — это то, что все уравнения могут содержать только первые производные по временной переменной.
♦	trange — еще один двухкомпонентный вектор. Этот вектор задает начало и конец временного интервала, на котором решается задача.
♦	xpts, tpts — количество точек, разбивающих для интегрирования пространственный и временной интервалы соответственно. Эти два параметра можно не указывать, тогда количество точек будет выбрано автоматически из соображений достаточной точности. Автор рекомендует задавать эти параметры во всех задачах, кроме самых простых, поскольку во многих случаях высокая точность вычислений теряет смысл из-за погрешности, вносимой самим методом.
Как пример решения уравнений с помощью функции pdesolve, на рис. 6.8 решена одномерная задача теплопроводности для однородного бруска, один конец которого теплоизолирован, а другой поддерживается при определенной температуре. На рис. 6.8 использован оператор глобального присваивания, который дает возможность использовать созданную таким образом переменную в любой точке документа. Напомним, что для ввода этого оператора можно воспользоваться клавишей < ~ >.
Решение дифференциальных уравнений гиперболического типа и систем
Функция pdesolve также позволяет решать системы ДУ в частных производных первого порядка по времени. Такая возможность может быть использована для решения задач с ДУ гиперболического типа. Ведь поскольку уравнения гиперболического
Решение уравнений в частных производных
123
типа содержат вторую производную по времени, то они не могут быть напрямую введены для решения функцией pdesolve. ДУ гиперболического типа должно быть приведено к системе из двух уравнений первого порядка по времени (как это делалось ранее для обычных ДУ высоких порядков). А далее полученная задача может быть решена с помощью функции pdesolve как система уравнений.
Пример на рис. 6.9 показывает, как привести уравнение гиперболического типа к системе из двух уравнений и решить полученную систему. Как видите, группа решения в таком случае строится точно так же, как и для одного уравнения. Для каждой неизвестной функции должно быть задано начальное значение. Количество граничных условий для каждой функции может быть различным: если в системе встречается вторая производная от данной функции по пространственной переменной, то нужно задать два граничных условия, если есть только первая производная — одно условие, если производных по пространственной переменной от данной функции в системе нет, то и граничных условий для нее не нужно (именно такая ситуация и реализуется для функции v в системе на рис. 6.9).
given
2 vt(x,t) = a u^x.t) = v(x,t) u(0,t) = 0 u(L,t) = 0
u(x,0) = sin — I v(x,0) = 0
T = 30
Ls 10
a = 1
U
Рис. 6.9. Решение волнового уравнения с помощью группы решения
Использование функции numol
В MathCAD есть возможность решать уравнения и системы параболического и гиперболического типов без создания группы решения (конечно, уравнения гиперболического типа должны быть приведены к системе уравнений первого порядка по времени). Для этого служит встроенная функция numol. Ее использование выглядит следующим образом (рис. 6.10).
1.	Постройте векторную функцию pdef (х, С,и,их,ии). Эта функция — аналог функции D(x,y), которую строили при решении систем обычных ДУ. Количество элементов этого вектора равно сумме npde + прае. Здесь npde — количество ДУ в частных производных, которые входят в систему: прае — количество алгебраических ус
124
Гпава 6. Решение дифференциальных уравнений
ловий, связывающих между собой неизвестные функции. Первые npde элементов вектора pdef задают правые части дифференциальных уравнений (подразумевается, что в левую часть уравнения мы перенесли производные по времени). Остальные элементы задают алгебраические уравнения, связывающие между собой неизвестные функции (в этих элементах подразумевается, что левая часть равна нулю).
2.	Задайте начальные условия для неизвестных функций в виде векторной функции init(x). Каждый элемент этого вектора должен содержать начальное условие для соответствующей функции.
3.	Задайте граничные условия в виде матричной функции bc(t). Эта матрица должна содержать три столбца и столько строк, сколько функций в системе. В первых двух столбцах этой матрицы задаются условия, накладываемые на ту или иную функцию в начальной и конечной точках отрезка интегрирования соответственно. Третий столбец определяет тип условий. Если для функции задаются условия Дирихле, то в третьем столбце соответствующей строки нужно ввести "D", а если условия Неймана—"N". Если в системе отсутствует вторая производная от той или иной функции по пространственной переменной, тогда для нее нужно задавать только одно граничное условие, а вместо второго ввести "NA" (при этом в третьем столбце обязательно должно быть введено "D"). Если же для какой-то функции в системе вовсе отсутствуют производные по пространственной переменной, то граничные условия для нее не нужны (соответствующая строка в матрице Ьс должна иметь вид: "NA", "NA", "D").
Обратите внимание, что в функции numol вы не сможете использовать смешанные I граничные условия, когда на одной границе интервала задается значение самой функции, а на другой — ее производной. То есть для решения, например, такой за-
-А . дачи, как на рис. 6.8, можно использовать только функцию pdesolve.
4.	Теперь можно решать введенную задачу. Для этого можно ввести: sol := numol(xend,xpts,tend,tpts,npde,npae,pdef,init,be). Разберем последовательно назначение тех ее аргументов, которые еще не были описаны:
♦	xend — двухкомпонентный вектор, элементы которого задают начало и конец пространственного отрезка интегрирования;
♦	xpts — количество точек, разбивающих пространственный интервал;
♦	tend — также двухкомпонентный вектор, но он задает границы временного интервала;
♦	tpts — количество точек, разбивающих временной интервал;
♦	npde, прав — эти числа задают количество уравнений и алгебраических условий в системе (они были описаны выше).
Результат функции numol при решении системы уравнений — матрица, состоящая из xpts строк и tpts (npde + прае) столбцов. Эта матрица объединяет несколько матриц размера xpts х tpts, каждая из которых содержит значения одной из неизвестных функций системы. Как видно из рис. 6.10, решение для любой функции может быть легко выделено из результата numol с помощью функции submatrix.
Решение уравнения Пуассона с нулевыми граничными условиями
Как уже было сказано, описанные выше функции не дают возможности решать уравнения эллиптического типа. Но для одного из уравнений эллиптического типа, а именно двухмерного уравнения Пуассона, в MathCAD есть отдельные встроенные функции: multigrid И relax.
Решение уравнений в частных производных
125
a = 1 L := 10 Т := 30
pdef(x,t,u,ux,uJD,i
fmit(0)n imt/L)n "D" bc(t) :=
V "NA" "NA" "D"
,30,2,0,pdef ,init,bc
U := subttiairix(sol,0,39,0,2?)
U
Рис. 6.10. Решение волнового уравнения с помощью функции numol
R.-20	1-0..R	j.= 0.. R
1 b := а с := a d := а е := -4а
R := 32 MD D := 0 К,К
М10,Ю;=20	М12,20--10
Рис. 6.11. Решение уравнения Пуассона с нулевыми граничными условиями
U
Рис. 6.12. Решение уравнения Пуассона с помощью функции relax
126
Глава 6. Решение дифференциальных уравнений
Если требуется решить уравнение Пуассона с нулевыми граничными условиями (функция равняется нулю на всех границах области), то для этого можно воспользоваться функцией multigrid (рис. 6.11). Для того чтобы воспользоваться этой функцией, нужно предварительно задать квадратную матрицу М размера 2я + 1, где п — любое целое положительное число. Такой размер матрицы требуется для правильной работы алгоритма multigrid.. Каждый элемент матрицы М— это число, задающее интенсивность источника в данной точке квадратной области интегрирования.
Вызов функции multigrid выглядит следующим образом: и := multigrid(М, num). Здесь параметр num задает количество циклов в каждой итерации. Значение num : = 2 даст хорошую точность в большинстве задач, а скорость вычислений от этого параметра почти не зависит.
Результатом функции multigrid является матрица того же размера, что и М, содержащая решение уравнения во всех точках области. Точность вычислений в данном случае никак не контролируется и определяется только размерами матрицы М — чем мельче вы разобьете область интегрирования, тем точнее будет результат.
Решение уравнения Пуассона с ненулевыми граничными условиями
Для решения уравнения Пуассона с ненулевыми граничными условиями, а также уравнения Лапласа следует использовать функцию relax. Использование данной функции подразумевает следующую последовательность действий (рис. 6.12).
1.	Задайте пять квадратных матриц а, b, с, d, е. Эти матрицы будут служить коэффициентами в формуле приближенного вычисления Лапласиана: (Ди)у•=	. + bjj-uhlj + CjjUjj+j +	Стандартные значения для эле-
ментов этих матриц: aij = bli = cjj = diJ = 1, е,; = -4. Размер этих матриц может быть выбран любой. Главное, чтобы все матрицы, задаваемые для функции relax, были одинакового размера.
2.	Задайте матрицу s, задающую интенсивность источника в каждой точке квадратной области. Если все элементы этой матрицы имеют нулевые значения, то полученный результат будет решением уравнения Лапласа.
3.	Задайте матрицу f. Первый и последний столбцы и первая и последняя строки этой матрицы задают граничные условия для решения уравнения. Значения внутренних элементов матрицы не играют особой роли, а используются лишь как начальное приближение при поиске решения.
4.	Теперь можно использовать функцию relax. Это делается следующим образом: и := relax (a, b, с, d, е, s, f, г). Здесь г — так называемый спектральный радиус Якоби. Это число в диапазоне от 0 до 1. Если функция relax не может решить уравнение, попробуйте уменьшить значение спектрального радиуса.
Для функции relax, как и для multigrid, единственным параметром, контролирующим точность, является размер используемых матриц. Также при использовании функции relax не следует забывать о том, что все матрицы должны быть квадратными и их размеры должны совпадать.
Резюме
В данной главе мы познакомились со средствами решения дифференциальных уравнений в среде MathCAD. Для решения задачи Коши или краевой задачи с обычным ДУ или системой обычных ДУ можно построить группу решения с функцией
Решение уравнений в частных производных
127
odesolve. Преимущество использования группы решения состоит в том, что условие задачи записано в общепринятой форме, и документ легко читается даже человеком, не знакомым с MathCAD.
Для решения задачи Коши без использования группы решения в MathCAD предусмотрено несколько функций: rkfixed, Rkadapt, Bulstoer, Radau, Stiffr, Stiffb. Каждая из этих функций реализует свой метод решения и предназначена для своего класса задач. Например, последние три функции предназначены для решения так называемых жестких задач. Решение таких задач является суперпозицией гладкой, медленно меняющейся функции и быстро затухающего возмущения.
В случаях когда интерес представляет решение задачи только в конечной точке интервала интегрирования, уместно воспользоваться функциями rkadapt, bulstoer, radau, stiffr, stiffb. Эти функции хоть и не дают высокой точности внутри интервала интегрирования, зато позволяют получить значение в конечной точке с любой заданной точностью.
Двухточечная краевая задача не может быть напрямую решена средствами MathCAD (без использования группы решения). Но есть функция sbval, которая позволяет привести краевую задачу к задаче Коши. Эта функция “угадывает” недостающие начальные условия таким образом, чтобы решение удовлетворяло условия в конечной точке интервала.
Кроме обычных ДУ и их систем, MathCAD позволяет также решать некоторые ДУ в частных производных. Для решения одномерных (с одной пространственной и одной часовой переменной) ДУ параболического или гиперболического типа можно построить группу решения с функцией pdesolve. То же самое, но без группы решения можно сделать с помощью функции numol.
Перечисленные выше функции не могут решать уравнения эллиптического типа. Для этих уравнений, а точнее для уравнения Пуассона, в MathCAD предусмотрены две функции: multigrid и relax. Первая из них используется в случае нулевых граничных условий, вторая — в случае ненулевых.
Тесты
Эти тесты помогут вам закрепить материал данной главы. Ответы ищите в приложении А.
Найдите правильный ответ
Каждый из предложенных вопросов может иметь несколько правильных ответов.
1.	Какие из перечисленных классов ДУ можно решать средствами MathCAD:
а)	задача Коши с обычным ДУ второго порядка;
б)	краевая задача с обычным ДУ третьего порядка;
в)	ДУ в частных производных гиперболического типа;
г)	уравнение Пуассона.
2.	Какие из перечисленных функций не подходят для решения жестких задач:
a)	Stiffr;
б)	stiffr;
в)	Radau;
г)	rkfixed.
128
Глава 6. Решение дифференциальных уравнений
3.	Какие из перечисленных функций используются в составе группы решения:
a)	Radau;
б)	odesolve;
в)	numol;
г)	relax;
д)	pdesolve.
Правда или ложь?
Каждое утверждение либо верно, либо нет.
4.	MathCAD позволяет решать обычные ДУ любого порядка.
5.	Функция rkadapt возвращает решение системы только в конечной точке интервала интегрирования.
6.	В MathCAD невозможно решить краевую задачу без использования группы решения.
7.	Последний аргумент функции Stif fг матрица J — это матрица Якоби системы.
8.	Размер матрицы в функции multigrid может быть только 2" + 1, где п — целое положительное число.
Тесты
129
Глава 7
Работа с внешними источниками данных
В этой главе...
♦	Таблицы ввода данных в MathCAD
♦	Импорт данных из внешнего файла
♦	Экспорт данных во внешние файлы
♦	Обмен данными с другими приложениями
♦	Резюме
Данная глава рассматривает средства MathCAD, позволяющие работать с внешними данными. Самый простой способ работы с внешними данными — это вставка данных из внешнего файла или запись в файл. Но MathCAD обладает еще массой других возможностей: установление постоянной связи с внешним файлом для чтения или записи, установление связи с другим приложением или внешним устройством для обмена данными, создание сложной системы связей между большим количеством приложений и файлов для обмена и обработки данных (с помощью утилиты MathConnex).
Таблицы ввода данных в MathCAD
Любые наборы данных в MathCAD представляются в виде массива. Для ввода массива данных с клавиатуры способ, описанный в главе 4, имеет два серьезных недостатка. Во-первых, большой массив данных, изображенный в виде вектора, невозможно компактно разместить на странице. Во-вторых, часто приходится изменять размер массива экспериментальных данных, а для векторов и матриц это довольно трудоемкая процедура. Поэтому именно для ввода массивов данных в MathCAD предусмотрен другой способ, лишенный перечисленных недостатков. Этот способ заключается в использовании так называемой таблицы данных (Data Table). Таблица ввода данных является таким же массивом, как и матрица, но обладает рядом преимуществ для хранения данных, а также предоставляет возможность быстро прочитать данные из внешнего файла или их записать. Единственным недостатком таблиц ввода по сравнению с матрицами является то, что элементами таблицы не могут быть математические выражения.
Создание таблицы данных
Для того чтобы создать таблицу данных, в которую далее можно будет вводить значения, необходимо выполнить следующую последовательность действий.
1.	Установите курсор в свободное место документа.
2.	Выберите команду меню Insert^Data-^Table или щелкните на соответствующей кнопке на панели инструментов Standard. Еще один быстрый способ вставить
таблицу в документ — щелкнуть правой кнопкой мыши на пустом месте в рабочей области документа и в появившемся контекстном меню выбрать команду подменю Insert^Table.
3.	После этого в указанном месте документа появится пустая таблица, похожая на таблицы Microsoft Excel. Сразу после вставки вы увидите на экране только первые две строки и два столбца таблицы. Для изменения размера видимой области таблицы следует щелкнуть на ней и “растянуть” с помощью черных квадратиков по периметру рамки по аналогии с тем, как это было описано для текстового блока в разделе “Создание и изменение размеров текстового блока” главы 2.
4.	Возле верхнего левого угла таблицы можно заметить знак присваивания “: =” и поле ввода. В этом поле ввода следует ввести имя переменной, которой будет присвоен введенный массив данных (рис. 7.1).
Рис. 7.1. Таблица ввода данных в MathCAD
Заполнение таблицы данных с клавиатуры
Теперь нужно заполнить созданную таблицу данных необходимыми значениями. Для перемещения курсора к нужной ячейке таблицы можно воспользоваться клавишами-стрелками или просто щелкнуть левой кнопкой мыши на нужной ячейке. Конечно, размер таблицы не ограничен теми строками и столбцами, которые изображены на экране (более того, он вообще ничем не ограничен, разве что памятью компьютера). Если вы попытаетесь клавишами-стрелками выйти за рамки той части таблицы, которая изображена на экране, то изображенная область сдвинется на один столбец или одну строку. При этом у правого или нижнего края таблицы появится полоса прокрутки, позволяющая с помощью мыши перемещать видимую область таблицы.
Размер массива данных, в отличие от размера таблицы, не может быть бесконечным. Он будет увеличиваться по мере ввода значений. Вы можете вводить значения в любые элементы таблицы. При этом размер массива будет увеличиваться так, чтобы вместить все введенные данные. Если при этом в массив попадут незаполненные ячейки таблицы, то они будут заполнены нулями.
Процедура удаления строк или столбцов из массива немного сложнее. Для удаления из массива данных строки или столбца следует выполнить следующие действия.
1.	Установите курсор в любой ячейке той строки (или столбца), которую нужно удалить.
2.	Щелкните на выбранной ячейке правой кнопкой мыши, чтобы вызвать контекстное меню.
3.	В контекстном меню выберите команду Delete Cells.
4.	В открывшемся диалоговом окне установите переключатель в положение Entire Row для удаления строки или Entire Column для удаления столбца.
5.	После щелчка на кнопке ОК выбранная строка или столбец будут удалены из таблицы.
Таблицы ввода данных в MathCAD	131
Доступ к элементам массива данных осуществляется так же, как и к элементам матрицы, да и вообще эти массивы ничем не отличаются от матриц с точки зрения MathCAD. Это означает, что при необходимости вы можете использовать для массивов данных любые матричные операции MathCAD, хотя в большинстве задач такой необходимости не возникает.
Если вывести массив данных на экран, он будет изображен в виде такой же таблицы, как и при вводе. Вы точно также можете изменять размер области просмотра и перемещать ее по таблице.
Hi Возможно, что при выводе массива данных вы увидите его в виде матрицы. Это свя-[ зано с тем, что MathCAD автоматически выводит массивы, у которых количество I строк и столбцов меньше десяти, в виде матрицы, а если больше десяти, то в виде ' таблицы. Если такое “поведение” вас не устраивает и возникает необходимость изменить способ отображения массива, то следует вызвать диалоговое окно форматирования результата (см. главу 2, раздел “Форматирование результата вычислений") с помощью команды меню Format-.»Result. В этом окне следует выбрать вкладку Display Options. На этой вкладке есть раскрывающийся список Matrix display style. Из этого списка и следует выбрать элемент Matrix, если нужно, чтобы массив отображался как матрица, или Table, если нужно, чтобы массив отображался как таблица.
При выводе таблицы вы можете настроить, где будет располагаться имя массива вместе со знаком равенства по отношению к самой таблице. Для этого следует в контекстном меню таблицы (напомним, что вызвать его можно щелчком правой кнопки мыши на таблице) выбрать одну из команд подменю Alignment. Команды этого подменю позволяют расположить название массива слева от таблицы по центру (Center), вверху (Тор) или внизу (Bottom), а также над (Above) и под (Below) таблицей.
Если у вас имеется таблица данных в другом приложении, которую нужно перенести в MathCAD, то не обязательно для этого использовать сложные методы, описанные ниже. Для этого можно выделить нужную таблицу с помощью мыши и скопировать ее в буфер обмена (обычно для этого служит комбинация клавиш <Ctrl+C>). Далее в документе MathCAD следует создать таблицу данных, вызвать ее контекстное меню и выбрать команду Paste Table (но не Paste).
Импорт данных из внешнего файла
В процессе современных экспериментов данные не вводятся с клавиатуры, а передаются непосредственно с измерительного прибора на компьютер или запоминающее устройство, где сохраняются в файл. Поэтому более практичным (а для больших объемов данных просто необходимым способом) является ввод массива данных в документ MathCAD из внешнего файла.
Вставка данных из файла в таблицу
Простейший способ ввода данных в документ из файла — это импорт данных из файла в таблицу ввода. Этому способу и посвящен данный раздел. Сначала следует создать таблицу, как это было описано выше. После этого нужно выполнить следующие действия.
1.	Щелкните правой кнопкой мыши на таблице, чтобы вызвать контекстное меню.
2.	В контекстном меню выберите команду Import.
3.	Эта команда инициирует диалоговое окно подключения внешнего файла данных (рис. 7.2).В этом окне следует выбрать тип подключаемого файла из раскрывающегося списка File Format. Система MathCAD позволяет читать и записывать фалы в форматах многих популярных математических приложений и систем управления базами данных.
132
Гпава 7. Работа с внешними источниками данных
4.	Также нужно указать путь к файлу или найти его с помощью кнопки Browse (эта кнопка открывает стандартное диалоговое окно открытия файла Windows).
5.	Если в подключаемом файле для разделения целой и дробной части числа используется запятая, а не точка (например, как во всех таблицах Microsoft Excel), то следует установить флажок Use comma as decimal symbol. Если выбранный знак не будет соответствовать тому, что использован в файле, то данные из файла будут прочитаны в виде строк.
6.	Если вам нужно импортировать весь файл целиком, то после того как путь к файлу указан, можно щелкнуть на кнопке Finish, и данные из файла будут вставлены в таблицу (в таком случае пп. 7 и 8 выполнять не следует). Но если необходимо вставить лишь часть файла, то следует щелкнуть на кнопке Next для перехода ко второму этапу импорта данных — диалоговому окну выбора диапазона вставляемых значений (Data Range).
7.	Диалоговое окно Data Range (рис. 7.3) позволяет вставить в таблицу MathCAD не всю таблицу из файла, а только необходимую часть. В полях ввода в данном окне вы можете указать начальные строку (поле Start at row) и столбец (поле Start at Column), а также конечные строку (поле Stop at row) и столбец (поле Stop at Column). Если конечной является последняя строка или столбец, то вместо заполнения полей Stop at... следует установить флажки Stop at end of data.
8.	Теперь для вставки указанного диапазона данных из выбранного файла в таблицу щелкните на кнопке Finish.
Путь к файлу
Рис. 7.2. Диалоговое окно выбора файла
Теперь, если все было сделано правильно, таблица содержит данные, которые были импортированы из файла. После того как эти данные были прочитаны из внешнего файла, всякая связь с этим файлом теряется. Это означает, что вы можете как угодно изменять содержимое таблицы в документе MathCAD, это никак не отразится на содержимом исходного файла. Вы также можете изменять содержимое файла, данные из которого были импортированы, — это никак не повлияет на содержимое таблицы в документе MathCAD. Если же вам нужно поддерживать постоянную связь с исходным файлом данных, то воспользуйтесь способом, описанным ниже.
Импорт данных из внешнего файла
133
Рис. 7.3. Диалоговое окно выбора диапазона вставляемых значений
Установление постоянной связи с файлом для чтения
Кроме импорта данных из файла в таблицу, можно установить постоянную связь между определенным массивом в документе MathCAD и внешним файлом. Для этого следует выполнить такую последовательность действий.
1.	Установите курсор в свободную область документа MathCAD.
2.	Выберите команду меню Insert^Data^File Input или команду Inserts File Input контекстного меню. Эти команды вызывают уже знакомое диалоговое окно подключения внешнего файла (см. рис. 7.2, 7.3). Его необходимо заполнить, руководствуясь теми же правилами, что были описаны выше.
3.	После щелчка на кнопке Finish диалогового окна подключения внешнего файла в документ будет вставлен компонент MathCAD, позволяющий считывать данные из внешнего файла. Этот компонент обозначается в документе пиктограммой в виде дискеты с подписью — имя подключенного файла и путь к нему (рис. 7.4).
4.	Далее возле левого верхнего угла пиктограммы в поле ввода слева от знака “: = ” нужно ввести имя массива, в который будут считываться данные из файла.
Как уже упоминалось, данный способ подключения внешнего
файла данных позволяет в любой момент заново прочитать данные из файла. Поэтому он особенно удобен, если данные в файле постоянно изменяются. Чтение данных из файла происходит при каждом вычислении документа (напомним, что для вычисления документа следует нажать <CtrI+F9>).
А .=
S
0Л..ЛЫ1РАК/МЗ.ТХТ
Рис. 7.4. Так в документе выглядит компонент считывания данных из внешнего файла
О Параметры подключения к внешнему файлу можно в любой момент изменить. Для этого следует выбрать команду Properties из контекстного меню соответствующего компонента. Данная команда открывает диалоговое окно, которое содержит две вкладки — File Options и Data Range, где можно изменить все настройки, установленные при подключении файла (см. рис. 7.2, 7.3).
134
Гпава 7. Работа с внешними источниками данных
Экспорт данных во внешние файлы
Методы экспорта данных из документа MathCAD во внешние файлы во многом аналогичны описанным выше методам импорта данных. Здесь также есть два различных способа.
Первый способ позволяет экспортировать данные в файл, не устанавливая при этом постоянной связи между документом MathCAD и внешним файлом. Для реализации этого способа следует вывести таблицу на экран и вызвать ее контекстное меню (не путайте, при импорте мы вызывали контекстное меню таблицы при вводе). В контекстном меню таблицы следует выбрать команду Export. Эта команда открывает уже знакомое диалоговое окно работы с внешним файлом данных (см. рис. 7.2, 7.3). Особенностями экспорта данных является то, что файл с именем, указанным в первой части диалогового окна, не обязательно должен существовать и среди типов файлов можно выбирать различные форматы записи текстового файла.
Второй способ позволяет так же, как и в случае импорта, подключить внешний файл для постоянной связи. Для того чтобы создать такое подключение, выполните следующую последовательность действий.
1.	Установите курсор в свободную область документа MathCAD, естественно, ниже всех операций по обработке данных в массиве.
2.	Выберите команду меню Insert^Data^File Output или команду Insert^File Output контекстного меню. Эти команды в первую очередь открывают уже знакомое диалоговое окно подключения внешнего файла (рис. 7.2, 7.3). Его необходимо заполнить руководствуясь теми же правилами, что были описаны выше.
3.	После щелчка на кнопке Finish в диалоговом окне подключения внешнего файла в документ будет вставлен компонент MathCAD, позволяющий записывать данные во внешний файл. Этот компонент обозначается в документе пиктограммой в виде дискеты с подписью — именем подключенного файла (рис. 7.5).
Н
D:.. ANPARAMS.txt
Рис. 7.5. Так в документе выглядит компонент для записи в файл
А
4.	Затем под пиктограммой в поле ввода следует ввести имя мас-
сива, который нужно выводить в файл. Как и в случае чтения, файл будет за-
полняться новыми данными при каждом вычислении документа.
Для текстовых файлов есть другая возможность, эквивалентная использованию ком-понентов File Input и File Output. Речь идет об использовании функций READPRN(S) \\ t-Д и WRITEPRN(S) (обратите внимание, что все буквы в названиях этих функций долж-ны быть заглавными). Эти две функции служат соответственно для чтения и записи текстового файла. Аргументом каждой из них должна быть строка, содержащая имя файла и путь к нему. Например, для того, чтобы прочитать содержимое файла c:\work\data.txt В матрицу А, следует ввести А : = READPRN!"с: \work\ data, txt"). Использование функции WRITEPRN (так же, как и других функций чтения из файла) не похоже на использование остальных функций в MathCAD. Для того чтобы записать данные в файл, функцию WRITEPRN следует размещать слева от оператора присваивания, а справа разместить имя матрицы, которую нужно записать в файл (например, WRITEPRN(”с: \work\data. txt") := А). Вообще говоря, использование функций READPRN и WRITEPRN обладает гораздо меньшими возможностями, чем использование компонентов, поэтому применять их не рекомендуется. Данное замечание не распространяется на остальные функции MathCAD для работы с файлами, которые можно найти в категории File Access (Доступ к файлам) библиотеки функций (некоторые из этих функций будут рассмотрены в разделе “Обработка изображений и звука с помощью MathCAD” главы И).
Экспорт данных во внешние файлы
135
Обмен данными с другими приложениями
Кроме чтения данных из файла и записи в файл, в MathCAD есть возможность установить связь непосредственно с другим приложением и обмениваться с ним данными напрямую. Это позволяет расширить вычислительные и графические возможности MathCAD средствами таких популярных пакетов, как MATLAB, Excel, Axum и др.
Естественно, для того чтобы использовать вычислительный потенциал другого пакета в документе MathCAD, на вашем компьютере должен быть установлен данный пакет и вы должны уметь с ним работать. При этом тот факт, что вы используете последнюю версию MathCAD, не означает, что у вас должны быть установлены также последние версии других продуктов. Подойдут даже самые первые версии, в которых есть поддержка технологии объектной связи (OLE), например Excel 7.0 или MATLAB 4.2 (сейчас эти версии продуктов можно встретить уже очень редко, не говоря уже о более ранних).
Для установления связи MathCAD с другим приложением следует вставить в документ соответствующий компонент. Для вставки и начальной настройки различных компонентов в MathCAD служит Мастер компонентов. Для запуска этого мастера следует выбрать команду меню InsertoComponent (рис. 7.6). В открывшемся диалоговом окне вы можете выбрать из списка, какой из компонентов необходимо вставить в документ. После того как компонент выбран, следует щелкнуть на кнопке Next для его настройки.
Рис. 7.6. Начальное окно Мастера компонентов
Для всех компонентов окна настройки имеют различный вид, но в большинстве из них требуется задать одну или несколько переменных ввода (Input Variable) и переменных вывода (Output Variable). Все взаимодействие MathCAD с внешним приложением происходит через эти переменные: значения переменных ввода передаются приложению, с ними производятся нужные вычисления и результаты записываются в переменные вывода для дальнейшего использования в документе MathCAD.
Компонент Microsoft Excel
Наверное, самым простым из всех компонентов является компонент Microsoft Excel. Именно на примере этого компонента легче всего проиллюстрировать взаимодействие MathCAD с другими приложениями и работу переменных ввода и вывода.
Для вставки и настройки компонента Microsoft Excel необходимо выполнить следующую последовательность действий.
1.	Вызовите окно Мастера компонентов с помощью команды меню InsertoComponent (см. рис. 7.6).
136
Гпава 7. Работа с внешними источниками данных
2.	Выберите из списка компонент Microsoft Excel и щелкните на кнопке Next.
3.	Появится новое окно мастера. В этом окне необходимо выбрать, как следует создать компонент: на основе чистого документа Excel (Create an empty Excel worksheet) или на основе уже готового файла (Create from file). Также в данном окне можно выбрать, будет ли вставленный компонент отображать содержимое документа Excel или он будет изображен в виде пиктограммы. Для этого нужно установить или сбросить флажок Display as Icon. После того как необходимые настройки были сделаны, следует щелкнуть на кнопке Next.
4.	Последнее, самое важное окно мастера позволяет настроить переменные ввода и вывода (рис. 7.7). В поле ввода Inputs необходимо указать количество переменных ввода (их может быть любое количество, в том числе и ни одной). Далее в каждой строчке таблицы ниже этого поля, следует указать ячейку таблицы Excel, начиная с которой на листе будут располагаться значения, содержащиеся в соответствующей переменной ввода.
ь	Следует помнить, что ячейки необходимо указывать в принятом в Excel формате,
\	т.е. в виде буквы и цифры (буква соответствует номеру столбца, цифра— номеру
ХУСк- строки).
Хй
5.	Также следует задать переменные вывода. В поле Outputs нужно ввести их количество, а в каждой строке таблицы ниже этого поля указать диапазон ячеек, значения которых будут присвоены соответствующей переменной вывода.
6.	После щелчка на кнопке Finish в документ будет вставлен компонент Microsoft Excel. Он будет выглядеть на экране как таблица (или пиктограмма, в зависимости от флажка Display as Icon), внизу и слева от которой расположены несколько полей ввода. В поля ввода под таблицей должны быть введены имена переменных MathCAD, используемых как переменные ввода, а в поля слева от таблицы (возле знака “.=”) — имена переменных вывода.
Рис. 7.7. Настройка переменных ввода и вывода компонента Microsoft Excel
После того как были выполнены все перечисленные шаги, вы сразу же можете увидеть внутри компонента Excel значения переменных ввода.
Для того чтобы начать редактирование созданного документа в Excel, следует выполнить двойной щелчок мышью на компоненте. После этого будет запущено приложение Microsoft Excel, но если компонент был вставлен в виде таблицы, то вы этого можете
Обмен данными с другими приложениями
137
даже не заметить, поскольку окно и документ MathCAD никуда ни исчезнут. Только вокруг редактируемого компонента появятся стандартные элементы листа Excel (заголовки строк и столбцов, полосы прокрутки и т.д.), а также панели инструментов и меню в окне будут заменены на соответствующие элементы Excel. Но стоит вам щелкнуть в любом месте документа за пределами компонента Excel, как все вернется в исходное положение.
После того как компонент Excel был вставлен, можно изменить количество и параметры переменных ввода и вывода. Для этого следует вызвать контекстное меню компонента и выбрать команду Properties. Открывшееся окно содержит две вкладки: Inputs и Outputs. Содержимое каждой из них ничем не отличается от соответствующей части в последнем окне Мастера компонентов. Вы точно так же можете настроить количество переменных ввода и вывода и номера ячеек на листе Excel, которые им соответствуют.
Система Microsoft Excel не является математическим пакетом, поэтому ее бессмысленно использовать для расширения вычислительных возможностей MathCAD. Основное для чего предназначена система Excel — это обработка небольших объемов данных, построение на их основе наглядных таблиц и диаграмм. Если с обработкой данных MathCAD справляется прекрасно, то для построения таблиц или диаграмм его средства более чем ограниченны. То есть именно для таких задач и стоит пользоваться компонентом Microsoft Excel. На рис. 7.8 приведен пример использования данного компонента для построения таблицы и круговой диаграммы на основе массива MathCAD.
А
Т
v = (0.4 0.24 0.2 0.08 0.08)
Рис. 7.8. Использование компонента Excel в документе MathCAD
Если возникает необходимость скрыть имена переменных ввода и вывода, то следует воспользоваться командой Hide Arguments из контекстного меню компонента.
Компонент MATLAB
Система MATLAB является очень мощным средством обработки и визуализации больших массивов данных. Ее возможности в этой области на порядок превосходят возможности MathCAD. Однако серьезными недостатками являются сложность освоения и невозможность оформления результатов вычислений в виде готового документа. Использование компонента MATLAB в документе MathCAD позволяет исправить последний из перечисленных недостатков.
После того как в окне Мастера компонентов был выбран компонент MATLAB, следует щелкнуть на кнопке Finish для вставки его в документ (эта кнопка появится вместо кнопки Next в окне мастера). После этого сразу будет запущено приложение
138	Гпава 7. Работа с внешними источниками данных
MATLAB (если оно установлено на вашем компьютере), однако никаких действий в окне этого приложения выполнять не следует, все необходимые действия должны быть выполнены в окне MathCAD.
Сразу после вставки компонент MATLAB будет содержать одну переменную ввода и одну переменную вывода. Для того чтобы изменить их количество, следует вызвать контекстное меню и выбрать в нем одну из следующих команд:
	Add Input Variable — добавить переменную ввода;
	Add Output Variable — добавить переменную вывода;
	Remove Input Variable — уничтожить переменную ввода;
	Remove Output Variable — уничтожить переменную вывода.
Также можно для каждой переменной ввода и вывода задать имя массива MATLAB, который будет соответствовать данной переменной. Для этого следует выбрать команду Properties из контекстного меню компонента.
После того как переменные ввода и вывода были описаны, нужно написать программу MATLAB, которая будет производить нужные действия. Для этого следует выбрать команду Edit Script из контекстного меню компонента. Данная команда вызывает окно текстового редактора, где должен быть набран текст программы. После того как текст был введен, следует выбрать команду меню File^Apply changes (в строке меню окна Script Editor) или нажать <Ctrl+S> на клавиатуре, а затем — закрыть окно Script Editor. После этого введенная программа будет выполнена системой MATLAB и результат будет записан в переменные вывода или, если в программе есть операторы графического вывода, в области компонента будет построен соответствующий график. На рис. 7.9 приведен пример использования компонента MATLAB. Введена программа, которая по заданному произвольному набору точек на плоскости строит интерполяционную кривую по методу кубических сплайнов (первая строка в переменной ввода содержит значения координаты л точек набора, а вторая —значения координаты у).
/1322133 1Л
” \2 3 4 3 3 Г I 2 J
V
Рис. 7.9. Использование компонента MATLAB
Обмен данными с другими приложениями
139
Другие компоненты
Кроме описанных компонентов MATLAB и Excel, в документе MathCAD можно использовать и другие компоненты. Некоторые из них позволяют на основе данных MathCAD построить графики или другие изображения с использованием изобразительных средств других приложений. К таким компонентам относятся Axum и Smart-Sketch. Для их запуска необходимо, чтобы соответствующие приложения были установлены на вашем компьютере.
Другие компоненты позволяют получать данные из различных источников. Например, компонент ODBC Input позволяет передавать информацию в документ MathCAD из любой базы данных, для которой установлен драйвер ODBC, а компонент Data Acqisition позволяет получать данные непосредственно от измерительного прибора, если таковой подключен к компьютеру.
Использование компонентов позволяет существенно расширить область применения системы MathCAD, однако необходимость того, чтобы на компьютере были одновременно установлены и запущены несколько математических пакетов, существенно повышает требования не только к квалификации пользователя, но и к ресурсам компьютера.
Использование утилиты MathConnex
В сложных задачах может возникнуть необходимость подключения к документу MathCAD двух и более внешних приложений. Конечно, для этого можно просто вставить в документ несколько различных компонентов, но если возникнет необходимость в обмене данными между этими приложениями, то компоненты не смогут решить такую задачу. Также, может, например, возникнуть необходимость данные, полученные от компонента, обработать в документе MathCAD и снова передать на вход тому же компоненту. Такая задача также не “под силу” компонентам, разве что если создать два одинаковых компонента.
Специально для создания сложных множественных связей между различными приложениями и управления потоками данных между ними в комплект поставки MathCAD включена утилита MathConnex. Ярлык для запуска данной утилиты можно найти в меню Start (Пуск) в том же подменю, где находится ярлык для запуска MathCAD. Утилита MathConnex содержит большое количество различных компонентов для соединения с различными приложениями. Среди этих компонентов можно найти и компонент MathCAD.
Конечно, детальное описание компонентов MathCAD и утилиты MathConnex является темой отдельной книги и далеко выходит за рамки данного самоучителя. В справочной системе MathCAD вы также найдете немного информации об их использовании. Более детальная информация может быть найдена в справочной системе MathConnex, в “Руководстве разработчика MathCAD”, а также на Web-сайте компании Mathsoft.
Резюме
Данная глава посвящена взаимодействию MathCAD с различными источниками данных.
Для работы с большими массивами чисел вместо матриц стоит пользоваться таблицей данных. Ее можно вставить в документ MathCAD с помощью команды меню lnsert'=>Datai=>Table.
Заполнить таблицу можно вручную с клавиатуры, а можно импортировать в нее данные из файла с помощью команды контекстного меню Import. Также, если массив данных изображен в виде таблицы, можно экспортировать из него данные во внешний файл. Для этого служит команда контекстного меню Export.
Можно также организовать постоянную связь с внешним файлом и при каждом вычислении документа читать или записывать в него изменяющиеся данные. Для этих целей можно в документ вставить компоненты File Input, File Output, выбрав команды подменю Insert^Data^File Input и InsertoData^ File Output соответственно.
140
Гпава 7. Работа с внешними источниками данных
Кроме чтения из файла и записи в файл, в документе MathCAD можно установить непосредственную связь с другим приложением для обмена данными. Для этого в MathCAD служат так называемые компоненты. Для их вставки в документ MathCAD следует вызвать окно Мастера компонентов. Для этого можно выбрать команду меню Insert^Component. Кроме вставки компонента, мастер позволяет провести его начальную настройку: задать переменные ввода и вывода и (иногда) способ их обработки в целевом приложении.
Обращение к тому или иному компоненту в документе MathCAD приводит к запуску соответствующего приложения. Приложению передаются значения переменных ввода, над ними производятся необходимые действия и результат возвращается в документ MathCAD в виде переменных вывода.
Если результатом работы внешней программы является, например, график, то потребности в переменных вывода может не быть. Также в некоторых случаях могут быть ненужными и переменные ввода. Для изменения количества переменных ввода и вывода проще всего воспользоваться соответствующими командами контекстного меню компонента.
Тесты
Эти тесты помогут вам закрепить материал данной главы. Ответы ищите в приложении А.
Найдите правильный ответ
Каждый из предложенных вопросов может иметь несколько правильных ответов.
1.	Чему равен максимальный размер таблицы ввода данных в MathCAD:
а)	10;
б)	ЮО;
в)	256;
г)	не ограничен.
2.	Какие из перечисленных приложений могут быть подключены к документу MathCAD с помощью компонентов:
a)	MATLAB;
б)	Maple;
в)	Microsoft Excel;
г)	Microsoft Word.
Правда или ложь?
Каждое утверждение либо верно, либо нет.
3.	В MathCAD можно установить постоянную связь между документом и внешним файлом данных.
4.	MathCAD позволяет экспортировать данные в файлы в различных форматах.
5.	Любой компонент в MathCAD должен содержать как минимум одну переменную ввода и одну переменную вывода.
6.	При использовании компонента MATLAB программа, реализующая вычисления, должна быть написана не в окне приложения MATLAB, а в специальном окне Script Editor системы MathCAD.
Тесты
141
Глава 8
Теория вероятностей и математическая статистика
В этой главе...
♦	Распределения вероятностей случайных величин
♦	Генерация случайных чисел с различными распределениями вероятностей
♦	Основы статистического анализа данных средствами MathCAD
♦	Построение частотных гистограмм
♦ Резюме
С задачами математической статистики и статистического анализа сталкиваются люди, работающие в самых различных областях: в физике и экономике, в экологии и социологии. Такие задачи возникают везде, где приходится работать со случайными величинами. Статистическая обработка данных обычно связана с большими объемами вычислений, поэтому не удивительно, что компьютеры использовали в этой области с первых дней их сушествования. Да и сейчас статистика связана с компьютером больше, чем любая другая область математики.
Система MathCAD содержит большое количество функций, позволяющих обрабатывать выборки случайных величин. Вы можете не только вычислить разнообразные численные характеристики случайной величины, но также построить по выборке частотную гистограмму и сравнить ее с одним из теоретических распределений. Также MathCAD содержит большое количество различных генераторов случайных чисел. Это позволяет моделировать различные случайные процессы, а также решать задачи разнообразными стохастическими методами.
Распределения вероятностей случайных величин
При проведении физического эксперимента, для того чтобы получить информацию о той или иной физической величине, ее измеряют большое число раз, а затем анализируют весь набор полученных значений.. При этом, в зависимости от конкретного эксперимента и конкретной физической величины, распределение вероятностей экспериментальных значений подчиняется тому или иному закону. Формулы, описывающие эти распределения, были установлены эмпирически или выведены исходя из физических соображений. При проведении анализа любых экспериментальных данных важно определить, какому распределению они подчиняются, поскольку это сразу даст много полезной информации относительно природы измеряемой величины.
В настоящее время для анализа результатов физических экспериментов и других статистических данных используется большое количество различных распределений вероятности. Для многих из этих распределений MathCAD позволяет получить функции плотности вероятности, функции распределения вероятности и обратные функ
ции распределения вероятности, а также генерировать случайные числа, подчиняющиеся определенному закону распределения вероятности.
Вычисление плотности распределения вероятности
Основной характеристикой распределения является плотность распределения вероятности, или просто плотность вероятности. Данная величина несет различный смысл для непрерывных и дискретных случайных величин. В MathCAD встроены функции вычисления плотностей вероятности многих стандартных распределений. При вставке функций из библиотеки функций MathCAD эти функции следует искать в категории Probability Density.
Для дискретной случайной величины плотность вероятности является функцией дискретного аргумента к. Значение этой функции в каждой точке равно вероятности того, что случайная величина примет значение равное к. В MathCAD встроены функции вычисления плотностей вероятности следующих дискретных распределений.
	dbinom(k,n,q) — биномиальное распределение. Вероятность того, что в последовательности независимых испытаний Бернулли из п испытаний к окажутся удачными (0 < к < п). Вероятность удачи при каждом испытании — q (0 < q < 1).
	dpois(k,X) — распределение Пуассона, где Л — параметр распределения (его математическое ожидание). Распределение Пуассона является граничным случаем биномиального распределения для п —> q-ь 0, n-q-^ X.
	dgeom(k,q) — геометрическое распределение. Вероятность того, что в последовательности независимых испытаний Бернулли первое удачное испытание будет к-м по счету (0 < q < 1 — снова вероятность удачи при каждом испытании).
	dhypergeom (к, а, Ь, п) — гипергеометрическое распределение. Смысл этого распределения и его аргументов можно объяснить на следующем примере. Пусть в корзине имеется а белых и b черных шариков. Из корзины было наугад выбрано п шариков. В таком случае плотность гипергеометрического распределения покажет, какова вероятность того, что среди выбранных шариков к будут белыми. Соответственно накладываются следующие условия на аргументы: 0<k<a, 0<n-k<b,0<n<a + b.
	dnbinom(k,n,q) — отрицательное биномиальное распределение. Смысл всех аргументов такой же, как и для биномиального распределения.
Если случайная величина является непрерывной, тогда значение плотности вероятности в каждой точке не несет определенного смысла, но интеграл от нее по любому отрезку в области определения даст вероятность того, что случайная величина попадет в данный отрезок значений. Следующие непрерывные распределения наиболее часто используются в теории вероятностей.
	dnormfx, ц, о) — нормальное распределение. Это распределение используется при описании большинства физических явлений, которые носят статистический характер. Многие распределения основываются на нормальном распределении. Также, при анализе различных распределений, часто вычисляются параметры, показывающие степень отклонения распределения от нормального. Параметры нормального распределения: ц — математическое ожидание или среднее значение, о — дисперсия или среднее отклонение.
	dunif(x,a,b) — равномерное распределение. Самое простое распределение, в котором плотность вероятности равна постоянной величине на всем интервале [а,Ь] и равна нулю вне этого интервала. Единственное условие, которому должны удовлетворять параметры равномерного распределения: а<х<Ь.
Распределения вероятностей случайных величин
143
	dexp(x,r) — экспоненциальное или показательное распределение, где г — показатель распределения (г>0). Показательное распределение применяется для описания различных переходных процессов, особенно в задачах описания ядерного распада.
Как уже упоминалось, широко используются распределения, основанные на нормальном распределении. Эти распределения соответствуют случайным величинам, которые являются функциями от случайных величин с нормальным распределением. К таким распределениям относятся следующие.
	dchisq(x,n) — %2 (хи-квадрат)-распределение. Параметр и — число степеней свободы или число случайных величин с нормальным распределением, используемых для построения величины % (п>0 — целое число).
	dF(x,n,m) — распределение Фищера (F-распределение). Параметры п, т — числа степеней свободы (п, т>0).
	dt(x,n) — распределение Стьюдента (t-распределение). Здесь, как и выше, п — число степеней свободы.
	dinorm(х, ц, о) — логарифмическое нормальное распределение. Задается теми же параметрами, что и нормальное: ц — математическое ожидание или среднее значение, о — дисперсия или среднее отклонение. Это распределение можно получить из нормального с помощью замены х—> 1п(х) и соответствующей перенормировки.
Кроме перечисленных выше, в MathCAD также встроены и другие непрерывные распределения. Следующие функции возвращают из плотности перечисленные ниже распределения.
	dcauchy (х, 1, s) — распределение Коши.
	dlogis (х, 1, s) — логистическое распределение. Параметры в распределениях Коши и логистическом: I (location) — параметр расположения, s (scale) — параметр масштаба (з>0). Оба эти распределения широко используются в экономических исследованиях.
	dbeta(x,s,p) — бета-распределение. Определено на отрезке 0<х<1, з и р — параметры формы (з, р > 0).
	dgamma(x,s) — гамма-распределение (х>0; 5>0 — параметр формы).
	dwiebull(х,s) — распределение Вейбулла (х> 0; s > 0 — параметр формы).
Вычисление функции распределения
Функция распределения также является важнейшей функцией, характеризующей распределение. Эта функция однозначно связана с плотностью распределения. Значение функции распределения в каждой точке дает вероятность того, что случайная величина примет значение меньшее или равное заданному. Таким образом, для дискретной случайной величины эта функция определяется как сумма значений плотности распределения от самого первого до п — дискретного аргумента функции распределения. Для непрерывной случайной величины, очевидно, это будет интеграл от начала интервала значений случайной величины до х — непрерывного аргумента функции распределения. Исходя из такого определения, функция распределения монотонно возрастает и равна нулю и единице соответственно на нижней и верхней границах интервала значений случайной величины.
В MathCAD встроены функции распределения для всех вышеперечисленных распределений. Эти функции могут быть вставлены в документ из библиотеки функций MathCAD, где они собраны в категории Probability Distribution. Эти функции очень похожи на описанные выше функции для плотностей распределения. Смысл всех параметров для этих функций такой же, как и для описанных выше.
744
Гпава 8. Теория вероятностей и математическая статистика
Ниже перечислены функции распределения дискретных случайных величин.
	pbinom(k, n, q) — биномиальное распределение.
	ppois(k,A) — распределение Пуассона.
	pgeom(k,q) — геометрическое распределение.
	phypergeom(k,а,Ь, п) — гипергеометрическое распределение.
	pnbinom(k,n,q) — отрицательное биномиальное распределение.
Функции распределения непрерывных случайных величин в точке х перечислены ниже.
	pnorm(x,p,o) — нормальное распределение.
	punif(x,a,b) —равномерное распределение.
	рехр(х,г) — экспоненциальное распределение.
	pchisq(x,n) -^-распределение.
	pF(x,n,m) — распределение Фишера (F-распределение).
	pt(x,n) — распределение Стьюдента (t-распределение).
	plnorm(х, р, о) — логарифмическое нормальное распределение.
	pcauchy(x, 1, s) — распределение Коши.
	plogis (х, 1, s) — логистическое распределение.
	pbeta(x,s,p) — бета-распределение.
	pgamma(x,s) - гамма-распределение.
	pwiebull (х, s) — распределение Вейбулла.
Вычисление обратной функции распределения
При решении задач часто возникает необходимость определить значение х, при котором функция распределения принимает заданное значение р. Такое значение х еще называют квантилем уровня р случайной величины. Некоторые квантили встречаются в задачах особенно часто и поэтому даже получили специфические имена, например: медиана (квантиль уровня 0.5), верхняя квартиль (0.75), нижняя квартиль (0.25) и др.
Для вычисления квантилей случайных величин средствами MathCAD можно, конечно, напрямую решить уравнение F(x) = р, где F — функция распределения. Но для всех перечисленных выше встроенных распределений в MathCAD есть функции, позволяющие вычислять квантили случайных величин, т.е. обратные функции распределения.
Для дискретных случайных величин далеко не всегда можно найти такое значение дискретной переменной к, чтобы в точности получить требуемое значение вероятности р. Поэтому следующие функции MathCAD возвращают значение к, где функция распределения наиболее близка к требуемому значению (во всех функциях р — уровень квантиля, а все остальные аргументы были описаны выше; естественно, необходимое условие — 0 <р < 1).
	qbinomfp, n, q) — биномиальное распределение.
	qpois(p,A) — распределение Пуассона.
	qgeom(p,q) — геометрическое распределение.
	qhypergeom(p, а, Ь, п) — гипергеометрическое распределение.
	qnbinom(p,n,q) — отрицательное биномиальное распределение.
Распределения вероятностей случайных величин
145
Для непрерывных случайных величин функция распределения является непрерывной и монотонной, так что и обратная функция будет существовать всегда. Следующие функции вычисляют квантили непрерывных случайных величин.
	qnorm (р, ц, о) — нормальное распределение.
	qunif(p,a,b) — равномерное распределение.
	qexp(p,r) — экспоненциальное распределение.
	qchisq(p,n) — %2 (хи-квадрат)-распределение.
	qF(p,n,m) — распределение Фишера (F-распределение).
	qt(p,n) — распределение Стьюдента (t-распределение).
	qlnorm (р, ц, о) — логарифмическое нормальное распределение.
	qcauchy(p, 1, s) — распределение Коши.
	qlogis (р, 1, s) — логистическое распределение.
	qbeta(p,s,p) - бета-распределение.
	qgamma(p,s) — гамма-распределение.
	qwiebull (р, s) — распределение Вейбулла.
Генерация случайных чисел с различными распределениями вероятностей
Плотности вероятности, функции распределения и квантили случайных величин — это, вообще говоря, известные функции, которые при необходимости можно задать самому без использования описанных функций. Но инструментарий статистических функций MathCAD содержит еще одну группу функций, которые проблематично было бы реализовать вручную. Речь идет о функциях, генерирующих случайные числа. Возможность генерировать случайные числа с различными функциями распределения позволяет имитировать результаты реальных измерений. Поэтому эти функции можно использовать для решения самых разнообразных задач и проведения различных исследований без проведения реального эксперимента.
MathCAD позволяет генерировать случайные числа с любым из перечисленных в предыдущих разделах распределений вероятности. Для этого служат функции, собранные в категорию Random Numbers, библиотеки функций MathCAD. Каждая из перечисленных функций возвращает массив случайных чисел из к элементов (первый аргумент всех функций), значение остальных параметров такое же, как и раньше.
	rbinom (к, п, q) — биномиальное распределение.
	rpois(k,A) — распределение Пуассона.
	rgeom(k,q) — геометрическое распределение.
	rhypergeom(k, а,Ь,п) — гипергеометрическое распределение.
	rnbinomfk, n, q) — отрицательное биномиальное распределение.
	. rnormfk, ц, о) — нормальное распределение.
	runif(k,a,b) — равномерное распределение. Для генерации случайных чисел с равномерным распределением можно также воспользоваться функцией rnd(x), которая возвращает одно случайное число, заключенное между нулем и точкой х.
	rexp(k,r) — экспоненциальное распределение.
	rchisq(k,n) -^-распределение.
146
Гпава 8. Теория вероятностей и математическая статистика
	rF(k,n,m) — распределение Фишера (F-распределение).
	rt(k,n) — распределение Стьюдента (t-распределение).
	rlnorm(k,p,o) — логарифмическое нормальное распределение.
	rcauchy (k, 1, s) — распределение Коши.
	rlogis(к,1,s) — логистическое^распределение.	/
	rbeta(k,s,p) - бета-распределение.
	rgamma(k,s) - гамма-распределение.
	rwiebull (к, s) — распределение Вейбулла.
Основы статистического анализа данных средствами MathCAD
После того как данные были введены в документ MathCAD тем или иным способом, можно приступать к их статистическому анализу. Конечно, все необходимые величины можно вычислить и используя обычные средства MathCAD, но основные инструменты такого анализа можно найти в MathCAD в виде встроенных функций. Дальше мы последовательно рассмотрим все этапы статистического анализа массива случайных данных и, конечно, функции MathCAD, которые при этом используются. Все функции, предназначенные для статистической обработки данных, можно найти в библиотеке функций MathCAD в категории Statistics.
Первичная обработка данных
Первичная обработка данных состоит обычно в отыскании максимального и минимального элементов в наборе и медианы, т.е. такого элемента, для которого количество больших него элементов в наборе равно количеству меньших. Для этих целей служат следующие функции MathCAD.
	min (А, В,...) — минимальное значение из набора данных. Набор данных для анализа может быть представлен как в виде вектора, так и в виде матрицы или даже нескольких матриц. В последнем случае их нужно указывать в аргументе функции min через запятую.
	max (А, В,...) — максимальное значение из набора. Для этой и следующей функций, а также для многих из функций, которые будут описаны ниже, возможны все те же варианты представления данных, что и для функции min.
	median (А, В,...) — возвращает медиану набора данных. Если в наборе четное количество значений, то будет возвращено среднее арифметическое двух центральных значений.
Средние значения случайной величины
Основной числовой характеристикой любого набора случайных данных является среднее значение. Существуют различные определения среднего значения, и все они находят применение на практике. Система MathCAD содержит функции для вычисления средних значений трех типов.
1	 mean (А, В,...) — арифметическое среднее.
Основы статистического анализа данных средствами MathCAD
147
/лм	 gmean (А, В,...) — геометрическое среднее.
{Пн
V /=о
 hmean (А, В,...) — гармоническое среднее.
i л'-1 i ।
—У—
N7TMJ
Аргументами этих функций может быть как вектор так и матрица или набор матриц. В любом случае элементы всех матриц будут рассматриваться как единый массив данных М.
Анализ погрешностей и отклонения от среднего
Также при статистическом анализе важным является параметр, называемый дисперсией случайной величины. Этот параметр характеризует отклонение величины от среднего значения. Для вычисления дисперсии набора данных служит функция var (А,В,...). Данная функция возвращает дисперсию случайной величины, но на практике при оценке погрешностей используется данная величина, умноженная на N!(N- 1). Считается, что так эта величина лучше отражает реальную дисперсию в распределении случайной величины. Такую величину несложно построить, но в MathCAD предусмотрена функция и для такой оценки дисперсии — Var (а, В,...).
При оценке отклонений от среднего на практике чаще пользуются не дисперсией, а квадратным корнем из нее. Эта величина называется среднеквадратичным отклонением. Для вычисления среднеквадратичных отклонений служат функции stdev(A,B,...) и Stdev (А, В,...) (для функций var и Var соответственно).
Оценка степени отклонения распределения случайной величины от нормального
При анализе случайной величины, распределение которой не известно, полезно бывает определить, насколько ее распределение отличается от нормального распределения с математическим ожиданием 0 и дисперсией 1 (N(0,l)). Для этого также в MathCAD есть встроенные функции.
	kurt (А, В,...) — вычисление крутости распределения по сравнению с нормальным.
	skew(A,B,...) — вычисление эксцесса (асимметрии) случайной величины.
Обе перечисленные величины для нормального распределения равны нулю. Для любого распределения, отличного от нормального, крутость (kurtosis) показывает, насколько данное распределение более или менее гладкое, чем нормальное N(0,1). Эксцесс (skewness) показывает, насколько данное распределение асимметрично по сравнению с нормальным N(0,l).
Корреляция двух наборов случайных величин
Когда вы имеете дело с несколькими наборами данных, может быть важно, являются эти величины независимыми или нет. Для этого оценивается коэффициент, называемый ковариацией данных наборов значений. Для вычисления ковариации двух массивов данных в MathCAD служит функция cvar(A,B). Аргументы этой функции — два массива А и В одинакового размера, которые необходимо сравнить.
Если вас интересует, насколько зависимыми являются наборы данных, то лучше воспользоваться величиной, которая называется коэффициентом корреляции случайных величин. Основное преимущество коэффициента корреляции — это то, что он не зави
148	Гпава 8. Теория вероятностей и математическая статистика
сит от параметров распределения каждой величины по отдельности, а только от взаимосвязи между ними. Для вычисления коэффициента корреляции служит функция MathCAD cor г (А, В).
Построение частотных гистограмм
При статистическом анализе данных важным является их наглядное представление. Для этой цели строят так называемые частотные гистограммы. Они помогают определить тип распределения, которому подчиняется данная случайная величина, а также вычислить ее основные параметры. Для построения частотной гистограммы для заданного массива v случайных данных числовой промежуток, ограниченный значениями min(v) и max(v), разбивается на п интервалов (чаще всего одинаковой длины). Далее для каждого из этих интервалов определяется количество значений из массива v, которые попадают в этот интервал. На графике результат такой группировки можно изобразить, откладывая по оси х середины интервалов разбиения, а по оси у — количество значений каждого интервала. Эти числа могут быть изображены на графике в виде гистограммы, которая и называется частотной гистограммой. Частотная гистограмма может быть использована для проверки статистических гипотез, поскольку при правильном выборе интервалов разбиения она полностью отображает “поведение” плотности распределения вероятности случайной величины.
Для построения частотных гистограмм в MathCAD служит функция histo-gram(n, v). Второй аргумент этой функции — это массив данных, для которого необходимо построить гистограмму, а первый аргумент может быть как вектором значений, задающих границы интервалов разбиения, так и целым числом. В последнем случае промежуток значений будет разделен на п равных интервалов. Функция histogram возвращает массив, первый столбец которого содержит середины интервалов разбиения, а второй столбец — количество значений из массива данных, которые попали в заданный интервал. То есть данный массив содержит всю необходимую информацию для построения частотной гистограммы. Как уже упоминалось, частотная гистограмма может быть использована для оценки, насколько хорошо данная случайная величина описывается той или иной функцией распределения. На рис. 8.1 построена частотная гистограмма для массива, значения в котором были сгенерированы с помощью функции rbeta, т.е. имеют бета-распределение. Далее на основе этого массива построена частотная гистограмма и показано на графике, что она действительно отображает плотность распределения (естественно, для этого значения на гистограмме нужно перенормировать).
л MathCAD содержит другую функцию, также предназначенную для построения гис-тограмм — hist(n,v). Аргументы данной функции те же, что и для histogram, но возвращает она только количества значений в каждом интервале в виде вектора. Та-''в ким образом при использовании этой функции для построения гистограммы необходимо дополнительно вычислять значения по оси х. Данная функция оставлена в MathCAD И для совместимости с предыдущими версиями, но ее использовать, вообще говоря, не рекомендуется.
Резюме
Для решения задач теории вероятностей и математической статистики в MathCAD встроены основные распределения случайных величин. Для каждого из этих распределений можно вычислить плотность распределения, функцию распределения, обратную функцию распределения, а также сгенерировать случайные числа с заданным распределением. Например, для нормального распределения плотность вероятности вычислит функция dnorm, распределение вероятностей — pnorm, обратное распреде-
Резюме
149
i:= 0.10
Рис. 8.1. Построение частотной гистограммы
.е — qnorn, генерацию случайных чисел — rnorm. Точно так же и для других ределений — функции для одного распределения отличаются одна от другой ко первыми буквами в названиях.Средства MathCAD позволяют также провесп истическое исследование любого набора данных. Для этой цели в MathCAD суще 'ет большое количество функций, позволяющих вычислять различные числовы тктеристики случайной величины. Вы можете вычислить различные вариант, дних значений, дисперсию и отклонение от среднего, а также эксцесс и крутост пределения случайной величины по сравнению с нормальным. Также в MathCA чествуют встроенные функции для вычисления коэффициентов корреляции и к< шации двух случайных величин.
Важным этапом статистического анализа случайной величины является построен стотной гистограммы. Частотная гистограмма дает возможность не только нагляд >едставлять данные на графике, но и выдвигать статистические гипотезы относ льно распределения, которому подчиняется исследуемая величина. Для построен (Стотных гистограмм в MathCAD существует две функции: histogram и hist, х< а практике рекомендуется использовать только функцию histogram.
Гесты
Эти тесты помогут вам закрепить материал данной главы. Ответы ищите в npi Кении А.
Найдите правильный ответ
Некоторые из предложенных вопросов могут иметь несколько правильных отв
1.	Какие из перечисленных распределений встроены в MathCAD:
а)	Коши;
б)	Парето;
в)	Фишера;
г)	Стьюдента.
я Теооия вероятностей и математическая стати
2.	Какая функция возвращает среднее арифметическое значение массива данных:
a)	median;
б)	mean;
в)	amean;
г)	hmean.
3.	С какой теоретической величиной следует сравнивать частотную гистограмму для проверки статистических гипотез:
а)	плотность распределения;
б)	функция распределения;
в)	обратная функция распределения;
г)	среднее геометрическое значение.
Правда или ложь?
Каждое утверждение либо верно, либо нет.
4.	В MathCAD встроены распределения только непрерывных случайных величин.
5.	Для генерации равномерно распределенных случайных чисел в MathCAD есть две различные функции.
6.	При построении частотных гистограмм в MathCAD диапазон значений всегда разбивается на равные отрезки.
7.	Имена всех функций MathCAD, предназначенных для вычисления квантилей случайных величин начинаются с буквы q.
Тесты
151
Глава 9
Обработка экспериментальных данных средствами MathCAD
В этой главе...
♦	Интерполяция
♦	Экстраполяция
♦	Регрессия
♦	Сглаживание
♦	Дискретное преобразование Фурье
♦	Резюме
Данная глава посвящена анализу экспериментальных данных, имеющих характер зависимости одной величины от другой. Результаты таких измерений обычно представляются в виде двух массивов — набора значений аргумента и набора значений функции.
Для анализа экспериментальных зависимостей и приведения их к наглядному виду часто используются такие средства, как интерполяция, сглаживание и аппроксимация. В некоторых задачах для анализа зависимости бывает необходимо найти ее Фурье-компоненту. Все перечисленные средства анализа можно реализовать средствами MathCAD, чему и посвящена данная глава.
Интерполяция
Любая зависимость одной физической величины от другой является непрерывной функцией. При этом всегда результат любого эксперимента — это дискретный набор точек. Поэтому возникает необходимость исходя из такого набора точек находить непрерывную кривую, которая наилучшим образом соответствовала бы реальной экспериментальной зависимости. Одним из вариантов решения данной проблемы является построение интерполяционной кривой. Интерполяцией называют заполнение отрезками кривых промежутков между заданными точками по тому или иному закону.
Для проведения интерполяции, как и любой другой обработки данных в документе MathCAD, в первую очередь должна быть задана экспериментальная зависимость в виде набора точек на плоскости. Для этого должны быть заданы два одномерных массива (вектора) — vx и vy, содержащие соответственно значения координат х и у каждой точки. При этом для всех функций MathCAD, описанных в данной главе, важно, чтобы значения в векторе vx были заданы порядка возрастания.
Если значения переменной л заданы не в порядке возрастания, то все функции обработки данных, описанные в данной главе, будут выдавать ошибку. Для того чтобы пересортировать массивы vx и vy в нужном порядке, воспользуйтесь следующим несложным алгоритмом (рис. 9.1). Вначале оба вектора следует объединить в один массив с помощью функции augment, для того чтобы при сортировке сохранилось соответствие между значениями координат х и у каждой точки. Далее полученный массив нужно отсортировать по нулевому столбцу (в этом столбце записаны значения координаты х). Для этого служит функция csort(V,0), первым аргументом которой задается сортируемый массив, а вторым — номер столбца, по которому он сортируется. Из матрицы, полученной в результате сортировки, теперь нужно выделить нулевой столбец как массив значений координаты х и первый столбец — как массив значений координаты у.
С 6.976 А
2.741
9.92
3.656
1,2.407 7
( 14.09 >
9.349
16.192
10.385
V 7.899 J
V := augment(vx,vy)
W:= csort(V,q)
vx = W vy := W
^2.407^
2.741
C 7.899 'I
vx= 3.656
6.976
ч 9 92 2
9.349
10.385
14.09
Д6.192 >
Рис. 9.1. Сортировка набора точек
Система MathCAD позволяет проводить линейную интерполяцию и сплайн-интерполяцию наборов экспериментальных точек. Все функции, предназначенные для этого, можно найти в библиотеке функций MathCAD (напомним, что вызвать ее можно, выбрав команду меню Insert^Function) в категории Interpolation and Prediction.
Линейная интерполяция
Простейшим вариантом интерполяции является линейная интерполяция. Она заключается в простом соединении точек между собой отрезками прямых. Для реализации такой интерполяции в MathCAD существует встроенная функция linterp(vx,vy,x), где vx и vy — уже известные векторы, содержащие координаты последовательности точек, х — координата точки, в которой нужно вычислить значение интерполирующей функции. Пример построения линейной интерполяции приведен на рис. 9.2. На этом рисунке, как и на всех других в данной главе, не изображен процесс ввода данных в массивы, поскольку об этом было достаточно сказано в предыдущих главах.
Вы можете заметить, что при изображении на графике только набора точек вы получите ту же самую ломаную линию, что и в результате применения функции lin-terp. Это происходит потому, что при построении графика MathCAD соединяет заданные точки отрезками прямой, т.е. фактически, проводит линейную интерполяцию. В таком случае может возникнуть вопрос: зачем вообще нужна функция linterp? Ответ на такой вопрос прост — функция interp позволяет не только изобразить на графике интерполирующую ломаную, но и вычислить ее значение в любой точке в промежутке между экспериментальными точками.
Интерполяция
153
f\x) := linterp(vx,vy,x)
Рис. 9.2. Линейная интерполяция
Конечно, на практике линейная интерполяция применяется редко. Гораздо большее значение имеет интерполяция гладкими полиномиальными сплайнами. Именно о ней и пойдет речь дальше.
Интерполяция кубическими сплайнами
Из всех видов интерполяции наиболее часто используется интерполяция, где экспериментальные точки попарно соединяются отрезками полиномов. Чаще всего для этого выбирают полиномы третьей степени (поэтому такая кривая и называется кубическим сплайном). Для того чтобы найти коэффициенты этих полиномов, очевидно, недостаточно того условия, что кривая должна проходить через экспериментальные точки. Поэтому на сплайн накладываются дополнительные условия сшивки — первая и вторая производные слева и справа от каждой экспериментальной точки должны быть равны между собой. Но и после этого количество условий остается на два меньше, чем количество неизвестных коэффициентов. Дополнительные два условия должны быть наложены в начальной и конечной экспериментальных точках, поскольку в них нет условий сшивки. Эти условия можно выбрать по-разному. В MathCAD существует три различных функции для построения кубических сплайнов с различными дополнительными условиями.
	Ispline (vx, vy) — в начальной и конечной точках накладывается условие линейности, т.е. вторая производная от функции равна нулю. Первая буква в названии функции — 1, означает linear (линейный).
	pspline (vx, vy) — на первом и последнем интервале кривая является параболой, т.е. полиномиальный коэффициент при х3 равен нулю. Буква р означает parabolic (параболический).
	cspline (vx, vy) — полиномиальные коэффициенты при х3 на первых двух интервалах равны между собой точно так же, как на последних двух интервалах. Буква с означает cubic (кубический).
Результатом каждой из перечисленных функций является вектор, содержащий значения вторых производных от интерполяционной кривой во всех точках, заданных в массиве vx. Для того чтобы исходя из этого вектора построить кривую, нужно воспользоваться встроенной функцией interp (v, vx, vy, x), где vx и vy — массивы, задающие координаты экспериментальных точек, v — массив, полученный как результат одной из трех функций, перечисленных выше, х — координата х, в которой нужно вычислить значение интерполяционной кривой. Пример интерполяции кубическим сплайном с помощью описанных функций приведен на рис. 9.3.
154	Гпава 9. Обработка экспериментальных данных средствами MathCAD
v := pspline(vx,vy)
f(x) := interp(v,vx,vy,x)
В примере на рис. 9.3 для построения сплайна использована функция pspline. Точно так же выглядит использование остальных двух. В большинстве случаев от того, какую функцию вы используете, слабо зависит поведение кривой внутри интервала экспериментальных значений. Заметное отличие появляется лишь за границами этого интервала. Поэтому задумываться о выборе функции для построения кубического сплайна стоит только в том случае, если вы хотите использовать кубический сплайн для экстраполяции, т.е. вычисления значений в точках, находящихся за границами экспериментальных точек.
Интерполяция В-сплайнами
Кубический сплайн является эффективным средством построения интерполяционной кривой в подавляющем большинстве случаев. Но в некоторых случаях использование кубического сплайна может привести к нежелательным результатам. Чаще всего это происходит в тех случаях, когда данные очень неравномерно распределены вдоль оси х. В таких случаях на кривой кубического сплайна могут появляться острые экстремумы в промежутках между экспериментальными точками, т.е. поведение кривой перестает соответствовать поведению экспериментальной зависимости. В некоторых подобных случаях получить лучшую интерполяционную кривую помогает использование другого вида интерполяции — В-сплайна. Основное отличие В-сплайна от всех описанных выше методов — сшивка отрезков кривых происходит не в экспериментальных точках, а между ними, в специально заданных точках.
В MathCAD для реализации интерполяции В-сплайном служит функция bspline (vx, vy, u, n), где vx и vy — уже знакомые нам векторы, содержащие координаты экспериментальных точек, и — вектор, содержащий координаты точек сшивки, п — порядок интерполирующих полиномов. Результатом функции bspline является вектор, который далее следует использовать как аргумент функции interp, хотя содержимое этого вектора сильно отличается от результатов функций кубических сплайнов.
В-сплайн в MathCAD можно построить из отрезков прямых, парабол или кубических парабол, т.е. допустимые значения параметра п — 1, 2 или 3. Количество точек сшивки не является произвольной величиной и должно быть всегда на п - 1 меньше, чем количество экспериментальных точек. Также на координаты точек сшивки накладывается следующее условие: первая точка сшивки должна быть не правее первой экспериментальной точки, а последняя — не левее последней экспериментальной точки. Остальные точки сшивки могут произвольным образом располагаться внутри отрезка, конечно, при условии, что через них возможно провести интерполяционную кривую. Пример использования В-сплайна на рис. 9 4 иллюстрирует, как с помощью В-сплайна можно иногда получить лучший результат, чем с помощью кубического сплайна.
Интерполяция	155
vxT = (0.1 0.111 0.125 0.13 0.155 0.235 0.25) vyT = (-2.417 0.848 4.924 0 5.074 5.051 -1.012) uT = (0.09 0.12 0.127 0.134 0.23 0.26)
vl := bspline(vx, vy,u,2)
g(x) := interp(vl ,vx,vy,x)
v2 := lspline(vx,vy)
f(x) := interp(v2,vx,vy,x)
10 vy □ □□ fix)
g(*)	0
0.1	0.15	0.2	0.25
vx,x,x
Рис. 9.4. Сравнение эффективности кубического сплайна и В-сплайна
Следует заметить, однако, что в большинстве случаев подбор точек сшивки является весьма кропотливым занятием и для получения удовлетворительного результата может понадобиться много времени. При этом даже нельзя заранее сказать, можно ли добиться с помощью В-сплайна хорошего результата. Поэтому В-сплайнами стоит пользоваться только в исключительных случаях, когда результат применения кубического сплайна вас абсолютно не устраивает.
Двухмерная сплайн-интерполяция
С помощью кубических сплайнов в MathCAD можно также построить интерполяционную поверхность для экспериментальных зависимостей, представленных в виде функции двух переменных. Для этого служат уже знакомые функции Ispline, pspline, cspline и interp.
Конечно, в отличие от одномерной интерполяции, в данном случае экспериментальные значения не могут быть заданы в произвольных точках на плоскости. Интерполяционная поверхность может быть построена только в том случае, когда значения заданы в узлах прямоугольной сетки пхп. Для построения такой поверхности нужно выполнить следующую последовательность действий (пример приведен на рис. 9.5).
1.	Экспериментальные значения должны быть заданы в виде квадратной матрицы Z размерности п.
2.	Задайте матрицу м для описания сетки. Эта матрица должна состоять из двух столбцов и п строк (см. рис. 9.5, первую строку). Каждый столбец матрицы М задает положение линий сетки по одной из координат.
3.	Для вычисления двухмерного сплайна теперь следует воспользоваться функцией cspline (M,Z) (также можно Ispline или pspline) (см. рис. 9.5, вторую строку). Результатом данной функции, как обычно, будет вектор, который далее нужно использовать как аргумент функции interp.
156	Гпава 9. Обработка экспериментальных данных средствами MathCAD
4.	Теперь для вычисления в любой точке (х, у) значения интерполяционной поверхности следует воспользоваться функцией intrp (v,M, Z,w), где v — результат функции cspline, w — вектор, состоящий из двух элементов — значений координат х и у (см. рис. 9.5, третью строку).
Л1.722 0.946 0.137 0.735
0.155 0.277 0.117 0.173
2= 0.729 0.792 0 065 0.53
0.762 >
0.633
0,319
0.243
0.724,
0.475 0.478 0.637 0.884
,0.954 0.482 0.152 0.445
Рис. 9.5. Двухмерная интерполяция кубическим сплайном
2
Координаты линий сетки по осям не обязательно задавать с одинаковым интервалом, как на рис. 9.5. Здесь это сделано для того, чтобы отобразить набор экспериментальных точек на графике и чтобы он при этом максимально соответствовал введенным данным. В действительности можно вводить любые значения в матрицу м, соблюдая единственное условие: они должны располагаться в порядке возрастания.
Экстраполяция
Интерполяция дает возможность вычислять значения неизвестной функции в промежутках между экспериментальными точками, но иногда возникает необходимость вычислять значения функции вне области, ограниченной этими точками. Для этого используют так называемые методы экстраполяции.
При построении кубического сплайна, значение интерполяционной кривой может быть вычислено также и в любой точке за пределами “пограничной” области. Конечно, данный способ экстраполяции можно использовать только на очень небольшом расстоянии от “пограничных” точек, поскольку кривая является кубической параболой и быстро уходит в область очень больших значений, не имеющих ничего общего с реальной зависимостью.
Также в MathCAD есть одна встроенная функция для проведения экстраполяции — predict (v,m,n). Аргументы этой функции перечислены ниже.
Экстраполяция
157
	v — вектор значений функции на том отрезке, где она известна (значения аргумента в данной функции не задаются, и считается, что точки распределены равномерно).
	m — количество элементов вектора v, на основании которых проводится экстраполяция (естественно, выбираются точки, ближайшие к правой границе).
	п — количество точек в рассчитываемом векторе.
Результатом функции predict является вектор, состоящий из п элементов и задающий значения функции справа от границы выборки, т.е. в области, где она была не известна. Пример проведения экстраполяции от осциллирующей функции приведен на рис. 9.6.
i:=0.. 100 k:=0.. 100
Рис. 9.6. Экстраполяция с помощью функции predict
Алгоритм, используемый в функции predict, наилучшим образом подходит для экстраполяции различного рода осциллирующих зависимостей. В некоторых случаях можно получить удовлетворительный результат экстраполяции даже для негладких зависимостей, таких как пилообразный или прямоугольный сигнал. Зато для непериодических зависимостей приемлемый результат можно получить очень редко И только на очень небольшом расстоянии.
Регрессия
Результаты экспериментов всегда содержат некоторую случайную погрешность. Причем часто погрешность оказывается величиной одного порядка с измеряемой величиной. В таких случаях интерполяционная кривая будет весьма далека от истинной зависимости. Поскольку подобные ситуации возникают довольно часто, то интерполяция редко используется при анализе результатов экспериментов. Гораздо шире здесь применяется регрессионный анализ. Регрессией называется подгон параметров той или иной простой функции для наилучшей аппроксимации экспериментальных данных. Если аппроксимирующая функция выбрана удачно, то значения ее параметров могут быть источником разнообразной информации об измеряемой величине.
Система MathCAD содержит большое количество встроенных функций для проведения регрессионного анализа с использованием любых аппроксимирующих функций и их комбинаций. Все эти функции можно найти в библиотеке функций MathCAD в категории Curve Fitting and Smoothing.
158	Гпава 9. Обработка экспериментальных данных средствами MathCAD
Все функции MathCAD для поиска оптимальных значений параметров функций используют метод наименьших квадратов. Лишь для линейной регрессии, кроме метода наименьших квадратов, можно применить еще метод медиан. Но обо всем по порядку.
Линейная регрессия
Линейная регрессия является наиболее простой, но, тем не менее, используется чаще любого другого вида регрессии. Она заключается в нахождении таких значений параметров а и Ь, чтобы прямая у = а + Ьх наилучшим образом аппроксимировала заданный набор точек.
Для проведения линейной регрессии по методу наименьших квадратов в MathCAD существует функция line(vx,vy). Параметры данной функции vx и vy — уже знакомые нам массивы, содержащие соответственно значения координат л и у экспериментальных точек (причем значения в массиве vx должны быть отсортированы в порядке возрастания). Данные массивы являются аргументами всех встроенных функций MathCAD, используемых при регрессионном анализе, поэтому далее не будем описывать их значение, подразумевая, что эти массивы содержат координаты экспериментальных точек. Результатом функции line будет вектор, содержащий последовательно значения параметров а и Ь для построения регрессионной прямой.
На рис. 9.7 для анализа эффективности линейной регрессии построена псевдоэкспе-риментальная последовательность точек. Для этого к точным значениям линейной функции прибавлены случайные числа, сгенерированные с помощью функции rnorm. Затем проведена линейная регрессия полученного набора точек. Ее результат можно сравнить с исходной прямой. Как видно из рис. 9.7, параметры регрессионной прямой заметно отличаются от исходных, но на графике обе прямые проходят достаточно близко.
N := 20	i:=0.. N-I
vx = i vy > 10 + 2vx + motm(N,0,5)
Рис. 9.7. Линейная регрессия с помощью функции line
Представление параметров регрессионной прямой в виде вектора не всегда удобно. Поэтому, кроме функции line, в MathCAD существуют еще две функции, реализующие линейную регрессию по методу наименьших квадратов, но .позволяющие находить коэффициенты а и Ь по отдельности.
	intercept (vx, vy) — находит коэффициент а регрессионной прямой, что соответствует первому элементу вектора результата функции line.
	slope (vx,vy) — находит коэффициент Ь регрессионной прямой, что соответствует второму элементу вектора результата функции line.
Регрессия
159
Как уже упоминалось, для линейной регрессии в MathCAD реализован также метод медиан. Для поиска коэффициентов регрессионной прямой с использованием этого метода служит функция medfit(vx,vy). Результатом данной функции является вектор, аналогичный результату функции line. Нельзя утверждать, что один из двух методов регрессии более точен. Если теоретическая зависимость близка к линейной, то метод наименьших квадратов почти всегда даст лучший результат. Поэтому использовать функцию medfit следует только том случае, если результат функции line вас по тем или иным причинам не устраивает. Тем более метод наименьших квадратов является наиболее универсальным, а потому функция line считается в MathCAD основной функцией для проведения линейной регрессии.
Полиномиальная регрессия
Кроме аппроксимации неизвестной функции с помощью прямой, широкое применение находит и аппроксимация с помощью полиномов различной степени. Для этой цели в MathCAD существует функция regress (vx,vy,n). Последний аргумент данной функции задает степень используемого полинома. Вы можете использовать полином любой степени, но не большей, чем число точек в выборке минус один. Если выбрана степень единица, то вы получите знакомую линейную регрессию. Если степень полинома равна числу точек в выборке минус один, то вы получите полиномиальную интерполяцию, поскольку параметры такого полинома можно выбрать так, чтобы он проходил через все точки выборки. На практике наибольшее применение находит полиномиальная регрессия от второй до пятой степени.
Результатом функции regress является вектор, содержащий коэффициенты аппроксимирующего полинома. Эти коэффициенты располагаются в векторе начиная с четвертого элемента в порядке возрастания степеней. Первые три элемента данного вектора являются служебными и используются для того, чтобы результат функции regress можно было использовать как первый аргумент функции interp по аналогии со сплайн-интерполяцией. На рис. 9.8 для иллюстрации полиномиальной регрессии построена псевдоэкспериментальная последовательность точек с использованием методики, описанной выше. При этом в качестве теоретической функции был использован полином третьей степени с коэффициентами {0, 1, -2, 1}. Как видно из примера, коэффициенты, рассчитанные функцией regress, значительно отличаются от коэффициентов исходного полинома. Тем не менее в области экспериментальных точек обе кривые достаточно близки, хотя за пределами этой области резко расходятся. Это означает, что результат такой регрессии не стоит использовать для определения параметров теоретической зависимости или экстраполяции. Используйте его для вычисления этой зависимости в области экспериментальных точек (данное замечание не касается других видов регрессии).
В MathCAD существует еще одна функция, предназначенная для полиномиальной регрессии. Функция loess (vx,vy, span) позволяет провести регрессионную кривую, состоящую из отрезков полиномов второй степени. Результат данной функции должен быть использован в качестве первого аргумента функции interp по аналогии с функциями сплайн-интерполяции. Первые два аргумента функции loess нам уже знакомы, а последний — span — определяет, насколько сложный вид будет иметь результирующая кривая. Принцип работы функции loess схож с алгоритмом сплайн-интерполирования.
Функция loess, кроме наглядного графического представления не дает возможности получить какую-либо информацию о теоретической зависимости. Поэтому использование данной функции рекомендуется только в тех случаях, когда абсолютно не известно, какое аналитическое выражение может иметь теоретическая зависимость. На рис.9.9 показано применение функции loess. Также для сравнения приведен ре
760 Глава 9. Обработка экспериментальных данных средствами MathCAD
зультат сплайн-интерполяиии того же псевдоэкспериментального набора точек. Как видим, инетрполяционная кривая не имеет почти ничего общего с теоретической, в то время как регрессионная кривая достаточно точно передает ее поведение.
N := 10	i:=0.. N- 1
3	2
у(х) := х - 2х + х
vy := y(vx) + monn(N,0,0.02)
v := regress(vx,vy,3)
vT = (3 3 3 0.017 0.736 -1.359 0.585) t(x) := interp(v,vx,vy,x)
Рис. 9.8.Пример использования полиномиальной регрессии
/ -	Выбирать значение параметра span можно по-разному. Если выбрано большое значе-
д&хЯИ	ние для параметра span (больше двух), то кривая не будет отличаться от результата
функции regress со значанием параметра п = 2. Если выбрано маленькое значение, то результат может мало отличаться от интерполяционной кривой, т.е. содержать большое количество “паразитных” экстремумов, а при очень маленьких значениях span будет выдано сообщение об ошибке. В реальных задачах вам придется подбирать значение span для достижения наилучшего результата. В справочной системе MathCAD в качестве начального значения span рекомендуется устанавливать число 0.75. Автор рекомендует несколько более сложный, но более универсальный способ выбора этой величины. В тех случаях когда по экспериментальным точкам можно приблизительно представить себе поведение теоретической кривой, следует приблизительно оценить количество точек перегиба т в этой зависимости. В таком случае оптимальное значение параметра span будет лежать недалеко от значения span = 3/(т + 2).
Многомерная полиномиальная регрессия
Полиномиальная регрессия может быть использована для построения аппроксимирующей поверхности для двухмерных экспериментальных зависимостей. Для этого служат описанные выше функции regress и loess в комбинации с функцией iri-terp. В целом процедура построения двухмерной полиномиальной регрессии очень похожа на двухмерную сплайн-интерполяцию. Отличие состоит лишь в способе организации массивов данных. Регрессионную поверхность можно построить для любого набора точек в пространстве, так что нет необходимости задавать значения функции в узлах сетки. На рис. 9.10 построен псевдоэкспериментальный набор точек, причем координаты .г и у каждой точки сгенерированы случайным образом. Следует заметить,
Регрессия
161
что для двухмерных зависимостей никакой сортировки массивов производить не нужно. Как видно из рис. 9.10, для того чтобы воспользоваться функцией regress, массивы координат точек vx и vy, которые соответствуют аргументам исследуемой функции х и у, должны быть объединены в один массив Мху таким образом, чтобы первый столбец этого массива содержал значения координаты х, а второй — соответствующие значения координаты у. После этого можно воспользоваться функцией regress (Мху, vz,n), где Мху — построенный массив координат точек, соответствующих аргументам исследуемой функции, vz — массив значений исследуемой функции, п — порядок регрессионной полиномиальной поверхности. Результат функции regress должен быть использован в качестве первого аргумента функции interp. Функция interp в данном случае строится точно так же, как и в случае двухмерной сплайн-интерполяции, поэтому описывать ее еще раз не будем.
N := 30	i:=0.. N-1
у(х) := sin(2x) + 0.4sin(5x + 1)
vx^ := ' 1	3 vy - y(vx) + morm(N,0,0.5)
vr := loess(vx,vy,0.4) vi := psplme(vx,vy)
yi(x) := interp(vr,vx,vy,x) yi(x) := interp(vi,vx,vy,jf)
Рис. 9.9. Аппроксимация набора точек функциями loess и pspline
.	'	Следует помнить, что, как и в случае одномерной полиномиальной регрессии, есть
Il	'	связь между максимально возможным порядком полиномиальной поверхности и ко-
>	\	личеством точек в выборке. Количество точек должно быть всегда больше или равно
с количеству параметров в уравнении поверхности. Напомним, что для полиномиальной поверхности порядка п количество параметров равно (п + !)(// + 2)/2.
Также для построения полиномиальной регрессионной поверхности можно воспользоваться функцией loess (Мху, vz, span). По аналогии с одномерной регрессией данная функция строит регрессионную поверхность из “лоскутков” полиномиальных поверхностей. Аргументы данной функции Мху и vz — это те же массивы, что были описаны выше для функции regress, а параметр span, как и в одномерном случае, контролирует сложность результирующей поверхности. Результат функции loess должен быть использован в качестве первого аргумента функции interp. В целом функция loess используется в двухмерном случае аналогично функции regress и функциям сплайн-интерполяции, поэтому детально на ней останавливаться не будем.
162	Гпава 9. Обработка экспериментальных данных средствами MathCAD
vx := runif(N,0,10)	i:=0.. N-l
vy := runif(N,0,10)	Err := monn(N,0,0.1)
vz - sin|'Cl.3 vx)sin(0.5vyJ + monti(bl,0,0.1)^
,, <0>	<1>
Mxy -.= vx Mxy := vy
v := regress(Mxy,vz,4)
Рис. 9.10. Полиномиальная регрессия двухмерной экспериментальной зависимости
Функции regress и loess можно использовать для аппроксимации функций, зависящих от любого числа переменных. Это означает, что вы можете построить регрессионную поверхность в пространстве любой размерности. Если вы, например, экспериментально исследуете величину, зависящую от т параметров, то для проведения регрессии по экспериментальным точкам должна быть создана матрица Мху. Каждый столбец этой матрицы представляет значения одного из параметров экспериментальной зависимости. То есть матрица Мху должна состоять из т столбцов и количества строк равного количеству точек в выборке. Далее можно проводить регрессию аналогично двухмерному случаю, т.е. использовать функцию regress(Мху,vz,п) или loess(Мху,vz,span), а затем функцию interp (v, Мху, vz , w). Очевидно, аргумент w в данном случае должен быть m-компонентным вектором аргументов.
Е,. Использовании функции loess для аппроксимации многомерных зависимостей I имеет ограничение. Вы можете проводить регрессию для четырехмерных зависимо-стей, но не выше. Это связано со сложностью используемого алгоритма. При этом использование функции regress не имеет никаких ограничений, хотя для многомерных зависимостей следует всегда помнить о том, что количество точек в выборке должно превышать количество коэффициентов в полиноме.
Аппроксимация набора точек различными элементарными функциями
Физические величины зачастую подчиняются зависимостям, отличным от линейных или полиномиальных. Поэтому в MathCAD существует несколько функций, позволяющих выполнить регрессию с использованием зависимостей, наиболее часто встречающихся на практике. Таких функций в MathCAD всего шесть.
Регрессия
163
	expf it (vx,vy,vg) — регрессия экспоненциальной функцией у = a-ehx + с.
	Igsfit(vx,vy,vg) — регрессия логистической функцией у = а!(1 + b-e~cx).
	s in f i t (vx, vy, vg) — регрессия синусоидой функции у = a-s'uKx + b) + с.
	logf it (vx, vy, vg) — регрессия логарифмической функцией у = a-ln(x + b) + с.
	lnfin(vx,vy) — регрессия упрощенной двухпараметрической логарифмической функцией у = a-lnix) + Ь',
	pwrf it (vx, vy, vg) — регрессия степенной функцией у = а-хь + с.
Из перечисленных функций только Infit использует двухпараметрическую аппроксимирующую функцию. Применение данной функции полностью аналогично применению функций line и medfit. Точно так же, результатом будет двухкомпонентный вектор, содержащий оптимальные значения параметров а и Ь, входящих в аппроксимирующую функцию.
Все остальные перечисленные функции используют трехпараметрическую аппроксимирующую функцию, нелинейную по параметрам. При вычислении оптимальных значений трех параметров регрессионной функции по методу наименьших квадратов возникает необходимость в решении сложной системы из трех нелинейных уравнений. Такая система часто может иметь несколько решений. Поэтому в функциях MathCAD, которые проводят регрессию трехпараметрическими зависимостями, введен дополнительный аргумент vg. Данный аргумент — это трехкомпонентный вектор, содержащий приблизительные значения параметров а, Ь и с, входящих в аппроксимирующую функцию. Конечно, в большинстве случаев нет необходимости в точной локализации значений параметров, но в некоторых случаях неправильный выбор элементов вектора vg может привести к неудовлетворительному результату регрессии. На рис. 9.11 приведен пример проведения экспоненциальной регрессии с помощью функции expfit. Регрессия проведена при двух различных значениях вектора vg.
vgl := -1
( 5.016 >
vl := expfit(vx,vy,vgl) vl = —1.498
vlj-X
rl(x) := vlg-e + vl^
V 0.852 J
vg2 := 1
/	6 \
v;	-1.155x10
v2 := expfit(vx,vy,vg2) v2 = t 13J x 10" 6
v2i x
r2(x) := v2Qe + v2^	1.155 x 10 У
Рис. 9.11. Проведение экспоненциальной регрессии
164	Гпава 9. Обработка экспериментальных данных средствами MathCAD
Из приведенного графика видно, что в данном случае простейший вариант задания вектора vg (все элементы — единицы) приводит к неудовлетворительному результату. При этом другой простой вариант выбора вектора vg приводит к правильному ответу.
Аппроксимация набора точек функциями, заданными пользователем
В MathCAD существуют средства для проведения регрессии самого общего вида. Это означает, что вы можете использовать любые функции в качестве аппроксимирующих и находить оптимальные значения любых их параметров, как линейных, так и нелинейных.
В том случае если регрессионная функция является линейной по всем параметрам, т.е. представляет линейную комбинацию жестко заданных функций, провести регрессию можно с помощью встроенной функции Unfit (vx, vy, F). Первые два аргумента данной функции — это уже хорошо знакомые массивы координат экспериментальных точек. Третий аргумент F — это векторная функция, из элементов которой должна быть построена линейная комбинация, наилучшим образом аппроксимирующая заданную последовательность точек. Результатом работы функции Unfit является вектор линейных коэффициентов. Каждый элемент этого вектора — коэффициент при функции, стоящей на соответствующем месте в векторе F. Таким образом, для того чтобы получить регрессионную функцию, достаточно скалярно перемножить эти два вектора. На рис. 9.12 построена псевдоэкспериментальная последовательность точек с логарифмической зависимостью. Проведена попытка аппроксимировать данную последовательность линейной комбинацией различных функций, отличных от логарифма. Как видно из графика на рис. 9.12, полученная регрессионная кривая достаточно хорошо аппроксимирует заданную последовательность точек.
Система MathCAD также предоставляет возможность проводить регрессию самого общего вида, т.е. с использованием произвольной функции. Вы можете использовать функции, произвольно зависящие от любого числа параметров. Для этого можно выполнить следующую последовательность действий (рис. 9.13).
1.	Вначале, как обычно, должны быть заданы массивы экспериментальных (или, как на рис. 9.13, псевдоэкспериментальных) данных vx и vy.
2.	Для задания аппроксимирующей функции нужно построить векторную функцию F следующим образом:
♦	аргументами данной функции должны быть независимая переменная х и вектор параметров регрессии и;
♦	первый элемент вектора F должен быть аппроксимирующей функцией;
♦	каждый последующий элемент вектора должен быть производной от аппроксимирующей функции по одному из параметров.
В итоге количество элементов в векторе F должно быть на единицу больше, чем количество параметров в аппроксимирующей функции (на рис. 9.13 использована трехпараметрическая аппроксимирующая функция).
3.	Следует задать вектор приблизительных значений параметров vg.
4.	Для вычисления оптимальных значений параметров нужно воспользоваться функцией genfit (vx, vy, vg, F). Результатом данной функции будет вектор, содержащий значения параметров в том же порядке, в котором они были введены в векторе и при описании функции F.
5.	Для того чтобы получить регрессионную функцию, следует подставить результат функции genfit в первый элемент вектора F (см. последнюю строку перед графиком на рис. 9.13).
Регрессия
165
N:« 30	i:=0.. N- 1
2 - x
y(x) := x e	Err := morm(N,0,0.05)
N := 30	i:=0._ N- 1
vx. :=i+l vy:= ln(vx) + morm(N,0,0.1)
F(x):= e-x
, 1 >
' 0.575 4
R := linfit(vx,vy,F) R= -2.533
4 0.384 , rfx) ;= F(x)-R
R := genfit(vx,vy,vg,F)
<x) := F(x,R)Q
p
vg := -1
ч1 )
( 0.13 ''
R = -1.127
< 0.225 j
Оценка точности аппроксимирующей функции
Метод наименьших квадратов заключается в вычислении среднеквадратичного отклонения случайной величины от аппроксимирующей функции и нахождения таких значений параметров, при которых это отклонение будет минимальным. Кроме вычисления оптимальных значений параметров, может возникнуть необходимость вычислить и значение среднеквадратичного отклонения, которое им соответствует. Эта величина дает возможность оценить, насколько точно регрессионная функция аппроксимирует экспериментальные данные (очевидно, чем меньше отклонение, тем точнее аппроксимация).
Для вычисления среднеквадратичного отклонения в MathCAD существует встроенная функция stderr (vr, vy) (рис. 9.14). Здесь vy — уже знакомый нам массив экспериментальных значений функции, vr — массив значений регрессионной функции в точках, заданных массивом vx. Если регрессионная функция задана в виде функции г(х), то для вычисления вектора vr можно воспользоваться оператором векторизации (см. рис. 9.14).
Кроме среднеквадратичного отклонения, для оценки качества регрессионной функции используют величину коэффициента корреляции между массивами vy и vr. Для вычисления этого коэффициента можно воспользоваться встроенной функцией corr(vr,vy) (см. раздел “Основы статистического анализа данных средствами MathCAD” главы 8). Чем ближе данный коэффициент к единице, тем лучше выбран
166	Глава 9. Обработка экспериментальных данных средствами MathCAD
ная функция аппроксимирует экспериментальные данные (см. рис. 9.14). В том случае когда вас интересует, какая из двух функций лучше аппроксимирует данные, нет большой разницы, какую величину оценивать.
N := 20	i:=0.. N-1
vx:=i+l vy := Ir^vx) + rnorm(N,0,0.1)
( 0.778 A
R := line(vx.vy) R = I I <x) := Rg + xRj
( 0.963 >
L := lnfit(vx, vy) L = I 0 0JJ I := 4)	+ L1
stdert(vx,vy) = 0.277
stderr(i(vx) ,vy) = 0.277
stderr (Kvx) ,vy) = 0.104
con(vx,vy) = 0.94
corr(n'vx), vy) = 0.94
c otr(l(vx) •vy) = 0-992
Для оценки точности линейной регрессии можно вводить просто stderr(vx,vy) или corr(vx.vy) (см. рис. 9.14).
Следует помнить, что тот факт, что какая-то функция лучше аппроксимирует набор экспериментальных точек, еше не означает, что данная функция лучше аппроксимирует теоретическую зависимость (например, для любой интерполяционной кривой среднеквадратичное отклонение всегда точно равно нулю, а коэффициент корреляции равен единице).
СЕсли вы используете функции stderr или согг для оценки качества регрессионной функции, то это следует делать только для функций полученных с помощью встроенных функций выполнения регрессии MathCAD. Если вы захотите оценить таким образом качество любой другой функции, то в большинстве случаев получите не-
удовлетворительный результат.
Сглаживание
Система MathCAD применяется для обработки различного рода сигналов. При этом очень важной процедурой является очистка сигнала от шумов. Один из вариантов решения данной задачи — это использование алгоритмов сглаживания (smoothig). Существует множество различных алгоритмов сглаживания данных, причем не всегда можно заранее сказать, какой из них будет наиболее эффективен для той или иной задачи. В MathCAD реализовано три различных алгоритма сглаживания и соответственно существует три функции для их выполнения.
Сглаживание
167
Дискретное преобразование Фурье
Еще одна операция, широко применяемая при обработке сигналов, — вычисление Фурье-компоненты, или Фурье-спектра. Для проведения данной операции с сигналами, заданными в виде массивов данных, система MathCAD содержит численный алгоритм, называемый быстрым преобразованием Фурье (Fast Fourier Transform — FFT). Для реализации данного алгоритма в MathCAD существует несколько различных функций.
	В том случае если набор данных v состоит из 2™ элементов (или может быть дополнен до данной размерности), а также все числа в наборе данных действительны, то для проведения Фурье-преобразования следует пользоваться функциями fft(v) или FFT(v). Обе эти функции выполняют Фурье-преобразование, а различие между ними заключается лишь в нормировке результата (используемые формулы можно найти в справочной системе MathCAD). Результатом функций fft и fft будет массив из 1т~ 1 + 1 комплексных чисел.
	Если какое-либо из условий перечисленных выше не выполняется, т.е. массив содержит комплексные числа или не может быть расширен до размерности 2т, то следует пользоваться функциями cfft(v) и CFFT(v). Данные функции работают медленнее, чем описанные выше, но являются более универсальными. Результатом функций cfft и cfft будет массив комплексных чисел той же размерности, что и исходный.
Результатом каждой из перечисленных функций будет массив комплексных чисел. Исходя из этого массива можно построить амплитудно-частотную (АЧХ) или фазо-частотную (ФЧХ) характеристику сигнала. Для построения АЧХ следует вычислить абсолютное значение каждого элемента в массиве. Пример такого построения приведен на рис. 9.17.
Для каждой из четырех перечисленных функций, выполняющих преобразование Фурье, в MathCAD существует функция, выполняющая соответствующее обратное преобразование. Эти функции называются ifft, IFFT, icfft, icfft. В качестве аргумента каждой из этих функций, во избежание недоразумений, следует использовать только результат соответствующей функции, выполняющей прямое преобразование.
Как пример применения прямого и обратного преобразований Фурье можно привести амплитудный метод фильтрации шумов. На рис. 9.18 проведена фильтрация сигнала, построенного в примере на рис. 9.17. Конечно, такой метод фильтрации можно использовать, только если уровень шума ощутимо ниже уровня сигнала.
Резюме
Подведем итоги данной главы.
Результаты любого эксперимента представляют собой дискретный набор точек на плоскости или в пространстве. Для того чтобы анализировать такие результаты, необходимо исходя из этих значений построить непрерывную кривую (или поверхность для двухмерных данных), которая бы отражала закономерности поведения реальной физической зависимости.
Построение кривой, соединяющей попарно все экспериментальные точки, называется интерполяцией. В MathCAD реализовано два вида интерполяции — линейная интерполяция и сплайн-интерполяция. Для проведения линейной интерполяции, т.е. соединения экспериментальных точек отрезками прямых, служит функция 1interp(vx,vy,х).
Резюме
169
q
N := 2 i := 0.. N - 1 xmax := 30
Err:= mortn(N,0,2)
y(x) = sin(2?ix) + cos(6ax)
vx := — xmax vy^ := yjvxj + Err
-10
vx
F .= fft(vy) к .= 0.. 2^ vf. := —— K xmax
Рис. 9.17. Использование функции fft для построения АЧХ-сигнала
FIk =lf(JFk| <<5’°'Fk) vyI:=iffi(F1)
-2-L
VXj
Рис. 9.18. Амплитудная фильтрация сигнала
Кубический сплайн строится из отрезков полиномов третьей степени. Для проведения интерполяции кубическими сплайнами в MathCAD предусмотрены три различие функции: Ispline(vx,vy), pspline(vx,vy), cspline(vx,vy). Различие между тими функциями заключается лишь в поведении интерполяционной кривой в на-альной и конечной точках. Результатом каждой их этих функций является вектор, эторый должен быть использован в качестве первого аргумента функции interp. убические сплайны также можно использовать и для построения интерполяционной эверхности для двухмерных экспериментальных данных.
'О	Гпава 9. Обработка экспериментальных данных средствами MathCAD
Кроме кубического сплайна, MathCAD дает возможность построить В-сплайн. Основной отличительной особенностью этого сплайна является то, что точки сшивки отдельных отрезков полиномов могут не совпадать с экспериментальными точками, а задаются вручную, поэтому построение такого сплайна намного сложнее, чем кубического.
Были рассмотрены также средства MathCAD для проведения регрессии различных видов.
Для линейной регрессии в MathCAD реализовано два метода: метод наименьших квадратов (функции line, slope, intercept) и метод медиан (функция medfit).
Полиномиальная регрессия в MathCAD может проводиться как одним полиномом (функция regress), так и отрезками полиномов (функция loess). Результат каждой из этих функций должен быть использован в качестве первого аргумента функции interp. Полиномиальная регрессия с помощью функций regress и loess может также быть проведена для многомерных экспериментальных зависимостей.
В MathCAD встроены функции для проведения регрессии с использованием некоторых наиболее часто встречающихся зависимостей. Кроме этого, использование функций Unfit и genfit позволяет провести регрессию с использованием любой заданной функции.
Для оценки качества регрессионной функции можно оценить величину среднеквадратичного отклонения (с помощью функции stderr) или величину коэффициента корреляции (с помощью функции согг).
В MathCAD также существуют функции, предназначенные для сглаживания наборов точек без проведения регрессии. Таких функции всего три: medsmooth, ksmooth и supsmooth. Все они реализуют различные алгоритмы сглаживания, качество каждого из которых зависит от конкретной задачи.
Если массив данных представляет собой запись того или иного сигнала, то может возникнуть необходимость в вычислении Фурье-компоненты данного сигнала. Если значения массива являются действительными числами (а для сигналов это всегда так), то для проведения Фурье-преобразования можно воспользоваться функциями f ft или fft. В случае комплексных данных следует использовать функции cfft и CFFT. Для каждой из этих четырех функций есть функция, выполняющая обратное преобразование: ifft — IFFT, icfft — ICFFT.
Тесты
Эти тесты помогут вам закрепить материал данной главы. Ответы ищите в приложении А.
Найдите правильный ответ
Некоторые из предложенных вопросов могут иметь по несколько правильных ответов.
1.	Какие из перечисленных функций предназначены для проведения линейной регрессии:
a)	line;
б)	Unfit;
в)	linterp;
г)	medfit;
д)	intrcept.
Тесты
171
I.	Результат каких из следующих функций нужно использовать в качестве аргумента функции interp:
a)	Ispline;
б)	line;
в)	regress;
г)	genfit;
д)	linterp.
3.	Сколько различных алгоритмов сглаживания реализовано в MathCAD:
а)	1;
б)	2;
в)	3;
г)	4.
4.	Какие из перечисленных функций быстрого преобразования Фурье возвращают массив равный по размеру исходному:
a)	fft;
б)	cfft;
в)	FFT;
г)	icfft.
Правда или ложь?
Каждое утверждение либо верно, либо нет.
5.	Для всех функций одномерной интерполяции и регрессии массив значений аргумента vx должен быть отсортирован в порядке возрастания.
6.	При проведении двухмерной сплайн-интерполяции количество линий сетки по каждой переменной должно быть равно 2", где п — целое положительное число.
7.	Функции regress и loess можно использовать для аппроксимации многомерных зависимостей.
8.	Функция interp используется как при проведении интерполяции, так и в процессе регрессии.
9.	Функции stderr и согг можно использовать для оценки качества любой аппроксимирующей функции.
172	Гпава 9. Обработка экспериментальных данных средствами MathCAD
Глава 10
Программирование в среде MathCAD
В этой главе...
♦	Что такое программирование в MathCAD
♦	Создание локальной переменной внутри программы
♦	Значение, возвращаемое программой
♦	Проверка условий в программах
♦	Создание циклов
♦	Обработка ошибок
♦ Резюме
Как уже говорилось, MathCAD позволяет быстро и наглядно решать многие задачи, которые раньше решались только с использованием языков программирования. Но существуют ситуации, когда без программных структур обойтись невозможно. Для этих целей в MathCAD предусмотрены некоторые возможности программирования, рассмотрению которых посвящена данная глава.
Что такое программирование в MathCAD
В предыдущих главах при проведении вычислений в каждом формульном блоке мы строили выражение, иногда довольно сложное, но оно всегда вычислялось за один логический шаг. Но иногда может возникнуть необходимость построить вычисляемое выражение, которое состояло бы из нескольких шагов. Для этого можно, конечно, воспользоваться какими-то промежуточными переменными, но намного проще это делается, если создать программу. Таким образом, программа в MathCAD — это выражение, которое состоит из нескольких строк. Конечно, на самом деле все обстоит не так просто — программа в MathCAD строится по определенным правилам, которых нет в обычных выражениях. Да и возможности программ не ограничиваются многострочными формулами, для этого действительно можно было бы использовать промежуточные переменные. Программа в MathCAD может содержать локальные присваивания, проверки условия и ветвление, различные типы циклов. Как видите, это как раз те возможности, которые стирают грань между MathCAD и полноценными языками программирования.
Для написания программ служит панель математических инструментов Programming, которая, напомним, может быть вызвана щелчком на соответствующей кнопке панели инструментов Math. После щелчка на любой кнопке панели инструментов Programming в программу вставляется тот или иной управляющий оператор. Следует сразу предупредить, что все операторы в программу вставляются только после щелчка на соответствующей кнопке панели Progamming (или с помощью клавиатурного сочетания), но ни в коем случае не набираются на клавиатуре.
ЯЦ Для того чтобы превратить обычное однострочное выражение в многострочное, т.е. лХ в программу, достаточно щелкнуть на кнопке с надписью Add Line панели инстру-ментов Programming. Это приведет к тому, что в рабочей области документа появит-ся вертикальная черта, а справа от нее — два поля ввода (напомним, что пустые по-ля ввода в MathCAD обозначаются черным квадратиком). Вертикальная черта означает, что строки, находящиеся справа от нее, образуют линейную программную последовательность операций. Эта черта является особенностью программ — MathCAD, хотя в сложных разветвленных программах таких линий даже может быть несколько. В полях ввода теперь можно ввести первые две строки программы. Если далее нужно будет добавить в программу еще строки, то достаточно снова щелкнуть на кнопке Add Line. Для того чтобы удалить пустую строку из программы, установите курсор на соответствующем поле ввода и нажмите <BackSpace>.
Не стоит забывать, что программа является полноценным выражением MathCAD. го выражение может быть использовано для присваивания значения скалярной или кторной переменной или определения функции, или даже в составе другого выра-ения, в том числе и другой программы.
Создание локальной переменной внутри программы
Внутри программы можно использовать глобальные переменные документа, но южно создать в программе другие переменные, доступ к которым может осуществиться только из самой программы. Эти переменные называются локальными. Для ого, чтобы создать такую переменную следует выполнить следующие действия.
1.	Если программа еще не создана, то создайте ее, щелкнув на кнопке Add Line.
2.	Установите курсор на пустом поле ввода в той строке программы, где нужно ввести присваивание переменной.
3.	Введите имя переменной.
4.	Введите оператор локального присваивания. Для этого щелкните на кнопке с изображением стрелки влево («-) на панели инструментов Programming или нажмите <{> на клавиатуре. При этом возле имени переменной появится стрелка влево.
5.	Справа от стрелки, в поле ввода введите выражение, которое нужно присвоить переменной.
Выражения, которые присваиваются локальным переменным — это любые выражения MathCAD. Они могут содержать любые функции (кроме тех, которые используются в составе группы решения) и даже другие программы.
Для оператора локального присваивания, так же как и для операторов обычного (:=) и глобального присваиваний (s), можно изменить внешний вид так, чтобы он вы-хххк- глядел как обычный знак равенства. Для этого достаточно вызвать контекстное ме-ню этого оператора (щелкнуть на нем правой кнопкой мыши) и в нем выбрать команду View Definition As=>Equal.
% Хотя в программе и можно использовать глобальные переменные в любых выражениях, но изменить их значение никак нельзя. Так что следует помнить, что единственным результатом работы программы является значение, которое она возвращает.
Значение, возвращаемое программой
Последняя строка любой программы не должна содержать никаких управляющи: операторов. Эта строка задает значение, возвращаемое программой. Естественно, лю бая программа обязательно должна возвращать некоторое значение как результат вы числений. Это значение может быть как числом, так и функцией.
174
Гпава 10. Программирование в среде MathCAi
Таким образом, последняя строка программы может содержать имя локальной переменной либо некоторое математическое выражение, куда входят как локальные, так и глобальные переменные. Результат вычисления этой строки — это и будет то число или функция, которые будут рассматриваться как результат работы программы.
Есть также другой способ задать значение, возвращаемое программой. Для этой цели служит управляющий оператор return. Этот оператор немедленно прекращает выполнение программы и возвращает значение выражения, записанного в поле ввода справа от этого оператора. Напомним, что в программах все операторы должны вставляться только с помощью панели инструментов Programming, а ни в коем случае не набираться вручную.
Проверка условий в программах
Программы MathCAD могут быть не только линейными, но и разветвленными. Одним из вариантов ветвления в программах является проверка условия. Условия в программах MathCAD могут проверять значения переменных, как локальных так и глобальных, а также выражений, содержащих эти переменные.
Для проверки условий в программах MathCAD служит оператор if. Если читатель знаком с любым языком программирования, то этот оператор наверняка ему известен. Чтобы использовать этот оператор в MathCAD, выполните следующие действия.
1.	Установите курсор на пустом поле ввода в строке программы, где нужно проверить условие.
2.	Щелкните на кнопке с надписью if панели инструментов Programming. При этом в строке появится оператор if и два поля ввода — справа и слева от оператора.
3.	В поле ввода справа от оператора if нужно ввести условие. Для ввода условий служит панель инструментов Boolean. На этой панели есть кнопки, предназначенные для проверки любых типов условий (=, >, с, >, <, ^), а также кнопки, предназначенные для вставки логических операций, которые позволяют создавать сложные условия. В условиях MathCAD есть возможность использовать следующие логические операции.
♦	-> — операция не (логическое отрицание). Например, следующее условие выполняется, если х не равно двум: -1(х = 2).
♦	л — операция “и” (логическое умножение). Например, следующее условие выполняется, если число х попадает в интервал [0, 2]: (х > 0)л(х < 2).
♦	v — операция “или” (логическое сложение). Например, следующее условие выполняется, если любое из чисел х или у больше нуля: (х > 0)v(y > 0).
♦	© — операция “исключающее или” (неравнозначность). Например, следующее условие выполняется, если только одно из чисел х или у больше нуля: (х > 0) © (у > 0).
4.	В поле ввода слева от оператора if нужно ввести строку программы (или несколько строк: для этого следует установить курсор на этом поле ввода и щелкнуть на кнопке Add Line), которая будет выполняться если введенное условие истинно.
5.	Если невыполнение условия должно привести к выполнению какого-либо иного программного кода, можно в строке, следующей за оператором if, вставить оператор otherwise. В поле ввода слева от этого оператора необходимо ввести строку программы, которая будет выполняться только в том случае, если не выполнилось условие, заданное в операторе if.
Проверка условий в программах
175
Если в программе введено подряд несколько строк с оператором if, то выражение слева от otherwise (если оператор otherwise введен в следующей строке после послед-него оператора if) будет выполнено только в том случае, если не выполняются усло-ЯНм* вия, заданные во всех операторах if.
Чаще всего оператор if используется для ввода разрывных или кусочнонепрерывных функций. На рис. 10.1 показан пример использования оператора if для задания функции модуля, которая является кусочно-непрерывной.
fi'zi := х if х > О
-х otherwise
Рис. 10.1. Задание кусочно-непрерывной функции с помощью программы с оператором if
Создание циклов
Другим очень важным элементом при создании нелинейных программ являются циклы. Циклы позволяют повторять несколько раз выполнение одного и того же программного блока. Для создания циклов в MathCAD предусмотрено два оператора: for и while. Опять же, если читатель уже знаком с использованием этих операторов, ему будет легче понять их использование в MathCAD.
Циклы с оператором while
Самыми простыми, и в то же время самыми универсальными, являются циклы, которые выполняются до тех пор, пока выполняется определенное условие. Для построения таких циклов в MathCAD используется оператор while. После вставки этого оператора в строку программы его сопровождают два поля ввода.
while 
В поле ввода ниже слова while следует ввести тело цикла — одна или несколько строк программы (напомним, что для ввода нескольких строк следует пользоваться кнопкой Add Line), выполнение которых нужно повторить несколько раз.
 В поле ввода справа от слова while следует ввести условие. Это условие строится по тем же правилам, что и в операторе if. Оно будет проверяться после каждого выполнения тела цикла и в тот момент, когда условие перестанет выполняться, повторение тела цикла прекратится.
Пример использования цикла while показан на рис. 10.2. Программа в этом примере вычисляет квадратный корень с помощью приближенной итерационной формулы. Тело цикла выполняется до тех пор, пока результат не достигнет заданной точности.
Циклы с оператором for
Существует также и другой тип циклов — циклы со счетчиком. В таких циклах создается некоторая переменная-счетчик, значение которой изменяется после каждого выполне-
176
Гпава 10. Программирование в среде MathCAD
ния тела цикла. Выход из цикла происходит при достижении этой переменной заданного конечного значения. Для реализации таких циклов в MathCAJD используется оператор for, хотя во многих случаях то же самое может быть реализовано и с помощью цикла while. После вставки данного оператора в программу рядом с ним вы увидите три поля ввода.
sqrt(a,s) :=
es <г- 1
while |es - a| > s
if a A es <--es + —
2 \ es)
es
sqrt'37,10 4l = 6 022762537525
Рис. 10.2. Использование цикла while в программе приближенного вычисления квадратного корня
for I €
	В поле ввода после слова for, но перед знаком е, следует указать имя переменной-счетчика. Это может быть любое имя, которое не использовалось ранее в программе. Внутри цикла можно использовать эту переменную в любых выражениях, нельзя только присваивать ей никакого значения (если вы внутри цикла присвоите значение переменной-счетчику, то это не приведет к ошибке, но, скорее всего, результат программы будет отличаться от того, что вы ожидали).
	В поле ввода после знака е следует указать диапазон значений которые будет принимать переменная-счетчик. Вводить диапазон в данном случае следует так же, как и при создании переменной диапазона (см. главу 2 раздел “Переменные диапазона”). Вместо диапазона в данном поле ввода можно указать имя некоторого массива (вектора или матрицы). В таком случае переменная-счетчик будет последовательно принимать значения всех элементов этого массива. Естественно, в таком случае количество повторов цикла будет равно количеству элементов массива. Возможность перебирать элементы массива не может быть просто реализована с помощью цикла while, поэтому именно в таких случаях цикл for и является незаменимым.
	В поле ввода под словом for следует, как и в предыдущем случае, ввести тело цикла.
На рис. 10.3 можно увидеть две программы, использующие цикл for. Первая программы (функция F(n)) вычисляет значение факториала. В этой программе проиллюстрировано использование диапазона значений для задания переменной-счетчика. Вторая программа (функция sum(v)) вычисляет значение суммы элементов массива. В данной программе переменная-счетчик пробегает все значения массива v.
v:=(l 2 3 4 5)
F(n) -
f^- 1
for i e 1.. n
f <— f-i
sum(v) =
f<-0
for i e v
fir- f+ i f
F(5) = 120
sutn(v) = 15
Рис. 10.3. Примеры использования цикла for
Создание циклов
177
Использование операторов break и continue
Иногда возникает необходимость повлиять на выполнение цикла некоторым образом, например прервать его выполнение по какому-либо условию или выполнять некоторые итерации не так, как другие. Для выполнения таких действий в MathCAD предусмотрены операторы управления циклами break и continue.
Оператор break, если он расположен внутри цикла, означает немедленное прекращение выполнения текущей итерации и выход из цикла. Если есть необходимость прекратить выполнение цикла по какому-либо условию, то следует использовать конструкцию следующего вида: break if [условие]. Как пример использования оператора break, на рис. 10.4 приведена программа, которая выделяет из массива все элементы от начала и до первого вхождения в него заданного числа. Как видим, оператор break здесь прерывает выполнение цикла, если найден элемент массива, совпадающий с заданным числом.
Оператор continue используется для того, чтобы немедленно перейти в начало цикла и начать следующую итерацию. Этот оператор также обычно используется в составе конструкции следующего вида: continue if [условие]. Оператор continue используется в случаях, когда необходимо чтобы некоторые вычисления производились для одних итераций и не производились для других. Пример использования оператора continue приведен на рис. 10.5. В примере построена программа, которая заполняет элементы квадратной матрицы в шахматном порядке.
x <— 0
for ie 0..n
s(v,x) :=
j<-0
for i € V
for j e 0.. n
continue if mod(i + j,2) = 0
x x + 1
a. . x
i.J
v:=(l 2 3 0,5)
Kv,ff)T = (;i 2 3)
(O 1 0 2\
v 0 8 oj
3 0 4 0
0 5 0 6
Рис. 10.4. Применение оператора break
Рис. 10.5. Использование оператора continue
Рекурсия
Во многих языках программирования предусмотрена возможность задания функции таким образом, чтобы в теле функции содержался вызов этой же функции. Такое построение вычислений называется рекурсией, или рекуррентными вычислениями. MathCAD также позволяет проводить рекуррентные вычисления, естественно, только в программных блоках. Как пример таких вычислений на рис. 10.6 приведен пример функции вычисления факториала с использованием рекуррентного алгоритма.
F(x) :=
1 if х = 1
xF(x - 1) otherwise
F(5) = 120
Рис. 10.6. Рекуррентные вычисления в MathCAD
178
Глава 10. Программирование в среде MathCAD
Обработка ошибок
Система MathCAD предоставляет пользователю некоторый контроль над ошибками, которые могут возникнуть при вычислении выражений или при выполнении программ. Для этой цели служит оператор on error, который можно вставить шелкнув на соответствующей кнопке панели инструментов Programming. После вставки этого оператора следует заполнить два поля ввода — слева и справа от него.
	В поле ввода справа от оператора on error следует ввести выражение или программу, которые необходимо вычислить (известно, что это выражение может содержать ошибку при определенных значениях входных параметров).
	В поле ввода слева от оператора on error следует ввести число, выражение или программу, которые должны быть вычислены, а значение возвращено как результат в том случае, если выражение, записанное справа, возвращает ошибку.
Для того чтобы лучше понять, как работает этот оператор, взгляните на рис. 10.7. Если аргументу функции присвоено нулевое значение, то в программе возникает ошибка — деление на нуль. Но за счет оператора on error сообщение об ошибке не выводится, а функции в этой точке присваивается значение, указанное слева от оператора on error — значение машинной бесконечности, которое равно 1О307.
f(x) := оо on error
z 1
for i € 1 .. 100
(1'
Z <— Z +	-
\ X J
307
ад = 1.2 ад = i x ю
Рис. 10.7. Подавление сообщения об ошибке с помощью оператора on error
Конечно, если программа содержит только простейшие математические операции, то никаких ошибок, кроме деления на нуль или превышения наибольшего допустимого числа, в ней возникнуть не может. В таких программах оператор on error используется редко. Но для более сложных программ, которые содержат функции решения дифференциальных уравнений, аппроксимации или другие сложные функции MathCAD, использование on error может помочь избавиться от многих трудностей.
Иногда может возникнуть ситуация обратная той, которая была описана выше, т.е. необходимо, чтобы при определенных условиях результатом выражения было сообщение об ошибке, хотя в действительности при этом не возникает ни одной стандартной ошибки MathCAD. Для таких случаев в MathCAD предусмотрена функция error. В качестве аргумента этой функции нужно в кавычках указать текст сообщения об ошибке, который должен быть выведен. Таким образом, если необходимо, чтобы программа возвращала ошибку при определенном условии, то следует использовать конструкцию следующего вида: error (" [текст ошибки]") if [условие].
f(x) := епогСтолько положительные х") if х < 0
- otherwise х
ff-Г) = > ||
только положительные х
Рис. 10.8. Использование функции error для вывода сообщения об ошибке
Обработка ошибок
179
□ Скорее всего, если вы попытаетесь ввести текст ошибки на русском языке, то введенные символы отобразятся на экране неправильно. Однако можете заметить, что в самом сообщении об ошибке все буквы отображаются так как нужно. Для того чтобы е иметь возможность нормально вводить текст на русском языке в аргумент функции error (а также во все другие функции работы со строками), следует изменить Шрифт, который используется во встроенном стиле Constant. Для того чтобы этот стиль правильно отображал русские буквы, установите курсор на любом числе или строковом выражении в формульном блоке. При этом в поле на панели инструментов Formatting, отображающем текущий стиль, должно быть написано—Constant. Теперь выберите из раскрывающегося списка шрифтов шрифт поддерживающий кириллицу, например Times New Roman Cyr (по умолчанию для данного стиля установлен Times New Roman).
Резюме
В данной главе рассматриваются возможности программирования в среде MathCAD.
Для написания программ служит панель инструментов Programming. На этой панели расположены все инструменты MathCAD, используемые при написании программ.
♦	Add Line — добавление новой строки в программу или создание заготовки программы из двух строк, если программы еще не существует.
♦	<---локальное присваивание. Присваивание значения переменной, кото-
рая является локальной для данной программы, т.е. доступ к ней может осуществляться только в программе. Глобальные переменные документа можно использовать в программах, но нельзя изменять их значение.
♦	if — управляющий оператор проверки условия. Позволяет в зависимости от условия выполнять или не выполнять те или иные действия.
♦	otherwise — используется сразу после оператора if и позволяет выполнять определенные действия в том случае, если условие, заданное в if, не выполняется.
♦	for — оператор создания цикла со счетчиком. В этом цикле создается переменная-счетчик, которая может пробегать значения из заданного диапазона или значения всех элементов заданного массива.
♦	while — оператор создания цикла, выполнение которого продолжается до тех пор, пока выполняется указанное условие.
♦	break — выполнение этого оператора приводит к немедленному завершению текущего цикла. Оператор break можно использовать как с циклами for, так и с циклами while. Если этот оператор используется не внутри цикла, то результатом будет прекращение выполнения программы, а результатом программы будет результат последнего вычисленного выражения.
♦	continue — выполнение этого оператора приводит к завершению текущей итерации цикла и началу новой. Его также можно использовать как с циклами for, так и с циклами while.
♦	return — немедленное завершение работы программы и возвращение заданного выражения в качестве результата. Операторы break, continue и return чаще всего используются в комбинации с оператором if.
♦	on error — в случае, если при выполнении программы возникает одна из ошибок MathCAD, этот управляющий оператор дает возможность подавить эту ошибку и вернуть другое выражение в качестве результата.
180
Гпава 10. Программирование в среде MathCAD
Тесты
Эти тесты помогут вам закрепить материал данной главы. Ответы ищите в приложении А.
Найдите правильный ответ
Каждый из предложенных вопросов может иметь несколько правильных ответов.
1.	Какие из перечисленных управляющих операторов используются в программах MathCAD:
a)	break;
б)	goto;
в)	return;
г)	end.
2.	Какие из перечисленных зарезервированных слов MathCAD являются операторами:
a)	continue;
б)	mod;
в)	sin;
г)	for.
3.	Какие логические операции можно использовать при построении сложных условий: а) и;
б)	или;
в)	исключающее или;
г)	равнозначность;
д)	неравнозначность.
Правда или ложь?
Каждое утверждение либо верно, либо нет.
4.	В программах MathCAD можно использовать циклы двух типов.
5.	С помощью цикла while можно заменить любой цикл for.
6.	Оператор otherwise всегда должен находиться в следующей строке программы после оператора if.
Тесты
181
Глава 11
Дополнительные возможности MathCAD
В этой главе...
♦	Обработка изображений и звука с помощью MathCAD
♦	Анимация графиков
♦	Использование элементов управления в документах MathCAD
♦	Резюме
Данная глава описывает некоторые дополнительные возможности MathCAD, которые на практике понадобятся не часто, поскольку они не связаны непосредственно с проведением вычислений. Тем не менее знать о таких возможностях системы весьма полезно.
Разделы данной главы не связаны по смыслу между собой. В первом разделе вы узнаете о средствах MathCAD для чтения, записи и обработки изображений и звука. Во втором разделе вы научитесь создавать анимацию любых графиков MathCAD. Третий раздел посвящен использованию в документах MathCAD элементов управления Windows, таких как кнопки, ползунки, поля ввода и др.
Обработка изображений и звука с помощью MathCAD
Хотя обработка изображений и звука и не является основным назначением MathCAD, вычислительный потенциал системы позволяет производить самые разнообразные преобразования с массивами. Таким образом, если графическая или звуковая информация может быть представлена в виде массива, то в дальнейшем для ее обработки можно применить все разнообразные возможности по обработке массивов данных MathCAD.
Все встроенные функции, предназначенные для чтения и записи изображений и звуковых файлов, можно найти в категории File Access библиотеки функций MathCAD (в главе 7, “Работа с внешними источниками данных”, мы уже встречались с функциями из этой категории, предназначенными для чтения и записи текстовых файлов).
Чтение графических файлов
Для чтения изображения из файла и представления его в виде массива в MathCAD существует множество встроенных функций. Вы можете убедиться в этом, просмотрев содержимое категории File Access библиотеки функций MathCAD. Это связано с тем, что информация о цвете каждой точки может быть по-разному представлена в массивах. Наиболее распространенным является представление цвета каждой точки в виде трех чисел — интенсивностей красного, зеленого и синего компонента.
Вы можете прочитать в массив информацию сразу обо всех трех компонентах цвета с помощью функции readrgb(s). Аргументом данной функции, как и остальных
описанных ниже, является строка, содержащая имя файла изображения и путь к нему. Результатом этой функции будет массив, количество строк в котором равно высоте изображения в пикселях, а количество столбцов — в три раза больше, чем ширина изображения. Данный массив является объединением трех массивов, каждый из которых несет информацию об отдельном компоненте цвета и может быть выделен с помощью функции submatrix (см. главу 3, “Построение и форматирование графиков”).
Можно также прочитать из файла только один из компонентов цвета. Для чтения красного, зеленого и синего компонентов предназначены соответственно функции READ_RED(S) , READ_GREEN(S) И READ_BLUE(S) .
Если необходимо прочитать изображение, записанное в градациях серого цвета, то следует воспользоваться функцией READBMP (S). Даже если читаемое изображение является цветным, оно будет автоматически преобразовано в градации серого цвета.
л Функции чтения графических файлов MathCAD позволяют читать и записывать графические файлы в таких популярных форматах, как bmp, gif, jpg, tga и рсх.
Отображение массива в виде изображения
Для отображения содержимого массива в виде картинки следует выбрать команду меню InsertoPicture. В результате в документ будет вставлен шаблон с одним полем ввода, куда нужно ввести имя массива (рис. 11.1). Любой массив будет отображен в градациях серого. В том случае если нужно отобразить цветной рисунок, должно быть задано три массива данных для каждого цветового компонента (красный, зеленый и синий). Имена этих массивов нужно ввести в указанное поле ввода через запятую.
А •= READBMP(“ d:\Buterfly.jpg")
А
Рис. 11.1. Чтение и вывод графического файла
Для корректного отображения массива в виде картинки необходимо, чтобы значения всех его элементов находились в диапазоне от 0 до 255.
Если щелкнуть мышью на изображении, то рядом с ним появится панель инструментов настройки изображения (Picture Toolbar) (рис. 11.2). Кнопки данной панели инстру-
Обработка изображений и звука с помощью MathCAD
183
ИГ
ik А L
ЁЗ Ч и %)
*+ х па * 1а Чй
ц] 1» Its ”6
X |295" — YjryF
R {255“ G {255 В [255 J
Рис. 11.2. Панель инструментов настройки изображения
ментов позволяют повернуть изображение, изменить масштаб, настроить палитру и т.д. Назначение всех кнопок данной панели инструментов вы можете найти в приложении В.
Средства MathCAD обработки массивов можно использовать и для изменения изображений. Например, для того чтобы преобразовать изображение в негатив, достаточно провести простейшую матричную операцию: в := 255-А. На рис. 11.3 приведен пример более сложного преобразования изображения, вставленного выше, с использованием функции сглаживания данных ksmooth (см. главу 9, “Обработка экспериментальных данных средствами MathCAD”). Результат такого преобразования можно сравнить с использованием графических фильтров в таких пакетах, как Adobe Photoshop. Конечно, в графических пакетах все преобразо
вания изображений выполняются проще и быстрее. Зато в MathCAD вы можете сами придумать алгоритм преобразования, да и встроенные возможности MathCAD по обработке массивов намного богаче любого набора графических фильтров (ни один графический пакет не позволяет, например, провести Фурье-преобразование изображения).
Не стоит, однако, считать, что функции обработки изображений в MathCAD были введены для развлечения. Изображения во многих случаях могут быть весьма удобным способом представления двумерных данных. На сегодняшний день результаты самых разнообразных экспериментов представляют в виде изображений, ведь если данные являются негладкими, то отображение в виде трехмерной поверхности не будет наглядным.
Запись массива в графический файл
В категории File Access библиотеки функций MathCAD можно также найти несколько функций для сохранения массива в виде графического файла. Для сохранения изображения в градациях серого цвета можно воспользоваться функцией writebmp(S). Как и для функций чтения, аргумент данной функции — это строка, содержащая имя файла и путь к нему. Использование функций сохранения файлов несколько необычно для функций MathCAD — их следует вводить слева от оператора присваивания. Например, чтобы сохранить изображение, полученное в примере на рис. 11.3 в файл, можно ввести WRITEBMP( "d: \blur. jpg" ) := в.
Если возникает необходимость в сохранении цветного изображения, массивы, представляющие каждый цвет, должны быть объединены в один с помощью функции stack в таком порядке (слева направо): красный, зеленый, синий. Полученный объединенный массив можно сохранить в виде цветного графического файла с помощью функции writergb(S). Ее использование полностью аналогично использованию функции writebmp.
Работа со звуковыми файлами
Одной из областей применения системы MathCAD является обработка сигналов. Инструменты, которые позволяют обрабатывать сигналы, представленные в виде массивов, были рассмотрены ранее в главе 9, “Обработка экспериментальных данных средствами MathCAD”. Здесь будут рассмотрены средства, позволяющие прочитать звуковую информацию из файла в массив MathCAD.
Система MathCAD позволяет читать информацию из звуковых файлов в формате WAV. Однако звук, записанный в таком формате характеризуется несколькими параметрами, которые могут быть важны для правильной обработки сигнала и для правильного его сохранения после обработки. Для определения этих параметров служит встроенная функция getwavinfo(S) (на рис. 11.4 использован файл одного из стан-
764
Глава 11. Дополнительные возможности MathCAD
nc := cols(A) nr := rows(A)
j := 0 . nc - 1	i:= 0.. nr - 1
В
Рис. 11.3. Преобразование графических данных
дартных звуковых сигналов Windows). Аргументом данной функции должно быть имя звукового файла и путь к нему. Функция возвращает вектор из четырех элементов, которые имеют следующие параметры:
	количество каналов в сигнале (1 означает моносигнал, 2 — стереосигнал и т.д.);
	частота дискретизации сигнала;
	разрядность сигнала;
	число байт в секунду.
Для того чтобы прочитать звуковой файл в массив, служит функция readwav(s). Функция возвращает массив, параметры которого зависят от параметров звукового файла. Количество столбцов в этом массиве соответствует количеству каналов, а максимальное значение его элементов может быть вычислено как два в степени равной разрядности сигнала.
После того как сигнал был прочитан, его можно анализировать теми же средствами, что и любой другой массив. Следует лишь помнить, что зачастую массивы, прочитанные из звуковых файлов, содержат очень большое количество элементов, поэтому к ним следует с осторожностью применять любые сложные преобразования. В качестве нетривиального примера обработки звукового сигнала на рис. 11.5 с помощью несложной программы построена его временная диаграмма Фурье. Результат выведен в виде изображения, о которых речь шла выше в данной главе.
Для записи массива в виде звукового файла служит функция WRiTEWAV(S, f ,b), где s — как и раньше, имя и путь к файлу, f — частота дискретизации и Ь - разрядность записанного сигнала.
Обработка изображений и звука с помощью MathCAD
185
I := GETWAVINFOf11 c:\windows\tnedia\ringin.wav11)
IT = (1 11025 8 11025)
S = READWAV(" c:\wiridows\rnedia\ririgin.wav1')
n = rows(S) n = 9981
i:=0,10..n- 1
Рис. 11.4. Чтение данных из звукового файла
F :=
/ n
ш <- floor — I 128
for > € 0.. ni - 1
for kе 0.. 127
s «- (S<0>) k  '	'i-128+k
P <- ffi(s)
f:=ln(|F| + l)
fe:-----—255
maxffj
f
fh
Рис. 11 j>. Построение Фурье-диаграммы сигнала
186
Глава 11. Дополнительные возможности MathCAD
Анимация графиков
Одной из самых интересных и необычных возможностей системы MathCAD является создание анимационных последовательностей на основе графиков. Возможность создания анимационных графиков можно найти во многих математических пакетах, но ни один из них не может похвастаться такой простотой данной процедуры.
Для того чтобы анимировать график, необходимо ввести в формулу, по которой он строится, встроенную переменную FRAME. Данная переменная обозначает номер кадра в анимационной последовательности. Так что при вводе функции следует учитывать, что ее значения будут целыми числами начиная с нуля. Например, для построения анимации в виде бегущей волны можно задать функцию для построения графика у(х) = sin(2n-(x + FRAME)/20). Далее необходимо выполнить следующую последовательность действий.
1.	На основе заданной функции постройте график. Он будет построен с использованием нулевого значения переменной FRAME.
2.	Выберите команду меню Tools->Animation->Record. После этого на экране появится окно записи анимации (рис. 11.6).
3.	Выделите с помощью мыши область документа, которая будет включена в анимацию.
4.	В окне записи анимации установите начальное (поле From) и конечное (поле То) значения переменной FRAME, а также скорость проигрывания анимации в кадрах за секунду (поде At).
5.	После того как все приготовления закончены, следует щелкнуть на кнопке Animate. Это приведет к появлению на экране еще одного окна, в котором можно будет проиграть полученный анимационный ролик.
6.	Далее, если необходимо, созданный ролик можно сохранить на диске в формате AVI. Для этого следует щелкнуть на кнопке Save As в окне записи анимации. Это приведет к вызову стандартного диалогового окна Windows для сохранения файла.
{Record Animation
For FRAME	-----------
From	j
To	?9*~ i
At	pcT’ i J1” °
Frames/Sec ' J
FRAME- S
I J
Select ar the FRAM and chocs
Рис. 11.6. Создание анимационного ролика
Использование элементов управления в документах MathCAD
При создании с использованием MathCAD различного рода обучающих систем есть возможность осуществлять взаимодействие с пользователем через стандартные
Использование элементов управления в документах MathCAD	187
элементы управления Windows. Тогда вы сможете заблокировать все вычислительные блоки документа и осуществлять взаимодействие с пользователем через эти элементы управления. Для вставки в документ одного из таких элементов следует щелкнуть на соответствующей кнопке на панели инструментов Controls.
Каждый элемент управления является полноценным компонентом MathCAD. Это означает, что к нему можно подключать переменные ввода и вывода для взаимодействия с вычислительным процессом. Для этого служат уже знакомые команды контекстного меню Add Input Variable, Add Output Variable, Remove Input Variable и Remove Output Variable. Также для каждого элемента можно изменить некоторые настройки, например, надпись для кнопки или диапазон значений для ползунка. Для этого следует выбрать команду Properties из подменю контекстного меню, название которого будет разным для разных компонентов (например, для кнопки это подменю будет называться Mathsoft Button Control Object). Будьте внимательны, поскольку команда с таким же названием есть и в самом контекстном меню.
Для каждого элемента может быть написана программа на языке VB Script или JScript, которая будет управлять его взаимодействием с переменными ввода и вывода. Описание данных языков выходит за рамки данной книги. Поэтому, если вы не знаете ни одного из этих них, можно пользоваться теми стандартными программами, которые вставляются вместе с каждым элементом (например, программа обработки объекта ползунка просто присваивает переменной вывода текущее его положение).
Резюме
В данной главе были рассмотрены средства MathCAD для чтения и записи графических и звуковых файлов. Все функции MathCAD, выполняющие действия с файлами, собраны в категории File Access библиотеки функций. Данные функции позволяют прочитать графический или звуковой файл в массив MathCAD или записать содержимое массива в файл.
Для чтения цветного изображения можно воспользоваться функцией READRGB. Результатом данной функции будет массив, который является объединением трех массивов для каждого из трех цветовых компонентов изображения. Также можно прочитать каждый цветовой компонент изображения по отдельности. Для этого служат функции READ_RED, READ_GREEN И READ_BLUE.
Для того чтобы прочитать графический файл в градациях серого цвета, можно воспользоваться функцией READBMP. Несмотря на название, данную функцию, как и другие подобные, можно использовать для чтения графических файлов не только в формате вмр, но и jpg, gif, PCX, tga.
Для записи массива в графический файл можно воспользоваться функцией WRITERGB для записи цветного изображения и writebmp для записи изображения в оттенках серого. Особенностью данных функций, как и остальных функций, предназначенных для записи файлов, является то, что их необходимо вводить слева от оператора присваивания.
Для работы со звуковыми файлами в MathCAD существуют следующие функции: READWAV для чтения звукового файла в массив, WRITEWAV для записи массива в звуковой файл и getwavinfo для получения информации о параметрах звукового файла.
Также в данной главе был рассмотрен процесс создания анимационных роликов на основе графиков MathCAD. Для того чтобы график можно было анимировать, функция, которая на нем изображена, должна зависеть от специальной встроенной переменной frame, обозначающей номер кадра в анимационной последовательности. После того как график такой функции был построен, нужно выбрать команду меню ToolsoAnimationoRecord для вызова окна записи анимации. Записанный анимационный ролик можно сохранить в формате AVI.
188
Глава 11. Дополнительные возможности MathCAD
Тесты
Эти тесты помогут вам закрепить материал данной главы. Ответы ищите в приложении А.
Найдите правильный ответ
Каждый из предложенных вопросов может иметь несколько правильных ответов.
1.	Какие форматы графических файлов поддерживаются в MathCAD:
a)	BMP;
б)	JPG;
в)	PCX;
г)	PCD.
2.	В какой последовательности объединяются массивы значений зеленого, красного и синего компонентов цвета при чтении цветного графического файла:
а)	зеленый, красный, синий;
б)	красный, зеленый синий;
в)	красный, синий, зеленый;
г)	синий, зеленый, красный.
3.	Чему равно максимальное значение массива, прочитанного из звукового файла, если разрядность файла равна 8:
а)	128;
б)	256;
в)	255;
г)	32767.
Правда или ложь?
Каждое утверждение либо верно, либо нет.
4.	При чтении двухканального звукового файла в массив один из каналов будет утерян.
5,	После записи анимационного ролика его можно сохранить в виде файла в формате AVI.
Тесты
189
Приложение А
Ответы на тесты
В данном приложении читатель может найти ответы на тесты, предложенные в конце каждой главы. Ответы представлены в виде таблиц, причем каждой главе соответствует отдельная таблица. Каждая таблица состоит из трех столбцов: в первом — номер вопроса, во втором — правильный ответ, в третьем — комментарий автора к вопросу а также ссылка на раздел соответствующей главы, где можно найти дополнительную информацию по данному вопросу.
Глава 1
Номер вопроса	Правильный ответ	Комментарий и источник дополнительных сведений
1	б	Меню Math имели предыдущие версии MathCAD. Раздел “Строка меню”
2	а, б	Команда Paste Special вообще не встречается в контекстных меню, а команда Format есть только в контекстных меню графиков
3	а, б	Панели Tools вообще не существует, а панель Symbolic не отображена по умолчанию, так как может быть быстро включена с помощью кнопки на панели Math
4	а, б, в, д	Из формул по физике в справочных таблицах MathCAD 11 представлена только механика, поэтому закон Ома там найти не удастся. Раздел “Справочные таблицы MathCAD”
5	Верно	Можно сразу открыть практически неограниченное количество документов и переключаться между ними с помощью меню Window
6	Неверно	Только основные команды меню вынесены в виде кнопок на панели инструментов (в основном они сосредоточены на панели инструментов Standard)
7	Неверно	При редактировании формул, например, курсор приобретает вид линий редактирования
8	Неверно	Эта команда служит для предварительного просмотра документа перед печатью, а для изменения параметров бумаги служит команда File^Page Setup. Раздел “Печать”
Глава 2
Номер вопроса	Правильный Комментарий и источник дополнительных сведений ответ
1	а	Если выражение заключено между линиями редактирования и вертикальная линия находится справа от него, то это выражение всегда будет первым операндом введенного оператора. В случае оператора деления — это делимое. Раздел “Ввод выражений с клавиатуры”
2	а, б	Прокомментируем каждый из вариантов ответа: а — имя может быть любой длинны; б — имя может содержать русские символы и символ подчеркивания; в — имя не может содержать пробелов; г — имя не может начинаться с цифры. Раздел “Присваивание переменной значения”
Номер вопроса	Правильный ответ	Комментарий и источник дополнительных сведений
3	б	Раздел “Переменные диапазона’’
4	б	Раздел “Размещение блоков на странице”
5	а, в, г	Вариант б надуман. Раздел “Форматирование результата вычислений”
6	Верно	Это единственный стиль, который должен присутствовать в любом шаблоне и не может быть удален. Раздел “Применение стилей"
7	Неверно	Также их можно ввести просто с клавиатуры. Раздел “Единицы измерения физических величин’’
8	Верно	Раздел “Управление процессом вычислений”
9	Верно	Для этого служат скрываемые зоны. Раздел “Защита документа”
10	Неверно	Раздел “Единицы измерения физических величин”
Глава 3
Номер вопроса	Правильный ответ	Комментарий и источник дополнительных сведений
1	в	Раздел “График параметрически заданной поверхности”
2	а, г, д	Варианты бив надуманы. Раздел “Форматирование линий на графике”
3	а, б	Варианты виг — это типы трехмерных графиков, раздел “Форматирование линий на графике”
4	б	Нижняя граница радиуса может быть изменена только вручную, а границы угла изменить нельзя. Раздел “Построение графика в полярной системе координат”
5	Неверно	Это возможно. Для этого аргумент изображаемой функции должен быть задан заранее как переменная диапазона. Раздел “Использование переменных диапазона”
6	Верно	Раздел “Изменение масштаба графика" .
7	Верно	Раздел “Форматирование линий на графике”
8	Неверно	На панели Graph нет графика типа Patch Plot. Раздел “Построение и форматирование трехмерного графика”
9	Верно	Раздел “Форматирование графика поверхности”
Глава 4
Номер вопроса	Правильный ответ	Комментарий и источник дополнительных сведений
1	а, в	Вариант в также верен, поскольку такая запись соответствует первому элементу вектора, созданного из второго столбца матрицы А, т.е. то, что и нужно. Раздел “Вывод и изменение отдельных элементов массива”
2	в	Раздел “Объединение матриц и выделение подматрицы”
3	а, в, г	Внутри группы решения не должно быть операторов присваивания, а ввод начальной точки должен располагаться перед ключевым словом given. Раздел “Системы нелинейных уравнений”
Ответы на тесты
191
Номер вопроса	Правильный ответ	Комментарий и источник дополнительных сведений
4	Все	На самом деле в символьных вычислениях можно использовать все описанные в данной главе функции
5	Неверно	Номер начального элемента массивов можно изменить, присвоив значение встроенной переменной origin. Раздел “Вывод и изменение отдельных элементов массива”
6	Неверно	Также можно воспользоваться функцией matrix. Раздел “Использование переменных диапазона”
7	Неверно	Функция 1 solve подходит только для неоднородных систем. Раздел “Решение систем линейных уравнений”
8	Верно	Для этого служит функция minerr. Раздел “Приближенное решение системы, которая не имеет точного корня"
Глава	5	
Номер вопроса	Правильный ответ	Комментарий и источник дополнительных сведений
1	а, в	Панель инструментов Symbolic содержит операторы интегральных преобразований и разложения в степенной ряд, которые используются в математическом анализе
2	в, г	Раздел “Символьное вычисление сумм”
3	а, б, г	Раздел “Разложение функции в степенной ряд Тейлора”
4	Все	Раздел “Интегральные преобразования”
5	Верно	Раздел “Пределы последовательностей”
6	Верно	Раздел “Производные высших порядков”
7	Верно	Для вычисления односторонних производных оператор производной используется в комбинации с оператором одностороннего предела. Раздел “Вычисление односторонних производных”
8	Неверно	Использование оператора assume дает возможность накладывать на параметры те или иные условия. Раздел “Интегрирование функций с параметром"
9	Неверно	Использование команды меню позволяет разложить в ряд лишь функции одной переменной в окрестности нуля. Раздел “Разложение функции в степенной ряд Тейлора”
Глава 6
Номер вопроса	Правильный ответ	Комментарий и источник дополнительных сведений
1	Все	Раздел “Возможности MathCAD для решения задач с дифференциальными уравнениями”
2	а, б, в	Функция rkfixed не может дать решения ни в одной жесткой задаче. Раздел “Решение жестких уравнений и систем”
3	б, д	Функции odesolve и pdesolve являются единственными функциями MathCAD, предназначенными для решения дифференциальных уравнений с использованием группы решения
192
Приложение А
Номер вопроса	Правильный ответ	Комментарий и источник дополнительных сведений
4	Верно	Уравнения высоких порядков могут быть легко сведены к системе уравнений первого порядка, а именно на такие системы и ориентировано большинство функций MathCAD
5	Неверно	Функция rkadapt возвращает решение на всем интервале интегрирования, хотя только в конечной точке результат имеет высокую точность
6	Неверно	Невозможно решить краевую задачу напрямую, но можно привести ее к задаче Коши с помощью функции sbval и затем решить. Раздел “Приведение краевых задач к задачам Коши”
7	Неверно	Матрица J включает в себя не только матрицу Якоби системы, но и производные от уравнений системы по независимой переменной. Раздел “Решение жестких уравнений и систем”
8	Верно	Алгоритм multigrid может работать только с матрицами такого размера. Раздел “Решение уравнения Пуассона с нулевыми граничными условиями”
Глава 7
Номер	Правильный	Комментарий и источник дополнительных сведений
вопроса	ответ	
1	д	Размер таблицы данных в MathCAD ограничен только памятью компьютера. Раздел “Таблицы ввода данных в MathCAD”
2	а, в	Раздел “Обмен данными с другими приложениями”
3	Верно	Такую связь можно установить либо для записи, либо для чтения данных
4	Верно	MathCAD поддерживает около десяти различных форматов файлов. Раздел “Экспорт данных во внешние файлы”
5	Неверно	Компонент может вообще не содержать переменных ввода и вывода, хотя в таком случае теряется сама суть использования компонентов — обмен данными с другим приложением. Раздел “Обмен данными с другими приложениями”
6	Верно	Раздел “Компонент MATLAB”
Глава 8
Номер вопроса	Правильн ый ответ	Комментарий и источник дополнительных сведений
1	а, в, г	Распределение Парето не входит в набор встроенных распределений MathCAD, поэтому, если необходимо, должно быть задано вручную
2	б	функция median возвращает медиану массива, функция hmean — среднее гармоническое массива, функции amean не существует вообще
3	а	Раздел “Построение частотных гистограмм”
4	Неверно	Дискретные распределения также есть среди встроенных в MathCAD
5	Верно	Для этой цели служат функции runif и rnd. Раздел “Генерация случайных чисел с различными распределениями вероятностей”
Ответы на тесты
193
Номер вопроса	Правильный ответ	Комментарий и источник дополнительных сведений
6	Неверно	Использование функции histogramm позволяет разбивать диапазон значений величины на отрезки различной длины. Раздел “Построение частотных гистограмм”
7	Верно	Раздел “Вычисление обратной функции распределения”
Глава 9		
Номер	Правильный	Комментарий и источник дополнительных сведений
вопроса	ответ	
1	а, г, д	Раздел “Линейная регрессия”
2	а, в	Функция interp используется не только для сплайн-интерполяции, но и для проведения полиномиальной регрессии
3	в	Раздел “Сглаживание”
4	6, г	Функции fft и ifft соответственно уменьшают и увеличивают размер массива в два раза. Раздел “Дискретное преобразование Фурье”
5	Верно	Сортировка не имеет значения только в многомерной регрессии
6	Неверно	Такое ограничение на размеры массива данных часто встречается в различных алгоритмах, используемых в MathCAD, но для двухмерной сплайн-интерполяции можно использовать квадратную матрицу любого размера. Раздел “Двухмерная сплайн-интерполяция”
7	Верно	Раздел “Многомерная полиномиальная регрессия”
8	Верно	Функция interp используется для сплайн-интерполяции и для полиномиальной регрессии
9	Неверно	Оценка точности будет правильной только в том случае, если аппроксимирующая функция получена с помощью одного из алгоритмов регрессии MathCAD. Раздел “Оценка точности аппроксимирующей функции”
Глава 10
Номер вопроса	Правильный ответ	Комментарий и источник дополнительных сведений
1	а, в	Операторы end и goto существуют во многих языках программирования, но не в языке MathCAD
2	а, г	Зарезервированные слова mod и sin являются функциями а не операторами
3	а, б, в, д	Варианты вид — это на самом деле одна и та же операция, а операция равнозначности не поддерживается в условиях MathCAD. Раздел “Проверка условий в программа/’
4	Верно	Циклы типа for и while. Раздел “Создание циклов”
5	Неверно	В случае когда цикл for используется для перебора элементов массива, для его замены может потребоваться два вложенных цикла while. Раздел “Создание циклов”
6	Верно	Раздел “Проверка условий в программах”
194
Приложение А
Глава 11
Номер вопроса	Правильный ответ	Комментарий и источник дополнительных сведений
1	а, б, в	Раздел “Чтение графических файлов’’
2	б	Раздел “Запись массива в графический файл”
3	б	Раздел “Работа со звуковыми файлами”
4	Неверно	Раздел “Работа со звуковыми файлами”
5	Верно	Раздел “Анимация графиков”
Ответы на тесты
195
Приложение Б
Комбинации клавиш, используемые в MathCAD
В данном приложении приведены комбинации клавиш, используемые при работе с MathCAD. С помощью тех или иных комбинаций клавиш вы можете вставлять в документ различные специальные символы и шаблоны, а также эффективно редактировать текст и формулы. Многие комбинации клавиш уже упоминались в книге при описании соответствующих операций.
Все комбинации клавиш, собранные в данном приложении, сгруппированы в несколько таблиц. В каждой таблице представлены операции того или иного типа. Например, вставка шаблонов операторов, редактирование документа и т.д. Все таблицы кроме первой, состоят из двух колонок. В первой колонке приведены комбинация клавиш, а во второй — название вставляемого шаблона или описание выполняемого действия.
Данное приложение содержит не все комбинации клавиш, которые можно использовать в MathCAD. Для того чтобы узнать об остальных,следует обратиться к разделу Keyboard Help справочной системы MathCAD.
Греческие буквы
Для вставки в документ буквы греческого алфавита следует ввести одну из латинских букв, а затем нажать <Ctrl+G> (букву л можно также вставить с помощью комбинации клавиш <Ctrl+Shift+P>). Латинская буква будет преобразована в греческую в следующем соответствии.
а ₽ X 3
Е
Ф
Y
П
i
Ф к X
а b
с d
е f
g h
i j k
1
v о
7t 0 p о
T u w 0)
V
n о
p q
r s
t u
V w
X
У z
A
В
X
A
E
Ф
Г
H
I
6
К
A
M
A В
C D
E F
G
H I
J
К
L M
N О П
0 p
X T Y
9
Q
T
Z
N О P
Q R
S
T и
V w
X Y z
Вставка шаблонов
Основные операторы
Клавиши и комбинации клавиш	Вставляемый оператор
<:>	Присваивание переменной значения
<~>	Глобальное присваивание
<Л>	Возведение в степень
<!>	Факториал
<|>	Абсолютное значение1
<’>	Круглые скобки
<”>	Комплексное сопряжение2
<\>	Квадратный корень
<Ctrl+\>	Корень произвольной степени
<Ctrl+Shift+=>	Смешанная запись простой дроби
<;>	Переменная диапазона
<Ctrl+.>	Символьное вычисление
<Ctrl+Shift+.>	Символьное вычисление с модификатором
Операторы математического анализа	
Клавиши и комбинации клавиш	Вставляемый оператор
<?>	Первая производная
<Ctrl+Shift+/>	Производная произвольного порядка
<Ctrl+l>	Неопределенный интеграл
<&>	Определенный интеграл
<Ctrl+Shift+4>	Суммирование
<$>	Суммирование по переменной диапазона
<Ctrl+Shift+3>	Произведение
<#>	Произведение по переменной диапазона
<Ctr1+L>	Двухсторонний предел
<Ctrl+Shift+A>	Правосторонний предел
<Ctrl+Shift+B>	Левосторонний предел
Матричные операторы	
Клавиши и комбинации клавиш	Вставляемый оператор
<[>	Матричный индекс
<Ctrl+->	Оператор векторизации
<Ctrl+6>	Выделение столбца матрицы
1 Для матриц этот оператор служит для вычисления определителя.
2 Для вставки данного оператора обязательно нужно заранее ввести выражение и заключить его между линиями редактирования.
Комбинации клавиш, используемые в MathCAD
197
Клавиши и комбинации клавиш	Вставляемый оператор
<Ctrl+1>	Транспонирование матрицы
<Ctrl+4>	Сумма элементов вектора
<Ctrl+8>	Векторное произведение векторов
Логические операторы	
Клавиши и комбинации клавиш	Вставляемый оператор
<Ctrl+=>	Знак равенства в условиях и уравнениях
<Ctrl+9>	Знак “<”
<Ctrl+O>	Знак “>”
<Ctrl+3>	Не равно
<Ctrl+Shift+1>	Логическое НЕ
<Ctrl+Shift+7>	Логическое И
<Ctrl+Shift+6>	Логическое ИЛИ
<Ctrl+Shift+5>	Логическая неравнозначность
Операторы программирования	
Клавиши и комбинации клавиш	Вставляемый оператор
<]>	Добавление строки в программу
<(>	Локальное присваивание
<}>	Оператор if
<Ctrl+}>	Оператор otherwise
<Ctrl+”>	Оператор for
<Ctrl+]>	Оператор while
<Ctrl+(>	Оператор break
<Ctrl+[>	Оператор continue
<Ctrl+|>	Оператор return
<Ctrl+’>	Оператор on error
Другие объекты	
Клавиши и комбинации клавиш	Вставляемый объект
<”>	Текстовый блок
<Ctrl+K>	Гиперссылка
<Ctrl+M>	Вызов диалогового окна вставки матрицы
<Ctrl+E>	Вставка функции из библиотеки
<Ctrl+U>	Вставки единиц измерения из библиотеки
<Ctrl+T>	Картинка
<@>	Двухмерный декартов график
<Ctrl+7>	Двухмерный полярный график
198
Приложение Б
Клавиши и комбинации клавиш	Вставляемый объект
<Ctrl+2>	График поверхности
<Ctri+5>	Контурный график
<Ctrl+Shift+Z>	Знак бесконечности (°=)
Редактирование и управление документом	
Общие команды редактирования	
Клавиши и комбинации клавиш	Выполняемое действие
<Ctrt+C>	Копирование выделенного фрагмента в буфер обмена
<Ctri+V>	Вставка содержимого буфера обмена
<Ctii+X>	Вырезание выделенного фрагмента в буфер обмена
<Ctrl+Z>	Отмена последнего действия
<Ctri+F>	Вызов диалогового окна поиска
<Ctri+H>	Вызов диалогового окна замены
<Ctri+Enter>	Вставка разрыва страницы
Редактирование формул3	
Клавиши и комбинации клавиш	Выполняемое действие
<ТаЬ>	Переход в выражении к следующему незаполненному полю ввода
<Shift+Tab>	Переход к предыдущему незаполненному полю ввода
<Space>	Расширение линий редактирования
<lns>	Перемещение вертикальной линии редактирования к противоположному концу горизонтальной линии редактирования
Редактирование текста4	
Клавиши и комбинации клавиш	Выполняемое действие
<Enter>	Новый абзац
<Shift+Enter>	Новая строка в том же абзаце
<Ctri+Enter>	Изменение горизонтального размера текстового блока до текущей позиции курсора
<Ctrl+Shift+A>	Вставка математического выражения в текстовый блок
3 Для выполнения данных команд курсор должен находиться внутри формульного блока.
4 Для выполнения данных команд курсор должен находиться внутри текстового блока.
Комбинации клавиш, используемые в MathCAD	199
Управление документом
Клавиши и комбинации клавиш	Выполняемое действие
<Ctrl+F4>	Закрыть документ
<Ctrl+N>	Создать новый документ
<Ctri+O>	Открыть документ
<Ctrl+P>	Печать документа
<Ctrl+S>	Сохранить документ
<Alt+F4>	Выход из mathcad
<F1>	Вызов справки
<F9>	Вычислить выделенный блок
<Ctrl+F9>	Вычислить весь документ
<Shift+F1>	Переход в режим контекстной справки
200
Приложение Б
Приложение В
Кнопки панелей
инструментов
В данном приложении читатель может найти описание кнопок панелей инструментов системы MathCAD. Здесь, однако, не представлены панели математических инструментов Calculator, Programming, Greek, Symbolic и Modifier. Это связано с тем, что надписи на кнопках этих панелей инструментов в точности соответствуют тому, что будет вставлено в документ при щелчке на них. Также здесь вы не найдете описания панели инструментов Resources, поскольку она содержит лишь один раскрывающийся список справочных ресурсов MathCAD и кнопку для их вызова.
Каждой панели инструментов в данном приложении соответствует отдельная таблица. В первом столбце каждой таблицы представлены изображения кнопок, во втором — действия, которые они выполняют (для панели инструментов Math во втором столбце указаны названия панелей математических инструментов, соответствующих каждой кнопке на этой панели). Если той или иной кнопке соответствует комбинация клавиш на клавиатуре, то она указана в последнем столбце каждой таблицы.
Как было сказано в главе 1, на панели инструментов Standard собраны основные команды меню, поэтому в третьем столбце соответствующей таблицы вы можете найти команду меню, которая соответствует каждой кнопке этой панели.
Панель инструментов Standard
Кнопка	Действие	Команда меню	Комбинация клавиш
[□я	Создать новый документ	File^New	<Ctrl+N>
	Открыть документ	File^Open	<Ctrl+O>
и	Сохранить документ	File^Save	<Ctrl+S>
1^1	Печать документа	File^Print	<Ctrl+P>
S	Предварительный просмотр	File1^ Print Preview	
	Проверка орфографии	Tools^Spelling	
и	Вырезать	Edit>=>Cut	<Ctrl+X>
	Копировать	Edit^Copy	<Ctrl+C>
	Вставить	Edit^ Paste	<Ctrl+V>
	Отменить последнее действие	Edit^Undo	<Ctrl+Z>
0	Вернуть отмененное действие	Edit^Redo	<Ctrl+Y>
	Выравнивание блоков по горизонтали	Formats Align Regions^Across	
Е	Выравнивание блоков по вертикали	Formati=>Align Regions^ Down	
Кнопка	Действие	Команда меню	Комбинация клавиш
[да]	Вставка функции	Insert^Function	<Ctrl+E>
	Вставка единиц измерения	Insert "=>Unit	<Ctrl+U>
	Вычислить текущий блок	Tools=>Calculate=>Calculate Now	<F9>
pS]	Гиперссылка	Insert ^Hyperlink	<Ctrl+K>
0	Вставка компонента	Insert^Component	
И]	Вставка таблицы данных	Insert =i>Data-i>Table	
|lOlK gj	Изменение масштаба	View=i>Zoom	
	Вызов справки	Helpt=>Mathcad Help	<F1>
Панель инструментов Formatting
Кнопка	Действие
| Normal			Выбор стиля
| Arial		g	Выбор шрифта
|io		Размер шрифта
[в]		Жирный шрифт
0		Курсив
Й]		Подчеркивание
[g]		Выравнивание по левому краю
uu		Выравнивание по центру
[W]		Выравнивание по правому краю
j! — |		Маркированный список
I ’—I		Нумерованный список
0		Верхний индекс
| Хд|		Нижний индекс
Панель инструментов Math		
Кнопка	Панель инструментов	
	Calculator	
»]	Graph	
	Matrix	
	Evaluation	
202
Приложение В
Кнопка	Панель инструментов
И | J 12Х 1	Calculus
р*]	Boolean
ИЗ	Programming
	Greek
	Symbolic
Панель инструментов Controls	
Кнопка	Действие
|F|	Флажок
	Переключатель
ЕН	Кнопка
j -Q“vj	Ползунок
| |эЬ11	Поле ввода
[jgjj]	Список
Панель инструментов Graph
Кнопка	Действие	Комбинация клавиш
н	Двухмерный декартов график	<@>
	Изменение масштаба	
	Трассировка графика	
	Полярный график	<Ctrl+7>
	График поверхности	<Ctrl+2>
в	Контурный график "	<Ctrl+5>
[й]	Трехмерная гистограмма	
	Трехмерный набор точек	
в	Векторное поле	
Панель инструментов Matrix		
Кнопка	Действие	Комбинация клавиш
В	Вставка матрицы	<Ctrl+M>
0	Матричный индекс	<[>
Кнопки панелей инструментов
203
Кнопка	Действие	Комбинация клавиш
|х~' |	Обратная матрица	
|	Определитель матрицы	<|> -
Оператор векторизации	<Ctrl+->
tf’	Столбец матрицы	<Ctrl+6>
!	Транспонирование матрицы	<Ctrl+1>
в..,,	Переменная диапазона	<;>
Скалярное произведение	<*>
Векторное произведение	<Ctrl+8>
| Ям |	Сумма элементов вектора	<Ctrl+4>
Д	Картинка	<Ctrl+T>
Панель инструментов Evaluation	
Кнопка	Действие	Комбинация клавиш
|	|	Вычислить выражение	<=>
|if.r |	Присвоить переменной значение	<:>
| в |	Глобальное присваивание	<~>
(х|	Символьное вычисление	<Ctrl+.>
Символьное вычисление с модификатором	<Ctrl+Shift+.>
j fx |	Префиксный оператор	
zf |	Постфиксный оператор	
[xiy|	Оператор с двумя операндами	
[xfyj	Оператор в виде дерева	
Панель инструментов Calculus	
Кнопка	Действие	Комбинация клавиш
| ус |	Первая производная	<?>
|Le.|	Производная произвольного порядка	<Ctrl+Shift+/>
Знак бесконечности	<Ctrl+Shift+Z>
| : |	Определенный интеграл	<&>
| g |	Суммирование	<Ctrl+Shift+4>
204
Приложение В
Кнопка	Действие	Комбинация клавиш
|7Г|	Произведение	<Ctrl+Shift+3>
ш	Неопределенный интеграл	<Ctrl+l>
[si 1 n 1	Суммирование по переменной диапазона	<$>
Гп1 n 1	Произведение по переменной,диапазона	<#>
lim |-?в 1	Двухсторонний предел	<Ctrl+L>
lira; 1 |-*з+|	Правосторонний предел	<Ctrl+Shift+A>
lim |т»а71	Левосторонний предел	<Ctrl+Shift+B>
Панель инструментов Boolean		
Кнопка	Действие	Комбинация клавиш
[=~[	Условие равенства Меньше	<Ctrl+=>
1 > 1	Больше	< > >
[<~|	Меньше или равно	<Ctrl+9>
[>Г|	Больше или равно	<Ctrl+O>
	Не равно	<Ctrl+3>
1 —/1	Логическое не	<Ctrl+Shift+1>
рТ]	Логическое и	<Ctrl+Shift+7>
[у]	Логическое или	<Ctrl+Shift+6>
S	Исключающее или	<Ctrl+Shift+5>
Кнопки панелей инструментов
205
Предметный указатель
А
Активный документ, 23
Анимация графиков, 187
Асимптоты функции, 104
Б
Библиотека функций, 33
Быстрое преобразование Фурье, 169
В
Векторизация, 76
Г
Генерация случайных чисел, 146
Глобальное присваивание, 38
График, 53
двухмерный, 53
декартова система координат, 53; 59
изменение масштаба, 54
параметрический, 58
полярная система координат, 57; 60
форматирование, 59
форматирование линий, 61
трехмерный, 64
векторное поле, 67
многогранники, 67
параметрический, 68
поверхность, 64
Графический файл, 182
Группа решения, 83; 113
д
Дисперсия, 148
Дифференциальные уравнения, 112
жесткие задачи, 114; 116
краевая задача, 121
матрица Якоби, 117
система уравнений, 114
Дифференциальные уравнения в частных производных, 122 гиперболического типа, 123
Лапласа, 126
параболического типа, 122; 124
Пуассона, 125
Е
Единицы измерения, 40
3
Закрытие документа, 23
Запуск MathCAD, 15
Защита документа от редактирования, 50
^Звуковой файл, 184
И
Интеграл, 97
кратный, 103
методы численного интегрирования, 98
функции с параметром, 102
Интегральные преобразования, 44; 108
Интерполяция, 152
В-сплайнами, 755
двухмерная, 156
кубическими сплайнами, 154
линейная, 153
К
Квантили случайной величины, 145
Кнопки управления окном, 17
Ковариация, 148
Компоненты, 136; 140
Excel, 136
File Input, 134
File Output, 135
MATLAB, 138
Контекстная справка, 27
Контекстное меню, 21
Корреляция, 148
Крутость, 148
Курсор, 19
линии редактирования, 20
м
Массив, 36; 71
ввод матрицы с клавиатуры, 71
выделение столбца матрицы, 75
доступ к отдельным элементам, 75
изменение размеров матрицы, 72; 75
матричные операторы, 73
оператор векторизации, 76
переменная ORIGIN, 75
сортировка, 153
Медиана, 147
Меню, 17
Edit, 18
File, 18; 23
Format, 18; 45
Help, 19; 25
Insert, 18
Symbolics, 19; 42
Tools, 18
View, 18
Window, 19; 24
Метод
RADAU5, 114; 117
адаптивный, 99
Булирша-Штера, 116, 117
интегрирования бесконечных
пределов, 100
Розенброка, 117
Ромберга, 99
Рунге-Кутта, 114; 115
Рунге-Кутта адаптивный, 114; 115
О
Объединение матриц, 77
Оператор
вставка в документ, 33
символьный, 43
Открытие документа, 23
п
Панели инструментов
Controls, 187
Панель инструментов, 21
Boolean, 22
Calculator, 22
Calculus, 22; 89
Controls, 22
Evaluation, 22
Formatting, 22; 45
Graph, 22; 53
Greek, 22
Math, 22
Matrix, 22; 71
Modifier, 22
Picture, 183
Programming, 22
Resources, 22
Standard, 22
Symbolic, 22:, 42
Переменная, 34
FRAME, 187
ORIGIN, 75
TOL, 98
глобальное присваивание, 38
диапазона, 36; 56
имя переменной, 35
присвоение значения, 35
Перемещение блоков, 48
Печать, 24
область печати, 19; 24
Плотность распределения, 143
Предел, 89
двухсторонний, 91
односторонний, 92
последовательности, 90
Програм миро вание
локальная переменная, 174
обработка ошибок, 178
условие, 175
цикл, 176
Производная, 95
односторонняя, 96
первого порядка, 95
произвольного порядка, 96
Р
Рабочее окно, 17
Регрессия, 158
линейная, 159
линейной комбинацией функций, 164
многомерная полиномиальная, 161
общего вида, 165
отрезками полиномов, 160
оценка точности, 166
полиномиальная, 160
элементарными функциями, 163
Режим
автоматических вычислений, 38
выделения блоков, 48
Ряды, 92
произведение, 95
Предметный указатель
207
сумма ряда, 93
Тейлора, 106
С
Сглаживание, 167
Символьные вычисления, 42
матричные операции, 80
решение уравнений, 82
символьные операторы, 43
системы уравненй, 84
Система линейных уравнений неоднородная, 79 однородная, 85
Система нелинейных уравнений, 83
приближенное решение, 86
Скрываемая область, 49
Собственные
векторы матрицы, 78
числа матрицы, 78
Создание нового документа, 23
Сохранение документа, 24
Справочная система, 24
контекстная справка, 27
ресурсы Internet, 25
справочные таблицы, 28
учебники, 27
шпаргалки, 27
Среднее значение случайной величины, 147
Среднеквадратичное отклонение, 148
Строка
заголовка, 17
состояния, 20
Сумма ряда, 93
т
Таблица данных, 130
вставка данных из файла, 132
запись в файл, 135
заполнение с клавиатуры, 131
создание, 130
Текст
ввод, 44
изменение размеров текстового блока, 44
применение стилей, 47
форматирование, 45
форматирование абзаца, 46
Точка привязки блока, 49
У
Уравнение, 81
корни полинома, 82
Ф
Форматирование
абзаца, 46
текста, 45
численного результата, 39
Функция
вставка в документ, 33
матричная, 74
негладкая, 38
пользователя, 37
распределения, 144
ч
Частотная гистограмма, 149
ш
Шаблон
документа, 23
оператора, 33
э
Экстраполяция, 157
Экстремум функции, 104
Эксцесс, 148
Элементы управления, 187
208
Предметный указатель