ВОСКОБОЙНИКОВ,
А. Ф. ЗАДОРОЖНЫЙ
Î СНОВЫ ВЫЧИСЛЕНИЙ
И ПРОГРАММИРОВАНИЯ
В ПАКЕТЕ
MathCAD PRIME
РЕКОМЕНДОВАНО
Новосибирским региональным отделением УМО
вузов РФ по образованию в области строительства
в качестве учебного пособия для студентов,
обучающихся по направлению «Строительство»
САНКТПЕТЕРБУРГ
МОСКВА
КРАСНОДАР
2016
ББК 32.973.26#018.2я73
В 76
ISBN 9785811420520
Рецензенты:
М. С. СОППА — доктор физико#математических наук, профессор, зав. ка#
федрой физики НГАСУ (Сибстрин); А. А. ВОЕВОДА — доктор технических
наук, профессор кафедры автоматики НГТУ; Е. М. ГРИГОРЬЕВ — канди#
дат технических наук, доцент кафедры высшей математики НГАВТ.
Обложка
Е. А. ВЛАСОВА
ВВЕДЕНИЕ 3
РАЗДЕЛ ПЕРВЫЙ
ВЫЧИСЛЕНИЯ
В ПАКЕТЕ MathCAD
ТЕМА 1. МАТЕМАТИЧЕСКИЕ ПАКЕТЫ.
ТЕМА
ОБЩАЯ ХАРАКТЕРИСТИКА
ПАКЕТА MathCAD
1.1. СОВРЕМЕННЫЕ
МАТЕМАТИЧЕСКИЕ ПАКЕТЫ
В настоящее время существует множество систем компью2
терной математики или, проще, математических пакетов.
Наиболее популярными из них являются Maple, MatLab, MathCAD. Для
выполнения научноинженерных расчетов любой сложности в настоящее
время часто используют пакет MathCAD. Чем объяснить популярность этого
пакета?
Пакет MathCAD является мощной системой компьютерной математики,
сочетающей в себе визуально ориентированный входной язык, удобный ре
дактор текста и формул, численный и символьный процессоры. Пакет доста
точно прост в изучении, а наличие большого числа электронных книг суще
ственно упрощает его применение для решения конкретных научноинже
нерных задач. В 2012 г. фирмой PTC разработана новая версия этого пакета —
MathCAD PRIME 2.0, которая имеет принципиально новый интерфейс и
новые функциональные возможности по сравнению с предыдущими версия
ми: MathCAD 14, MathCAD 15. Затем появились версии MathCAD PRIME 3.0,
MathCAD PRIME 3.1, имеющие практически одинаковый интерфейс и функ
ции с MathCAD PRIME 2.0.
Замечание 1.1. В дальнейшем при изложении материала вместо длин
ных названий версий будем сокращено указывать либо MathCAD PRIME,
либо более кратко MathCAD. Если в изучаемых версиях будут отличия, то
это будет специальным образом отмечаться.
Для иллюстрации элементов визуальноориентированного программи
рования в пакете MathCAD PRIME приведем фрагмент документа, в котором
(рис. 1.1). Из рисунка видно, что запись операторов для вычисления опреде
ленного интеграла в пакете MathCAD PRIME (как и в более ранних версиях
пакета) очень близка к стандартному языку математических расчетов.
MathCAD позволяет записывать на экране компьютера формулы так, как
они представляются в печатном виде в книгах или как их записывают на
листе бумаги. Эта и другие рассматриваемые ниже особенности делают па
кет MathCAD почти идеальной вычислительной средой для решения науч
ных и инженерных задач различного уровня сложности.
Рис. 1.4
Окно списка справочных таблиц
Рис. 1.5
Создание текстовой области
Рис. 1.6
Вид ленточного интерфейса MathCAD PRIME 2.0
Рис. 1.7
Внешний вид ленточного меню MathCAD PRIME 3.0
Рис. 1.10
Содержимое раздела Символьные вычисления
Рис. 1.11
Фрагмент раздела Единицы измерения
Рис. 1.13
Вкладка Форматирование текста
В
этой главе будут рассмотрены основные (базовые) конст
рукции входного языка MathCAD для программирования простых вычисле
ний в документе MathCAD.
12345236748964
98323
83232
2654264
27464
5726
11 234567387649
1 21231
11
121 7
313
7
1 9715637
1
11
31 1 1
1
18 ОСНОВЫ ВЫЧИСЛЕНИЙ И ПРОГРАММИРОВАНИЯ В ПАКЕТЕ MathCAD PRIME
1232456725879
6
8
9
6
8 26
258
45
258
3
12 12343567859
689892
8 1 1 2 8
4
518
64848 51 1 2 3 6 8
18 4"9
8#3563828 89 23
1 1 $$ 2 3 ! 4
8
89 23
82 35638%37&
8 8 1 2 3 8
4 2
89 23
328 '63
8
""&8
558 3 1 2 3 8
4 2
38 ("538'93)438
1 2 3 8
89 23
2 *348)398#35638 1 ! 8
4 2
23
18 35638+",
4)8 4 1 - 2 - 3 8
68 35638
48.8*/
43"8 6 1 $-- 8
! 2
718 *)"68#43"&
3567892
8 7 1 $! 2 3 4 8
89 23
89
98 3563816
18.8%37&
8 9 1 $- 2 3 8
4 2
!
1
Переменная. В пакете MathCAD можно использовать следующие пере
менные: простые, индексированные (массивы), дискретные, системные и
размерные.
Имя переменных в MathCAD — это набор латинских и греческих букв,
цифр, символов и знаков подчеркивания. Прописные (большие) и строчные
(малые) буквы определяют имена разных переменных. Начинаться имя долж
но только с буквы. Использование в имени русских букв и пробелов запрещено.
Греческий символ вводится из раздела Символы вкладки Математика,
либо можно ввести сначала латинский символ, а затем нажать сочетание
клавиш [Ctrl + G].
В MathCAD переменную не нужно предварительно описывать: ее тип
определяется автоматически при задании переменной конкретного значе
ния. Незаданные переменные выделяются на экране красным цветом.
Рис. 2.1
Ввод нижних индексов имен переменных
Рис. 2.2
Диалоговое окно единиц измерения
123456789
57
59 353 79594539
95459
123456758 9
8 8
88 8
88
76758 98 888 888
63456758 98 8 18
5256758 98 8 8
355675885568 928 28 18
1
Ввод математических выражений. Математические формулы и выраже
ния в документе MathCAD вводятся в математическую область. Математиче
ская область устанавливается по умолчанию. Поэтому для запуска формуль
ного редактора достаточно позиционировать указатель мыши в любом сво
бодном месте окна и щелкнуть левой кнопкой. Начальная точка вставки
помечается синим перекрестием . При вводе букв, чисел и операторов
появляется область формул с курсором в виде синей вертикальной линии в
точке вставки. Часть математических выражений можно выделить в группу
(фрагмент) с помощью клавиши пробела, клавиш со стрелками или мышью.
Математические элементы можно группировать по одному либо все одновре
менно. Расположение курсора с левой или правой стороны элемента может
повлиять на группировку.
Если курсор справа, то следующий вводимый символ или оператор ста
вится справа от группы. Например:
Чтобы ввести дробную часть выражения под корень, выделим дробь так,
чтобы курсор стоял слева от нее. Для этого щелкнем мышкой слева от дроби
и нажмем клавишу [Пробел]:
Рис. 2.3
Программирование арифметических выражений
Рис. 2.4
Использование размерных переменных
2.4. ОПЕРАТОРЫ
МАТЕМАТИЧЕСКОГО АНАЛИЗА
В MathCAD имеется ряд операторов, позволяющих вычис
лить значения сумм, произведений, производных, определенного интегра
ла, пределов. Такие операторы часто называют расширенными арифметиче2
скими операторами, или операторами математического анализа. Обраще
ние к этим операторам (значок оператора) можно ввести в документ MathCAD
из категории Математический анализ раздела Операторы (рис. 2.6).
Рис. 2.6
Операторы математического анализа
Рис. 2.7
Ввод двойного интеграла
Рис. 2.8
Операторы
математиче
ского анализа
Рис. 2.9
Символьные вычисления
Рис. 2.10
Проверка правильности вычисления первообразной функции
1 2 12
3
3 cos 2 7 6 7 sin 6 4
8 6 3 9 50,156;
1 2
8 6 9
8 tan 2 7 5 log(44) 9
9
1 2 5249 1,302.
3 1 6
1258,6
678
e 48,4 5e
3
n ! 1 n 2 (n 3 1) 2 (n 3 2) 242 2 2 1.
3
5
в)
ex 6 x2dx.
3
13. Вычислите момент инерции стержня (масса M = 5 кг, длина L = 2 м), вращающе
гося относительно оси, проходящей через его конец и перпендикулярной ему:
L
M
I 1 3 x2 2 dx;
L
0
I 1 6,667 kg 2 m2 .
14. Вычислите момент инерции прямоугольной пластины (масса M = 5 кг, длина
L = 2 м, ширина h = 10 см) относительно оси, перпендикулярной ей и проходя
щей через ее центр:
M 1 (h2 2 L2 )
I3 ;
12
I 3 1,671kg 1 m2 .
Рис. 3.1
Содержимое вкладки Матрицы/таблицы
нием элемента матрицы может быть число или выражение. При выводе эле
ментов массива введенные выражения вычисляются.
Для обращения к элементу массива вводится имя массива, нажимается
клавиша «левая квадратная скобка» (т. е. «[») или кнопка Mi, а затем вво
дятся нужные индексы (или индексные выражения).
После ввода индексов необходимо выйти из строки нижних индексов,
нажав клавишу [®].
Создание массива вводом его элементов с клавиатуры. Чтобы вставить и
заполнить вектор, надо ввести переменную, затем оператор присваивания и
«[» (левую квадратную скобку). Появится одноэлементный массив:
Рис. 3.4
Ввод элементов вектора
Рис. 3.5
Ввод матриц и действия с ними
Рис. 3.7
Изменение значения системной переменной ORIGIN
Рис. 3.8
Выделение столбцов матрицы
Рис. 3.9
Выделение строк матрицы
Рис. 3.10
Пример таблицы данных
Рис. 3.11
Вычисление характеристик массивов
4567869
376893
8
!"3
3768!33357
!783
123
7
783
4567869
3768937
87!"3
3768!33357
!783
7
123 783
1
Рис. 3.12
Формирование матриц специального типа
12343 567897
38
937
669833933636362379838
933933
6398369
663963763
567897
38
937
669833
32379838
93393363
12343 98369
663963663
3 567897
368
79
2367
3769333633936333633
12323232343 8
7933
1
Рис. 3.13
Формирование исходных матриц
Рис. 3.14
Формирование новых матриц
123 456789
3
3
75333367893973787538
3
7973893
753
123 456789
38931837953923
3
7533
123 456789
38
36739388733
123 456789
3973
3
3
75333397673 2 2 3
1! 1!
1
40 ОСНОВЫ ВЫЧИСЛЕНИЙ И ПРОГРАММИРОВАНИЯ В ПАКЕТЕ MathCAD PRIME
Рис. 3.15
Вычисление специальных характеристик матриц
1 2 3 4 5 6 2 7 89
7
123456789 1
5 5 1275
739
3
739 779
123456376829
8189 8 1234596
89586263
88398988
7
839898
934684 4996
8 3 v 2 u . 86
484538726
84739
7663768 8189 8 1
44687486263
48
9
73468 4996
84766376829
7
8878!8748
8189 8
234563768
4"
488845348"
893487 8
4898
123456376829
76
84766376829
7
88786
498!8
8189 8 748
4"
488845348"
893487 8
48
7
83986
48
88
#663768 9 $8 #67
89586263
829
7
88398988
45637686
4 9
7
887884538726
847394468748
487829
7
8 8%88 %8
4878
4"
48
9398 2298 8%88 %8 #4"96
8889542 86263
829
7
88
1
РАЗДЕЛ 1. ВЫЧИСЛЕНИЯ В ПАКЕТЕ MathCAD 41
1 2 3 4 3 5 6 7 8 9 7
5
123456789 1
5 5 1275
739
3
739 779
2727928738 8 8 !
75248
282
2748
4698878"8
1 19248842#2783
6475$8
4698828
42#278
4698 12 8
8%82528958
&'627928
4 1
698 128 "8 19248
46985'6478388
(978
234568 ))8 )8 19248
29978 2 v* 8
1"
(2426
97748 ))8 )8 15
62482426
977483
6475$8
46988
1234567528#659 19248
234567528#659
227928288988%8
227928 8388 38
2345688462
8#65239
98
1
Используя оператор векторизации, можно выполнить любую скалярную
операцию или функцию поэлементно с вектором или матрицей.
Введем следующие обозначения: для матриц — A и M, для векторов — v
и u, для скалярных величин — z.
Пример 3.9. Даны матрица М и вектор у (рис. 3.16). Выполнить вектор
ные и матричные операции над этими массивами.
Решение. На рисунке 3.16 показан фрагмент документа MathCAD, в ко
тором выполнены необходимые операции. Объясните:
· почему векторное произведение векторов z и y дало нулевой вектор;
Рис. 3.16
Операции над массивами
Рис. 3.17
Решение системы линейных алгебраических уравнений
2 0 11 3
2 2 3 11 12 4 3 4 1 12 5
4 5
A :6 4 0 3 12 11 3 5; B :6 4 11 0 5;
44 55
41 25
7 5 1 1 14 1 8 44 55
7 12 3 8
2 1 113
2 1 12 1 4 3 4 12 0 5
C :6 4 13 1 0 5 5; D :6 4 5.
44 2 0 3 11 55 4 3 11 5
7 8 4 2 11 5
7 8
51 1 x1 2 4 1 x2 3 3 1 x3 2 7 1 x4 4 3;
6628 1 x1 2 2 1 x2 2 9 1 x3 2 3 1 x4 4 22;
7
63 1 x1 2 6 1 x2 3 5 1 x3 2 3 1 x4 4 5;
684 1 x1 2 8 1 x2 2 3 1 x3 2 4 1 x4 4 23.
Рис. 4.1
Задание типов графиков
Рис. 4.2
Поля шаблона графика функции одной переменной:
1 — область построения графика; 2 — легенда; 3 — поле ввода единицы измерения оси Y; 4 —
местозаполнитель оси Y; 5 — местозаполнитель оси X.
Рис. 4.3
Построение графика функции одной переменной
Рис. 4.4
Масштабирование
графика
Рис. 4.5
Окно Стили
Рис. 4.6
Построение на одном рисунке двух кривых
Рис. 4.7
Отображение элементов одномерных массивов
Рис. 4.9
Шаблон графика в полярной системе координат
Рис. 4.10
Графики функций в полярных координатах
Рис. 4.11
Графики функции двух переменных
Рис. 4.13
Инструменты форматирования 3Dграфика
Рис. 4.14
Построение графика поверхности с помощью функции CreateMesh
Рис. 4.15
Список типов диаграмм
Рис. 4.17
Диаграмма «водопад»
r (1) :2 3 3 2 3 cos(21).
f (x, y) :1 sin(x2 2 y2 );
N :1 20 x :1 0..N y :1 0..N;
4 (x 3 10) (y 3 10) 5
Mx,y :1 f 6 , .
8 5 5 97
П
акет MathCAD позволяет получать результат некоторых
вычислений в символьном виде, т. е. в виде аналитического выражения.
Такие вычисления называются символьными. В отличие от численных вы
числений, которые дают численный результат, при символьных вычислени
ях полученные аналитические выражения обладают высокой общностью
результатов. Символьные вычисления более удобны для отображения ана
литического результата выражения в целом или его части, не сохраняя сам
ход вычислений.
Выражения в символьных расчетах вычисляются с использованием опе
ратора символьного вывода (®) вместо оператора численного вычисления
(=). Все стандартные операторы MathCAD и многие встроенные функции
можно вычислять аналитически.
Рис. 5.1
Вызов символьных операций
1 234536178397
4
3
31
6
634
1
456
1
7839343
1
738331
1
85536145
3153
31
1941
6385451
1
855361
3617
4
51
1 !
853614336"1
9385
3173833#$11
9
5
17
55%
634316373
1
1
8#36143361853
11
7
4
5
31
&61433%
6581#
&1
1
4361854
3
31
451
4
1#
1137838#$198
1
1 '383
53616373
1
178
393
11853
1
1
855361853
117
96543
153
173833"1
131
853
1
4
1853
&1
1 (56
8
#361853
31
85536183#4656119
6#7
1
4
153
"185%
1
65
17
8396
1
43
&117455$3&1576
&11#55%
&16
6$1
1
8553617
98
31833
31#853
1
1 7
4361854
3
3185
54
1853
11##198
3&11
4
3&
1
4
159856
1535634
1
1
85536183#465611
743
1
4
153
"1
859343
15193&6
634#$1
1
#$156
1
1 '3837
5361853
1383143365831#
1
1 7
4361854
3
31#
1
4
1853
11891)3&4
851
4
1
891*
85511
836
6
1+1
1 ,78
536154385
3
1
4
1
4361853
31
1 -35361#853
31554
6
3
1
Рис. 5.3
Символьное разложение выражения
Рис. 5.4
Символьное вычисление пределов
Рис. 5.5
Примеры символьных вычислений
Рис. 5.6
Упрощение алгебраических выражений (simplify)
Рис. 5.7
Разложение алгебраического выражения (factor)
Рис. 5.8
Разложение на простые дроби
Рис. 5.9
Приведение подобных членов
Рис. 5.11
Вычисление коэффициентов полинома
Рис. 5.12
Возможные формы записи команды series
Рис. 5.13
Различные формы разложения с использованием команды series
Рис. 5.16
Решение нелинейного уравнения примера 5.11
Рис. 5.18
Решение нелинейного уравнения примера 5.13
Рис. 5.20
Проверка решений
нелинейного уравнения
Рис. 5.21
Решение неравенства примера 5.16
1 123452674869
3
23 7 17
1 52694323452674869
3666 17 7
1 123452674869
3666 7 7
1 52694323452674869
3666 7 7
1 23452674869
3 7 7
1 52694323452674869
3 7 7
1
Прямое преобразование Фурье возвращает функцию от w, определяемую
формулой:
Рис. 5.22
Прямое и обратное преобразования Фурье
Рис. 5.23
Прямое и обратное преобразования Лапласа
3 1 x2 2 2 1 x
б) ;
6 2 7 1 x 2 3 1 x2
41a 2 4
a2
в) a .
2
21
a
6. Разложите на множители выражения:
а) x4 1 10 2 x3 3 35 2 x2 1 50 2 x 3 24;
б) 24 1 a3 1 b 2 6 1 a 1 b 1 x3 2 8 1 a3 1 x2 3 2 1 a 1 x5 2 12 1 x 1 b 1 a2 3
3 3 1 x 4 1 b 3 4 1 x 3 1 a2 2 x 6 .
Рис. 6.1
Раздел функций Доступ к файлам
ФАЙЛЫ ДАННЫХ
ФАЙЛЫ ИЗОБРАЖЕНИЙ
READ_IMAGE — читает изображения в оттенках серого.
READBMP, WRITEBMP — читает или записывает растровые изображе
ния в оттенках серого.
READRGB, WRITERGB — читает или записывает изображения RGB,
сохраненные как простые упакованные матрицы.
ЗВУКОВЫЕ ФАЙЛЫ
АРГУМЕНТЫ
«file» — строка, содержащая имя файла или полный путь и имя файла.
Неабсолютные пути к файлам считаются заданными по отношению к теку
щей рабочей папке.
M — массив или (для функции WRITEPRN) скаляр.
rows (необязательный) — скаляр, указывающий строку матрицы M, с
которой следует начинать запись в файл, или двумерный вектор, указываю
щий диапазон строк матрицы M (включительно), которые нужно записать.
Если этот аргумент пропущен, функция WRITEPRN запишет все строки
матрицы в файл.
cols (необязательный) — скаляр, указывающий столбец матрицы M, с
которой следует начинать запись в файл, или двумерный вектор, указываю
щий диапазон столбцов матрицы M (включительно), которые нужно запи
сать. Если этот аргумент пропущен, функция WRITEPRN запишет все столб
цы матрицы в файл.
decsymb (необязательный) — используемый десятичный разделитель.
Можно использовать только «.» (точку).
Примечание 6.1. rows и cols — это индексы, которые начинаются с 1.
Значение системной переменной ORIGIN не влияет на работу функций
READPRN и APPENDPRN.
Пример 6.1. Записать в файл матрицу В, kй столбец которой есть выбор
ка из нормального распределения с математическим ожиданием m0 = 10 и
среднеквадратическим отклонением s0 = 2 (дисперсия соответственно 120 2 4).
Рис. 6.2
Запись структурированного файла
Рис. 6.3
Дополнительная запись и чтение структурированного файла
Рис. 6.4
Чтение
графического
файла
Рис. 6.5
Примеры
обработки
графического
файла
ПРОГРАММИРОВАНИЕ
В ПАКЕТЕ MathCAD PRIME
В этом разделе рассматриваются конструкции пакета Math
CAD, позволяющие реализовать следующие типы алгоритмов: линейный,
разветвляющийся и циклический (проще — цикл). При этом будут изучены
два способа программирования:
§ программирование в пакете MathCAD без использования программных
модулей;
§ программирование с использованием программных модулей.
Первый способ (в дальнейшем для простоты названный безмодульным
программированием) реализуется записью соответствующих конструкций
непосредственно в математических областях документа MathCAD, и он при
емлем для сравнительно простых алгоритмов.
Второй способ (называемый для простоты модульным программировани
ем) предполагает реализацию отдельных независимых алгоритмов вычисле
ния (например, решение нелинейного уравнения методом «деления отрезка
пополам») в виде отдельных программных модулей, которые будем называть
подпрограммамифункциями (сокращенно ПФ). Первое слово «подпрограм
ма» указывает на свойство изолированности этого модуля от других вычисле
ний в документах MathCAD, а второе слово «функция» — на способ вызова
модуля и механизмы передачи вычисленных в модуле значений.
Заметим, что принцип модульного программирования в свое время (70–
80 гг. XX в.) существенно повысил производительность труда программи
стов, разрабатывающих программы с использованием алгоритмических язы
ков высокого уровня (подробнее см. п. 8.1). Применение его в пакете MathCAD
позволяет:
§ распараллелить разработку программы между несколькими исполните
лями;
§ создать проблемноориентированные библиотеки ПФ для решения на
учнотехнических задач с размещением библиотек на сайтах Интернета;
§ уменьшить затраты на разработку и сопровождение программ для пакета
MathCAD.
Р
ассматриваются конструкции пакета, позволяющие реа
лизовать линейный, разветвляющийся и циклический алгоритмы непосред
ственно в математических областях документа MathCAD.
7.1. ПРОГРАММИРОВАНИЕ
ЛИНЕЙНЫХ АЛГОРИТМОВ
Характерной особенностью линейных алгоритмов является
строго последовательное выполнение всех операций алгоритма без пропус
ков и повторений вычислений. Поэтому конструкции, реализующие такой
алгоритм, записываются в документе MathCAD в нужном порядке их выпол
нения, т. е. слева направо — сверху вниз.
Пример 7.1. Составить программу для вычисления корней квадратного
уравнения ax2 + bx + c = 0 по известной формуле
1b 2 b2 1 4ac
x1,2 3 . (7.1)
2a
Алгоритм (7.1) является линейным (убедитесь в этом). Фрагмент доку
мента MathCAD содержит конструкции, приведенные на рисунке 7.1.
Рис. 7.1
Пример программирования линейного алгоритма
a1b1c
где p 2 — полупериметр; a, b, c — стороны треугольника.
2
Исходные данные: a = 1,6; b = 2,03; c = 0,10.
Задание 7.3. Составить программу вычисления величины z по следую
щей формуле
1 ay c 2
z(x, y) 3 5 4 6 4 sin yt,
7 a 4 b ax2 4 bx 8
где
2 ax 4 b 3
y56 4 arctg(x) 7 1 e 12x .
8 c 4 dx 9
7.2. ПРОГРАММИРОВАНИЕ
РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ
Характерной чертой разветвляющихся алгоритмов являет
ся наличие в них нескольких возможных ветвей вычислений. Выбор кон
кретной ветви зависит от выполнения (или невыполнения) заданных усло2
вий на значения переменных алгоритма.
Пример 7.2. Значение переменной y зависит от значений переменной x и
определяется выражением:
2x2 , если x 1 0,
y34 (7.2)
5 x, в противном случае.
Рис. 7.3
Палитра инструментов Сравнение
Рис. 7.4
Примеры записи выражений отношений
123456782692
4
4699 19
12345678269199 19
1234567826999 29
785
669199 39
1
Знаки этих операций вводятся с палитры Сравнение (см. рис. 7.3). Ре
зультат выполнения этих операций приведен в таблице 7.3.
Рис. 7.5
Примеры логических выражений
20, если x 1 0;
3
4(x) 5 60,5, если x 5 0;
31, если x 7 0;
8
Рис. 7.7
Изображение областей к примеру 7.5
Рис. 7.8
Блоксхема функции if
Рис. 7.9
Блоксхема разветвляющегося алгоритма (пример 7.6):
Д — да; Н — нет.
11 x , если x 2 1;
32
331
y 4 6 3 x , если 0 5 x 5 1;
33
3 1 4 | x |, если x 7 1.
38 4
Рис. 7.11
Блоксхема разветвляющегося алгоритма
7.3. ПРОГРАММИРОВАНИЕ
ЦИКЛИЧЕСКИХ АЛГОРИТМОВ
Циклическим алгоритмом (или просто циклом) называется
алгоритм, содержащий вычисления, повторяющиеся при различных значе
ниях некоторой переменной, названной параметром цикла, а сами повто
ряющиеся вычисления составляют тело цикла. Обобщенная блоксхема цик
лического алгоритма представлена на рисунке 7.15.
Для правильной организации цикла необходимы четыре блока: блок 1
(рис. 7.15) — подготовка к циклу (обычно задание начального значения па
раметра цикла); блок 2 — тело цикла (содержит повторяющиеся вычисле
ния); блок 3 — подготовка к повторению цикла (меняется значение парамет
Рис. 7.18
Формирование вектора z (пример 7.9)
Рис. 7.20
Формирование матрицы В примера 7.13
2x , если xi 1 0;
zi 3 4 i i 3 1,2, ..., n.
6ln(xi ), если xi 5 0,
Выведите сформированный вектор.
11. В чем заключается характерная особенность двойного цикла?
12. Какая закономерность существует в изменении значений параметров внутрен
него и внешнего циклов?
13. Составьте блоксхему и реализуйте в документе MathСАD алгоритм формирова
ния матрицы М размером 4´4 следующей структуры:
11 0 0 02
30 2 0 04
M53 4.
30 0 3 04
30 447
6 0 0
Рис. 8.3
Обращения к подпрограммефункции
8.4. ПРОГРАММИРОВАНИЕ
ЛИНЕЙНЫХ АЛГОРИТМОВ
В ПОДПРОГРАММЕ"ФУНКЦИИ MathCAD
Напомним, что под линейным алгоритмом понимается вы
числительный процесс, в котором необходимые операции выполняются стро
го последовательно (см. п. 7.1). Операторы, реализующие этот алгоритм, в
теле ПФ также размещаются последовательно и выполняются все, начиная
с первого и заканчивая последним.
Пример 8.2. Оформим в виде ПФ вычисление корней квадратного урав
нения ax2 + bx + c = 0 по формуле
1b 1 (b2 1 4ac)1/2
x1,2 2 .
2a
Решение. Описание ПФ root_ poly2 и обращение к ней приведено на
рисунке 8.5. Эта ПФ имеет три входных формальных параметра — коэффи
циенты квадратного уравнения. Выходом является вектор с двумя компо
8.5. ПРОГРАММИРОВАНИЕ
РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ
В ПОДПРОГРАММЕ"ФУНКЦИИ MathCAD
Рис. 8.9
Реализация разветвляющегося алгоритма примера 8.4
а б
Рис. 8.10
К примеру 8.5
Рис. 8.11
Реализация разветвляющегося алгоритма примера 8.6
1 1 , если x 2 1;
32 x
33
а) y 5 41 3 x , если 0 6 x 6 1;
33
3 1 4 | x |, если x 7 0.
38 4
а б
Рис. 8.12
Варианты реализации алгоритма вычисления z(t)
Замечание 8.8. Если в полях 2, 3, 5, 6 (см. рис. 8.7) необходимо размес
тить несколько конструкций, то для ввода дополнительных полей достаточ
но поставить курсор в нужное поле и нажать клавишу [Enter].
Пример 8.7. Составьте описание ПФ, вычисляющей значения двух по
линомов x(t), y(t) нулевой или первой степени. Порядок полиномов задается
переменной n. Если n < 0 или n > 1, то значения полиномов равны 0.
Решение. Описание ПФ и обращение к ней при разных значениях фак
тических параметров приведено на рисунке 8.13. Обратите внимание, что
коэффициенты полиномов передаются через массивы a, b.
Рис. 8.13
Реализация алгоритма примера 8.7
Пример 8.8. Даны два числа x, y. Составить описание ПФ, которая фор
мирует вектор, первая проекция которого равна max(x, y), а вторая проек
ция — min(x, y).
Решение. Описание ПФ и обращение к ней приведено на рисунке 8.14.
Выходным параметром является массив v.
Задание 8.4. Даны три числа a, b, c. Составить ПФ, реализующую сле
дующий алгоритм. Если a £ b £ c, то все числа заменить их квадратами, если
a > b > c, то каждое число заменить максимальным значением из этих трех
чисел, в противном случае — сменить знаки у чисел. Выполнить тестирова
ние ПФ.
Задание 8.5. Координаты точки на плоскости задаются двумя числа
ми x, y. Составить ПФ, вычисляющую номер четверти на плоскости, в кото
рую попала точка. Выполнить тестирование ПФ.
Задание 8.6. Длина сторон треугольника задается числами a, b, c. Со
ставить ПФ, вычисляющую значение целой переменной n по следующему
правилу: n = 3, если три стороны равны; n = 2, если любые две стороны
равны; n = 1, если все три стороны имеют разную длину. Выполнить тести
рование ПФ.
8.6. ПРОГРАММИРОВАНИЕ
ЦИКЛИЧЕСКИХ АЛГОРИТМОВ
В ПОДПРОГРАММЕ"ФУНКЦИИ MathCAD
а б
Рис. 8.15
Структуры операторов циклов
Рис. 8.16
Подпрограммафункция формирования вектора
Рис. 8.17
Формирование вектора примера 8.10
Рис. 8.19
Описание ПФ примера 8.12
Рис. 8.20
Реализация итерационного цикла примера 8.13
Рис. 8.22
Реализация
итерационного
цикла
примера 8.15
Рис. 8.23
Варианты вложений операторов цикла
Рис. 8.24
Реализация двойного цикла примера 8.16
Рис. 8.25
Реализация двойного цикла примера 8.17
Рис. 8.27
Реализация алгоритма примера 8.19
Рис. 8.28
Два варианта реализации алгоритма примера 8.20
Рис. 8.30
Использование оператора try — on error
Рис. 8.31
Использование в ПФ функции error
1b 2 b2 1 4ac
x1,2 3 .
2a
Протестируйте ПФ при различных значениях коэффициентов.
11. Какие операторы используются для программирования разветвляющихся ал
горитмов в ПФ?
12. Нарисуйте блоксхему работы условного оператора if и объясните, как он рабо
тает.
13. Какая конструкция используется для реализации в MathCAD логической струк
туры «ЕСЛИТО»?
14. Какая конструкция используется для реализации в MathCAD логической структу
ры «ЕСЛИТОИНАЧЕ»?
15. Как работает и когда используется оператор else if?
16. Составьте ПФ для вычисления переменной y как минимальное значение из
трех различных чисел, т. е. y = min(a, b, c). Протестируйте составленную ПФ.
17. Составьте ПФ, вычисляющую значение y в соответствии с формулой
2x, если n 1 1;
3
y 1 42 | x |, если n 1 2 или n 1 3;
3e x , если n 1 4.
5
18. Составьте ПФ, вычисляющую значение y по следующему алгоритму:
4sin x, если 1 2 x 3 2;
55e 1 x , если 2 2 x 3 3;
y67
5 ln x , если 3 2 x 3 4;
58tgx, если 4 2 x 3 5.
В
этой теме будет рассмотрено программирование некоторых
типовых задач, которые могут входить в состав более сложных алгоритмов.
9.1. ПРОГРАММИРОВАНИЕ
РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ
Будет рассмотрено несколько примеров программирования
разветвляющихся алгоритмов, в некоторых из которых используются встро
енные функции MathCAD.
Пример 9.1. Составить описание ПФ, формирующей новый вектор из
первых n элементов исходного вектора.
Решение. Описание ПФ и ее вызов приведены на рисунке 9.1. В этой
ПФ использованы две функции:
Рис. 9.1
Реализация алгоритма примера 9.1
Рис. 9.2
Реализация алгоритма примера 9.2
Рис. 9.3
Реализация алгоритма примера 9.3
Рис. 9.4
Разветвляющиеся алгоритмы (к заданиям 9.3 и 9.4)
Рис. 9.5
Реализация алгоритма примера 9.4
Рис. 9.7
Реализация алгоритма примера 9.6
ai 3 cos 110i 4 i 2,
где i = 1, 2, ..., n; n = 11.
Составить ПФ, подсчитывающую число отрицательных членов последо
вательности и число членов, принадлежащих отрезку [0,5; 1].
Рис. 9.10
Реализация алгоритма примера 9.9
Рис. 9.11
Реализация алгоритма примера 9.10
Рис. 9.12
Реализация алгоритма примера 9.11
Рис. 9.14
Реализация алгоритма примера 9.13
Рис. 9.15
Вычисление факториала числа n
9.3. ПРОГРАММИРОВАНИЕ
ИТЕРАЦИОННЫХ ЦИКЛОВ
Рис. 9.17
Реализация алгоритма примера 9.15
x2 1 e x 2 0. (9.1)
Необходимо вычислить с точностью e = 10–5
вещественный корень, ле
жащий в интервале [–4, 0], используя метод последовательных приближе
ний (называемый также методом простой итерации).
Решение. Не останавливаясь на теоретическом обосновании, приведем
основные расчетные соотношения, необходимые для программной реализа
ции этого метода.
& ВОПРОСЫ
ПО ТЕМЕ 9
И ЗАДАНИЯ ДЛЯ САМОКОНТРОЛЯ
РЕШЕНИЕ
НАУЧНОИНЖЕНЕРНЫХ ЗАДАЧ
В ПАКЕТЕ MathCAD PRIME
В этом разделе рассматриваются четыре класса задач, часто
возникающих при инженерных расчетах, проектировании конструкций и в
экспериментальных исследованиях. Это:
§ решение нелинейных уравнений и дифференциальных уравнений;
§ решение оптимизационных задач, включая задачи с ограничениями;
§ вероятностные расчеты;
§ обработка экспериментальных данных.
Для решения этих задач будут использоваться как «собственные» функ
ции MathCAD, так и оригинальные подпрограммыфункции (ПФ). Матери
ал этого раздела, безусловно, будет полезен пользователю при решении «сво
их» задач в пакете MathCAD, особенно магистрантам и аспирантам при рабо
те над своими диссертациями.
В
этой главе будут рассмотрены функции MathCAD, кото
рые позволят найти решения нелинейных уравнений, систем нелинейных
уравнений, обыкновенных дифференциальных уравнений и систем и систем
обыкновенных дифференциальных уравнений.
x3 1 3x2 2 3 3 0. (10.1)
Определить интервалы отделения корней этого уравнения.
Решение. Известно, что уравнение (10.1) имеет три корня, как алгебраиче
ский полином третьей степени. Построим график функции f (x) = x3 + 3x2 – 3
(рис. 10.1). Из рисунка видно, что функция обращается в нуль на трех интер
валах: [–3; –2], [–1,8; 0], [0,5; 2]. Эти интервалы могут быть приняты в каче
стве интервалов отделения уравнения (10.1).
Рис. 10.1
Отделение корней уравнения (10.1)
Рис. 10.4
Вычисление корней уравнения примера 10.4
Рис. 10.5
Вычисление корней алгебраического уравнения (10.2)
Рис. 10.6
Вычисление решения с помощью функции find
Рис. 10.7
Решение систем линейных алгебраических уравнений
Рис. 10.8
Вычисление начальных приближений для корней системы (10.7)
Рис. 10.9
Уточнение корней системы уравнений (10.7)
Рис. 10.11
Решение системы несовместных уравнений
dm y(t)
где y(m) 1 означает производную mго порядка по переменной t.
dt(n)
Задача Коши для такого уравнения заключается в нахождении такой
функции y(t), которая является решением уравнения (10.9) (т. е. обращает
его в тождество) и удовлетворяет начальным условиям:
Рис. 10.12
Решение задачи Коши для примера 10.11
Рис. 10.13
Решение задачи Коши для примера 10.12
где p(t), q(t) — известные функции коэффициентов. Известно, что для оп
ределения единственного решения необходимо задать два дополнительных
условия. Если эти условия задаются в точке t = t0, то это задача Коши. Если
эти условия задаются в двух разных точках:
t 1 a; t 1 b,
где y1, y2, ..., ym — искомые функции переменной t; f1, f2, ..., fm — заданные
функции нескольких переменных. В матричном виде эту систему можно
представить как:
1 1 2 F(y, t), (10.18)
где y 1 — вектор, проекции которого равны производным y11 , y21 , ..., ym
1 ; F(y, t) —
векторстолбец, составленный из функций f1, f2, ..., fm системы (10.17).
Рассмотрим задачу Коши для системы (10.17) с начальными условиями:
y1 (t0 ) 1 y1, y2 (t0 ) 1 y2 , ..., ym (t0 ) 1 ym , (10.19)
где y1, y2, ..., ym — заданные величины. При этом решение будет вычислять
ся на интервале (t0, tk). Заметим, что дифференциальное уравнение первого
порядка есть частный случай системы (10.17) при m = 1.
Заметим, что задача Коши для ОДУ вида (10.9) легко сводится к реше
нию задачи Коши для системы ОДУ. Для этого введя новые переменные:
y11 2 y1 2 y2 , y21 2 y11 2 y3 , ..., ym
1 2 y(m) , (10.20)
приходим к системе ОДУ первого порядка:
4y12 3 y2 ;
5y2 3 y ;
55 2 3
6... (10.21)
5y2 3 y ;
5 m 11 m
2 3 f (t, y1 , y2 , ..., ym )
57ym
Рис. 10.15
Решение задачи Коши для системы ОДУ (пример 10.14)
Рис. 10.16
Построение фазового портрета (пример 10.15)
1 f ( y) 2
Используя функцию Jacob, вычислить Якобиан вектора F(y ) 3 4 1 5 .
6f2 (y)7
Решение. На рисунке 10.17 приведен фрагмент документа, в котором
задача решается двумя способами.
Рис. 10.18
Решение жесткой системы ОДУ с использованием функции Radau
5100 1 x1 2 6 1 x2 3 2 1 x3 4 200;
6
а) 76 1 x1 2 200 1 x2 3 10 1 x3 4 600;
6x1 2 2 1 x2 3 100 1 x3 4 500;
8
410 1 x1 2 x2 2 x3 3 12;
5
б) 62 1 x1 2 10 1 x2 2 x3 3 13;
52 1 x1 2 2 1 x2 2 10 1 x3 3 14.
7
Проверить найденные решения.
7. Геометрическая интерпретация корней системы из двух нелинейных уравне
ний.
8. Используя Блок решения, решить следующие системы уравнений:
3sin x 1 2y 2 2;
а) 4
6cos( y 5 1) 1 x 2 0,7;
4sin y 1 x 2 30,4;
б) 5
62y 3 cos(x 1 1) 2 0;
3x2 1 y2 2 36;
в) 4
5x 1 y 2 2.
Проверить найденные решения.
9. Сформулируйте задачу Коши для обыкновенного дифференциального уравне
ния второго порядка.
10. Какая связь между порядком обыкновенного дифференциального уравнения и
количеством начальных условий в задаче Коши?
11. Решить дифференциальное уравнение y²(t) + t2 × y¢ + t × y(t) = cos(t) при гранич
ных условиях y¢(0) = 3, y(0) = 8. Решение найти на интервале [0, 10] и построить
график решения.
12. Запишите дифференциальное уравнение движения математического маятника и
с помощью символьных вычислений получите закон движения этого маятника.
13. Решить дифференциальное уравнение y¢(t) = sin(2t) – y(t)tg(t) = cos(t) при гранич
ном условии, y(0) = 0. Решение найти на интервале [0, p] и построить график
решения. Точное решение определяется выражением –2cos2(t) + 2cos(t). Постро
ить график этого решения и сравнить его с графиком найденного решения.
14. Найти решения системы ОДУ:
4y11 2 ay1 3 y2 ;
5 1
7y2 2 y1 6 ay2
на интервале [0, 2p], шаг между узлами равен 0,05p, начальные условия y1(0) = 1,
y2(0) = –1. Решения ОДУ найти для двух значений коэффициента a: a = 0 и a = 2.
Графики решений построить в плоскости y1, y2.
Рис. 11.1
Безусловная максимизация функционала (11.1)
Рис. 11.2
К примеру 11.2
<Начальные условия>
<Ограничения>
<Вызов функции maximize или minimize>
Заметим, что внутри блока задаются ограничения в виде равенств или
неравенств, определяющие допустимую область значений переменных зада
чи условной оптимизации. Рассмотрим ряд примеров.
Пример 11.3. Дан функционал:
a
F (a, b) 1 100(a 2 b)2 2 50 (11.2)
b
и ограничения в виде
a 1 2b 2 5; b 3 1; a 3 0. (11.3)
Определить значения a, b, доставляющие максимальное значение функ
ционала (11.2) и удовлетворяющие неравенствам (11.3).
Рис. 11.3
Условная максимизация функционала (11.2)
Рис. 11.4
Условная максимизация функционала (11.4)
тремума (1,1) и показано, что в точках (1 + 0,001, 1), (1,1 + 0,001) значение
функционала возросло, т. е. точка (1,1) — точка минимума функционала
(11.8) при ограничениях (11.9).
при ограничениях
x0 1 0; x1 1 0; x2 1 0;
7x0 2 3x1 2 x2 3 47;
0,5x0 4 3x1 2 8x2 3 25;
9x0 2 2x1 4 10x2 3 29.
Вычислить значения функционала в этой точке.
Ответ: максимум функционала достигается в точке (0, 13, 8).
6. Решите задачу оптимального раскроя. Из металлического листа прямоуголь
ной формы (рис. 11.8) необходимо сварить бак максимального объема. Размеры
листа: L = 1, M = 2. Необходимо произвести вырез по углам прямоугольника на
величину a и сформировать стороны бака.
Необходимо определить величину a, при которой объем бака будет максималь
ным.
Э
та глава содержит решение в пакете MathCAD часто встре
чаемых задач теории вероятностей и математической статистики. Исполь
зуемые определения и понятия можно посмотреть в соответствующей учеб
ной литературе.
Учитывая, что
n
3 Pn (i) 1 Pn (0) 2 Pn (1) 2 ... 2 Pn (k) 2 ... 2 Pn (n) 1 1, (12.5)
i 10
имеем
Rn(k) = 1 – Prob(k – 1) (12.6)
Вероятность того, что событие А произойдет хотя бы один раз. Это
означает, что событие А произойдет не менее одного раза, т. е. оно может
произойти один, два и т. д. до n раз. Вероятность такого события равна:
n
Rn (1) 1 Pn (1) 2 Pn (2) 2 ... 2 Pn (n) 1 4 Pn ( j) 1 1 3 Pn (0). (12.7)
j 11
Рис. 12.1
Вычисление вероятностей событий примера 12.1
Рис. 12.2
Графики вероятностей Pn(k), Prob(k)
Рис. 12.3
Вычисления к примеру 12.2
4 f (x)dx 3 1. (12.21)
21
20, если x 1 0;
3 x2
3 , если 0 4 x 1 2;
316
F (x ) 5 6 7 11
3x 7 4 , если 2 4 x 1 4 ;
3
31, если x 8 11 .
9 4
Определить плотность f (x) и вероятность попадания случайной величи
ны X в интервал (1; 2,5).
Решение. На рисунке 12.4 приведен фрагмент документа MathCAD, в
котором решается данная задача. Приведены кривая 1 — график F(x), кри
вая 2 — график f (x). Вероятность попадания в отрезок (1; 2,5) вычислялась
двумя способами: выражение (A) (см. рис. 12.4) — формула (12.21), выраже
ние (B) — формула (12.22).
Пример 12.4. Задана плотность распределения случайной величины
20, x 1 2;
3
f ( x) 4 5 A
37 x2 , x 6 2.
Определить:
1) коэффициент A;
2) функцию F(x);
3) вероятность попадания случайной величины в интервал (2, 3);
4) вероятность того, что при четырех независимых испытаниях случай
ная величина ни разу не попадет в интервал (2, 3).
Решение. Неизвестный множитель A определяем из условия (12.21):
1 1
A dx
3 x2 dx 2 A 3 x2 2 1.
2 2
Рис. 12.5
Вычисления к примеру 12.4
20, если x 1 0;
3x
3 , если 0 4 x 1 2;
38
f ( x) 5 6 11
31, если 2 4 x 1 4 ; (12.27)
3
30, если x 7 11
8 4
вычислить M(x), D(x).
Решение. На рисунке 12.6 приведен фрагмент документа, в котором вы
числяются искомые числовые характеристики. Вычисление дисперсии осу
ществляется двумя способами (12.26).
Квантилем порядка p называется такое значение xp, для которого
P( X 1 x p ) 2 F (x p ) 2 p (12.28)
4 f (x)dx 3 p. (12.29)
12
Рис. 12.6
Вычисление числовых характеристик (пример 12.5)
Рис. 12.7
Вычисление квантилей (пример 12.6)
12.3. МОДЕЛИРОВАНИЕ
СЛУЧАЙНЫХ ВЕЛИЧИН
В научных и инженерных исследованиях широкое примене
ние находит метод статистического моделирования, или метод МонтеКар
ло. Для его реализации необходимо генерировать случайные (точнее, псев
дослучайные) числа, распределенные по требуемому закону с заданными
числовыми характеристиками (математическим ожиданием, дисперсией
и т. д.). Пакет MathCAD включает большой набор функций не только для
генерирования случайных чисел, но и для проведения различных статисти
ческих вычислений.
1 2 3 4 5 6 2 7 89
87
12345676869
6
9
386
25265
3
1234567829
3539
96989
dnorm ( x , 2, 3 )
M(X) a
1 7 ( x 1 2 )2 8 qnorm (
, 2, 3 )
exp 9 1
, 340
D ( X ) 32
25 6 3 2 32 rnorm ( m, 2 , 3 )
dpois ( x, )
x 1 M(X)
539
96989
5285
e
qpois (
, )
x!
D(X)
9629
89235967829
62
rpois ( m, )
dunif ( x , a, b ) ab
1 M(X)
582493829
3539
96989
,
96
2
b1a qunif (
, a, b )
( b 1 a )2
96
runif ( m, a, b ) D( X)
12
dbinom ( x, n, p )
8248567829
3539
96989
M ( X ) np
qbinom (
, n, p )
Cnx p x (1 1 p )n 1 x ,
0 x n
D ( X ) np (1 1 p )
rbinom ( m, n, p )
1
3539
96989
96
dchisq ( x , n )
1 1x M(X) n
e 2 x n /211 ,
96
qchisq (
, n )
2n /2 n
2 rchisq ( m, n )
D ( X ) 2n
62
9989
2!2
"
539
96989
#7$
985
M(X) 0
n 1 1 n 1
dt ( x, n )
2 x2 2 ,если1n 2;
1
qt (
, n )
n5 6 n n D( X) n
2 rt ( m, n ) ,если n 42.
n 12
62
9989
2!2
"
1
186 ОСНОВЫ ВЫЧИСЛЕНИЙ И ПРОГРАММИРОВАНИЯ В ПАКЕТЕ MathCAD PRIME
Функции MathCAD для вычисления плотности распределения. В табли
це 12.1 приведены функции (имена начинаются с буквы d — первая буква
слова density), позволяющие вычислить значения функции плотности наи
более используемых распределений (x — значение, для которого вычисляет
ся плотность распределения).
Кратко о c2распределении, которое широко используется в математиче
ской статистике. Пусть N1, ..., Nn — независимые, нормально распределен
ные случайные величины с нулевым математическим ожиданием и единич
ной дисперсией, т. е. Ni ~ N(0, 1), где N означает нормальное распределение,
0 — нулевое математическое ожидание, 1 — среднеквадратическое отклоне
ние, которое равно корню квадратному из дисперсии. Тогда распределение
случайной величины 12n 2 N12 3 N22 3 N32 3 ... 3 Nn2 называется распределени2
ем 12n с п степенями свободы, а сама величина 12n — случайной величи2
ной c2 с п степенями свободы.
Заметим, что количество степеней свободы п является единственным
параметром распределения, и значения c2 неотрицательны, т. е. P(12n 2 0) 3 0.
Распределение 12n с п степенями свободы имеет следующие математическое
ожидание и дисперсию: M [12n ] 2 n; D[12n ] 2 2n. При числе степеней свободы
n > 30 12n распределение хорошо аппроксимируется нормальным распреде
лением N(a, s) с параметрами a = n, 1 2 2n .
На рисунке 12.8 показаны плотности распределения f (x) случайной ве
личины 12n при n = 5 (сплошная кривая), n = 10 (точечная кривая) и n = 30
(штриховая кривая). Видно, что при увеличении n плотность f (x) «прибли
жается» к плотности нормального распределения.
Рис. 12.8
Плотности распределения c2
Рис. 12.9
Графики распределений примера 12.7
Заметим, что чем больше уровень квантиля, тем больше его значение.
Объясните, почему.
Функции MathCAD генерирования случайных векторов. Вектор, проек
ции которого являются случайными числами, распределенными по опреде
ленному закону, называется случайным вектором.
В таблице 12.1 в правой колонке (третья строка) приведены имена функ
ций (начинаются с буквы r), вычисляющих случайный вектор с соответст
вующим распределением его проекций. Параметр m — размерность случай
ного вектора.
Функция rnd(x) генерирует одно случайное число, равномерно распреде
ленное в интервале [0, 1].
свободы 10;
§ вычисление двух гистограмм и вычисление теоретических значений плот
ности 110
2 распределения;
123452367489
4
6
264872
4676
68486872
4676
4
492
2367489
4
39
464872
4676
14
622872
4676
1
2872
4676
46
5
543
8724676
1
борка имеет четное число элементов, то значение моды будет равно среднему
двух значений, находящихся посередине упорядоченной выборочной сово
купности. Например, медиана выборки (200, 236, 250, 305, 337, 220) будет
равна (236 + 250)/2 = 243.
Мода случайной величины X — это наиболее часто встречающееся значе
ние в выборке, т. е. значение, встречающееся в выборке с максимальной
частотой. Если нет повторяющихся значений, то выдается сообщение об
этом и мода не вычисляется.
Корреляционным моментом mX,Y случайных величин X и Y называется
математическое ожидание случайной величины ( X 1 M( X)) 2 (Y 1 M(Y )), т. е.
1 X,Y
2 X,Y 3 . (12.40)
42X 5 42Y
Рис. 12.14
Вычисление выборочных оценок
3; 1; 3; 1; 4; ï 1; 2; 4; 0; 3; ï 0; 2; 2; 0; 1; ï 1; 4; 3; 1; 1;
4; 2; 2; 1; 1; ï 2; 1; 0; 3; 4; ï 1; 3; 2; 7; 2; ï 0; 0; 1; 3; 3;
1; 2; 1; 2; 0; ï 2; 3; 1; 2; 5; ï 1; 2; 4; 2; 0; ï 2; 3; 1; 2; 12.
В документе MathCAD запрограммировать построение гистограммы по этой вы
борке и вычисление оценок для математического ожидания и дисперсии вели
чины Х.
2. Непрерывная случайная величина Х имеет следующую функцию распределения:
20, x 1 0;
3
F (x) 4 6kx, x 5 [0,4];
31, x 7 4.
8
В
этой главе будут рассмотрены некоторые алгоритмы сгла
живания (фильтрации) экспериментальных данных, реализованные в паке
те MathCAD, и разные методы построения эмпирических зависимостей.
4 exp 16 5 2.
1 t2
h(t) 3 2 7
(13.4)
28 4 0,37 9 2 4 (0,37)
Рис 13.1
График функции h 12
x
b
Рис. 13.3
Результаты сглаживания зашумленных данных
Рис. 13.4
Сглаживание зашумленных данных при разных значениях параметра
Рис. 13.7
Результаты сглаживания аномальных измерений
Рис. 13.8
Сглаживание зашумленных данных с помощью функции supsmooth
1. функцией supsmooth;
2. функцией ksmooth с параметром b = 0,9.
Из рисунка 13.9 видно, что сглаживание с помощью функции supsmooth
дает меньшую точность по сравнению с функцией ksmooth при удачно вы
бранном параметре b (кривая 3 на рисунке 13.9 — функция supsmooth; кри
вая 4 — функция ksmooth).
Рис. 13.10
Кусочнолинейная интерполяция
12343 56789
9388
3138399883312343323313
12343 56789
9388
3238399883312343323313
12343 56789
93388
3223138399883312343323313
1
РАЗДЕЛ 3. РЕШЕНИЕ НАУЧНОИНЖЕНЕРНЫХ ЗАДАЧ В ПАКЕТЕ MathCAD PRIME 209
Рис. 13.12
Вычисление коэффициентов a0, a1
1
Так как точка минимума ищется численными методами, то для некото
рых функций MathCAD необходимо задать стартовую точку (вектор a0). Для
уменьшения числа итераций и вычисления правильной точки минимума
(при отсутствии глобального минимума) стартовую точку желательно зада
вать максимально близко к искомой точке минимума функционала.
Специализированные функции вычисляют коэффициенты уравнения
регрессии определенного вида. Список таких функций приведен в табли
це 13.2. В этой таблице X, Y — векторы, содержащие исходные данные xi, yi,
i = 1, 2, ..., n соответственно.
Замечание 13.2. Для некоторых функций нумерация коэффициентов
зависимости начинается с 1 и отличается от введенной ранее. Однако это
различие не вызовет путаницы при работе с функциями MathCAD.
Пример 13.7. По данным, приведенным на рисунке 13.13 (векторы x, y,
число наблюдений n = 8), построить уравнение регрессии вида
S(b, x) 1 b1eb2x 2 b3 .
Решение. Для вычисления коэффициентов используем функцию expfit
(см. табл. 13.2). Фрагмент документа MathCAD с обращением к этой функции
показан на рисунке 13.13. Здесь же показаны исходные данные {xi, yi} и кри
вая, соответствующая зависимости S(b, x) с вычисленными коэффициентами:
b1 = 3,762; b2 = 0,453; b3 = 3,006.
Заметим, что в документе MathCAD вычисленные коэффициенты явля
ются проекциями вектора b и поэтому их индексы в функции yc(x) вводятся
как индексные выражения, т. е. после левой прямоугольной скобки.
В нижней части документа стоит оператор, вычисляющий коэффициент
детерминации R2 (переменная R2) по формуле
Q
R2 1 1 2 e ,
n n Q
где Q 1 3 ( yi 2 y )2; Q 1
e 3 ( S ( a, xi ) 2 yi ) 2;
y — среднее значение yi.
i 11 i 11
56789
388
631232232313
838883
12343311114332121433311114389638831114232312143
12323143
93 !883
!"88311423!8!3#3!$"
833883
3
56789
3 !
!631232232313
8%3!83!%!99883
12343&3!$83!8!
93312343'3
!"83!!"
9
83133(42399
38393883123438379
6)3 !8#"
123232123343 2S ( a , x )
6)3 , 333(232323213'3
!3!!9
832399
6383
2a j
9
!
6)3783 !
!332333(23233193 !8!3(*(+43
1
Пример 13.9. По исходным данным примера 13.8 определить коэффици
енты уравнений (13.11), (13.12).
Решение. В этом примере для вычисления коэффициентов вместо функ
ции regress будем использовать функцию linfit. При этом векторфункция
Ф(х) будет иметь следующий вид:
1
1
x
если k = 2, то Ф(x) 1 x ; если k = 3, то Ф(x) 1 .
2 x2
x
x3
Обращение к функции linfit и вычисленные коэффициенты приведены
на рисунке 13.15. Сравнивая эти коэффициенты с соответствующими проек
циями векторов coef2, coef3 (рис. 13.14), видим совпадение этих величин.
Рис. 13.16
Построение нелинейной зависимости (к примеру 13.10)
13.4. МНОЖЕСТВЕННАЯ
ЭМПИРИЧЕСКАЯ ЗАВИСИМОСТЬ
В такой эмпирической зависимости переменная Y зависит от
нескольких независимых переменных X1, X2, ..., Xk. Можно выделить ли
нейную и нелинейную зависимости.
Построение линейной множественной зависимости. Такая зависимость
имеет вид:
S(a, x) 1 a0 2 a1x1 2 ... 2 ak xk , (13.16)
где а0, а1, ..., ak — неизвестные коэффициенты.
Вычисление коэффициентов а0, а1, ..., ak можно осуществить с помощью
функции MathCAD regress.
Функция regress. Обращение к функции имеет вид:
regress(X, Y, N),
где X — матрица размером n´k (k — количество независимых переменных),
содержащая значения xi,j, i = 1, 2, ..., n; j = 1, 2, ..., k; Y — вектор размерно
сти n, содержащий значения yi, i = 1, 2, ..., n; n — количество измерений;
N — порядок полинома (для множественной линейной зависимости N = 1).
Результатами работы этой функции является вектор следующей струк
туры. Первые три проекции всегда содержат «служебную информацию».
Например, третья проекция равна степени полинома, а первая проекция —
номеру функции. Остальные проекции содержат коэффициенты, но в опре
деленном порядке. Так, для k = 2 и линейной регрессии имеется соответст
вие: четвертая проекция — a1; пятая — a2; шестая — a0 (см. пример 13.11).
Следует отметить, что вектор, являющийся результатом работы функции
regress, используется функцией interp для вычисления значений уравнения
множественной регрессии.
Рис. 13.17
Построение
линейной
множественной
зависимости
(к примеру 13.11)
где y2 1 S3a1 xi11 1 xi12 14441 xi1k 51 i 1 114441 n 6 значения эмпирической зависимости
при заданных значениях независимых переменных.
Для минимизации этого функционала используют функцию MathCAD
minimize. При этом возможно задание ограничений на значения искомых
коэффициентов а0, а1, ..., ak (т. е. решается задача условной минимизации
функционала). Для иллюстрации этой возможности рассмотрим следующий
пример.
Пример 13.12. Производственная функция Кобба — Дугласа (рис. 13.18)
имеет вид:
Q( K, L) 1 a0 2 K a1 2 La2 , (13.19)
где Q — объем производства; K — затраты капитала; L — затраты труда.
Коэффициенты a1, a2 должны удовлетворять следующему условию:
a1 + a2 = 1. (13.20)
Необходимо по данным таблицы 13.4 вычислить коэффициенты a0, a1, a2
на основе метода наименьших квадратов.
Решение. Нахождение коэффициентов a0, a1, a2 нелинейной модели
(13.19) будем осуществлять из решения следующей задачи условной мини
мизации:
2n 3
min 6
(Qi 4 a0 5 Kia1 5 Lai 2 )2 7
8 i 11 9 (13.21)
при ограничении (13.20). Решение этой задачи приведено на рисунке 13.18.
Здесь не показано формирование матрицы x из значений Li, Ki, а только выве
дены значения элементов. Аналогичная ситуация с вектором y — значения Qi.
В Блоке решений (подробнее см. параграф 11.2) задается ограничение (13.20)
и начальные значения для вычисляемых коэффициентов, а также осуществ
1 2 3 4 5 6 2 7 89
7
7 1234 56774 68634 86234 97
24
98
4
7 5164 6824 8264 3584 5794 52184
7 63
4 55134 71
4 22924
55
4 54
9
4
1
ляется вызов функции minimize. Результатом работы этой функции являются
следующие коэффициенты (с округлением): a0 = 3,199; a1 = 0,332; a2 = 0,668,
которые удовлетворяют (13.20). Уравнение регрессии принимает вид:
Q( K, L) 1 3,199 2 K 0,332 2 L0,668 . (13.22)
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
РАЗДЕЛ ПЕРВЫЙ
ВЫЧИСЛЕНИЯ В ПАКЕТЕ MATHCAD
Тема 1. Математические пакеты. Общая характеристика пакета MathCAD 6
1.1. Современные математические пакеты . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2. Возможности и структура пакета MathCAD . . . . . . . . . . . . . . . . . . . . 7
1.3. Программное окно MathCAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4. Ленточный интерфейс пакета Mathcad . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5. Работа с документами MathCAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Тема 2. Вычисления в пакете MathCAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1. Константы, переменные, операторы присваивания и вывода . . . . . . 18
2.2. Арифметические операции MathCAD . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3. Встроенные функции и функции пользователя . . . . . . . . . . . . . . . . . . 25
2.4. Операторы математического анализа . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Тема 3. Массивы в пакете MathCAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1. Определение и обозначение массива в пакете MathCAD . . . . . . . . . . . 31
3.2. Создание массивов в пакете MathCAD . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3. Выделение столбца и строки матрицы . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.4. Таблицы и работа с ними в пакете MathCAD . . . . . . . . . . . . . . . . . . . . 37
3.5. Основные функции обработки массивов . . . . . . . . . . . . . . . . . . . . . . . 38
3.6. Вычисления с массивами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.7. Функции сортировки элементов векторов и матриц . . . . . . . . . . . . . . 43
Тема 4. Графика в пакете MathCAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.1. Основные инструменты для построения графиков . . . . . . . . . . . . . . . 46
4.2. Построение графиков функции одной переменной
в декартовой системе координат . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.3. Построение графиков функции одной переменной
в полярной системе координат . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.4. Построение графиков функций двух переменных . . . . . . . . . . . . . . . . 55
4.5. Построение диаграмм . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Тема 5. Символьные вычисления в пакете MathCAD . . . . . . . . . . . . . . . . . . . 63
5.1. Команды символьных вычислений . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.2. Выполнение символьных вычислений . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.3. Символьное решение уравнений и систем уравнений . . . . . . . . . . . . . 70
Тема 6. Чтение и запись данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6.1. Средства доступа к файлам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6.2. Функции доступа к структурированным ASCIIфайлам . . . . . . . . . . . 80
6.3. Функции доступа к графическим файлам . . . . . . . . . . . . . . . . . . . . . . 82
РАЗДЕЛ ТРЕТИЙ
РЕШЕНИЕ НАУЧНО"ИНЖЕНЕРНЫХ ЗАДАЧ
В ПАКЕТЕ MATHCAD PRIME
Тема 10. Решение нелинейных уравнений
и дифференциальных уравнений в пакете MathCAD PRIME . . . . . 143
10.1. Решение нелинейных уравнений . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
10.2. Решение систем уравнений в пакете MathCAD . . . . . . . . . . . . . . . . . 148
10.3. Решение обыкновенных дифференциальных уравнений
в пакете MathCAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Тема 11. Решение оптимизационных задач в пакете MathCAD PRIME . . . . 167
11.1. Решение оптимизационных задач без ограничений . . . . . . . . . . . . . 167
11.2. Решение оптимизационных задач с ограничениями . . . . . . . . . . . . . 170
11.3. Решение оптимизационных задач из условий экстремума целевой
функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Тема 12. Решение задач теории вероятностей
и математической статистики в пакете MathCAD PRIME . . . . . . . . 177
12.1. Формула испытаний Бернулли . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
12.2. Случайные величины и их числовые характеристики . . . . . . . . . . . 180
12.3. Моделирование случайных величин . . . . . . . . . . . . . . . . . . . . . . . . . . 186
12.4. Построение гистограммы относительных частот
по выборочной совокупности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
12.5. Вычисление выборочных оценок для числовых
характеристик случайных величин . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Тема 13. Обработка экспериментальных данных . . . . . . . . . . . . . . . . . . . . . . 197
13.1. Сглаживание (фильтрация) зашумленных данных . . . . . . . . . . . . . . 197
13.2. Интерполяция дискретных данных . . . . . . . . . . . . . . . . . . . . . . . . . . 205
13.3. Построение парных эмпирических зависимостей . . . . . . . . . . . . . . . 208
13.4. Множественная эмпирическая зависимость . . . . . . . . . . . . . . . . . . . 216
Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Библиографический список . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
СОДЕРЖАНИЕ 223
Юрий Евгеньевич ВОСКОБОЙНИКОВ,
Анатолий Филиппович ЗАДОРОЖНЫЙ
ОСНОВЫ ВЫЧИСЛЕНИЙ
И ПРОГРАММИРОВАНИЯ В ПАКЕТЕ
MathCAD PRIME
Учебное пособие
Зав. редакцией
физикоматематической литературы Н. Р. Крамор
Ответственный редактор С. В. Макаров
Технический редактор Е. Е. Егорова
Корректор М. В. Бекрешева
Подготовка иллюстраций А. П. Маркова
Выпускающие Н. А. Крылова, Е. П. Королькова
ЛР № 065466 от 21.10.97
Гигиенический сертификат 78.01.07.953.П.007216.04.10
от 21.04.2010 г., выдан ЦГСЭН в СПб
Издательство «ЛАНЬ»
lan@lanbook.ru; www.lanbook.com
196105, СанктПетербург, пр. Юрия Гагарина, д. 1, лит. А.
Тел./факс: (812) 3362509, 4129272.
Бесплатный звонок по России: 88007004071
ГДЕ КУПИТЬ
ДЛЯ ОРГАНИЗАЦИЙ:
Для того, чтобы заказать необходимые Вам книги, достаточно обратиться
в любую из торговых компаний Издательского Дома «ЛАНЬ»:
по России и зарубежью. «ЛАНЬТРЕЙД».
192029, СанктПетербург, ул. Крупской, 13
тел.: (812) 4128578, 4121445, 4128582; тел./факс: (812) 4125493
email: trade@lanbook.ru; ICQ: 446869967; www.lanpbl.spb.ru/price.htm
в Москве и в Московской области. «ЛАНЬПРЕСС».
109263, Москва, 7я ул. Текстильщиков, д. 6/19
тел.: (499) 1786585; email: lanpress@lanbook.ru
в Краснодаре и в Краснодарском крае. «ЛАНЬЮГ».
350901, Краснодар, ул. Жлобы, д. 1/1
тел.: (861) 2741035; email: lankrd98@mail.ru
ДЛЯ РОЗНИЧНЫХ ПОКУПАТЕЛЕЙ:
интернет2магазин
Издательство «Лань»: http://www.lanbook.com
магазин электронных книг
Global F5: http://globalf5.com/
Заказ № 02416.