Текст
                    3
С О Д Е Р Ж А Н И Е
ВВЕДЕНИЕ
................................
................................
........
5
I. КОМПОНЕНТЫ ЭКРАНА
MAPLE
.........................
6
II. СПРАВОЧНАЯ СИСТЕ
МА MAPLE
......................
8
III. ВЫЧИСЛЕНИЯ В MA
PLE
................................
......
9
3.1. Соз
дание формул
................................
.........................
9
3.2.Числа, константы и переменные
..............................
11
3.3. Оператор присваивания
................................
............
12
3.4. Встроенные функции и функции пользователя
.....
14
3.5.
Простейшие вычисления
................................
..........
15
IV. РАБОТА С МАССИВА
МИ, МАТРИЦАМИ,
ВЕ
К
ТОРАМИ И ТАБЛИЦАМИ
...........................
18
4.1. Типы скалярных данных. Конвертация чисел
.......
18
4.2. Типы переменных
................................
......................
19
4.3. Последовательности выражений, наборы и
списки
................................
................................
..........
20
4.4. Подключение библиотек.
................................
.........
26
V. ГРАФИКА 2D И 3D.
АНИМАЦИЯ
........................
28
5.1. Двумерная графика
................................
...................
28
5.2. Трехмерная графика.
................................
.................
30
5.3. Построение анимационных 2D графиков
...............
32
5.4. Построение анимационных 3D графиков
...............
33
VI. ПРОГРАММИРОВАНИЕ
................................
......
35
6.1. Оформление алгоритма
................................
............
35
6.2 Функции пользователя
................................
...............
36
6.3. Условные выражения
................................
................
37
6.4. Циклы
................................
................................
..........
38
6.5.
Вывод результатов
................................
....................
40
6.6. Создание программных модулей
.............................
41
6.7. Отладка процедур
................................
......................
45
VII. РЕШЕНИЕ МАТЕМАТ
ИЧЕСКИХ ЗАДАЧ
.....
50
7.1. Решение ур
авнений, неравенств и их систем
........
50


4 7.2. Использование арифметики с плавающей запя - той ................................ ................................ ............... 54 7.3. Решение дифференциальных уравнений ................ 56 7.3.1. Обыкновенные дифференциаль ные урав н ния………… 57 7.3.2. Дифференциальные уравнения в частных произвоных . 59 VIII. ЛИТЕРАТУРА ................................ ....................... 61 IX. ПРАКТИЧЕСКИЕ ЗАД АНИЯ .............................. 62 A. Простейшие вычисления в Maple. ............................. 62 B. Работа с массивами, векторами, таблицами. ............ 63 C. Графика 2D и 3D. Анимация ................................ ...... 69 D. Программирование ................................ ...................... 72 E. Решение математических задач ................................ . 76 X. ПРИЛОЖЕНИЯ ................................ ......................... 81 Приложение 1 ................................ ................................ ... 81 Приложение 2 ................................ ................................ ... 83 Приложение 3 ................................ ................................ ... 86 Приложение 4 ................................ ................................ ... 87 Приложение 5 ................................ ................................ ... 90 Приложение 6 ................................ ................................ ... 92 
5 В В Е Д Е Н И Е MapleV – это среда для выполнения математических расчетов на компьютере. В отличие от языков программирования высокого уровня м а- тематическ ий редактор Maple может решать большое количество матем а- тических задач без всякого предварительного программирования, позвол я- ет проводить расчеты в символьном виде. В Maple можно получать ответ с высокой точностью, так как Maple оперирует не только приближ енными числ а ми, но и точными целыми и рациональными числами. Maple называют также пакетом символьной математики, так как р е- шение задач может быть получено аналитически, то есть в виде формул, состоящих из математических символов. Maple умеет выполнять слож ные алгебраические преобразования и упрощения над полем комплексных чисел, находить конечные и бесконе ч- ные суммы, произведения, пределы и интегралы, решать в символьном в и- де и численно алгебраические (в том числе трансцендентные) системы уравнений, системы обыкновенных дифференциальных уравнений и нек о- торые классы уравнений в частных производных. MapleV обладает развитым языком программирования. Хороший текстовый редактор и прекрасные графические средства позволяют пр о- фессионально оформить выполненную работ у. Разработчики других известных математических пакетов, таких как MathCad и MathLab использовали символьный процессор Maple V в своих программах. Кроме того, математические редакторы Scientific WorkPlace (на основе Scientific Word) и MathOfficce (на основ е Microsoft Word) для выпо л нения расчетов также дополнены символьным процессором MapleV. 
6 I. КОМПОНЕНТЫ ЭКРАНА MAPLE При загрузке Maple открывает окно, характерное для Windows - приложения. Типичный вид окна Maple представлен на рис.1. Рис.1. Первая строка этого окна содержит имя загруженного файла, кнопку системного меню и кнопки управления окном. Вторая строка – панель основного (главного) меню. В зависимости от того, с какими объектами работает пользователь, количество пунктов ос новного меню может изменяться; может также изменяться состав пун к- тов и их содержание. Если, например, все документы закрыты, то на пан е- ли основного меню будет видно только два пункта меню: FILE и HELP . Панель главного меню будет изменяться при работе с тек стом и графикой, при открытии нового или уже существующего документа. Ниже могут располагаться инструментальная панель и строка ко н- текстного меню, которые облегчают работу в Maple. Для отображения или отключения этих строк необходимо выполнить команды View \ Tool Bar (для инструментальной панели) и View \ Context Bar ( для контекстного м е- ню). Многие кнопки инструментальной панели – типичные команды Windows - приложения. Рассмотрим те кнопки, которые характерны только для среды Maple. Кнопка вывод ит ниже от позиции курсора новую командную строку с выполнением текущего условия. 
7 Кнопка предназначена для создания символьной формы выраж е- ния. Кнопка позволяет превратить формулу в командной строке в текст типографской пе чати (так называемая инертная форма выражения). Кнопка производит автокоррекцию выражений с проверкой си н- таксиса. Кнопка создает секцию (см. на рис.1 изображение: ). Кнопка удаляет секцию. Три кнопки с нарисованными лупами позволяют изменить ма с штаб просмотра документа соответственно 100% : 150% : 200%. Для размещения в документе текстовых областей на инструментал ь- ной панели используют кнопку или пользуются командой меню Insert \ Text region . Центральную часть окна занимает рабочая область, в которой могут находиться текст, формулы и графика. В одном рабочем документе Maple можно размещать текст, матем а- тические формулы и графики. При загрузке программы автомати чески з а- гружается новый рабочий лист (документ) c приглашением для ввода к о- манды > (prompt). В командную строку можно записать любое алгебраич е- ское выражение, состоящее из имен переменных и функций, чисел и си м- вольных констант, соединенных алгебраическими операторами. Ввод м а- тематических формул и команд производят в основном с помощью клави а- туры. Для вставки каких - либо символов или формул можно также испол ь- зовать панели формул и символов, которые раскрываются следующими командами: View/ Palettes/ Symbol Pal ette ( панель символов ); View/ Palettes/ Expression Palette ( панель формул ); View/ Palettes/ Matrix Palette ( панель матриц ). Самая нижняя строка – строка статуса, в которой отображается д о- полнительная, полезная информация о времени выполнения операции и ис польз о вании памяти: Команда включения/отображения строки статуса находится в меню View \ Status Line . Команды отключения строки статуса, контекстного меню и инстр у- ментальной панели обычно используются, если требуется увеличить раб о- чую о б ла сть. Maple использует характерные черты Windows - приложения, поэтому основные приемы работы в среде Maple такие же, как и в любом прилож е- нии Windows. 
8 II. СПРАВОЧНАЯ СИСТЕМА MAPLE Maple имеет свою многоуровневую справочную систему и отдельное м е ню Help c о пциями: Introduction - справка по теме; Help on context - справка по контексту или тематической помощи; New user’s tour - информация о практическом использовании Maple; What’s new – информация о новых дополнениях и новинках сист е - мы; Using help - использование справочной системы; Topic search - предметный поиск по заданному образцу; Full text search – предметный поиск с полным обзором текста спра в - ки; History - вывод истории справочного поиска; Sav e to database - формирование базы данных; Remove topic - восстановление базы данных предметного поиска; Balloon help - включение всплывающих подсказок; About Maple V - вывод информации о системе. Получить справку в Maple можно несколькими способами, кажды й из которых имеет свои особенности. Для непосредственного обращения к спр а вочной системе используют меню HELP или клавишу F1 . Начинающим рекомендуется включить опцию в меню HELP \ Ba l- loon help . Эта опция позволяет быстрее изучить среду Maple: когда курсор мышки указывает на какой - либо объект или кнопку меню, то ниже появл я- ется небольшая информация об этом объекте. Например, если подвести курсор к кнопке , то через секунду появится под кнопкой: “Insert text at the cursor” (“Ввод текста от ку рсора”). Справку о назначении любой команды можно получить, если после знака вопроса записать ее предположительное название и нажать клавишу ввода. Можно поступить иначе: набрать команду, выделить ее и нажать кнопку F1 . Если команда существует, то Maple вы даст информацию об этой команде. Если она не существует, то Maple выдаст сообщение о том, что невозможно найти информацию в Help. Все команды по определенной теме можно найти через меню HELP \ Introduction . Далее выбрать нужную тему. Например, если интерес ует работа с функцией cos, то организуется поиск следующим образом: HELP \ Introduction Mathematics… \ Basic Mathematics… \ Exponentional, Trig … \ cos . Если пользователь привык выполнять запуск меню и команд с п о- мощью комбинаций клавиш, а не с помощью мышки, то поможет следу ю- щая инфо р мация: System \ General \ Utilites \ Editing . 
9 III. ВЫЧИСЛЕНИЯ В MAPLE 3.1. Создание формул Работа Maple организована в диалоговом режиме: вопрос – ответ в отдельном блоке. Блок выделяется слева квадратной скобкой, длина кот о- рой з ависит от размеров и количества исходных выражений (вопрос) и р е- зул ь татов вычислений (ответ). В текущей строке ввода (с мигающим вертикальным курсором) можно размещать команды, выражения и комментарии. Комментарии вводятся как текст (в текстовом режиме ст роки ввода) или как замечание (после к о манды ставим знак #(диез) и набираем комментарий). Команда – это указание системе, которое готовит ее к определенным действиям. К командам относятся также действия по изменению инте р- фейса и выполнению операций с файл ами. Таким образом, команды – это действия, не связанные с возвратом чего - либо. Для выполнения любых математических операций необходимо обе с- печить систему исходных данных – в общем случае математических выр а- жений. Для ввода таких выражений и текстовых комм ентариев служат два типа строк ввода – для ввода математических выражений и текстовых комментариев. Переключение типа текущей строки ввода осуществляется клавишей F5. Строка ввода математических выражений имеет отличител ь- ный символ >, а строка ввода тексто в никаких признаков не имеет. Выражение – это объект, содержащий операторы, операнды и фун к- ции. В Maple выражение задается средствами, привычными для языка пр о- граммирования с помощью функций и операторов, записываемых в к о- мандной строке. Результаты вычисле ний (по умолчанию) обычно получ а- ются в виде обы ч ных формул. Ввод команд и выражений в командную строку осуществляется с помощью клавиатуры и панелей формул. Для создания простейших выр а- жений достаточно использовать панель формул, которая открывается по ком анде меню: View/ Palettes/ Expression Palette; ( панель формул ) . Выражения в Maple могут эволюционировать, т.е. изменяться в соо т- ветствии с заданными математическими законами и правилами преобраз о- вания. Когда панель формул загружена и активна, то для перехо да от одной подстановки формулы к другой можно использовать клавишу табуляции TAB . Вводимые и выводимые выражения могут быть представлены в ра з- личных формах, в том числе и в естественном математическом виде. Maple имеет многочисленные функции преобразован ия форматов, которые п о- зволяют менять форму представления данных и выражений. Для преобр а- 
10 зования выражений ввода к общепринятому виду математической формы используется кнопка в строке контекстного меню. Для преобразования выражений вв о да к текстовому виду используется кнопка . Ввод выражения нужно завершать символом фиксации конца выр а- жения – точкой с запятой или двоеточием. Знак фиксации конца выраж е- ния “;” (точка с запятой) указывает на то, что при нажатии клавиши ввода (и ли кнопки на инструментальной панели) выражение будет обработ а- но программой Maple и результат вычислений отобразится на экране ди с- плея. Знак “:” (двоеточие) отменяет вывод результата на экран и может использоваться как знак разделителя пр и записи в одной строке нескол ь- ких выражений. Например. > sin(Pi/2)*Pi: # гашение вывода результата на экран или > 7+sqrt(16) - 2**2; # вывод результата на экран 7 Если в выражении есть неопределенная переменная, то вывод р е- зультата – это повторение самого выражения в инертной форме. Кнопкой выражение можно превратить в инертную форму, когда выражение п е- рестает вычисляться и становится, по существу, обычным комментарием. Все инертные функции имеют имя, начинающееся с прописной буквы, обычны е функции начинаются со строчной буквы. Например . > evalf(2*Pi); evalf(2*pi); 6.283185308 2  Выражения формируются из операторов и операндов. Операндами могут быть константы, переменные и значения фун к- ций. Операторы – это специальные знаки для записи конк ретных опер а- ций. Список операций приведен в приложении 1. Maple допускает для оп е- раций символы - синонимы. Например, возведение в степень может обозн а- чаться как «**», так и символом «^». Для изменения порядка выполнения операций используются скобки. Если выр ажение не помещается в одной строке, то для переноса части выражения на новую строку нужно нажать комбинацию кл а виш Shift +Enter . В одной строке можно записывать несколько команд или выраж е- ний. Например. > cos(2*Pi+x)+2*1/2; sin(Pi/2)*Pi; # введено два в ыражения cos(x)+1 Pi 
11 Если в строке было записано несколько выражений, то вызов кажд о- го из трех последних производится ditto - оператором: % - вывод результата последнего вычисленного выражения; %% - вывод результата предпоследнего вычисленного выражения; %% % - вывод результата третьего от конца среди вычисленных в ы- раж е ний. Например . > sin(0.9); cos(0.8); 2*sin(0.7); .7833269096 .6967067093 1.288435374 > sin(0.9): cos(0.8): 2*sin(0.7): %; 1.288435374 > sin(0.9): cos(0.8): 2*sin(0.7): %%; .6967067093 > sin(0.9): cos(0.8): 2*sin(0.7): %%%; .7833269096 Имена собственных команд Maple защищены. Это означает, что п о- пытка присвоения каких - либо выражений этим именам вызовет предупр е- ждение об ошибке. 3.2.Числа, константы и переменные Числа, строки, переме нные – самые простые объекты в Maple. Здесь числа не всегда имеют привычный для десятичного представления вид. Целые числа выражаются просто цифрами в десятичной записи. Раци о- нальные числа используют оператор деления, чтобы выделить числитель и знаменатель . Причем рациональные числа автоматически упрощаются. При необходимости используется десятичное представление точных зн а- чений рациональных чисел, как результат многих вычислений программы. Эти числа могут быть также записаны в форме вещественного числа с п л а- вающей точкой с испол ь зованием степени 10. Например. > 175347; 175347 > 10/2; 5 > 2/10; 1/5 > .0006; .0006 > .003e - 34; .3 10 - 36 
12 В Maple особую роль играет десятичная точка – она служит указан и- ем о необходимости получить численное значение результата. Для цел о- численн о го аргумента выражение не вычисляется. Например. > sin (3.); sin (3); .1411200081 sin(3) Maple содержит большое количество общеизвестных математич е- ских констант: Pi, pi, exp(1), I (мнимая единица), infinity (бесконечность), gamma (константа Э йлера), Catalan (константа Каталана), true, false (б у- левы ко н станты). Более подробное описание можно посмотреть здесь : Help \ Introduction Mathematics \ General Information… \ constants. Строковые константы пишутся в одинарных кавычках (обратных апос т рофах). Н апример . > `it is string`; it is string Две прямые кавычки, вводимые последовательно в начале строки, интерпретируются как одна кавычка. Это позволяет включать символ пр я- мой кавычки в текст строки. Например. > ''ssss''; 'ssss' > 'ssss'; ssss 3.3. Оператор присваивания Самый распространенный оператор – это оператор присваивания. Оператором присваивания является следующее обозначение “:=”. Он и с- пользуется для задания переменным конкретных значений. Например . > s := tan ( Pi +12.78)/0.3 ; b := sin ( Pi /2)* Pi ; s := .7231322199 b := Pi > st1:=`it is string`:st1; it is string Переменные получают значения в результате операции присваив а- ния. Имя переменной должно быть уникальным, начинаться с буквы (a - z, A - Z) и может сопровождаться одним или большим количеством букве н- ных симв о лов, цифрами (0 - 9), и символом подчеркивания (_). 
13 Имя переменной или строковой константы может достигать длины вплоть до 524 275 знаков. Максимальная длина строки определена самой системой компьютера. На 32 - битной платформе это составляет 524271 с имвола; на 64 - битной платформе это составляет уже 34359738335 симв о- лов! Имена чувствительны к регистру, то есть имя Name отличается от имени name. Кроме этого, именем может служить любая строка, то есть любой набор символов, заключенных в обратные кавычки. Имя, обозн а- ченное строкой, состоящей из разрешенных для имени символов, совпад а- ет с именем из тех же символов без кавычек. К примеру, `Name` и Name - одно и то же имя. Таким образом, существует 3 типа кавычек: прямые одиночные к а- вычки, обратные одиночные кавычки (обратный апостроф) и прямые двойные к а вычки. Некоторые символы, например, альфа, хи, мю, сигма, бета можно набрать с помощью клавиатуры по “названию”. Если название символа н а- бираем с большой буквы, то символ будет изображен как заглавная буква, иначе – прописной буквой. Например . > xi, alpha, beta, mu, sigma, tau, delta, psi, theta;  ,  ,  ,  ,  ,  ,  ,  ,  > Xi, Alpha, Beta, Mu, Sigma, Tau, Delta, Psi, Theta;  ,  ,  , M,  ,  ,  ,  ,  > infinity, Infinity;  , Infinity > evalf(pi);  > evalf(Pi); 3.141592654 При использовании оператора присваивания, Maple помнит только последнее присвоенное значение для любой переменной. Для отмены операции присваивания нужно использовать функцию evaln(x) или следующее выражение: x:=’x’, т.е. заключенное в прямые ап о- строфы имя переменной ликвидирует последнюю операцию присваивания для этой переменной и возвращает ей статус неопределенной переменной. Для отмены сразу всех присваиваний всем переменным и функциям сл у- жит к о манда restart . Например . > s:=5; st:="Maple V Release 5"; s := 5 st := "Maple V Release 5" > s; st; 5 
14 "Maple V Release 5" > s:='s'; st:='st'; # после переприсваивания переменных s := s st := st > s;st; s st > s:=5;st:="Maple V Release 5"; s := 5 st := "Maple V Release 5" > restart; # после запуска ком анды > s ; st ; s st Существует также оператор эквивалентности, обозначаемый знаком равенства “=”. Этот оператор (=) просто связывает между собой некоторые переменные и значения выражения, не присваивая явных значений пер е- менным. Если у нас существует уравне ние типа х=1, то для того, чтобы п е- ременная х присвоила значение “1”, необходимо использовать команду assign . Т.о., знак “=” преобразуется в “:=”. Например. > x=1; x = 1 > x; # переменная х не имеет численного значения x > assign ( x =1); > x; # переменной х присваивается численное значение 1 3.4. Встроенные функции и функции пользователя Для математических расчетов в Maple можно использовать встрое н- ные функции (см. приложение 2) и создавать новые. Функция в выражениях вводится заданием ее имени и списка из о д- ного или ряда фактических параметров в круглых скобках. Можно также создать новую (свою) функцию, зависящую от каких - либо входных данных. Причем это можно сделать несколькими способами. Например. > fun1:=x^2+y^2; # функция задана как выражение fun1 f un1 := x 2 + y 2 > fun2 := proc(x::uneval) x^2 end; # используем команду proc для форм и рования функции x 2 fun2 := proc(x::uneval) x^2 end 
15 > fun2(3); # вызов функции fun2 с параметром 3 9 > fun3 := (x,y) - > sin(x)*cos(y) + x*y; # используем оператор - > для формирования функции fun3 fun3 := (x, y) - > sin(x) cos(y) + x y > fun3(Pi, Pi); # вызов функции fun3 с параметрами Pi, Pi Pi 2 Имена встроенных функций по определенной теме можно найти в меню HELP \ Introduction . Например, если необходима информация о реше нии системы дифф е- ренциальных уравнений, которую надо решить аналитически, то поиск о р- ганиз у ется следующим образом: HELP \ Introduction Mathematics \ Differential equation \ Dsolve \ System. Большинство команд Maple написаны полностью в символах нижн е- го регистр а. Однако следует помнить, что Maple “чувствителен” к регис т- ру. Это означает, что функции “diff” и “Diff” различны. Для этого Maple использует понятие инертных функций. Инертная функция служит для в ы- вода записи выражения в естественной математической форме , но с отл о- женным выводом результата вычислений. Все инертные функции имеют имя, начинающееся с прописной буквы, тогда как обычные функции им е- ют имена, начинающиеся со строчной буквы. Например , инертные функции : Int, Infinity, Diff, Pi, Limit . 3.5. Просте йшие вычисления Чтобы получить результат какого - либо выражения, необходимо н а- брать его в командной строке и нажать клавишу ввода. После этого Maple выдает ответ на экран. Чтобы преобразовать выражения к виду привычной математической записи, достаточно наж ать кнопку на панели инструментов. Например. > int(x**3,x=1..4); # и нажимаем кнопку , имеем: Результат вычислений может быть получен в символьном виде, в в и- де численного выражения или числа. Для простейших вычислений может понадобиться функция evalf (см. приложение 3 ) , которая упрощает численное выражение до числа в д е- сятичном формате. Для упрощения выражения в символьной форме можно испол ь зовать команду simplify. 
16 Например. №1. Вычисление корня 7 - ой степе ни из числа 367.2 > surd(367.2, 7); # и нажать клавишу Enter 2.324955621 №2. Вычисление квадратного корня из числа 9 > x :=9; sqrt ( x ); x := 9 3 №3. Вычисление комплексного числа в степени ( - 1) или 4 > ((1.98+2.24*I)^( - 1)); .2215260685 - .2506153502 I > (I +3)^4; 28 + 96 I №4. Вычисление выражений (командой evalf ) а) Вычисление выражения f > f :=(2^3)*(19.707/((2* Pi ) - sqrt (1+ cos (0.566^2)))): > evalf(f); 32.25978583 б) Вычисление интеграла на интервале от 0 до 1 > evalf(int((sin(x+0.56*Pi)/sqrt(1+x^2)), x=0..1 )); .6693469744 №5. Упрощение выражения командой simplify > simplify(4^(1/2)+3); 5 При вычислении некоторых выражений или уравнений не всегда р е- зультатом будет число десятичного вида. Это возможно в следующих сл у- чаях: 1) Если не определен заранее тип перем енной. Здесь Maple сам опр е- деляет тип переменной или константы. Например. > var:=sqrt(2); # корень из целого числа var:= 2 > var:=sqrt(2.); # вычислить значение корня из 2 var := 1.414213562 2) Если используется символьная константа pi . В Maple существуют два типа этого числа в трех видах. Первый тип : это константа - число Pi . Второй тип : это буквы pi (прописная) и PI (заглавная). Например . > evalf(Pi); evalf(pi); evalf(PI); 3.141592654   
17 3) Если в каком - то уравнении получается очень слож ное решение или невозможно получить ответ в виде числа. Например . > solve(x - cos(x)); RootOf(_Z - cos(_Z)) В данном примере, ответ – это символьное представление в виде н е- известных корней от функции, зависящей от переменной _Z. Следует обратить внимание на то, что комплекс каких - либо вычи с- лений можно оформить в виде списка команд, то есть все команды (в том числе функции и операторы) набраны в одной командной строке через точку с зап я той (;) или двоеточие (:). Например. > y:=x: f:=g: r:=p; r := p > y:=x; f: =g; r:=p; > y:=x: f:=g: r:=p; y := x f := g r := p r := p 
18 IV. РАБОТА С МАССИВАМИ, МАТРИЦАМИ, ВЕКТОР А МИ И ТАБЛИЦАМИ 4.1. Типы скалярных данных. Конвертация чисел Maple работает с числами следующего типа: целыми десятичными, рациональ ными (в виде отношения целых чисел), вещественными (с ма н- тиссой и порядком) и комплексными. В качестве разделителя целой и дробной части мантиссы используется десятичная точка, мнимая единица у комплексных чисел обозначается как I. Функции Re(x) и Im(x) в озвр а- щают действительную и мнимую часть комплексных чисел. Десятичная точка в числах имеет особый статус: указание ее в любом месте числа, а также в конце, делает число вещественным и ведет к переходу в режим вычислений с вещественными числами. Количеством выводимых цифр можно управлять, задавая их знач е- ние системной переменной Digits (по умолчанию – 10, диапазон равен от 0 до 524280 знаков) или функцией evalf(expr, n) , где expr – вычисляемое выраж е ние, а n – количество выводимых знаков. Например. >12.5/5; 2.500000000 >Digits:=4; >12.5/5; 2.500 >120./5; 24.00 > evalf(12.5/5,3); 2.50 Maple допускает операции с числами, имеющими различное основ а- ние: двоичное ( binary ), восьмеричное ( octal ), шестнадцатеричное ( hex ) и десятичное ( decimal ). Однако, операнды выраже ния должны быть в одной системе счисления, иначе возникнут ошибки. Более подробно можно посмотреть здесь: HELP \ Introduction Programming \ Data types \ . . . Функция convert позволяет преобразовывать форматы чисел. Общий вид функции : convert(number, [ forma t_0 ], format_1) , где number – параметр, значением которого является число любого фо р- мата; format_0 – имя формата, в который производится преобразование числа; format_1 – имя формата, из которого производится преобразование 
19 числа. Напр имер. > x:=45; # число в десятичной форме x:=45 > y:=convert (x, binary); # преобразование числа в двоичную форму y := 101101 > z:=convert (x, octal); # преобразование числа из десятичной формы в восьмеричную z := 55 > convert (`1A`, decimal, hex); # прео бразование числа из шестнадц а- теричной формы в десятичную 26 4.2. Типы переменных Переменные – это объекты, значения которых могут меняться по ходу вычислений. В Maple тип переменной определяется типом присвое н- ного ей значения. Скалярные переменные могут быть целочисленного, р а- циональн о го, вещественного, комплексного, строчного типа и т.д. Переменные могут быть также символьного типа (их значением я в- ляется математическое выражение) или списочного типа. Для явного указания типа переменных используется конс трукция: name::type, где: name – имя переменной (идентификатор), type – тип переменной. Например. > x::integer; x::integer; Значения параметра type указаны ниже в таблице 4.1. Переменные также можно ограничить по некоторому ряду свойств: не больше числа а, не меньше числа а, больше числа а, меньше числа а, число является целым и т.д. Например. Переменная var1 должна изменяться в интервале от 0 до 11. > assume (var1>0); #ограничение снизу > additionally (var1<11); #ограничение сверху Чтобы узнать информацию о переменной и ее свойствах, необход и- мо использовать функцию about(var) . Например . > about(var1); Originally var1, renamed var1~: is assumed to be: RealRange(Open(0),Open(11)) 
20 Табл. 4.1 Типы данных 1. integer Целые десятичные 2. fraction Р ациональные 3. float, rea l cons Вещественные с мантиссой и порядком 4. complexcons Комплексные 5. symbol Символьные 6. string Строковые 7. indexed Индексные 8. literal Литерные Функцию type(x, numeric), type(x, integer), type(x, racional), type(x, fraction) можно использовать для определения того, имеет ли х числовое значение, является ли целым числом, рациональным или простой дробью. Функции type(x, constant) и type(x, realcons) возвращают логическое зн а- чение true , если значение х есть целочисленн ая или вещественная ко н- станта. В противном случае значением соответствующей функции является значение ложь ( false ). 4.3. Последовательности выражений, наборы и списки Maple может работать не только с одиночными выражениями, но и с п о следовательностями в ыражений. Последовательность выражений – это ряд выражений, разделе н- ных запятыми и завершенных фиксатором (;). Например . > a, b, 2, rr, cos(0); a, b, 2, rr, cos(0); Для автоматического формирования последовательности выражений используется специальный оп ератор $, после которого можно указывать количество членов выражений или задавать диапазон формирования в ы- ражений. Например . > $1..5; 1,2,3,4,5 > N[i]$i=1..4; N[1], N[2], N[3], N[4] Для создания последовательностей выражений можно использовать и функцию se q : seq(f, i = m..n) seq(f, i = x) Параметры: 
21 f – любое выражение; i – имя переменной; m, n – численные знач е- ния; x – выражение. Например. > seq(sin(Pi*x/2),x=1..6); 1, 0, - 1, 0, 1, 0 > seq( i^2, i=1..5 ); 1, 4, 9, 16, 25 > X := [seq( i, i=0..6 )]; # создан ие множества значений X := [0, 1, 2, 3, 4, 5, 6] > Y := [seq( i^2, i=X )]; Y := [0, 1, 4, 9, 16, 25, 36] > [seq( [X[i],Y[i]], i=1..nops(X) )]; # создание множества пар чисел [[0, 0], [1, 1], [2, 4], [3, 9], [4, 16], [5, 25], [6, 36]] > seq( i, i="Hello" ); # создание последовательности букв из строки "H", "e", "l", "l", "o" > seq( i, i="a".."f" ); # отображение интервала значений букв "a", "b", "c", "d", "e", "f" Любые выражения могут включаться также в неупорядоченные н а- боры . Наборы создаются с помощью фи гурных скобок {}. Неупорядоче н- ность заключается в том, что элементы набора могут переставляться ме с- тами и длина этого набора может уменьшаться по количеству элементов. За каждым знач е нием набора строго не определена своя «ячейка» набора. Отличительная черт а наборов – автоматическое устранение из них повторяющихся по значению элементов. Кроме того, Maple может пер е- ста в лять элементы наборов. Например . > {d, a, f, gh, r, e, w, q, q}; {d, a, r, w, e, gh, f, q} > {‘i’, ‘like’, ‘life’}; {‘i’, ‘like’, ‘life’} > { 'Sunday','Monday','Friday'}; { Friday , Monday , Sunday } Для создания упорядоченных наборов – списков служат квадратные скобки [] . Упорядоченность этих списков заключается в том, что каждый элемент списка индивидуален (уникален) и он имеет свою собственную «я чейку». Поэтому упорядоченные списки широко применяются для зад а- ния вект о ров и матриц. Например . > [s,df,g,gt,tr,e,e,w,qw]; [s, df, g, gt, tr, e, e, w, qw] > ['i', 'like', 'life']; [i, like, life] 
22 Иногда списки выражений или значений используются для вывод а графиков функций в виде точек, тогда создаются парные списки. Например. Определение координат точек (x,y) графика: > X := [seq( i, i=0..10 )]: Y := [seq( i^2, i=X )]: data:=[seq( [X[i],Y[i]], i=1..nops(X) )]; plot ( data ); # вывод графика по точкам data := [[0, 0], [1, 1], [2, 4], [3, 9], [4, 16], [5, 25], [6, 36], [7, 49], [8, 64], [9, 81], [10, 100]] Структура более высокого уровня (одной или более размерностей), содержащая совокупность однотипных объектов, называется массивом . Каждой размерности массива соответствует свой диапазон, определяемый пользователем. Массивы создаются при помощи команды array . Одноме р- ный массив называется вектором, матрица задается как двумерный массив. Рассмотрим таблицу с общей информацией о векторах, матрицах, масс и вах и таблицах. Табл. 4.2 Массивы, вектора, матрицы, таблицы 1. [1,2,3,4] Список из четырех чисел 2. array[a..b,s1] или vector[a..b,s1] Вектор с индексами от a до b и значениями в списке s1 3. а rray [a..b, с ..d,s2] Массив со строками от а до b столбцами от с до d и значениями в двумерном списке s2 4. matrix [a..b, с ..d,s2] Матрица со строками от а до b столбцами от с до d и значениями в двумерном списке s2 5. table([ ]) Таблица, созданная из списка чисел, функций Отличие матрицы и массива заключается в том, что матрица являе т- ся подмножеством объекта массив. Матрица задана как двумерный массив и н и как иначе. А массив может быть любой размерности. Для создания массива ( первый способ ) делается следующее: 1. Активизировать панель массивов, то есть команда View/ Palettes/ Matrix Palette ; 2. Задать имя массива или вектора в командной строке и оператор присваивания “:=”; 3. Выбрать на панели шаблон массива заданной размерности; 4. Вместо знаков “%?” вставить необходимые числа и переменные (пер е хо д клавишей TAB ). Второй способ : для большего удобства введения данных в массив поступают так: 
23 1. Активизировать панель массивов, то есть команда View/ Palettes/ Matrix Palette ; 2. Задать имя массива или вектора в командной строке и оператор присваивания “ :=”; 3. Выбрать на панели шаблон массива заданной размерности; 4. Курсор установить на имя массива в командной строке; 5. Нажать кнопку на панели. Массив будет представлен в пр и- вычной математической форме; 6. Указывая курсором мышки на эле мент массива, необходимо з а- полнить содержимое этой ячейки и нажать клавишу ENTER (выполнение пункта 6 повторяется до тех пор, пока не введутся значения всех ячеек; п е- реход к следующей ячейке осуществляе т ся клавишей TAB ); 7. Нажать повторно на кнопку . Произойдет преобразование си м- вольного массива в текстовый. Это на дальнейший результат вычислений не повлияет. Третий способ (универсальный): 1. Установить курсор мышки на нужную командную строку; 2. Набрать полностью команду создания массива или век тора с п о- мощью клавиатуры. Например. Чтобы сформировать массив с именем mas размерности n*m, необходимо набрать следующее: > mas:=array(1..n, 1..m, []); Таким образом, сформируется массив размерности n*m, где n – к о- личество строк, m – количество столбцов, а скобки [] означают, что здесь может находиться список значений (выражений) или отсутствовать, пр и- чем если списка нет, то квадратные скобки должны остаться в описании функции. Например . Создание массива 2 на 3, который уже содержит в себе зар а нее определе нные компоненты массива. > with(linalg): > array(1..2,1..3,[[a,b,c],[d,e,f]]); [a b c] [d e f] Еще одним из важных типов данных является таблица . Она задает множественные данные с произвольной индексацией. Для создания таблиц и с пользуется функ ция следующего формата: table ( F , L ) Параметры: F – индексированные функции; L – список или множество. Пустая таблица table() резервирует память под данные. Когда пар а- метром функции table является список выражений, он выводится в естес т- 
24 венном порядке рас положения элементов таблицы, но с произвольным п о- рядком индексации, причем индекс не обязательно выражается целым чи с- лом. Например. > table([22,42]); # создание таблицы из двух элементов table([ 1 = 22 2 = 42 ]) > S := table([(2)= 45,(4)=61]); # создание таблицы из двух элементов с присвоенными им индексами 2 и 4 S := table([ 2 = 45 4 = 61 ]) > F := table([sin=cos,cos= - sin]): # создание таблицы из двух элементов с присвоенными им индексами sin и cos F[s in]; # обращение к элементу таблицы по его индексу. cos Команда е valm(mexpr) вычисляет значение матричного выражения mexpr и возвращает его результат. Индивидуальные элементы массива могут или определяться заранее, или оставаться неизвестными (примеры можн о посмотреть, сделав сл е- дующее: набрать слово array в Maple, выделить его и нажать кнопку F1 ). Более подробно можно посмотреть здесь: HELP \ Introduction Programming \ Data types \ Arrays, Lists, Sets \ Array или Mathematics \ Numerical computation \ Matlab \ Ma trix. Более подробный список функции для массивов, векторов, матриц можно найти в приложении 4. Необходимо помнить, что при работе с матрицами, векторами и массивами нужно подключать библиотеку linalg каждый раз при загрузке Maple или после использования к оманды restart . Например. > with(linalg): Ниже приведено несколько примеров работы с векторами и матр и- цами. №1. Создание вектора размерности 5, где значения элементов вект о- ра опис а ны по закону x n =cos(10n)+n 2 , n=0..4. Maple создает нумерацию векторов и масс ивов только от 1, поэтому необходимо ввести новую переменную n=i - 1. Функция print реализует вывод массива или вектора. 
25 > v := array(1..5): > for i to 5 do v[i] := cos(10*(i - 1))+(i - 1)^2 od: > print(v); [1, cos(10) + 1, cos(20) + 4, cos(30) + 9, cos(40) + 1 6] №2. Создание массива функцией matrix и задание массива через функцию f , где f=n*(m+7)/(n+m+1), n=0..3, m=0..3: Здесь индексация массива сдвинута на ( - 1) как для i так и для j, то есть n=i - 1, m=j - 1. Это делается в связи с тем, что в Maple индексация ма с- с ива начинается с 1. > f := (i,j) - > (i - 1)*(j+6)/(i+j - 1): > A := matrix (4,4, f ); [ 0 0 0 0 ] [7/2 8/3 9/4 2 ] A := [14/3 4 18/5 10/3] [21/4 24/5 9/2 30/7] №3. Просмотр з начений любого элемента массива или вектора ос у- ществляется непосредственным обращением по адресу элемента: > A[1,1];A[2,1];A[2,2];A[2,3]; 0 7/2 8/3 9/4 №4. Просмотр содержимого столбца или строки осуществляется н е- сколькими способами: > for i to 4 do A[2,i] od; # просмотр 2 строки массива А через цикл for 7/2 8/3 9/4 2 > row(A,2); # просмотр 2 строки через функцию row [7/2, 8/3, 9/4, 2] > col(A,2..3); # просмотр 2 и 3 столбца через функцию col [0, 8/3, 4, 24/5], [0, 9/4, 18/5, 9/2] №5. Вычисление угла между двумя векторами: U и V. > U:=array(1..3,[1,0,0]); V:=array(1..3,[0,1,0]); alfa:=angle(U,V); U := [1, 0, 0] V := [0, 1, 0]  := Pi/2 № 6. Можно также графически представить двумерный массив: > with(plots): with(linalg): # загружается две библиотеки C:=matr ix([[3, 4, 5], [6, - 7, 7], [ - 1, 4, 0]]); # определение 3 - х мерного ма с сива F:=(x,y) - >sin(x*y)/(1 - x): # определение функции 
26 matrixplot(C,heights=histogram, axes=frame, gap=0.55, style=patch, color=F); # построение графического массива Чтобы образова ть новую строку этой же командной строки, необх о- димо нажать комбинацию клавиш SHIFT+ENTER . Таким образом, в пр и- мере получен список команд, результатом которого в данном случае явл я- ется трехмерный график массива. 4.4. Подключение библиотек В Maple существ уют следующие библиотеки:  Detools (differential equations tools);  Domains (create domains of computation);  GF (Galois Fields);  GaussInt (Gaussian Integers);  LREtools (manipulate linear recurrence relations);  Matlab (Matlab Link);  algcurves (Algebraic Curv es);  codegen (Code Generation);  combinat (combinatorial functions);  combstruct (combinatorial structures);  diffalg (differential algebra);  difforms (differential forms);  finance (financial mathematics);  genfunc (rational generating functions);  geom3d (Eucl idean three - dimensional geometry);  geometry (Euclidean geometry);  grobner (Grobner bases);  group (permutation and finitely - presented groups);  inttrans (integral transforms);  liesymm (Lie symmetries);  linalg (Linear algebra);  logic (Boolean logic);  networks (graph networks);  numapprox (numerical approximation);  numtheory (number theory);  orthopoly (orthogonal polynomials);  padic (p - adic numbers);  plots (graphics package);  plottools (basic graphical objects);  powseries (formal power series);  process ((Unix) - m ulti - processing); 
27  simplex (linear optimization);  stats (statistics);  student (student calculus);  sumtools (indefinite and definite sums);  tensor (tensor computations and General Relativity);  totorder (total orders on names). Для подключения любой вышеперечисленной библиотеки необх о- димо выполнить следующую команду: with (name_library), где name_library – имя подключаемой библиотеки. Например. Подключение двух библиотек: студенческие вычисления и линейная алгебра. > with ( studen t ): > with ( linalg ): Причем, если в конце функции поставить знак точка с запятой, а не двоеточие, то после загрузки библиотеки будет выведено сообщение, какие функции закреплены за данной библиотекой. После запуска команды restart все библиотеки, подключен ные пол ь- зователем, выгружаются из памяти. Поэтому необходимые библиотеки нужно з а ново загрузить. 
28 V. ГРАФИКА 2D И 3D. АНИМАЦИЯ Система Maple имеет большое количество функций для построения графиков в различных системах координат как на плоскости, так и в тре х- мерном пространстве. Для графиков допустимы следующие операции: со з- дание, удаление, перемещение, изменение размеров графического блока и формата графика, смена системы координат и вывода графика функции. Можно также н е сколько графиков выводить в одной системе координат. Maple позволяет отображать графики и поверхности в виде, удобном пользователю, изменяя цвета, толщину и тип линии, формат системы к о- орд и нат, угол обзора и т.д. В само ядро Maple встроено ограниченное число функций графики. Это прежде вс его функция для построения двумерных графиков (2D) – plot и функция для построения трехмерных графиков (3D) – plot3d . Для п о- строения графиков специального типа в пакеты расширения системы Maple включено большое число различных графических функций. Для их вызова необходимы соответствующие указания. Графические результаты могут быть представлены в текущем док у- менте (в ячейках вывода) или в отдельных окнах (документах). Такой в ы- вод обеспечивается двумя опциями ( Inline – вывод графиков в текущем документе; Win dow – вывод графиков в отдельных окнах) меню Options \ Plot Display . Графические функции обеспечивают простейшее построение тип о- вых графиков без какой - либо особой подготовки. Для этого необходимо указать функцию, график которой строится, и пределы изменения незав и- симых переменных. С помощью дополнительных параметров - опций (в к о- мандной строке, или из меню; контекстное меню вызывается нажатием правой кнопки мыши на самом графике) можно изменить вид графиков, т.е., изменить стиль и цвет линий, вывести или измен ить координатные оси, написать заголовок графика функции и т.д. 5.1. Двумерная графика Чтобы построить двумерный график, необходимо использовать функцию plot . Эта функция имеет следующий формат: plot ( function , variable _ x {, variable _ y } {, option }) где function – функция; variable_x – переменная, указывающая область изменения по гор и - зонтали; variable_y – переменная, указывающая область изменения по верт и - кали; option – набор опций, задающий стиль построения гр афика функции. 
29 Например. Построение графика функции 3*x^2 на интервале – 3..3: >plot(3*x^2, x= - 3..3); # построение графика без отдельного определ е - ния функции >f(x):=3*x^2; plot(f(x), x= - 3..3); # построение графика с отдельным определением функции Чтобы построить график функции f:=x^2 черного цвета c помощью функции plot, необходимо сделать следующее: > f:=x - >x**2; plot(f(x), x= - 5..5,color=black); Для двумерной графики можно включать следующие опции: - numpoints – изменение количества точек графика (п о умолч а- нию=49); - color – задание цвета кривой графика; - title – добавление заголовка графика (title=“string”); - coords – выбор системы координат, этот параметр задает 15 типов координатных систем (см. приложение 5). По умолчанию задана прям о- угольная с истема координат; - axes – задание типа осей координат ( frame – рамка, boxed – прям о- угол ь ник, normal – ортогональные, none – без осей); - thickness – толщина линии графика; - xtickmarks, ytickmarks – управление числом меток на оси, т.е. з а- дает минимальное число отметок по оси x и y соответственно; - style – стиль построения графика ( line – выводится интерполяцио н- ная кривая, point – выводятся точки); - scaling – масштаб графика ( constrained – сжатый или unconstrained - несжатый ); - size – размер шрифта в пу нктах; - symbol – тип точки графика в виде символа ( box – прямоугольник, cross – крест, circle – окружность, point – точка, diamond – ромб); - titlefont – шрифт для заголовка; - labelfont – шрифт для меток (labels) на осях координат; - view=[A,B] – опреде ление максимальной и минимальной коорд и- нат, в пределах которых график будет отображаться на экране, где A=[xmin..xmax], B=[ymin..ymax] . Ниже приведено несколько примеров. №1. Построение графика x^2 на интервале [ – 4,4] красного цвета и график будет выводить ся в виде совокупности точек: > plot (x^2, x= - 4..4, color=red, title=“grafic”, style=point); №2. Построение трех графиков в одной системе координат, но с ра з- ными цветами и разными стилями линий: > plot([sin(x),cos(x),2*cos(x)*sin(x)], x= - 2..10,color=[blac k, blue, red], style=[line, line, point]); 
30 №3. Построение графика функции и ее полиномиальной аппрокс и- мации в одной системе координат: > f:=sin(x)/x^2; poly:=convert(series(f, x, 10), polynom); > plot ([ f, poly], x= - 5..5, y= - 5..5, color=[blue,red], style= [line,point]); №4. Построение графика, заданного отдельными парами точек (x,y), точки выводятся в виде окружностей: > plot([[0,0],[1,2],[2,6],[8,3],[9,4],[5,6]],x=0..10,style=line, symbol=circle); №5. Построение трех графиков красного цвета, заданных лиш ь им е- нем функции: > plot([sin,ln,arctan],color=red); №6. Построение графика функции, заданных в параметрической форме: > plot([cos(t),tan(t/3),t=0..5],color=blue); №7. Построение графика функции в полярной системе координат: > plot([sin(t), 2*t, t=0..2*Pi ], coords=polar); Более подробную информацию о построении графиков можно п о- смотреть здесь: HELP \ Introduction Grafics \ . . . 5.2. Трехмерная графика Чтобы построить трехмерный график, необходимо использовать функцию plot3d . Для вывода трехмерных график ов используются следующие форм а- ты вывода: plot3d(expr1, x=a..b, y=c..d, p); plot3d(f, a..b, c..d, p); plot3d([exprf,exprg,exprh], s=a..b, t=c..d, p); plot3d([f,g,h], a..b, c..d, p). В двух первых формах plot3d применяется для построения обычного графика од ной поверхности, в других формах – для построения графика с параметрической формой задания поверхности. В приведенных формах использовались следующие обозначения: f, g, h – функции, expr_ – выр а- жения, x,y,s,t – переменные, p – параметры - опции. В трехмерные графики можно включать такие же дополнительные опции как и для двумерных графиков (см. выше). Следующие параметры функции plot3d задаются аналогично, как и для функции plot : axesfont, font, color, coords, labelfont, linestyle, numpoints, scaling, style, s ymbol, thickness, title, titlefont. Например. Построение поверхности типа x*exp( - x^2 - y^2) в области Д=( - 2..2, - 2..2) красного цвета: > plot3d(x*exp( - x^2 - y^2),x= - 2..2,y= - 2..2,color=red); 
31 Но функция plot3d имеет ряд дополнительных параме т ров: ambientlight=[r, g,b] – интенсивность красного, зеленого и синего цветов в относительных единицах; axes=f – вид координатных осей (BOXED, NORMAL, FRAME, NONE); grid=[m,n] – число линий каркаса поверхности; gridstyle=x – стиль линий каркаса х; labels=[x,y,z] – надписи по о сям; light=[phi,theta,R,G,B] – углы, под которыми расположен источник освещения поверхности и интенсивности составляющих (RGB) цв е та; lightmodel=x – режим яркости ('none', 'light1', 'light2', 'light3', 'light4'); orientation=[theta,phi] – углы ориентации п оверхности ; projection=r – перспектива при обзоре поверхности ('FISHEYE', 'NORMAL', 'ORTHOGONAL'); shading=s – направления, по которым меняется цвет функционал ь- ной окраски (XYZ, XY, Z, ZGREYSCALE, ZHUE, NONE); tickmarks=[l,n,m] – характер маркировки по ося м x, y, z; view=xmin..xmax – минимальная и максимальная координаты п о- верхн о сти для ее видимых участков; coords=type – выбор системы координат и пересчет 3D - графиков, где type – тип координатной системы (см. приложение 6). Ниже рассмотрено несколько примеро в. №1. Построение графика cos(x*2+y/2) трехмерной поверхности с з а- дан и ем цвета золота. > plot3d(cos(x*2+y/2),x= - 2..2,y= - 2..2,color=gold); №2. Построение графика x+y^2 в конической системе координат и с заданием заголовка графика "Conical surface": > plot3d (x+y^2,x= - 1..1,y= - 1..1,coords=conical,style=patch,title="Conical surface"); №3. Построение графика 1/cos(x^4) в сферической системе коорд и- нат и с заданием заголовка графика "Spherical surface": > plot3d(1/cos(x^4),x= - Pi..Pi,y=0..Pi,coords=spherical, style =patch, title= "Spherical surface"); №4. Построение параметрического графика [p/(sin(t)*Pi^Pi), cos(2*p), t**5]: > plot3d([p/(sin(t)*Pi^Pi),cos(2*p),t**5],p= - Pi..Pi,t=0..Pi); №5. Построение двух графиков поверхности в одной системе коо р- динат: > plot3d({sin (x*y), x + 2*y},x= - Pi..Pi,y= - Pi..Pi); # два графика №6. Построение четырех графиков поверхности в декартовой сист е- ме координат: 
32 > c1:= [cos(x) - 2*cos(0.4*y),sin(x) - 2*sin(0.4*y),y]: # четыре графика c2:= [cos(x)+2*cos(0.4*y),sin(x)+2*sin(0.4*y),y]: c3: = [cos(x)+2*sin(0.4*y),sin(x) - 2*cos(0.4*y),y]: c4:= [cos(x) - 2*sin(0.4*y),sin(x)+2*cos(0.4*y),y]: plot3d({c1,c2,c3,c4},x=0..2*Pi,y=0..10, grid=[25,15],style=patch,color=sin(x)); №7. Построение графика с помощью функции tubeplot: > with(plots): tubeplo t([cos(t),sin(t),0],t=0..2*Pi,radius=0.5); tubeplot([cos(t),sin(t),0,t=Pi..2*Pi,radius=0.25*(t - Pi)]); tubeplot([3*sin(t),t,3*cos(t)],t= - 3*Pi..4*Pi,radius=1.2+sin(t), nu m- points=80); tubeplot([sin(t),t,exp(t)],t= - 1..1,radius=cos(t),tubepoints=20); tubeplot( [ - 10*cos(t) - 2*cos(5*t) + 15*sin(2*t), - 15*cos(2*t) + 10*sin(t) - 2*sin(5*t), 10*cos(3*t) ], t= 0..2*Pi,radius=3*cos(t*Pi/3)); Построение трехмерных графиков осуществляется с помощью к о- манд пакета plots . А построение самих систем координат осуществляется с помощью функции coordplot3d(type) , где type - это система координат (их более 30), например: spherical, cardional, toroidal, c onical, cylindrical и т.д. (см. пр и ложение 6). 5.3. Построение анимационных 2D графиков Для построения графических решений и вывода результатов модел и- рования различных объектов и явлений можно использовать анимацию (“oживление”) изображений. Пакет (библи отека) plots имеет функцию для создания анимации графиков: animate(F, x, t, option) , где F – функция; x – область задания вывода графика; t – дополнительная переменная; option – дополнительные опции (в том числе и установка количества к адров (фреймов)). Суть анимации заключается в построении последовательности ка д- ров (фреймов), которые могут быть представлены в виде серии картинок. Каждая картинка связана с изменяемой во времени переменной t. Чтобы явно задать чи с ло кадров N анимации, ис пользуют опцию frame=N . Например. Построение графика sin(x*t) с 50, 70, 100 кадрами анимации, причем п о- следняя (третья анимация) будет представлена в полярной системе к о ординат: > with(plots): > animate( sin(x*t), x= - 10..10, t=1..2, frames=50); 
33 anim ate( [sin(x*t),x,x= - 4..4], t=1..4, numpoints=100, frames=70); animate( [sin(x*t),x,x= - 4..4], t=1..4, coords=polar, numpoints=100, frames=100); Когда загрузится анимационная картина, то появляется стандартная панель анимации, в начале которой находятся к оординаты текущей точки. Дальше идут кнопки управления режимом анимации: Stop (остановка ан и- мации), Play (проигрывание анимации), next frame (перейти на следу ю- щий кадр), backward direct animation (установка обратного направления проигрывания анимации), for ward direct animation (установка прямого направления проигрывания анимации), decrease speed (уменьшение кол и- чества кадров, которые будут показаны за 1 секунду), increase speed (ув е- личение кол и чества кадров, которые будут показаны за 1 секунду), single - cicl e mode (режим проигрывания 1 цикла анимации) и continious - cicle mode (режим проигрывания анимации бесконечное количество циклов {чтобы остановить, надо нажать кнопку стоп}): Эти же команды можно выполнять через меню Animation \ … . Управл ять режимом анимации можно с помощью контекстного м е- ню, которое вызывается нажатием правой кнопки мыши. Свойства вывода графика функции анимации можно также менять с использованием ман и- пулятора мышь. Для этого подводим курсор мышки к анимационному гр а- фику и нажимаем правую кнопку. В результате появляется небольшое м е- ню, в котором можно поменять параметры графика (цвет, размеры, тип л и- ни, вид рамки). Это же распространяется на трехмерную анимацию, а та к- же на построение графиков (plot) и поверхностей (plot3d) . 5.4. Построение анимационных 3D графиков Для построения анимированных трехмерных фигур аналогичным образом используется функция: animate3d(F, x, y, t, option). Например. Построение трехмерных анимаций для двух поверхн о- стей cos(t*x)*sin(t*y) и параметри чески заданной [x*u, t - u, x*cos(t*u)]: > with(plots): > animate3d(cos(t*x)*sin(t*y),x= - Pi..Pi, y= - Pi..Pi,t=1..2); > animate3d([x*u, t - u, x*cos(t*u)],x=1..3,t=1..4,u=2..4); Когда загрузится анимационная картина, то появляется стандартная панель анимации, в начале которой находятся координаты угла просмотра трехмерной поверхности: 
34 Существует еще один способ создания анимационных рисунков – создание ряда графических объектов p1, p2, p3 и т.д. и их последовател ь- ный вывод с помощью функций: di splay(p1,p2,p3,…,insequence=true); display3d(p1,p2,p3,…,insequence=true); Опция insequence=true обеспечивает вывод одного за другим серии гр а фических объектов p1, p2, p3 и т.д. Например. Вывод стационарного графика синуса и анимационного гр а фика вида sin(i *x)/(i*x) в одной системе координат: > with(plots, animate, display): a:=plots[animate](sin(i*x)/(i*x),x= - Pi..Pi,i=1..3): b:=plot(sin(x),x= - Pi..Pi): plots[display]({a,b}); Следующий пример позволяет вывести трехмерную анимацию п о- верхности cos(t*x/y) , где цвет поверхности задан через функцию sin(x), и на экран выводится одновременно 3 кадра анимации: > with(plots): g:=animate3d( cos(t*x/y), x= - Pi..Pi, y=1..4, t=0..2, color=sin(x), frames=3): display(g); 
35 VI. ПРОГРАММИРОВАНИЕ 6.1. Оформление алгоритма Решение задачи любой сложности в Maple может быть организовано, во - первых, путем последовательного ввода необходимых команд в к о- мандную строку или, во - вторых, созданием программных модулей, име ю- щих самостоятельное значение. Эти модули в Maple называют пр оцед у- рами . Они служат средством расширения возможностей системы Maple для элементов структурного программирования. В первом случае вычисления могут быть представлены в виде списка и/или последовательности команд. Список команд – это определенное количеств о командных строк с командами и функциями или последовательностями функций и команд (последовательность функций и команд представляет собой перечисление в одной командной строке друг за другом функций и команд через точку запятой или двоеточие). Например . >summa1:=proc(a,b) RETURN(a+b); # нахождение суммы 2 - х чисел в виде процед у ры end; summa1 := proc(a, b) RETURN(a + b) end > summa1(2,3); 5 Таким образом можно реализовать линейные алгоритмы, ветвления, циклы и рекурсии. Maple позволяет оформлять алгор итмы в виде отдел ь- ных блоков – секций , которые заданы в виде списков команд или сов о- купности команд (см. рис.2). Создавать секции можно двумя способами: 1. Используя команды меню Format : Indent - создать секцию (или комбинация клавиш Ctrl+. ); Outdent – у брать секцию (или комбинация клавиш Ctrl+, ). 2. Активизируя кнопки меню, которые указаны на рисунке 2 стре л- ками. Эти блоки (секции) можно свернуть в одну строку с заголовком (щелкнув по кнопке [ - ]) , чтобы придать компактную форму представления каких - либо р асчетов. Если секция свернута в одну строку, то для того, чтобы ее о т крыть, необходимо нажать на кнопку [+] . 
36 Рис.2. Секции могут быть вложенными, тогда по отношению к старшей секция называется подсекцией. В секции можно вставлять процедуры, т.е. программные модули, имеющие самостоятельное значение. Обратный вариант: создание секции в процедуре невозможен, так как в самой процедуре не существует командных строк. А без командных строк нельзя создать секцию. Рассмотрим базисные конструкции язы ка программирования Maple. 6.2 Функции пользователя Создать свою уникальную функцию можно присвоением некоторой переменной значения функции в виде выражения. Например. > fun:=3*x+y*12; fun :=3* x + y *12 > x:=1;y:=2; x:=1 y:=2 > fun; 27 
37 Более гибкий способ за дания функции осуществляется с помощью функционального оператора. При этом используются следующие способы задания: name _ function :=( x , y , …) - > expr name_function:=unapply(expr,x,y, …) где name_function – имя функции ; expr – вычисляемое выражение; x, y – переменные. Например. Определение и вычисление функции от двух переме н- ных. > fun1:=(x,y) - >x*2+y*9; # первый способ fun1 := (x, y) - > 2 x + 9 y > fun1(3,5);fun(1,1); 51 27 > fun 2:= unapply (3* x * y , x , y ); # второй способ fun2 := (x, y) - > 3 x y > fun2(3 ,5);fun2(2,3); 45 18 6.3. Условные выражения Maple позволяет создавать конструкцию условия следующего типа: If {условие_1} then {операторы_1} [ elif {условие_2} then {операторы_2}] [ else {операторы_3}] fi ; Условие – это любые логические конструкции со з наками сравнения (<, <=, >, >=, = и <>.) и логическими операторами ( and, not, or ). Вложенные условия не используются, то есть условие if в условие if вставить нельзя. Поэтому предусмотрена дополнительная возможность вложенности через условие elif . Если не выполняется условие_1, то пров е- ряется условие_2 (elif). Если оба условия не выполняются, то происходит выполн е ние оператора_3 и выход из конструкции if . Например . > a:= - 345345; a := - 345345 > if 0<a then z:=1 elif a=0 
38 then z:=0 else z:= - 1 fi ; z := - 1 Обычно используют следующую сокращенную форму конструкции: If {условие} then {операторы_1} [ else {операторы_2}] fi ; Существует и более простой способ задания условия: `if` ({условие},{(true) операторы_1},{(false) операторы_2}); Здесь `if` в обр атных кавычках. Например. №1 . Запись условия в двух формах: > a:=8;b:=5;if (a>b) then a else b fi; a := 8 b := 5 8 > a:=8:b:=5:`if`(a > b,a,b); # более компактная форма условия 8 №2. Постановка условия: если истина, то Hello, иначе Bye. > x:= - 1;if (x > 0) then 'hello' else 'bye' fi; # условие не истинно x := - 1 bye > x:=1;if (x > 0) then 'hello' else 'bye' fi; # условие истинно x := 1 hello 6.4. Циклы Чтобы строить циклические структуры, используется оператор сл е- дующего вида: |for <name>| |from <expr1>| | by <expr2>| |to <expr3>| |while <expr4>| do <statement sequence> od; где [for <name>] – name – имя параметра цикла ; [from <expr1>] – начальное значение параметра цикла; [by <expr2>] – шаг для параметра цикла; [to <expr3>] – конеч ное значение параметра цикла; [while <expr4>] – цикл выполняется пока значение логического в ы - раж е ния expr4 истинно; do – начало блока (последовательности) операторов; <statement sequence> – последовательность функций и оп ерат о ров; od; – конец блока (последовательности) операторов; 
39 или |for <name>| |in <expr5>| |while <expr4>| do <statement sequence> od; где : [in <expr5>] – цикл проходит только через те значения выражения, кот о рые указаны во мн ожестве expr5. Например. №1. Печать четных чисел от 6 до100: > for i from 6 by 2 to 100 do print(i) od; №2. Нахождение суммы четных чисел из интервала [11,100]: > tot := 0; > for i from 11 by 2 while i < 100 do tot := tot + i od; №3. Сумма э лементов списка: > tot:=0; > for z in [1,5,3,8,2,99] do tot:=tot+z od; Циклы могут использовать как числовую индексацию значения в ы- раж е ния expr1, так и символьную индексацию. Например. Печать символов от “а” до “s”: > for i from "a" to "s" do pri nt(i) od; Циклы могут быть вложенными. Например. Вывод элементов двумерного массива: > mas := array (1..3, 1..3, [[1,2,3], [4,5,6], [7,8,9]]); > for i to 3 do for j to 3 do print(mas[i,j]) od od; или mas:=array(1..3, 1..3, [[1,2,3],[4,5,6],[7,8,9]]); > for i to 3 do for j to 3 do printf("mas[%a,%a]=%5.2f \ n",i,j,mas[i,j]); # распечатка массива поэлементно od od; В циклах может использоваться оператор пропуска команды next и оп е ратор break для досрочного выхода из цикла. Например . > for i to 3 do if i=2 then next else print(i) fi od; 1 3 > for i to 3 do if i=2 then break else print(i) fi od; 1 
40 Можно использовать операторы quit, done, stop , которые также обесп е- чивают прерывание выполнения текущей программы, но при этом окно тек у- щего документа закрывается и все имеющиеся в нем определения исчез а ют. 6.5. Вывод результатов Обмен информацией между MapleV и внешней средой чаще всего осуществляется через файлы текстового формата, так как именно с такими файлами работают практически все п рограммные средства. Для записи данных в файл служит функция writedata : writedata ( fileID , data ); writedata(fileID, data, format); writedata(fileID, data, format, default); где: fileID – имя файла данных, data – список, вектор или матрица данных, format – с пецификация формата данных, default – процедура, з а- дающая запись нечисловых данных. Например . > writedata(F,A,float,proc(f,x) fprintf(f,`CMPLX(%g,%g)`,Re(x),Im(x)) end); Считывание из полученного файла обеспечивает функция: readdata(fileID, n); readdata(fi leID, format, n); readdata ( fileID , format ); где: fileID – имя файла данных, format – спецификация формата данных, n – целое положительное число, задающее число считываемых стол б цов. Например. > H1 := linalg[hilbert](10): # создание массива H1 с заданными знач е - ниями > H2 := linalg[hilbert](5): # создание массива H2 с заданными знач е - ниями > fd:=fopen(testFile,WRITE): # создать и открыть файл для записи > writedata(fd,H1); # записать значения первой матрицы > writedata(fd,H2); # записать значения второй матрицы > fclose(fd); # закрыть файл > readdata(testfile); # прочитать данные из файла [1., .5, .3333333333, .25, .2, .1666666667, .1428571429, .125, .1111111111, .1, 1., .5, .3333333333, .25, .2] Maple имеет типичные файловые операции: 1. writeto – запись в файл; 2. appendto – дозапись в файл; 3. open – открытие файла; 4. c lose – закрытие файла; 5. write – запись в открытый файл; 
41 6. save – запись выражений в файл; 7. read – считывание из файла. Более подробное описание этих функций и примеры для них прив е- дены в: Help \ Introduction Programming \ Input and Output \ ... Для вывода резуль татов вычислений на экран в заданной пользов а- телем форме, для считывания данных из файла в заданном формате, для вывода з а данных значений и данных используются следующие функции: fprintf(file, fmt, x1, ..., xn); sprintf(fmt, x1, ...,xn); nprintf(fmt, x1, . ..,xn); printf(fmt, x1, ...,xn); где file – имя файла файла ; fmt – формат вывода; x1, ..., xn – выражения которые должны быть форматированы; Следует заметить, что функция printf(...) эквивалентна функции fprintf(default,...) . Формат строки f mt есть символьная или строковая модель послед о- вательности различных символов. Каждая спецификация форматирования им е ет следующий формат: %[ flags ][ width ][. precision ] code где: % - символ начала форматирования. Далее могут следовать одна или больше опций fla gs . После чего может задаваться формат ширины в ы- вода информации. Например, опция \ n обеспечивает перевод курсора вывода на новую строку. Более подробно можно посмотреть здесь: Help \ Introduction Programming \ Input and Output \ … 6.6. Создание программных модулей Модули программы, имеющие самостоятельное значение , называют пр о цедурами . Процедуры имеют имя и список параметров. Полная структура построения процедуры имеет следующий вид: name:= proc (<param>) local < opt1 > global < opt2 > options < opt3 > description < opt4 > <body of procedure> end ; 
42 где name – имя процедуры ; param – список формальных параметров, т.е. указываются пер е- менные (и их типы, если это необходимо); local < opt > - локальные переменные; global < opt > - глобальные переменные; options < opt > - встроенные опции - команды; description < opt > - полная распечатка процедуры; <body of procedure> - основное тело процедуры, в котором ра з- мещ а ются функции и команды. Простая форма процедуры имее т следующий вид: Name:= proc (<param>) <body of procedure> end; Процедуры вызываются по имени со списком фактических параме т- ров, которые подставляются на место формальных. Например. > summa:=proc(a,b) # определение процедуры a+b; end; summa : = proc(a, b) a + b end > summa (1,2); # вызов процедуры 3 С помощью знака :: после имени переменной можно определить ее тип. Например, при объявлении процедуры для параметра m указывается, что m – целочисленная переменная: proc(m::integer). Несоответствие фактических параметров типу определенных пер е- менных ведет к сообщению об ошибке и к отказу от выполнения процед у- ры. Например . > f := proc(x::evaln(integer)) x^2 end; f := proc(x::evaln(integer)) x^2 end > f(a); a 2 > b:=6.7; > f(b); b := 6.7 Error, f expect s its 1st argument, x, to be of type name(integer), but received 6.7 Список параметров процедуры может быть пустым. Например . f := proc() x^2 end; f := proc() x^2 end 
43 > f(5); # численного результата нет, т.к. значение не присвоено пер е - ме н ной процедуре x 2 > x:=5; # значение присвоено x := 5 > f(5); # численный результат есть, т.к. значение присвоено переме н- ной, которая присутствует в процедуре 25 Результатом работы процедуры является вывод значения последней команды. Для изменения вывода может использовать ся оператор возврата зн а чения RETURN(expr) , где expr – выражение любого типа. Например . > summa:=proc(a,b) 1;a+b;RETURN(%%);#знак %% выводит предпоследний резул ь- тат end; summa := proc(a, b) 1; a + b; RETURN(%%) end > summa(1,3); 1 Переменные, ко торые указываются в списке параметров, являются локальными переменными. Это означает, что изменение их значений пр о- исходит лишь в теле процедуры, то есть локально. А за пределами тела процедуры эти переменные имеют то значение, которое у них было до о б- раще ния к процедуре. Переменные, которым впервые присваивается зн а- чение в процедуре, также относятся к локальным. Кроме того, переменные, применяемые для организации циклов, являются локальными. Все остал ь- ные переменные – гл о бальные. Если в теле процедуры име ются операции присваивания для ранее определенных (глобальных) переменных, то изменение их значений в ходе выполнения процедуры создает так называемый побочный эффект. Встр е- чая такие операции присваивания, Maple корректирует текст процедуры и вставляет в н ее объявление переменных локальными с помощью ключев о- го слова local и выдает предупреждающую надпись о таком применении. Например . №1. Процедура без описания локальной переменной с. > c:=0; c := 0 > summa:=proc(a,b) c:=a+b;RETURN(c); end; Warn ing, `c` is implicitly declared local или 
44 №2. Процедура с описанием локальной переменной с. > c:=0; c := 0 > summa:=proc(a,b) local c; c:=a+b;RETURN(c); end; summa := proc(a, b) local c; c := a + b; RETURN(c) end > c; 0 В последних дву х примерах использовалась функция RETURN(c) для вывода результата вычислений из процедуры. Чтобы сделать переменные внутри процедуры глобальными, дост а- точно объявить их с помощью ключевого слова global , после которого ук а- зывается список переменных. Наприме р . > c:=0; c := 0 > summa:=proc(a,b) global c; c:=a+b; RETURN(c); end; summa := proc(a, b) local c; c := a + b; RETURN(c) end > summa(3,3); 6 > c; 6 При подготовке процедур необходимо предусмотреть поведение процедуры при возможных ошибках. Для этого обычно используются ра з- личные функции оценки и тестирования, которые при выявлении ошибки выводят соответствующие сообщения. Одной из таких функций является функция ERROR(expr1,expr2, ...), где expr – выражения (строки, фун к- ции, числа). Если указ ывается строка, то она будет выводиться в случае ошибки. Если expr переменная, то выводится значение этой переменной. Например . > proc1:=proc(a,b) if a<=b then ERROR(" ошибка : число отрицательное ",a - b) else evalf(ln(a - b) ) fi end: > proc1(3,3); Error, (in proc1) ошибка: число отрицательное, 0 В процедурах допускается использование опций, которые можно включить командой options <command> , где command =remember – определяет таблицу памяти для процед у ры; 
45 builtin – определяет ф ункцию как встроенную; system – определяет процедуру как системную; operator – объявляет процедуру – функциональный опер а тор; arrow – определяет процедуру в нотации - >; trace – задает трассировку процедуры; package – определяет процедуру для пакета расшир е ния; copyright – защищает процедуру от копирования. Например . №1 . Использование в процедуре опции remember > proc2:=proc(a,b) options remember;a*b end:proc2(3,3);proc2(2,3); 9 6 > op (4, eval ( proc 2)); # извлечение операндов из выражения table([ (3, 3) = 9 ( 2, 3) = 6 ]) №2. Использование в процедуре опции operator, arrow > summ:=proc(a,b) options operator,arrow;a+b end;summ(3,3); summ(2,3); summ := ( a , b ) - > a + b 6 5 №3. Использование в процедуре опции Copyright > c:=proc(x,y,z) option Copyright; x*y/z end; # содержимое процедуры защищено от пр о смотра c := proc(x, y, z) ... end > c:=proc(x,y,z) x*y/z end; # содержимое процедуры не защищено от пр о смотра c := proc(x, y, z) x*y/z end Для отмены защиты от просмотра можно использовать функцию: interface(verbosep roc=2) . В теле процедуры используются команды, которые могут иметь и самостоятельное значение. Обычно они используются при отладке проц е- дур. 6.7. Отладка процедур Для контроля и отладки процедур прежде всего надо иметь текст процедуры. Для вывода текста на экран служит функция print(name_proc) , где name_proc – имя процедуры. Но перед тем как использовать эту фун к- цию, надо вызвать функцию: interface ( arg 1, arg 2, …), 
46 где аргументы arg задаются равенствами вида имя=значение и сл о- вами - указателями. Полный списо к слов указателей находится в Help \ Introduction Programming… \ Input and Output… \ Output… \ interface. Рассмотрим лишь основные возможности этой команды: verboseproc=n – задает степень детальности вывода листинга проц е - дур; при n =0 - текст не выводится; при n=1 – выводится текст только заданных пользователем проц е - дур; при n=2 – выводит все процедуры на языке Maple. prettyprint=n (0 или 1) – управляет выводом стандартных процедур. Наиболее простым методом отл адки является применение глобал ь- ной переменной printlevel . По умолчанию printlevel =1. Например. Отладка программы вычисления площади треугольника по формуле Герона: > geron:=proc(a,b,c) local s; s:=sqrt((a+b+c)*(a+b - c)*(a+c - b)*(b+c - a))/4; end; ger on := proc(a, b, c) local s; s := 1/4*sqrt((a + b + c)*(a + b - c)*(a + c - b)*(b + c - a)) end > printlevel := 10; # установка отладки 10 уровня printlevel := 10 > geron(2,2,2); # запуск процедуры в отладочном режиме { -- > enter geron, args = 2, 2, 2 { -- > enter sqrt, args = 48 < -- exit sqrt (now in geron) = 4*3^(1/2)} s := sqrt(3) < -- exit geron (now at top level) = 3^(1/2)} sqrt(3) При отладке процедур используется функция трассировки: trace ( name _ proc ). Детальность ее работы задается системной переменной printlevel:=n , при которой определяется результат вывода только исполняемой функции или оператора. Для вывода информации о выполнении k - го уровня вл о- женности надо использовать значение этой перемен ной от 5k до 5(k+1). Так, при n=1..5 выводятся результаты трассировки первого уровня, при n=6..10 – второго и т.д. Максимальное значение n может равняться 100, что обеспечивает трассировку по всем уровням вложенности процедуры name_proc . Например. Трассиро вка седьмого уровня для функции diff : > printlevel:=7; # установка 7 уровня трассировки 
47 printlevel := 7 > trace(diff); # подключение трассировки к функции diff { -- > enter trace, args = diff prot := tr ue < -- exit trace (now at top level) = diff} diff > diff(sin(x),x); # выполнение функции в режиме трассировки execute diff, args = sin(x), x { -- > enter sin, args = x sin(x) := sin(x) < -- exit sin (now at top level) = sin(x)} { -- > enter diff/sin, args = x, x execute diff, args = x, x cos(x) < -- exit diff/sin (now at top level) = cos(x)} cos(x) Для трассировки процедур используются функции trace и untrace . Эти функции могут использоваться в следующих форматах: trace(f) trace(f,g,h,...) untrace(f) untrace(f,g,h,...) где: f, g, h, ... – имена процедур, которые будут трассироваться к о- мандой. Функция untrace выключает трассировку по указанным процедурам. Например . > untrace(geron); { -- > enter untrace, args = geron prot := false t := [trace] gname := could not find `geron` in the libr ary geron < -- exit untrace (now at top level) = geron} geron При отладке алгоритмов выполнения вычислений надо тщательно следить за сообщениями об ошибках. Для этого можно использовать ста н- дар тную функцию traceerr и системную переменную lasterr , в которой сохран я ется последнее сообщение об ошибке. Например . > x:=5/0; Error, division by zero > 5/10; 1/2 
48 > lasterror ; division by zero Эту отладку используют редко, так как при правильном построе нии процедур ошибочные ситуации заведомо предусматриваются и должным обр а зом обрабатываются. Существует также отладчик программ ( debugging ) – это специал ь- ный интерактивный отладчик – debugger . Отладчик вызывается автоматически при встрече с одной из меток, уст а новленных в процедуре: stopat, stopwhen, stoperror . Если отладчик вызван командой прерывания (stopat), выводимое на экран выражение есть результат последней выполненной команды. Если он вызван командой наблюдения за переменной (stopwhen), выражение пр е д- ставляет собой равенство, левая часть которого – имя наблюдаемой пер е- менной, а правая часть – значение, присвоенное этой переменной. Если о т- ладчик вызван меткой сообщения об ошибке (stoperror), выражение – с о- общение об ошибке. Существуют следующие часто используемые функции: cont – продолжить выполнение процедуры до следующей точки пр е- рывания или до конца; step – выполнить следующую команду; quit, done, stop – полностью остановить выполнение процедуры; showstat – вывести на экран операторы заданной проце дуры с зада н- ными номерами; showstop – вывести на экран список всех процедур, содержащих метки; stopat – установить точку прерывания в заданной процедуре на оп е- рат о ре с заданным номером; unstopat – удалить из процедуры указанную точку прерывания; stopwhen – установить точку наблюдения за заданной локальной или глобальной переменной и вывести на экран список точек наблюдения; unstopwhen – удалить из процедуры точки наблюдения за заданной переменной; stoperror – установить точку наблюдения за заданной ошибкой или вывести список установленных точек; unstoperror – удалить точку наблюдения за ошибкой. Чтобы включить отладчик в работу, надо выполнить команду stopat(name_proc). Таким образом устанавливаются точки прерывания для процедуры name_proc . Признаком, указы вающим на работу отладчика, является изменение приглашения к вводу со знака > на DBG>. Теперь, подавая команды: next (следующий), step (выполнение еще одного шага), stop (остановка отла д- чика) – можно проследить выполнение процедуры. Например. Запуск отладч ика и работа с ним. 
49 sqrtsum:=proc(x,y) # создание процедуры, вычисляющей корень из > local sum; # суммы двух чисел sum := x + y : sqrt(sum*1.); end; sqrtsum := proc(x, y) local sum; sum := x + y; sqrt(1.*sum) end > sqrtsum(1 ,2); # вызов процедуры 1.732050808 > stopat(sqrtsum); # включение отладчика к заданной процедуре [sqrtsum] > sqrtsum(1,2); # вызов процедуры при вычислении в режиме отла д чика sqrtsum: 1* sum := x+y; # сложение двух чисел в процедуре DBG > step # следующий шаг выполнения процедуры sqrt: # вычисление корня 2 x^(1/2) DBG > step # следующий шаг выполнения процедуры 1.732050808 Существует также команда листинга процедуры: showstat ( name _ procedure ). Причем, в листинге процедуры строки вычисляемых элементов пр о- нумерованы. Это сделано для облегчения разбора работы процедуры. Например . Используя предыдущий пример с описанием процедуры sqrtsum, можно произвести вывод листинга этой процедуры: > showstat(sq rtsum); sqrtsum := proc(x, y) local sum; 1 sum := x+y; 2 sqrt(1.*sum) end Более подробно можно узнать: Help \ Introduction Programming \ Debugging \ ... И далее можно посмотреть следующие темы : DEBUG, comment, i n- dexfcn, keyword, lasterror, macro, maplemint, mint, profile, showstat, showstop, stopat, stoperror, stopwhen, trace, tracelast, traperror, unprofile, unstopat, unst o- perror, unstopwhen, untrace, where. 
50 VII. РЕШЕНИЕ МАТЕМАТИЧЕСКИХ ЗАДАЧ Для численного р ешения уравнений и неравенств, систем уравнений, дифференциальных уравнений и их систем используются такие функции как: solve, dsolve, fsolve и roots . 7.1. Решение уравнений, неравенств и их систем Для решения уравнений и неравенств, систем уравнений и н ер а- венств используется функция solve . Здесь будут рассмотрены только о с- новные возможности этой функции. Существуют следующие форматы функции: solve(eqn, var) solve(eqns, vars) Параметры: eqn - уравнение, неравенство или процедура; eqns – система уравнений или неравенств; var - имя опции; vars – система имен переменных, опций. Функция solve возвращает последовательность решений. В случае большого числа решений необходимо указывать решения в виде списка. Если решений нет или если функция не может найти реш ение, то возвр а- щается пу с тая последовательность NULL . Например. №1. Решение уравнения x^2+2*x+1=0 > solve ( x ^2+2* x +1, x ); - 1 №2. Решение уравнения > otvet:=solve(x^2+2*x - 3,x); otvet := - 3, 1 > x1:=otvet[1]; # присвоение первого корня переменной x1 из списка x1:= - 3 > x2:=otvet[2]; # присвоение второго корня переменной x2 из списка x2:=1 Функция solve не находит явные решения для полиномиальных уравнений степени больше, чем 4. В этих случаях подразумевающиеся р е- шения д а ются с точки зрения функции RootOf . Функци я roots используется для нахождения корней полиномиал ь- ного выражения и имеет следующие форматы: roots(a) roots(a,K) Параметры: a – одномерное полиномиальное выражение; 
51 K – новое обозначение значения функции RootOf. Функция roots является меткой - заполнителе м для представления корней одномерного полиномиального выражения a . Корни возвращаются как список пар формы: [[r[1],m[1]],..., [r[n],m[n]]] , где r[k] – корень; m[k] - степень множественности, то есть (x - r[k])^m[k] делит в ы- ражение a . Вызов функции ro ots(a) mod n вычисляет корни полиномиального выражения a целочисленно делящегося на число n . Вызов roots(a,K) mod p вычисляет корни полиномиального выраж е- ния а целочисленно делящегося на число p и определенных алгебраич е- ским ра с ширением K , где K – функция RootOf 1 . Например . №1. Нахождение корня квадратного уравнения > roots ( x **2 - 2* x +1); [[1, 2]] 1 RootOf - представление для корней уравнений. Форматы вывода : RootOf(expr) RootOf(expr, x) RootOf(expr, x, c) RootOf(expr, x, a..b) Параметры: expr - алгебраическое выражение или уравнение; x - имя переменной; a , b , c - номера связанного ящика корней. Функция RootOf является хр анителем места для представления всех корней уравнения в одной переменной. В конкретном случае, это - стандартное представл е- ние для а л гебраических чисел, алгебраических функций и конечных областей. Maple автоматически генерирует RootOf , чтобы выразить реше ния в полином и- альных уравнениях и системах уравнений, собственных значениях и рациональных функци о нальных интегралах. Другие функции часто используют RootOf , чтобы получить более компактную фо р му выражения или его результата вычислений. Если используется п ервая форма функции RootOf , то переменная x не определ я- ется, и выражение expr должно быть или одномерным выражением, или выражением в форме _Z . Форма _ Z выражает корни уравнения неявного вида. Если первый аргумент функции является не уравнением, то будет принято уравнение expr=0 . RootOf не ограничиваются в алгебраических расширениях. Они могут использ о- ваться, чтобы представить решения трансцендентных уравнений, например RootOf(cos(x)=x, x). 
52 №2. Нахождение решения полиномиального уравнения пятой степ е- ни > roots (23* x ^5 + 105* x ^4 - 10* x ^2 + 17* x ); [[0, 1]] №3. Решение через функции roots и solve уравнени я g= x^3+2*x - 3: (из этого примера видно, что в некоторых решениях могут быть п о- тер я ны корни при использовании функции roots ). > roots(x^3+2*x - 3); [[1, 1]] > solve(x^3+2*x - 3); 1, - 1/2 + 1/2 I sqrt(11), - 1/2 - 1/2 I sqr t(11) Функция solve явные решения для общего полиномиального уравн е- ния по умолчанию не даeт из - за сложности их в использовании. Для уточнения решения можем устанавливать глобальную переме н- ную _EnvExplicit . Если установить _EnvExplicit в состояние "ложь", т о будут получены все решения, которые не являются рациональными и б у- дут сообщены как RootOf . Количеством обнаруженных решений можно управлять. Для этого следует изменять величину глобальной переменной _ MaxSols . Например . №1. Решение функции через _Z предст авление > RootOf(y*exp(y) - x, y); RootOf(_Z exp(_Z) - x) №2. Использование опции _EnvExplicit в решении уравнения x^2= - 1 > _EnvExplicit:=true; > solve(x^2= - 1); > _EnvExplicit:=false; > solve(x^2= - 1); _EnvExplicit := true I, - I _EnvExplicit := false RootOf (_Z 2 + 1) №3. Решение системы уравнений x^2+y=3, x+y^2=5. > solve({x^2+y=3,x+y^2=5},{x,y}); {x = 1, y = 2} №4. Решение системы двух уравнений. > systema:={2*x+y=5, x+x*y=4}; # задание системы двух уравнений systema := {2 x + y = 5, x + x y = 4} > sol:=sol ve(systema,{x,y}); # присвоение переменной sol результатов решения системы уравнений sol := {y = 3, x = 1}, {x = 2, y = 1} > sol[1]; # вывод первой пары решений {y = 3, x = 1} 
53 > sol[2]; # вывод второй пары решений {x = 2, y = 1} > x1:=subs(sol[1],x); # пр исвоение переменной x1 значения x из пе р - вой пары решений > y1:=subs(sol[1],y); # присвоение переменной y1 значения y из пе р - вой пары решений x1 := 1 y1 := 3 > x2:=subs(sol[2],x); # присвоение переменной x2 значения x из вт о - рой пары решений > y2:=subs( sol[2],y); # присвоение переменной y2 значения y из вт о - рой пары решений x2 := 2 y2 := 1 №5. Решение системы уравнений для четырех переменных и нахо ж- дение суммы всех корней > eqn1:=0.63*x1 - 9.72*x2 - 0.62*x3+0.48*x4=0: eqn2:=21.08*x1+0.64*x2+1.95*x3+1.54*x4= - 9.47: eqn3:=0.88*x1 - 0.72*x2+1.36*x3 - 0.68*x4= - 0.85: eqn4:=3.58*x1+1.48*x2+0.82*x3+1.58*x4=1.02: solve({eqn1, eqn2, eqn3, eqn4}, {x1,x2,x3,x4}); {x2 = .002613229728, x1 = - .6380537763, x4 = 1.745319931, x3 = .6619017659} > y1:=subs(sol, x1); > y2:=subs(sol, x2); > y3:=subs(sol, x3); > y4:=subs(sol, x4); y1 := - .6380537763 y2 := .002613229728 y3 := .6619017659 y4 := 1.745319931 > summa:=y1+y2+y3+y4; summa := 1.771781150 №6. Решение уравнения относительно переменной: > solve({x+y=1},{y}); {y = - x + 1} №7. Решение не алгебраической системы уравнений: > eqn1:=sin(x+1) - y - 1.2=0: eqn2:=2*x+cos(y) - 2=0: solve({eqn1, eqn2}, {x,y}); {x = .5101501575, y = - .2018384154} 
54 №8. Р ешение неравенства в численном виде > solve(3*x**2 - 6*x - 9<=0,x); RealRange( - 1, 3) №9. Решение системы неравенств > solve ({ x + y >=1, x - 2* y <=1, x - y >=0, x - 2* y >=1},{ x , y }); { x = 2 y + 1, 0 <= y } №10. Решение системы неравенств в графическом виде > with(plots): inequa l({x+4*y> - 3,4*x - y<=2,8*y<=5+x},x= - 4..4,y= - 4..4, optionsfeasible=(color=yellow), optionsopen=(color=black,thickness=1), optionsclosed=(color=black, thickness=1), optionsexcluded=(color=gold) ); №11. Нахождение корней полиномиального выра жения > s:=solve((x - 1)*(x - 2)*(x - 3)*x - (x+1)*(x - 3) - 2); # нахождение решения полинома в неявном виде s := RootOf(_Z 4 - 6 _Z 3 + 10 _Z 2 - 4 _Z + 1) > sol:=evalf((allvalues(s))); # вывод результатов в явном виде sol := 3.332189767, 2.230292579, .218758827 + .2944524371 I, .218758827 - .2944524371 I 7.2. Использование арифметики с плавающей запятой Функция fsolve осуществляет численное решение выражений, ура в- нений, неравенств, систем уравнений с использованием арифметики с пл а- вающей запятой. Форматы функции : fsolve(eqns, vars, options). Параметры: eqns – уравнение, система уравнений или процедура; vars – вектор неизвестных; может быть одним значением для ура в - нения; options – параметры, управляющие решениями. Для конкретного уравнения общего вида функция fsolve вычислит один действительный корень. Тем не менее, для полиномиальных уравн е- ний будут найдены все действительные корни (кроме исключительно н е- корректных п о линомов). Чтобы вычислить все корни выражения, необходимо использовать в п а раметрах с ложный выбор . Для выборов используются следующие опции: avoid=s – избегание определенных величин, ищущих корни. s – си с- тема уравнений формы var = value (переменная=значение) ; complex – нахождение одного комплексного корня (или всех корней для полиномиальны х выражений); 
55 fulldigits – сохранение достаточно большого количества цифр для промежуточных вычислений в высоких установочных параметрах Digits , но при этом программа замедляется в расчетах; maxsols=n – нахождение n корней. Этот выбор является значимым для полиномиальных выражений, где есть более, чем один корень; interval – указывается следующим образом: a..b или x=a..b или {x=a..b, y=c..d, ...}. Поиск корней осуществляется только в данном инте р- вале, включая конечные точки. Если функция fsolve отказывается находить корень (даже если он существует), то следует определить соответству ю- щую область поиска решений. Например . №1. Решение уравнения sin(x) > fsolve(sin(x),x); 0 > fsolve(sin(x),x=1..5); 3.141592654 №2. Вывод графика функции f и численное решение > f :=x^3+exp(x) - 3; plot(x^3+exp(x) - 3,x=0.5..1): fsolve(f); f :=x 3 +e х =3 .8601709304 №3. Решение полиномиального уравнения > poly := 23*x^5 + 105*x^4 - 10*x^2 + 17*x: fsolve( poly, x, - 1..1 ); - .6371813185, 0 > fsolve( poly, x, maxsols=3 ); - 4.536168 981, - .6371813185, 0 №4. Решение полиномиального уравнения для чисел в комплексной форме: > q := 3*x^4 - 16*x^3 - 3*x^2 + 13*x + 16: > fsolve(q, x, complex); - .6623589786 - .5622795121 I, - .6623589786 + .5622795121 I, 1.324717957, 5.333333333 №5. Решение с истемы уравнений > fsolve({sin(x)+cos(y)=1, sin(y)+cos(x)= - 1},{x,y}); {y = - 7.853981634, x = 7.853981634} №6. Решение уравнения, содержащего функцию Бесселя. Здесь очень важно определить область поиска корней, иначе решение будет н е- возможно найти, так как количество корней бесконечное число для этой функции. > fun(x):=BesselJ(1,x)*(BesselJ(0,x)+BesselJ(2,x) - I*(BesselJ(0,x) - BesselJ(2,x))); 
56 fun(x) := BesselJ(1, x)(BesselJ(0, x) + BesselJ(2, x) - I (BesselJ(0, x) - BesselJ(2, x))) > plot(fun(x), x=0..20); fsolve(fun(x), x, 3..5); 3.831705970 №7. Нахождение корня функции с исключением заданных корней > fsolve(sin(x),x,avoid={x=0,x=Pi,x= - Pi}, - 10..10); - 6.283185307 7.3. Решение дифференциальных уравнений Функция dsolve используетcя для численного решения ди фференц и- альных уравнений или их систем. Существуют следующие типы решаемых дифференциальных ура в- нений в Maple: 1. Обыкновенные дифференциальные уравнения (ОДУ); 2. Дифференциальные уравнения в частных производных (ДУЧП). Возможны следующие форматы функции: dsolve ( deqns , vars , numeric ) dsolve(deqns, vars, numeric, options) dsolve(deqns, vars, type=numeric) dsolve(deqns, vars, type=numeric, options) Параметры: deqns – система обыкновенных дифференциальных уравнений и н а- чальных условий; vars – переменная или в ектор переменных; options – дополнительные опции вида: ключевое_слово=значение ( keyword=value) ; Используя уравнение с начальными (краевыми) условиями или с д о- полнительной опцией вида type=numeric , функция dsolve находит числе н- ное решение. Можно использова ть опцию method для задания конкретного чи с ленного метода решения: method=laplace – метода Лапласа (решает и аналитически); если задана опция type=numeric , то можно также задать метод чи с- ленного расчета: method=rkf45 – метод Рунге - Кутта 4 - 5 - го порядков; me thod=dverk78 – метод Рунге - Кутта 7 - 8 - го порядков; method=classical – простые классические методы (Эйлера, Рунге - Кутта 3 - го порядка и пр.); method=gear – одношаговый метод Гира; method=mgear – многошаговый метод Гира; method=lsode – решение смешанным методо м через аппроксим а- цию; 
57 method=taylorseries – метод тейлоровых рядов (высоко точный м е- тод). По умолчанию Maple выбирает метод решения вида method=rkf45 . Нахождение решений дифференциальных уравнений производится из точек начального (граничного) условия или из генерируемых сетчатых точек (это правило по Maple может быть названо overridden startinit в ы- бор ). Maple самостоятельно решает какой выбрать шаг сетки и количество итераций для нахождения необходимого решения с допустимой точн о- стью. Для создания частной производной функции по определенной пер е- менной используют функцию diff . Существуют следующие форматы: diff ( a , x 1, x 2, ..., xn ); Diff(a, x1, x2, ..., xn); diff(a, [x1, x2, ..., xn]); Diff(a, [x1, x2, ..., xn]). Параметры : a – алгебраическое выражение x1, x2, ..., xn – имена переменных Например. > diff(sin(2*x),x); # нахождение производной от функции sin(2*x) по x 2 cos(2 x) > diff(sin(2*x),y); # нахождение производной от функции sin(2*x) по y 0 > diff(u(x,t),x); # нахождение производной от функц ии u(x,t) по x d -- u(x,t) dx Для изображения смешанной производной или производной более выс о кого порядка используют следующие возможности: 1) diff(y(x),x) – первая производная от функции y(x) по x; 2) diff(y(x),x, x) – вторая производная от функции y(x ) по х; 3) diff(f(x),x,x,x,x) – четвертая производная от функции y(x) по х; 4) diff(g(x,y),x$2,y$3) – смешанная производная (вторая по переме н- ной х и третья по переменной y) от функции g(x,y); Например. Решение простого дифференциального уравнения: > dsolv e(diff(f(x),x)+5); f ( x ) = - 5 x + _ C 1 Дифференциальные уравнения высшего порядка от многих переме н- ных могут сводиться к системе дифференциальных уравнений первого п о- рядка. Если есть дифференциальное уравнение высшего порядка от одной переменной, то обычно математический процессор Maple решает его без проблем. Также Maple решает различные уравнения типа Рикатти, тепл о- 
58 проводности и т.д. Иногда необходимо делать замены переменных в ура в- нениях, чтобы у п ростить уравнение. Например . №1. Решение ДУ вида y’=2: > ds olve(diff(y(x),x)=2); y ( x ) = 2 x + _ C 1 №2. Решение задачи Коши вида y’=2 с начальным условием y(0)=5. > dsolve({diff(y(x),x)=2,y(0)=5},y(x)); y ( x ) = 2 x + 5 №3. Решение системы ДУ y’=z, z’=y+1 с начальными условиями y(0)=5, z(0)=2: > dsolve({diff( y(x),x)=z(x) - 2,diff(z(x),x)=y(x)+1,y(0)=5,z(0)=2},{y(x),z(x)}); {z(x) = 3 exp(x) - 3 exp( - x) + 2, y(x) = 3 exp( - x) + 3 exp(x) - 1} Результаты могут быть изображены графически, используя функцию odeplot или любую другую в пакете графиков. Например. Решение ДУ с графическим представлением решения. Здесь решается дифференциальное уравнение второго порядка. > mu:=0.2; sys:=diff(x(t),t)=mu*x(t) - y(t) - ((x(t))^2+(y(t))^2)*x(t), diff(y(t),t)=mu*y(t) - x(t) - ((x(t))^2+(y(t))^2)*y(t); fcns:={x(t),y(t) }:z(t):=diff(x(t),t):d(t):=diff(y(t),t): F:=dsolve({sys,x(0)=0,y(0)=1},fcns, numeric); mu := .2 d 2 2 sys := -- x(t) = .2 x(t) - y(t) - (x(t) + y(t) ) x(t), d t d 2 2 -- y(t) = .2 y(t) - x(t) - (x(t) + y(t) ) y(t) dt F := proc(rkf45_x) ... end > F(0); [t = 0, y(t) = 1., x(t) = 0] > plots[odeplot](F,[x(t),y(t)],0..20, labels=[x,y] ); 7.3.1. Обыкновенные дифференциальные уравнения Для решения ОДУ и их систем используется функция dsolve. Команда dsolve способна решать аналитически большое количество дифференциальных уравнений. Если задана опция type=exact , то команда пытается найти аналитическое решение – эта опция задана по умолчанию; type=series - решение ищется в виде ряда; type=numeric - ищется числе н- ное решение. Существуют другие опции: 
59 explicit=true/false - поиск решения в явном или неявном виде; output=procedurelist – вывод ре зультатов в виде списка. Например . №1. Решение ДУ методом Лапласа > dsolve ({ de 1, y (0)=0, D ( y )(0)=1}, y ( t ), method = laplace ); y(t) = exp( - 2 t) - exp( - 3 t) №2. Решение ДУ методом Рунге - Кутта и вывод значений в виде сп и- ска > g := dsolve({diff(x(t),t)=y(t),diff( y(t),t)=x(t)+y(t),x(0)=2,y(0)=1}, {x(t),y(t)}, type=numeric, method=rkf45, output=procedurelist): > g(0); [t = 0, y(t) = 1., x(t) = 2.] > g(1.0); [t = 1.0, y(t) = 7.82689113711079365, x(t) = 5.58216868924484366] №3. Решение ДУ и вывод численного результ ата в виде списка (та б- лицы ответов) по заданным значениям точек последовательности values := seq(1 - 1/n, n=1..5);sys := {diff(x(t),t)= - y(t), diff(y(t),t)=x(t)}: > init := {x(0)=1, y(0)=0}: F := dsolve(sys union init, {x(t),y(t)},type=numeric,method=dver k78, value=array([massiv])); values := 0, 1/2, 2/3, 3/4, 4/5 F := [[ t, x(t), y(t) ]] [ [ 0 , 1. , 0 ] [.5000000000000000 , .8775825618898693 , .4794255386074671] [.6666666666666666 , .7858872607779197 , .6183698030677064] [.7500000000000000 , .7316888688747212 , .6816387600218538] [.8000000000000000 , .6967067093465912 , .71735609 09011109] ] 7.3.2. Дифференциальные уравнения в частных производных В Maple можно также аналитически решать некоторые классы ди ф- ференциальных уравнений в частных производных. Для этого используется функция pdesolve . Формат вывода функции: pdesolve ( deqn s , vars ) Параметры: deqns – частичное дифференциальное уравнение в vars; vars – переменные, относительно которых должно решаться ДУ. 
60 Функция pdesolve дает решения закрытой формы в многих части ч- ных дифференциальных уравнениях. Произвольные функции появляю тся как _F1, _F2, и т.п. Например . Решение дифференциального уравнения относительно фун к ции f(x,y): > pdesolve( diff(f(x,y),x,x)+5*diff(f(x,y),x,y)=3, f(x,y) ); 2 f ( x , y ) = 3/2 x + _ F 1( y ) + _ F 2( y - 5 x ) И нформация о методах решения данной функцией может быть пол у- чена, используя помощник: Help \ Introduction Mathematics.. \ Differential equation.. \ Pdesolve 
61 VIII. ЛИТЕРАТУРА 1. Воробьева Г.Н., Данилова А.Н. Практикум по вычислительной матем а- тике: Учебное пособ ие для техникумов. – 2 - е изд., перераб. и доп. – М.: Высш. школа, 1990. – 208 с.: ил. Сборник задач. 2. Дьяконов В.П. Математическая система Maple V R3/R4/R5. – “Солон”, - Москва, 1998. 3. Манзон Б . М . Maple V Power Edition. – Москва , 1998. 4. Маркова Л.В., Мастяни ца В.С. “Расчеты в среде Mathcad 7.0” (практ и- кум). – Минск, 1999. 5. Офицеров Д.В. и др. Программирование на персональных ЭВМ: Пра к- тикум: Учеб. Пособие / Д.В. Офицеров, А.Б. Долгий, В.А. Старых ; Под общ. ред. Д.В. Офицерова . – Мн.: Выш. шк., 1993. – 256 с. 
62 I X. ПРАКТИЧЕСКИЕ ЗАДАНИЯ A. Простейшие вычисления в Maple. Вариант 1 1. Вычислить: а) 0.1436; sin б) 1.1754 cos ; в) 3 / c ab x = при 6 . 962 , 0435 . 2 , 85 . 3 = = = c b a . 2. Найти численное значение интеграла ￲ ᆬ - = 1 2 ) sin( dx e x I x . Вариант 2 1. Вычислить: а) 0.4974; sin ; б) 0.9818; cos в) 3 / c ab x = при 18 . 55 , 163 . 12 , 16 . 4 = = = c b a . 2. Найти численное значение интеграла ￲ ᆬ + - = 0 5 8 ) cos( dx e x I x . Вариант 3 1. Вычислить: а) 0.2453; sin б) 1.0938; cos в) 3 / c ab x = при 32 . 87 , 205 . 5 , 27 . 7 = = = c b a . 2. Найти численное значение интеграла ￲ ᆬ + - - = 0 1 2 2 ) 2 5 cos( dx e x x I x . Вариант 4 1. Вычислить: а) 0.3864; tg б) 0.9222; cos в) 2 2 ) ( ) ( b a b a h x + + = при 14 . 1 , 156 . 3 , 141 . 1 = = = h b a . 2. Найти численное значение интеграла ￲ ᆬ + - = 0 2 4 ) sin( dx x e x I x . Вариант 5 1. Вычислить: а) 0.4456; sin б) 1.0045; cos в) 2 2 ) ( ) ( b a b a h x + + = при 48 . 4 , 518 . 4 , 234 . 2 = = = h b a . 2. Найти численное значение интеграла ￲ ᆬ - = 0 2 / 3 ) cos( dx e x x I x . Вариант 6 1. Вычислить: а) 0.2816; tg б) 0.8065; cos в) 2 2 ) ( ) ( b a b a h x + + = при 56 . 2 , 315 . 1 , 813 . 5 = = = h b a . 2. Найти численное значение интеграла ￲ ᆬ - = 0 2 2 (x) ln ) exp( dx x I . 
63 Вариант 7 1. Вычислить: а) 0.6235; sin б) 0.9464; cos в) 2 2 ) ( ) ( b a b a h x + + = при 2 . 7 , 333 . 3 , 243 . 3 = = = h b a . 2. Найти численное значение интеграла ￲ ᆬ - = 0 2 ln(x) ) exp( dx x I . Вариант 8 1. Вычислить: а) 0.2464; tg б) 0.7312; cos в) ) ln( ) ( h b a h x + = при 8 . 10 , 2 . 16 , 845 . 3 = = = c b a . 2. Найти численное значение интеграла ￲ ᆬ - = 1 2 ln(x) ) exp( dx x x I . Вариант 9 1. Вычислить: а) 0.7243; sin б) 0.8675; cos в) ) ln( ) ( h b a h x + = при 3 . 11 , 3 . 23 , 632 . 4 = = = c b a . 2. Найти численное значение интеграла ￲ ᆬ - = 0 ln(x) ) exp( dx x x I . Вариант 10 1. Вычислить: а) 0.2464; tg б) 0.7075; cos в) ) ln( ) ( h b a h x + = при 2 . 20 , 4 . 18 , 312 . 7 = = = c b a . 2. Найти численное значение интеграла ￲ = 10 1 ln(x) ) exp( dx x x I . B. Работа с массивами, векторами, таблицами. В задании 1 решить систему уравнений по формулам Крамера и с пом о щью обратной матрицы. Формулы Крамера для систем ы из трех уравнений: Пусть имеем: ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ ᅲ ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ 3 2 1 3 2 1 33 23 13 32 22 12 31 21 11 b b b x x x a a a a a a a a a . Тогда 33 23 13 32 22 12 31 21 11 a a a a a a a a a = D ; 33 23 3 32 22 2 31 21 1 1 a a b a a b a a b = D ; 33 3 13 32 2 12 31 1 11 2 a b a a b a a b a = D ; 3 23 13 2 22 12 1 21 11 3 b a a b a a b a a = D . Отсюда D D = D D = D D = 3 3 2 2 1 1 ; ; x x x . Формулы Крамера для системы из четырех уравнений: 
64 Пусть имеем: ￷ ￷ ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ ￧ ￧ │ ₩ = ￷ ￷ ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ ￧ ￧ │ ₩ ᅲ ￷ ￷ ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ ￧ ￧ │ ₩ 4 3 2 1 4 3 2 1 44 34 24 14 43 33 23 13 42 32 22 12 41 31 21 11 b b b b x x x x a a a a a a a a a a a a a a a a . Тогда 44 34 24 14 43 33 23 13 42 32 22 12 41 31 21 11 a a a a a a a a a a a a a a a a = D ; 44 34 24 4 43 33 23 3 42 32 22 2 41 31 21 1 a a a b a a a b a a a b a a a b = D ; 44 34 4 14 43 33 3 13 42 32 2 12 41 31 1 11 2 a a b a a a b a a a b a a a b a = D ; 44 4 24 14 43 3 23 13 42 2 22 12 41 1 21 11 3 a b a a a b a a a b a a a b a a = D ; 4 34 24 14 3 33 23 13 2 32 22 12 1 31 21 11 4 b a a a b a a a b a a a b a a a = D . D D = D D = D D = D D = 4 4 3 3 2 2 1 1 ; ; ; x x x x . В задании 4 найти число обусловленности, норму матрицы, собс т- венные числа и вектора матрицы A. Вариант 1 1. Решить систему по формулам Крамера, с помощью обратной ма т- рицы ￯ ￯ ○ ￯ ￯ ■ ↓ - = - + + - = - - + - = - - - = + + + . 4 3 2 ; 6 3 2 ; 4 2 3 ; 1 3 2 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 x x x x x x x x x x x x x x x x и ￯ ○ ￯ ■ ↓ = + - = + + - = - + . 9 2 3 2 ; 1 3 2 ; 7 8 5 z y x z y x z y x 2. Выполнить действия над матрицами A), - B)(2B 2(A + где . 4 2 2 3 1 0 5 0 1 , 7 0 1 2 5 4 1 3 2 ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = B A 3. Решить уравнение . 21 13 5 5 0 1 13 7 2 0 3 5 4 2 1 1 3 2 ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - = ᅲ ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - X 4. Найти определитель матрицы ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - = 3 0 2 1 2 1 2 1 1 A . Вариант 2 1. Решить систему по формулам Крамера, с помощью обратной ма т- рицы 
65 ￯ ￯ ○ ￯ ￯ ■ ↓ - = + + - = + - + = - - - = - + + . 8 2 3 2 ; 4 2 2 3 ; 8 3 2 ; 6 2 3 2 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 x x x x x x x x x x x x x x x x и ￯ ○ ￯ ■ ↓ = - + = + - = + + . 8 7 2 ; 1 3 5 3 ; 4 2 z y x z y x z y x 2. Выполнить действия над матрицами 2B)B, (A - 3A + где . 3 7 5 3 1 0 5 1 2 , 7 2 4 0 1 3 2 5 4 ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = B A 3. Решить уравнение . 16 2 2 1 6 1 3 11 4 1 4 1 5 3 2 3 2 1 ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - - ᅲ X 4. Найти определитель матрицы ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = 2 5 2 3 2 1 1 1 3 A . Вариант 3 1. Решить систему по формулам Крамера, с помощью обратной ма т- рицы ￯ ￯ ○ ￯ ￯ ■ ↓ - = + + + = + + + = + + + = + + + . 5 2 3 4 ; 1 2 2 3 ; 1 3 2 2 ; 5 4 3 2 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 x x x x x x x x x x x x x x x x и ￯ ○ ￯ ■ ↓ = + + = + + = + + . 11 3 2 ; 1 3 2 ; 5 2 3 z y x z y x z y x 2. Выполнить действия над матрицами B), B)(A - 2(A 2 + где . 1 2 7 0 1 3 1 4 2 , 2 1 0 1 2 10 7 1 5 ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = B A 3. Реш ить уравнение . 4 3 0 3 4 2 6 2 0 1 2 3 5 1 1 3 2 4 ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = ᅲ ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - - X 4. Найти определитель матрицы ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - - - - = 2 3 2 8 1 2 5 2 5 A . Вариант 4 1. Решить систему по формулам Крамера, с помощью обратной ма т- рицы ￯ ￯ ○ ￯ ￯ ■ ↓ = - + = - + - = + - - = + - . 5 5 3 4 ; 12 5 2 3 ; 4 3 2 ; 5 4 3 3 2 1 4 2 1 4 3 1 4 3 2 x x x x x x x x x x x x и ￯ ○ ￯ ■ ↓ = + - = + + = + + . 10 3 ; 29 2 5 ; 31 4 2 z y x z y x z y x 
66 2. Выполнить действия над матрицами B), )(A B (A 2 2 + - где . 1 1 3 2 0 1 3 2 0 , 1 1 1 1 2 7 0 2 7 ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - = ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = B A 3. Решить уравнение . 15 3 11 0 7 6 3 14 22 0 3 4 0 2 1 3 1 2 ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - ᅲ X 4. Найти определитель матрицы ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = 1 2 1 3 1 1 1 4 1 A . Вариант 5 1. Решить систему по формулам Крамера, с помощью обратной ма т- рицы ￯ ￯ ○ ￯ ￯ ■ ↓ = + + + = + + + = + + + = + + + . 16 5 3 7 ; 4 3 7 5 ; 0 7 5 3 ; 12 7 5 3 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 x x x x x x x x x x x x x x x x и ￯ ○ ￯ ■ ↓ = - + = - + = + - . 18 2 6 5 ; 4 3 5 2 ; 9 2 3 4 z y x z y x z y x 2. Выполнит ь действия над матрицами B), )(2A B - (A 2 + где . 3 1 2 0 2 1 1 6 3 , 2 3 7 1 4 10 0 2 5 ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - - = ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = B A 3. Решить уравнение . 5 3 4 3 7 2 7 8 9 2 1 0 0 1 4 1 3 2 ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = ᅲ ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - X 4. Найти определитель матрицы ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - - - = 2 2 1 1 3 4 6 5 2 A . Вариант 6 1. Решить систему по формулам Крамера, с помощью обратной ма т- рицы ￯ ￯ ○ ￯ ￯ ■ ↓ = - - = + - = - + = - + + . 1 5 3 ; 9 10 7 5 ; 9 2 3 ; 20 4 3 5 3 2 4 2 1 3 2 1 4 3 2 1 x x x x x x x x x x x x и ￯ ○ ￯ ■ ↓ = + - = - + = - - . 11 4 2 3 ; 11 2 4 3 ; 4 2 z y x z y x z y x 2. Выполнить действия над матрицами B, 2 B)A - (A + где . 3 1 0 2 1 1 2 7 3 , 0 1 2 1 2 0 3 1 5 ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - - - = B A 
67 3. Решить уравнение . 7 1 17 1 2 2 5 1 8 1 1 1 0 2 1 2 1 5 ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - ᅲ X 4. Найти определитель матрицы ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - = 0 2 1 2 1 1 1 1 2 A . Вариант 7 1. Решить систему по формулам Крамера, с помо щью обратной ма т- рицы ￯ ￯ ○ ￯ ￯ ■ ↓ = + - + - = + - = - - = + - + . 0 6 7 4 ; 5 2 2 ; 9 6 3 ; 8 5 2 4 3 2 1 4 3 2 4 2 1 4 3 2 1 x x x x x x x x x x x x x x и ￯ ○ ￯ ■ ↓ - = + + - = + - - = + + . 2 4 4 ; 4 2 2 ; 1 2 z y x z y x z y x 2. Выполнить действия над матрицами AB, 0.5B) - 2(A + где . 2 7 5 0 2 3 16 4 1 , 1 5 3 4 0 2 1 3 5 ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = B A 3. Решить уравнение . 1 0 1 2 7 5 2 0 2 2 1 0 0 2 3 1 2 4 ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - - = ᅲ ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - X 4. Найти определитель матрицы ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - - = 3 2 1 2 4 0 1 1 2 A . Вариант 8 1. Реши ть систему по формулам Крамера, с помощью обратной ма т- рицы ￯ ￯ ○ ￯ ￯ ■ ↓ = - + - = + - - = + + + = + + - . 6 3 3 ; 6 2 3 ; 6 2 3 3 3 ; 4 2 3 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 x x x x x x x x x x x x x x x x и ￯ ○ ￯ ■ ↓ = + - = + + - = - . 15 4 2 ; 0 2 ; 5 3 z y x z y x y x 2. Выполнить действия над матрицами B, 3 B)A (A + - где . 4 3 1 2 3 0 4 2 1 , 2 1 1 0 2 4 5 2 3 ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - - = ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - = B A 3. Решить уравнение . 5 4 2 1 10 4 2 6 4 1 1 0 2 1 2 2 4 1 ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - ᅲ X 
68 4. Найти определитель матрицы ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = 0 6 5 1 3 2 4 4 5 A . Вариант 9 1. Решить систему по формулам Крамера, с помощью обратной ма т- рицы ￯ ￯ ○ ￯ ￯ ■ ↓ = + - + - = + + - = + + + = + - + . 10 3 ; 1 2 ; 5 2 ; 8 2 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 x x x x x x x x x x x x x x x x и ￯ ○ ￯ ■ ↓ = - + - = - - = + - . 0 ; 17 3 5 2 ; 4 3 z y x z y x z y x 2. Выполнить действия над матрицами B)B, (A - 2A 2 + где . 5 4 2 1 10 4 2 6 4 , 1 1 0 2 1 2 2 4 1 ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = B A 3. Решить уравнение . 4 3 1 2 3 0 4 2 1 2 1 1 0 2 4 5 2 3 ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - - = ᅲ ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - X 4. Найти определитель матрицы ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = 1 2 4 3 2 4 0 1 3 A . Вариант 10 1. Решить систему по формулам Крамера, с помощью обратной ма т- рицы ￯ ￯ ○ ￯ ￯ ■ ↓ = - - + = + - - = + - - = - + . 0 3 2 ; 12 4 2 3 ; 7 4 3 ; 9 4 4 3 2 1 4 3 2 3 2 1 4 2 1 x x x x x x x x x x x x x и ￯ ○ ￯ ■ ↓ = - - = - - = + + . 8 2 3 ; 1 6 2 ; 2 y x z y x z y x 2. Выполнить действия над матрицами 2AB, - ) B 3(A 2 2 - где . 1 0 1 2 7 5 2 0 2 , 2 1 0 0 2 3 1 2 4 ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - - = ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = B A 3. Решить уравнение . 2 7 5 0 2 3 16 4 1 1 5 3 4 0 2 1 3 5 ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - - ᅲ X 4. Найти определитель матрицы ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - - = 2 1 3 1 1 2 2 2 1 A . 
69 C. Графика 2D и 3D. Анимация. Выполнить ниже приведенные задания. Для каждого варианта о т- форматировать графики, полученные в заданиях 1 и 2: изменить свойства просмотра и способы отображения функций, добавить заголовки, и отфо р- м а тировать оси. В задании 1 изменить цвет и толщину линий для графиков функций в пункте 1), 2). Третий и четвертый графики функций отобразить в одной системе координат. В задании 2 графи ки функции должны быть разного цвета, разной толщины, использовать различные стили линий. В задании 3 построить поверхность в декартовой, сферической и ц и- линдрической системах координат, изменяя угол просмотра, вид повер х- ности и цвет, добавляя заголовок и сетку координат. В задании 4 создать анимацию с заданным количеством кадров n, и временем t. Необходимо представить двумерные анимации в декартовой и сферической системах координат, а трехмерные – в декартовой и цилин д- рической системах координат. Поставить просмотр анимации под углами  =45 и  =45. Изменить количество кадров в секунду так, чтобы можно б ы- ло но р мально наблюдать движение или колебание поверхности. Вариант 1 1. Построить график функции: ) ) ) ( ) ) ( ) 1 cosx 4 x 4 ; 2 x 1 0.5 3 0; 2 15x 3x 13x 2 0; 5.3 5.7x 2.5 1 2 x 2 3 5 x = - - = + = - - + = - + 2. Построить графики функций 1) - 3) из п.1 в одной системе коорд и- нат. 3. Построить поверхность f(x,y)=sin(x 2 +(y - 1) 2 ) при x= - 2..2, y= - 1..3. 4. Анимировать график функции: а ) sin(x+t  Pi)/(x+11) при x= - 10..10, t=1..4, n=100. б ) cos(t  x)  sin(t  y) при x= - Pi..Pi, y= - Pi..Pi, t=1..4. Вариант 2 1. Пост роить график функции: ) ) ) ( ) [ ] ( ) ) ( ) . 1 2 5 . 0 3 7 sin 4 ; 1 3 log 3 ; 0 5 20 3 2 2 ; 0 7 . 3 1 1 2 2 4 2 = - - ￷ ￸ ￶ ￧ │ ₩ + - = + ᅲ - = + - - = - x x x x x x x x arctgx p 2. Построить графики функций 1) - 3) из п.1 в одной системе коорд и- нат. 3. Построить поверхность f(x,y)=cos(x 2 +y 2 ) при x= - 2..2, y= - 2..2. 4. Анимировать график функции: а ) cos(x+t  Pi)+cos(x - t  Pi) при x= - 1..1, t=1..6, n=100; б ) sin(x  t  y)  x  y при x= - Pi..Pi, y= - Pi..Pi, t=1..4. 
70 Вариант 3 1. Построить график функции: ) ) ) ) ( ) ( ) . 1 1 lg 1 4 ; 5 . 0 2 3 ; 0 1 2 ; 0 3 5 1 2 2 . 1 2 4 . 2 = + ᅲ - + - = - - = + x x x x x x x x 2. Построить графики функций 1) - 3) из п.1 в одной системе коорд и- нат. 3. Построить поверхность 1/cos(x+y) при x= - 4..4, y= - 4..4. 4. Анимир овать график функции: а ) sin(x+t  Pi)+sin(x - t  Pi) при x= - 1..1, t=1..6, n=70; б ) sin(t  x)  cos(t  y)  sin(cos(t)) при x=1..2, y=1..2, t=1..10. Вариант 4 1. Построить график функции: ) ) ) ( ) ) ( ) . 5 . 0 cos 4 ; 1 . 2 1 log 2 3 ; 0 21 2 5 2 ; 5 10 4 1 3 3 2 4 x x x x x x x e x = + = + ᅲ = - - + = 2. Построить графики функций 1) - 3) из п.1 в одной системе коорд и- нат. 3. Построить поверхность ln(x+y)/cos(x+y) при x= - 4..4,y= - 4..4. 4. Анимировать график функции: а ) sin(x+t  Pi)  x+sin(x - t  Pi)/x при x=1..44, t=1..10, n=200; б ) (1.5) x  sin(u  y) при x= - 1..  Pi, y=0..2  Pi, u=1..10. Вариант 5 1. Построить график функци и: ) ) ) ( ) ( ) ) . 3 sin 15 4 ; 1 3 log 4 3 ; 0 10 6 8 3 2 ; 0 1 . 2 2 . 4 3 2 1 5 . 0 2 2 3 4 1 x x x x x x x x x = - = - ᅲ - = - + + = - - ᅲ - 2. Построить графики функций 1) - 3) из п.1 в одной системе коорд и- нат. 3. Построить поверхность sin(x*y) при x= - Pi..Pi, y= - Pi..Pi. 4. Анимировать график функции: а ) sin(x+t  Pi)+2  cos(x - t  Pi), x=1..10, t=1..5, n=100; б ) sin(2  x)  cos(t  u) при x=1..3, t=1..4, u=0.5..4. Вариант 6 1. Построить график функции: ) ) ) ) . 2 4 ; 1 2 3 ; 0 18 54 3 2 ; 0 4 1 1 2 2 4 3 + = = ᅲ = + - = - x tgx x x x x arctgx x 2. Построить графики функций 1) - 3) из п.1 в одной системе коорд и- нат. 3. Построить поверхность 4x  exp( - 2x^2 - 2y^2) при x= - 2..2, y= - 2..2 4. Анимировать график функции : а ) cos(x+2  t  Pi)  cos(x+2  t  Pi)  x при x=1..10, t=1..20, n=150; б ) [x  u, u  t, x  cos(t  u)] при x=1..3, t=1..4, u=2..4. 
71 Вариант 7 1. Построить график функции: ) ) ) ( ) ) . 9 . 1 2 cos 1 . 2 4 ; 2 2 5 . 0 3 ; 0 17 8 4 2 ; 0 2 . 2 4 8 . 1 1 2 2 2 3 4 2 - = + = - = - - + = + - - x x x x x x x e x x 2. Построить графики функций 1) - 3) из п.1 в одной системе коорд и- нат. 3. Постро ить поверхность f(x,y)=50+100  x  y^2/(x^2+y^4) при x= - 3..3, x= - 3..3. 4. Анимировать график функции: а ) (x  x+2  t  Pi)/x+x при x=1..10, t=1..15, n=170; б ) 2  sin(t  x) - cos(t  y) при x=1..2, y=1..2, t=1..10. Вариант 8 1. Построить графики функции: ) ) ) ) ( ) . 5 . 0 1 lg 4 ; 0 5 . 3 8 . 0 4 3 ; 0 3 3 2 2 2 ; 0 13 36 25 1 2 2 3 4 = + = - - = - + - - = - - x x x x x x x x x x 2. Построить графики функций 1) - 3) из п.1 в одной системе коорд и- нат. 3. Построить поверхность f(x,y)=sin(x)  cos(x)  tan(x  y) при x = - 4..4, y= - 4..4. 4. Анимировать график функции: а ) (23+8  t - 5  t 2 )  sin(x  2+x  x) при x=1..3, t=1..10, n=120; б ) sin(x  y)  ( t - 3) при x= - Pi..Pi, y= - Pi..Pi, t=1..6. Вариант 9 1. Построить график функции: ) ( ) ) ) ( ) ) . 0 sin 10 2 4 ; 1 4 4 3 ; 0 1 12 4 3 2 ; 0 4 1 3 1 2 2 2 3 4 = - = - = + - + = + - x x x x x x x x arctg x 2. Построить графики функций 1) - 3) из п.1 в одной системе коорд и- нат. 3. Построить поверхность (e x*y ) x при x= - 1..1, y= - 1..1. 4. Анимировать график функции: а ) sin(t  2)  sin(t  x  2+t  x 2 ) при x=1..3, t=1..5, n=100; б ) (sin(x - y)+sin(x+y))  sin(t - 3) при x= - Pi..Pi, y= - Pi..Pi, t=1..9. Вариант 10 1. Построить график функции: ) ( ) ) ) ) . 0 1 2 lg 2 4 ; 5 . 0 25 . 0 3 sin 3 ; 0 2 18 8 3 2 ; 0 3 5 . 0 1 2 2 3 4 = + - - = ￷ ￸ ￶ ￧ │ ₩ + = + - - = + - x x x x x x x x arcctgx p 2. Построить графики функций 1) - 3) из п.1 в одной системе коорд и- нат. 3. Пос троить поверхность f(x,y)=exp(x  y) (x  y) при x= - 1..1, y= - 1..1. 4. Анимировать график функции: 
72 а ) sin((x+2)  t) при x= - 10..10, t=1..20, n=50; б ) (sin(x - y)  sin(x+y)  (x  y+5))  sin(t) при x= - Pi..Pi, y= - Pi..Pi, t=1..9. D. Программирование. В задании 2 найти решени е системы уравнений методом Гаусса. Сравнить с решением, полученным с помощью обратной матрицы. В задании 3 написать процедуру для вычисления функции f(x,y) или f(x,y,z). В задании 4, используя метод итераций, определить первое собс т- венное число матрицы (н аибольшее по модулю) с пятью - шестью верными цифрами. Затем найти соответствующий ему собственный вектор, име ю- щий первую норму, равную 1 (вычислить с точность до 3 знака). В задании 5 вычислить интеграл по формулам левых и правых пр я- моугольников при n=10, о ценивая точность с помощью сравнения пол у- ченных результатов. В задании 6, используя метод прогонки, составить решение краевой задачи для обыкновенного дифференциального уравнения с точностью 0.001 и шагом 0.05. Вариант 1 1. Вычислить число сочетаний из n п о m по формуле )! ( ! ! m n m n C n m - = , где n n n ) 1 ( 3 2 1 ! - ᅲ ᅲ ᅲ ᅲ = K , целые числа n, m (n>=m>0) ввести с клавиатуры. 2. ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - = 3 0 2 1 2 1 2 1 1 A ; ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = 3 2 1 B . 3. ( ) ( ) ( ) ￯ ￯ ○ ￯ ￯ ■ ↓ = + + < + + > - + = . 0 , 1 ; 0 , ; 0 , ) , ( 2 2 2 xy y x xy xy y x xy xy y x y x f 4. Найти собственное число и его вектор матрицы ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = 1 . 3 1 . 1 1 . 1 1 . 1 6 . 2 1 1 . 1 1 1 . 2 A . 5. Вы числить ￲ + + + 4 . 1 6 . 0 2 2 5 . 0 2 5 x x dx x . 6. Решить . 2 . 1 ) 1 ( 3 ) 1 ( 2 ; 5 . 0 ) 7 . 0 ( ; 2 = ᄁ + = = + ᄁ + ᄁ ᄁ y y y x y x y y Вариант 2 1. Вычислить значение выражения , 2 1 2 1 2 1 2 1 1 3 2 n n b ￷ ￸ ￶ ￧ │ ₩ + + + + + = K где n ввести с клавиатуры. 
73 2. ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = 2 5 2 3 2 1 1 1 3 A ; ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = 8 5 3 B . 3. ( ) ( ) ￯ ￯ ○ ￯ ￯ ■ ↓ < - + - > - + - = - + + = . ), ( ; 0 ), cos( ; 0 ), sin( ) , ( 2 2 2 2 y x x tg x y y x x y x y x x y x y x f 4. Найти собственное число и его в ектор матрицы ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = 3 . 1 3 . 0 5 . 0 3 . 0 3 . 1 4 . 0 5 . 0 4 . 0 3 . 1 A . 5. Вычислить ( ) ( ) ￲ + + + 8 . 0 2 . 0 2 1 cos 2 5 . 0 2 sin x dx x . 6. Решить . 1 ) 2 . 1 ( ; 2 ) 9 . 0 ( 5 . 0 ) 9 . 0 ( ; 1 2 = = ᄁ - + = + ᄁ - ᄁ ᄁ y y y x y y x y Вариант 3 1. Вычислить приближенно значение бесконечной суммы с точн о- стью до 001 . 0 = e : ( ) K K + ￷ ￷ ￸ ￶ ￧ ￧ │ ₩ + ᅲ + - + + ￷ ￸ ￶ ￧ │ ₩ ᅲ - ￷ ￸ ￶ ￧ │ ₩ ᅲ + ᅲ - = k k k k n n n n S ) 2 ( ) 1 ( 1 5 4 4 3 3 2 1 3 2 . Значение n и точность расчетов в вести с клавиатуры. 2. ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - - - - = 2 3 2 8 1 2 5 2 5 A ; ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = 14 2 10 B . 3. ( ) ￯ ○ ￯ ■ ↓ = + > + < + = . ; ), ( ; ), ( ) , ( 2 y x y x y x y x arctg y x y x arctg y x f 4. Найти собственное число и его вектор матрицы ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = 2 . 3 2 . 1 2 . 1 2 . 1 7 . 2 1 2 . 1 1 2 . 2 A . 5. Вычислить ￲ + + + 2 . 1 4 . 0 1 2 8 . 0 2 5 . 0 x dx x . 6. Решить . 2 . 1 ) 8 . 0 ( ; 1 ) 5 . 0 ( 2 ) 5 . 0 ( ; 1 = ᄁ = ᄁ + + = + ᄁ + ᄁ ᄁ y y y x y y x y Вариант 4 1. Вычислить прибли женно значение бесконечной суммы с точн о- стью до 0.0005: ( ) K K + ￷ ￷ ￸ ￶ ￧ ￧ │ ₩ + ᅲ + ᅲ + - + + ￷ ￸ ￶ ￧ │ ₩ ᅲ ᅲ - ￷ ￸ ￶ ￧ │ ₩ ᅲ ᅲ + ￷ ￸ ￶ ￧ │ ₩ ᅲ ᅲ - = k k k k k n n n n S 2 6 4 2 ) 3 ( ) 2 ( ) 1 ( 1 6 5 4 5 4 3 4 3 2 1 . Зн а чение n и точность расчетов ввести как константы. 
74 2. ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = 1 2 1 3 1 1 1 4 1 A ; ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = 4 2 5 B . 3. ￯ ○ ￯ ■ ↓ = > + < < - + = . , ; ), 3 5 cos( ; 1 ), 3 5 sin( ) , ( 3 y x x y x x y x y x x y x y x f 4. Найти собственное число и его вектор матрицы ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = 4 . 1 3 . 0 6 . 0 3 . 0 4 . 1 5 . 0 6 . 0 5 . 0 4 . 1 A . 5. Вычислить ( ) ( ) ￲ + + + 9 . 0 3 . 0 2 6 . 0 sin 5 . 1 2 . 1 8 . 0 cos x x dx x . 6. Решить . 1 ) 5 . 0 ( ) 5 . 0 ( 5 . 0 ; 2 ) 2 . 0 ( ; 3 2 = ᄁ - = = - ᄁ + ᄁ ᄁ y y y x y y y Вариант 5 1. Вычислить бесконечную сумму )! 2 ( ) 1 ( 2 0 n x n n n ¥ ᆬ = - с точностью 0.001. 2. ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - - - = 2 2 1 1 3 4 6 5 2 A ; ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = 3 4 2 B . 3. ( ) ￯ ￯ ○ ￯ ￯ ■ ↓ = - < < - > + = . , ; 3 , ; , 3 3 ) , ( 2 3 3 y x y x y x y x y x y x y x f 4. Найти собственное число и его вектор матрицы ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = 3 . 3 3 . 1 3 . 1 3 . 1 8 . 2 1 3 . 1 1 3 . 2 A . 5. Вычислить ￲ + + + 8 . 1 4 . 0 2 2 5 . 1 1 8 . 0 x x dx x . 6. Решить . 1 ) 9 . 0 ( 5 . 0 ) 9 . 0 ( ; 7 . 0 ) 6 . 0 ( ; 2 2 = ᄁ - = ᄁ = - ᄁ + ᄁ ᄁ y y y x xy y y Вариант 6 1. Вычислить бесконечную сумму ¥ ᆬ = + - 1 )! 1 ( ) 1 ( i i i с точностью 0.0001. 2. ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - = 0 2 1 2 1 1 1 1 2 A ; ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = 3 4 2 B . 3. ( ) ￯ ￯ ○ ￯ ￯ ■ ↓ = + < > + = + . 10 , ; 10 , ; 10 , ln ) , ( xy y x xy e xy y x y x f y x 
75 4. Найти собственное число и его вектор матрицы ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = 5 . 4 5 . 2 5 . 2 5 . 2 4 1 5 . 2 1 5 . 3 A . 5. Вычислить ( ) ( ) ￲ + + + 0 . 1 4 . 0 2 5 . 0 2 cos 8 . 0 4 . 1 sin x dx x . 6. Решить . 4 ) 4 . 1 ( ; 2 ) 1 . 1 ( 5 . 0 ) 1 . 1 ( ; 4 . 0 2 = ᄁ = ᄁ - + = + ᄁ - ᄁ ᄁ y y y x x y y y Вариант 7 1. Вычислить значение выражения ( ) ( ) m m 1 1 1 3 1 2 1 9 9 9 9 ￷ ￸ ￶ ￧ │ ₩ + + + + - K K . Чи с- ло m вв е сти с клавиатуры. 2. ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - - = 3 2 1 2 4 0 1 1 2 A ; ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = 1 3 1 B . 3. 5 ) , min( ) , , max( ) , , ( + = y x z y x z y x f . 4. Найти собственное число и его вектор матрицы ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = 5 . 1 3 . 0 7 . 0 3 . 0 5 . 1 6 . 0 7 . 0 6 . 0 5 . 1 A . 5. Вычислить ￲ + + + 2 . 2 0 . 1 2 2 8 . 0 6 . 1 6 . 0 5 . 1 x dx x . 6. Решить . 7 . 0 ) 7 . 0 ( 2 ) 7 . 0 ( ; 1 3 = ᄁ + = + ᄁ - ᄁ ᄁ y y x y y y Вариант 8 1. Задан двумерный массив вещественных чисел. Найти наибольший и наименьший элементы массива. 2. ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = 0 6 5 1 3 2 4 4 5 A ; ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = 1 2 3 B . 3. ) , max( ) , min( ) , , ( y x z y y x z y x f - + = . 4. Найти собственное число и его вектор матрицы ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = 8 . 0 4 . 0 3 . 1 4 . 0 9 . 0 2 . 1 3 . 1 2 . 1 4 . 1 A . 5. Вычислить ( ) ( ) ￲ + + + 0 . 1 6 . 0 2 2 7 . 0 sin 4 . 1 4 . 0 6 . 0 cos x x dx x . 6. Решить . 5 . 0 ) 5 . 1 ( ) 5 . 1 ( 2 ; 1 ) 2 . 1 ( ; 1 3 = ᄁ - = ᄁ + = - ᄁ + ᄁ ᄁ y y y x x y y y 
76 Вари ант 9 1. Задана матрица А размерности m*n. Получить матрицу B=A 15 . 2. ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = 1 2 4 3 2 4 0 1 3 A ; ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = 3 2 1 B . 3. 2 ) , max( ) , min( ) , , ( z y y x z y x f - = . 4. Найти собственное число и его вектор матрицы ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = 8 . 3 8 . 1 8 . 1 8 . 1 3 . 3 1 8 . 1 1 8 . 2 A . 5. Вычислить ￲ + + + 0 . 2 2 . 1 2 2 3 5 . 0 2 6 . 1 2 x x dx x . 6. Решить . 1 ) 3 . 1 ( ; 6 . 0 ) 1 ( 2 ) 1 ( ; 2 3 2 2 = = ᄁ + = + ᄁ - ᄁ ᄁ y y y x y y y Вариант 10 1. Даны натуральное n и целочисленная матрица n*n. Получить n b b b , , , 2 1 K , где i b – наименьшее из значений элементов n. , 1,2, i , , , , 2 1 K K = ii i i a a a 2. ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - - = 2 1 3 1 1 2 2 2 1 A ; ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ = 3 2 12 B . 3. ) 0 ), , max(min( ) , , ( x y y x z y x f - - = . 4. Найти собственное число и его вектор матрицы ￷ ￷ ￷ ￸ ￶ ￧ ￧ ￧ │ ₩ - - = 8 . 0 6 . 0 1 . 1 6 . 0 1 . 1 2 . 1 1 . 1 2 . 1 6 . 1 A . 5. Вычислить ( ) ( ) ￲ + + + 3 . 1 5 . 0 2 4 . 0 cos 2 . 1 4 . 0 5 . 0 sin x x dx x . 6. Решить . 3 ) 6 . 1 ( ; 1 ) 3 . 1 ( ) 3 . 1 ( 2 ; 5 . 0 5 . 1 = = ᄁ - = - ᄁ + ᄁ ᄁ y y y xy y y E. Решение математических задач. В задании 3 необходимо найти производные по переменной х перв о- го, второго и тр етьего порядков. В задании 4 дифференциальное уравнение (а) необходимо решить аналитически, а дифференциальное уравнение (б) – численно на заданном интрев а ле c шагом 0.1 и 0.05. Сравнить результаты в совпадающих точках Вариант 1 1. Найти или отделить корни аналитически и графически: ) ) ( ) ) ( ) . 2 x 2 @ 1, cosx 3 x 4 ; 2 x 1 0.5 3) 0; 5 12x 4x 3x 2 0; 3 5x 2 1 2 x 2 3 4 x p ᆪ ᆪ - = - - = + = - - + = - + 
77 2. Решить систему уравнений: а) ( ) ○ ■ ↓ = + = - + . 2 cos 2 ; 2 . 1 1 sin y x y x б) ( ) ￯ ○ ￯ ■ ↓ > > = + = + . 0 , 0 , 1 2 6 . 0 ; 4 . 0 2 2 2 y x y x x xy tg в) ￯ ￯ ○ ￯ ￯ ■ ↓ = - - + = + - - = + - - = - + . 0 3 2 ; 12 4 2 3 ; 7 4 3 ; 9 4 4 3 2 1 4 3 2 3 2 1 4 2 1 x x x x x x x x x x x x x 3. Найти производную от функции: а) ; 45 5 2 7 3 4 + + + y x x б) ; ) 4 sin( 2 x 4. Решить дифференциал ьное уравнение: а) ); sin( ) ( x x x y = ᄁ ᄁ ᄁ б) ○ ■ ↓ - = ᄁ + ᅲ = ᄁ . ; 2 2 y x z x z y y 1 , 0 , 2 ) 0 ( , 1 ) 0 ( = = = = b a z y . Вариант 2 1. Найти или отделить корни аналитически и графически: ) ) ) ( ) [ ] ( ) . 0 x 5 . 0 3 x sin ) 4 ; 1 2 x x log 3 ; 0 1 x 60 x 9 x 2 2 ; 0 x 3 1 arctgx 1 2 2 3 3 = - ￷ ￸ ￶ ￧ │ ₩ p + - = + ᅲ - = + - - = - 2. Решить систему уравнений: а) ( ) ○ ■ ↓ = - = + - . 3 cos ; 5 . 0 1 cos y x y x б) ( ) ○ ■ ↓ > > = + = - + . 0 , 0 , 1 ; 0 6 . 1 sin 2 2 y x y x x y x в) ￯ ￯ ○ ￯ ￯ ■ ↓ = + - + - = + + - = + + + = + - + . 10 3 ; 1 2 ; 5 2 ; 8 2 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 x x x x x x x x x x x x x x x x 3. Найти производную от функции: а) ; 15 3 5 8 6 5 5 + + + y x x б) ; ) 87 cos( 3 x 4. Решить дифференциальное уравнение: а) ; 2 ) ( 2 x y x y = ᄁ + ᄁ ᄁ ᄁ б) ○ ■ ↓ - = ᄁ + ᅲ = ᄁ . 4 ; 2 z y z z x y y 5 . 0 , 0 , 0 ) 1 ( , 1 ) 1 ( = = = = b a z y . Вариант 3 1. Найти или отделить корни аналитическ и и графически: ) ) ) ) ( ) ( ) . 1 11 lg 1 4 ; 5 . 0 2 3 ; 0 1 2 ; 0 3 5 1 2 2 4 = + ᅲ - + - = - - = + x x x x x x x x 2. Решить систему уравнений: a) ( ) ○ ■ ↓ = + - = + . 7 . 0 1 cos ; 3 2 sin x y y x б) ( ) ￯ ○ ￯ ■ ↓ = + = + . 1 2 ; 1 . 0 2 2 2 y x x xy tg в) ￯ ￯ ○ ￯ ￯ ■ ↓ = - + - = + - - = + + + = + + - . 6 3 3 ; 6 2 3 ; 6 2 3 3 3 ; 4 2 3 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 x x x x x x x x x x x x x x x x 3. Найти производную от функции а) ; 2 45 1 52 12 2 2 4 + + + + x y x x x б) ( ) ; 2 cos ) 2 sin( x x 4. Решить дифференциальное уравнение: 
78 а) ; 2 ) ( 2 x e y x y = ᄁ + ᄁ ᄁ ᄁ б) ￯ ○ ￯ ■ ↓ + = ᄁ + + ᅲ = ᄁ + - . ); 1 /( 4 ) ( 2 2 2 z e z x y x y y x 1 , 0 , 5 . 0 ) 0 ( , 1 ) 0 ( = = = = b a z y . Вариант 4 1. Найти или отделить корни аналитически и графически: ) ) ) ( ) ) ( ) . 5 . 0 cos 4 ; 1 1 log 3 ; 0 10 2 2 ; 2 5 2 1 3 3 2 4 x x x x x x x e x = + = + ᅲ = - - + = 2. Решить систему уравнений: а) ( ) ○ ■ ↓ = - - = + . 1 5 . 0 sin 2 ; 5 . 1 ) cos( y x y x б) ( ) ○ ■ ↓ = + = - + . 1 ; 2 . 0 2 . 1 sin 2 2 y x x y x в) ￯ ￯ ○ ￯ ￯ ■ ↓ = + - + - = + - = - - = + - + . 0 6 7 4 ; 5 2 2 ; 9 6 3 ; 8 5 2 4 3 2 1 4 3 2 4 2 1 4 3 2 1 x x x x x x x x x x x x x x 3. Найти производную от функции: а) ; 45 5 23 101 300 t xy x x + + + б) ; * ) 12 ( ) (sin 2 x x tg x + 4. Решить дифференциальное уравнение: а) ; 4 sin 5 ) ( 2 x e y x y x + = ᄁ ᄁ + ᄁ ᄁ ᄁ б) ○ ■ ↓ = ᄁ ᅲ = ᄁ . / ; / z x z x z y y 1 , 0 , 5 . 0 ) 0 ( , 0 ) 0 ( = = = = b a z y . Вариант 5 1. Найти или отделить корни аналитически и графически: ) ) ) ( ) ( ) ) . sin 5 4 ; 1 3 log 4 3 ; 0 10 6 8 3 2 ; 0 2 3 1 5 . 0 2 2 3 4 1 x x x x x x x x x = - = - ᅲ - = - + + = - - - 2. Решить систему уравнений: а) ( ) ( ) ○ ■ ↓ = + - = - + . 0 2 cos ; 1 5 . 0 sin x y y x б) ( ) ￯ ○ ￯ ■ ↓ = + = + . 1 2 9 . 0 ; 3 . 0 2 2 2 y x x xy tg в) ￯ ￯ ○ ￯ ￯ ■ ↓ = - - = + - = - + = - + + . 1 5 3 ; 9 10 7 5 ; 9 2 3 ; 20 4 3 5 3 2 4 2 1 3 2 1 4 3 2 1 x x x x x x x x x x x x 3. Найти производную от функции: а) ; 45 5 5 27 2 2 . 0 27 i y x x x + + + б) ; ) 43 cos( ) sin( 2 x x x x + 4. Решить дифференциальное уравнение: а) ); 7 exp( 7 x y y x = ᄁ + ᄁ ᄁ б) ￯ ○ ￯ ■ ↓ + + ᅲ = ᄁ + ᅲ + ᅲ = ᄁ ). 2 sin( 9 ; 9 2 ln( 2 2 2 2 x x y x z z x x y 9 . 0 , 0 , 1 ) 0 ( , 1 ) 0 ( = = = = b a z y . Вариант 6 1. Найти или отделить корни аналитически и графически: ) ) ) ) . 2 / 2 / , 1 4 ; 1 2 3 ; 0 6 18 2 ; 0 2 1 2 1 2 2 4 3 p p ᆪ ᆪ - + = = ᅲ = + - = - x x tgx x x x x arctgx x 
79 2. Решить систему уравнений: а) ( ) ○ ■ ↓ = - = + + . 6 . 1 2 sin ; 8 . 0 5 . 0 cos x y y x б) ( ) ○ ■ ↓ = + = - + . 1 ; 0 3 . 1 sin 2 2 y x x y x в) ￯ ￯ ○ ￯ ￯ ■ ↓ = + + + = + + + = + + + = + + + . 16 5 3 7 ; 4 3 7 5 ; 0 7 5 3 ; 12 7 5 3 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 x x x x x x x x x x x x x x x x 3. Найти прои зводную от функции: а) ; 7 500 300 4 11 3 + + + xy x x б) ); sin( / ) 2 cos( x x x ᅲ 4. Решить дифференциальное уравнение: а) ); 7 exp( 7 x x y y x = ᄁ + ᄁ ᄁ б) ○ ■ ↓ ᅲ = ᄁ + = ᄁ . ; 2 x y z x z y 5 . 0 , 0 , 10 ) 1 ( , 0 ) 1 ( = = = = b a z y . Вариант 7 1. Найти или отделить корни аналитически и графически: ) ) ) ( ) ) . 1 2 cos 4 ; 2 1 5 . 0 3 ; 0 17 8 4 2 ; 0 1 2 1 2 2 2 3 4 2 - = + = - = - - + = + - - x x x x x x x e x x 2. Решить систему уравнений: а) ( ) ( ) ○ ■ ↓ = + - - = - . 8 . 0 1 sin ; 3 . 1 1 sin y x y x б) ￯ ○ ￯ ■ ↓ = + = . 1 2 8 . 0 ; 2 2 2 y x x tgxy в) ￯ ￯ ○ ￯ ￯ ■ ↓ = - + = - + - = + - - = + - . 5 5 3 4 ; 12 5 2 3 ; 4 3 2 ; 5 4 3 3 2 1 4 2 1 4 3 1 4 3 2 x x x x x x x x x x x x 3. Найти производную от функции: а) ; 9 4 6 8 2 3 5 7 + + + y x x x б) ); 25 ( 18 ) 5 34 45 ( 2 x xtg x x ctg + + + 4. Решить дифференциальное уравнение: а) ); 4 sin( 2 x x y y x = ᄁ + ᄁ ᄁ б) ○ ■ ↓ ᅲ + ᅲ = ᄁ ᅲ - ᅲ = ᄁ ). cos( ) sin( ); sin( ) cos( x z x y z x z x y y 5 . 0 , 0 , 2 ) 0 ( , 0 ) 0 ( = = = = b a z y . Вариант 8 1. Найти или отделить корни аналитически и графически: ) ) ) ( ) . 1 1 lg 4 ; 0 3 5 . 0 2 3) ; 0 3 3 2 2 ; 0 3 6 5 1 2 2 3 4 = + = - - = - + - - = - - x x x x x x x x x x 2. Решить систему уравнений: а) ( ) ○ ■ ↓ - = + = + - . 4 . 0 sin ; 0 1 cos 2 y x x y б) ( ) ○ ■ ↓ = + = - + . 1 ; 1 . 0 5 . 1 sin 2 2 y x x y x в) ￯ ￯ ○ ￯ ￯ ■ ↓ - = + + + = + + + = + + + = + + + . 5 2 3 4 ; 1 2 2 3 ; 1 3 2 2 ; 5 4 3 2 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 x x x x x x x x x x x x x x x x 3. Найти производную от фу нкции: а) ; 3 3 42 2 3 / 1 5 . 0 + + + y x x x б) ; ) 4 25 45 exp( ) sin( 2 3 x x x x + + 
80 4. Решить дифференциальное уравнение: а) ; 1 1 1 5 4 2 x x x x y y + - = ᄁ + ᄁ ᄁ б) ○ ■ ↓ + + + = ᄁ + ᅲ = ᄁ . 11 ) 4 /( ); 3 cos( 2 x x y x z z y y 8 . 0 , 0 , 3 ) 0 ( , 3 ) 0 ( = = = = b a z y . Вариант 9 1. Найти или отделить корни аналитически и графически: ) ( ) ) ) ( ) ) . 0 sin 20 4 ; 1 2 2 3 ; 0 1 12 4 3 2 ; 0 2 1 1 2 2 2 3 4 = - = - = + - + = + - x x x x x x x x arctg x 2. Решить систему уравнений: а) ( ) ○ ■ ↓ = - = - + . 1 2 sin ; 2 5 . 0 cos x y y x б) ￯ ○ ￯ ■ ↓ = + = . 1 2 7 . 0 ; 2 2 2 y x x tgxy в) ￯ ￯ ○ ￯ ￯ ■ ↓ - = + + - = + - + = - - - = - + + . 8 2 3 2 ; 4 2 2 3 ; 8 3 2 ; 6 2 3 2 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 x x x x x x x x x x x x x x x x 3. Найти производную от функции: а) ; 4 25 44 3 2 4 x xy x x + + + б) ; * ) 24 exp( ) 2 1 ln( ) 24 4 sin( x x x x - + 4. Решить дифференциальное уравнение: а) ; 4 10 2 x x y y = ᄁ ᄁ ᄁ - ᄁ ᄁ ᄁ ᄁ б) ○ ■ ↓ - = ᄁ + + = ᄁ . ); 5 ( 3 z x z x x y y 3 . 0 , 0 , 1 . 0 ) 0 ( , 1 ) 0 ( = = - = = b a z y . Вариант 10 1. Найти или отделить корни аналитически и графически: ) ) ) ) 0. 1 2 x 2lgx 4 1; 0.5x 3 @ x 2sin 3 0; 2 18x 8x 3x 2 0; 3 x 2arcctgx 1 2 2 3 4 = + - - = + = + - - = + - ￷ ￸ ￶ ￧ │ ₩ 2. Решить систему уравнений: а) ( ) ○ ■ ↓ = - + = - + . 5 . 0 ) 2 cos( ; 5 . 1 2 sin y x y x б) ( ) ○ ■ ↓ = + = - + . 1 ; 1 . 0 2 . 1 sin 2 2 y x x y x в) ￯ ￯ ○ ￯ ￯ ■ ↓ - = - + + - = - - + - = - - - = + + + . 4 3 2 ; 6 3 2 ; 4 2 3 ; 1 3 2 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 x x x x x x x x x x x x x x x x 3. Найти производную от функции: а ) ; 125 25 10 5 5 10 + + + xy x x б) ; ) 8 cos( ) 12 ( ) 4 sin( ) 2 tan( x x x tg x x + + 4. Решить дифференциальное уравнение: а) ; 4 3 2 5 x y y y = ᄁ + ᄁ ᄁ + ᄁ ᄁ ᄁ б) ○ ■ ↓ + ᅲ = ᄁ + - = ᄁ ). cos( ; 10 2 x x z y y x z z 6 . 0 , 0 , 2 . 0 ) 0 ( , 0 ) 0 ( = = = = b a z y . 
81 X. ПРИЛОЖЕНИЯ Приложение 1 Табл.1.1 Унарные арифметические операторы 1. + Унарный плюс 2. ! Факт ориал 3. $ Последовательность 4. % Метка 5. - Унарный минус 6. . Десятичная точка 7. Not Логическое отрицание Табл.1.2 Бинарные (инфиксные) операторы 1. + Сложение 2. * Умножение 3. ** или ^ Возведение в степень 4. $ Оператор последовательности 5. @ Оператор композиции 6. .. Интервал 7. &* Некоммутативное умножение 8. \ . Конкатенация 9. - Вычитание 10. / Деление 11. mod Вычисление модуля 12. . Разделительная точка 13. @@ Повторение композиции 14. , Разделитель выражений 15. &string Не йтральный оператор 16. := Присваивание 17. union Оператор объединения 18. intersect Оператор общих элементов 19. minus Оператор исключения второго из первого Более подробно можно посмотреть здесь: HELP \ Introduction Programming \ Data types \ Boolean или Programming \ Operations \ Sets and Lists \ ... 
82 Табл.1.3 Логические операторы 1. < Менее чем 2. > Более чем 3. = Равно 4. and Логическое И 5. <= Менее чем и равно 6. >= Более чем и равно 7. <> Не равно 8. or Логическое ИЛИ Табл.1.4 Функциона льный оператор 1. - > vars - >result создание функции, зависящей от к а кого - либо количества переменных Более подробно можно посмотреть здесь: HELP \ Introduction Programming \ Operations \ Operators \ - >... 
83 Приложение 2 Математические функции Табл.2.1 Целоч исленные функции 1. factorial(n) Факториал 2. iquo(a,b) Частное от деления целого а на целое b 3. irem(a,b) Остаток от деления целого а на целое b 4. igcd(a,b) Наибольший общий делитель двух чисел 5. lcm(a,b) Наименьшее общее кратное двух чисел Табл .2.2 Прямые и обратные тригонометрические функции 1. sin(x) Синус 7. arcsin(x) Аркс и нус 2. cos(x) Кос и нус 8. arcsec(x) Аркк о синус 3. sec(x) Секанс 9. arccos(x) Аркс е канс 4. csc(x) Кос е канс 10. arccsc(x) Арккос е канс 5. tan(x) Тангенс 11. arctan(x) Аркт а н генс 6. cot(x) Кота н генс 12. arccot(x) Аркк о тангенс Табл.2.3 Алгебраические функции и функции с элементами сравнения 1. exp(x) Экспонента 2. ilog10(x) Целочисленный десятичный логарифм 3. ilog(x) Целочисленный логарифм (необходимо загрузить библиотеку il og) 4. ln(x) Натуральный логарифм 5. log10(x) Десятичный логарифм (необходимо загрузить би б- лиотеку log10) 6. surd(x,n) Корень n - ой степени из числа х 7. sqrt(x) Квадратный корень 8. ceil(x) Наименьшее целое, большее или равное х 9. floor(x) Наименьшее целое, мен ьшее или равное х 10. frac(x) Дробная часть числа 11. trunc(x) Меньшее целое, округленное в направлении х=0 12. round(x) Округленное значение числа 13. signum(x) Функция знака (ответом будет одно из трех знач е- ний: - 1; 0; 1) 
84 Табл.2.5 Другие функции 1. extrema( expr,constr, vars, ‘nv’) Нахождение экстремальной точки (библи о- тека extrema) 2. minimize(expr) Нахождение точки минимума 3. maximize(expr) Нахождение точки максимума 4. iscont(expr) Анализ функции на непрерывность (iscont) 5. piecewise(expr) Построени е новой функции из различных частей других функций 6. simplify(expr) Функция упрощения выражения 7. expand(expr) Функция расширения выражения 8. ifactors(n, method) Функция разложения числа на простые ц е- лые числа (необходимо подключение би б- лиотеки ifac tors) 9. factor(expr) Разложение выражений 10. int(f(x),x=a..b) Вычисление интеграла от функции f(x) по переменной x на интервале a..b 11. limit(f(x),x=a) Вычисление предела функции f(x) в точке a 12. sum(f(i), i=a..b) Суммирование элементов последова тельн о- сти f(i) 13. product(f(n),n=a..b) Произведение элементов последовательн о- сти f(n) 14. writedata(fileID, data) Сохранение данных data в файл fileID 15. readdata(fileID, n) Считывание данных из файла fileID по n столбцов 16. fprintf(file, fmt, x1,.. .,xn) sprintf(fmt, x1, ...,xn) nprintf(fmt, x1, ...,xn) printf(fmt, x1, ...,xn) Вывод результатов на экран и в файл 17. interface(arg1, arg2, …) Установка уровня просмотра пер е менных 18. trace(f,g,h,...) untrace(f,g,h,...) Включение и выключение трасси ровки процедуры или функции 19. solve(eqns, vars) Аналитическое решение уравнений 20. dsolve(deqns,vars,options) Решение дифференциальных уравн е ний 21. diff(a, x1, x2, …, xn) Нахождение производной по n пер е менным 22. pdesolve(deqns, vars) Нахождение решения в част. Прои з водных 23. fsolve(eqns, vars, options) Численное решение уравнений 24. roots(a,K) Нахождение решений полинома 25. subs(sys, xn) Выделение результата из системы ответов по переменной xn 
85 Табл.2.6 Функции комплексного аргумента 1. abs(x) Абсолютное значение действительного или ко м- плексного числа 2. argument(x) Аргумент комплексного числа 3. conjugate(x) Комплексно - сопряженное число 4. Im(x) Мнимая часть комплексного числа 5. Re(x) Действительная часть комплексного числа 6. pol ar(x) Полярное представление комплексного чи с ла 7. max(x) Максимальный по значению элемент списка x 8. min(x) Минимальный по значению элемент списка x 9. nops(X) Определение числа операторов в выражении Х 10. op(n,x) Извлечение n операндов из выражения х 
86 Приложение 3 Условные обозначения: array – массив, expr – выражение, f – форм у- ла или выражение, n,m – числа целого типа, а,b – действительные числа. Табл.3.1 Команда eval и ее модификации 1. eval(array) Возвращает содержимое массива array. 2. ev al(expr,n) Вычисляет expr и возвращает численное значение с n знаками после зап я той. 3. evalhf(expr) evalf(expr) Вычисляет expr и возвращает вычисле н- ное значение с точностью, присущей да н- ной компьютерной системе. 4. evalhf(int(f, x=a..b)) Оценивает и во звращает значение опр е- деленного интеграла. 5. evalm(mexpr) Вычисляет значение матричного выраж е- ния mexpr и возвращает его. 6. evalb(bexpr) Вычисляет и возвращает значения лог и- ческих условий. 7. evalc(cexpr) Вычисляет значение комплексного выр а- жения. 8. evalr(expr,ampl) Оценивает и возвращает значения инте р- вальных выражений. 9. shake(expr,ampl) Вычисляет интервальное выраж е ние. Более подробно можно посмотреть здесь: HELP \ Introduction Mathematics \ Evaluation \ . . . 
87 Приложение 4 Табл.4.1 Команды и функции для работы с матрицами 1. addcol(A,c1,c2,m) Формирует линейные комбинации из стол б- цов матрицы 2. addrow(A,r1,r2,m) Формирует линейные комбинации из строк матрицы 3. adj( М ) или adjoint( М ) Возвращает матрицу, умножение которой на исходную квадра тную матрицу дает едини ч- ную матрицу (возвращает сопряженную с М матрицу) 4. angle(U,V) Вычисляет угол между векторами 5. array(1..n,1..m,[]) Создание массива или вектора 6. augment(A,B) Присоединение матрицы A слева от матрицы B 7. basis(V, ‘rowspace') Находит базис для векторного пр о странства 8. charmat(A,lambda) Создает характеристическую матрицу 9. charpoly(M,lambda) Возвращает характеристический полином матрицы 10. col(M,i) Извлекает столбцы матрицы как ве к торы 11. coldim(M) Определяет размернос ть столбца ма т рицы 12. colspace(A) Вычисляет базис пространства столбца 13. concat(M1,M2) Возвращает объединенную матрицу с гор и- зонтальным слиянием матриц М1 и М2 14. copyinto(A,B,i,j) Копирует матрицу А в В для элементов п о- следовательно от i до j 15. crossprod(U,V) Вычисляет векторное произведение 16. delcols(M,i..j) Удаляет столбцы матрицы 17. delrows(V,i..j) Удаляет строки матрицы 18. det(B) Определитель 19. diag(B1,B2, .. ,Bn) Создает блок - диагональную матрицу 20. dotprod(U,V) Вычисляет скалярн ое произведение векторов 21. eigenvals(M,vector) Собственные значения матрицы 22. eigenvects(B) Собственные векторы 23. entermatrix(M) Обеспечивает интерактивный ввод матрицы 24. equal(A,B) Определяет равенство двух матриц 25. evalm(A&*B) Умножение м атриц 26. evalm(A) Вывод массива или вектора на экран 27. evalm(A^n) Умножение матрицы самой на себя n раз 28. evalm(A+B) Сложение матриц 
88 29. exp (A) Представление матрицы в экспоненциальной форме 30. extend(M,m,n,x) Расширяет матрицу 31. gausselim (A,'r','d',rmar) Гауссово устранение на матрице 32. geneqns(A,x,b) Генерация элементов матрицы из уравнений 33. genmatrix(eqns, vars,flag) Генерирует матрицу из коэффициентов уравнений 34. indexfunc(M) Определяет функцию индексации ма с сива 36. inverse( B) или evalm(1/B) Обратная матрица 37. jacobian(f, v) Вычисляет якобиан матрицы векторной функции 38. laplacian(f, v, co) Вычисляет лапласиан 39. matadd(A,B) Сложение матриц или векторов 40. matadd(A,B,c,d) Сложение двух матриц или возвращает (с*A+d*B) 41. matrix(1..n,1..m,[]) Создание массива 42. minor(M,i,j) Вычисляет минор матрицы 43. mulcol(A, c, expr) Умножает столбец матрицы на заданное в ы- ражение 44. mulcol(M,n,expr) Умножает столбец матрицы на заданное в ы- ражение 45. mulrow(A, r, expr) Умножа ет строку матрицы на заданное в ы- ражение 46. multiply(A,B) или evalm(A&*B) Возвращает произведение матриц 47. norm(M) Нахождение нормы матрицы или ве к тора 48. print(A) Вывод элементов массива или вектора на э к- ран 49. randmatrix (m, n, options) Генерируе т случайные матрицы 50. randvector (n, entries=p) Генерирует случайные векторы 51. row(M,i) Возвращает i строку матрицы 52. rowdim(M) Возвращает число строк матрицы М 53. scalarmul(M,expr) Умножение матрицы или вектора на зада н- ное выражение 54. stackm atrix(M1,M2) Возвращает объединенную матрицу 56. submatrix(B,a..b,c..d) Создание субматрицы из матрицы B опред е- ленной размерности 58. swapcol(M,i,j) Меняет два столбца в матрице 
89 59. swaprow(M,i,j) Меняет две строки в матрице 60. trace(M) Возвращает след матрицы 61. transpose(B) Транспонирование 62. vectdim(V) Определяет размерность вектора 63. vector(1..n,[]) Создает вектор 64. with(linalg) Загрузка библиотеки для работы с матриц а- ми Более подробно можно узнать о всех командах пакета linalg в п о- мощн и ке математического редактора Maple: Help \ Introduction Mathematics \ Linear Algebra \ Linalg \ ... 
90 Приложение 5 Описание типов систем координат для функции plot опции coords=type, где type – тип системы координат для плоскости: bipolar: ( Spiegel ) x = sinh(v)/(cosh(v) - cos(u)); y = sin(u)/(cosh(v) - cos(u)); cardioid: x = 1/2*(u^2 - v^2)/(u^2+v^2)^2; y = u*v/(u^2+v^2)^2; cartesian: x = u; y = v; cassinian: (Cassinian - oval) x = a*2^(1/2)/2*((exp(2* u)+2*exp(u)*cos(v)+1)^(1/2) + +exp(u)*cos(v)+1)^(1/2); y = a*2^(1/2)/2*((exp(2*u)+2*exp(u)*cos(v)+1)^(1/2) - - exp(u)*cos(v) - 1)^(1/2)]; elliptic: x = cosh(u)*cos(v); y = sinh(u)*sin(v); hyperbolic: x = ((u^2+v^2)^(1/2)+u)^ (1/2); y = ((u^2+v^2)^(1/2) - u)^(1/2); invcassinian: (inverse Cassinian - oval) x = a*2^(1/2)/2*((exp(2*u)+2*exp(u)*cos(v)+1)^(1/2) + exp(u)*cos(v)+1)^(1/2)/(exp(2*u)+2*exp(u)*cos(v)+1)^(1/2); y = a*2^(1/2)/2*((exp(2*u)+2*exp (u)*cos(v)+1)^(1/2) - exp(u)*cos(v) - 1)^(1/2)/(exp(2*u)+2*exp(u)*cos(v)+1)^(1/2); invelliptic: (inverse elliptic) x = a*cosh(u)*cos(v)/(cosh(u)^2 - sin(v)^2); y = a*sinh(u)*sin(v)/(cosh(u)^2 - sin(v)^2); logarithmic: x = a/Pi *ln(u^2+v^2); y = 2*a/Pi*arctan(v/u); logcosh: (ln cosh) x = a/Pi*ln(cosh(u)^2 - sin(v)^2); y = 2*a/Pi*arctan(tanh(u)*tan(v)); maxwell: x = a/Pi*(u+1+exp(u)*cos(v)); y = a/Pi*(v+exp(u)*sin(v)); 
91 parabolic: x = (u^2 - v^2) /2; y = u*v; polar: x = u*cos(v); y = u*sin(v); rose: x = ((u^2+v^2)^(1/2)+u)^(1/2)/(u^2+v^2)^(1/2); y = ((u^2+v^2)^(1/2) - u)^(1/2)/(u^2+v^2)^(1/2); tangent: x = u/(u^2+v^2); y = v/(u^2+v^2). 
92 Приложение 6 Описание типов систем координат для функции plot3d опции coords=type, где type – тип системы координат для пространства: bipolarcylindrical: ( Spiegel ) x = a*sinh(v)/(cosh(v) - cos(u)); y = a*sin(u)/(cosh(v) - cos(u)); z = w; bispherical: x = sin(u)*cos(w)/d; y = sin(u)*sin(w)/d; z = sinh(v)/(cosh(v) - cos(u)); cardioidal: x = u*v*cos(w)/(u^2+v^2)^2; y = u*v*sin(w)/(u^2+v^2)^2; z = (u^2 - v^2)/2/(u^2+v^2)^2; cardioidcylindrical: x = (u^2 - v^2)/2/(u^2+v^2)^2 ; y = u*v/(u^2+v^2)^2; z = w; casscylindrical: (Cassinian - oval cylinder) x=a*2^(1/2)/2*((exp(2*u)+2*exp(u)*cos(v)+1)^(1/2)+exp(u)*cos(v)+1)^(1/2); y = a*2^(1/2)/2*((exp(2*u)+2*exp(u)*cos(v)+1)^(1/2) - exp(u)*cos(v) - 1)^(1/2); z = w; confocalellip: (confocal elliptic) x = ((a^2 - u)*(a^2 - v)*(a^2 - w)/(a^2 - b^2)/(a^2 - c^2))^(1/2); y = ((b^2 - u)*(b^2 - v)*(b^2 - w)/(b^2 - a^2)/(b^2 - c^2))^(1/2); z = ((c^2 - u)*(c^2 - v)*(c^2 - w)/(c^2 - a^2)/(c^2 - b^2))^(1/2); confocalparab: (confocal parabolic) x = ((a^2 - u)*(a^2 - v)*(a^2 - w)/(b^2 - a^2))^(1/2); y = ((b^2 - u)*(b^2 - v)*(b^2 - w)/(b^2 - a^2) )^(1/2); z = (a^2+b^2 - u - v - w)/2; conical: x = u*v*w/(a*b); y = u/b*((v^2 - b^2)*(b^2 - w^2)/(a^2 - b^2))^(1/2); z = u/a*((a^2 - v ^2)*(a^2 - w^2)/(a^2 - b^2))^(1/2); cylindrical: x = u*cos(y); y = u*sin(y); z = w; 
93 ellcylindrical: (elliptic cylindrical) x = a*cosh(u)*cos(v); y = a*sinh(u)*sin(v); z = w; ellipsoidal: x = u*v*w/a/b; y = ((u^2 - b^2)*(v ^2 - b^2)*(b^2 - w^2)/(a^2 - b^2))^(1/2)/b; z = ((u^2 - a^2)*(a^2 - v^2)*(a^2 - w^2)/(a^2 - b^2))^(1/2)/a; hypercylindrical: (hyperbolic cylinder) x = ((u^2+v^2)^(1/2)+u)^(1/2); y = ((u^2+v^2)^(1/2) - u)^(1/2); z = w; invcasscylindrical: (i nverse Cassinian - oval cylinder) x = a*2^(1/2)/2*((exp(2*u)+2*exp(u)*cos(v)+1)^(1/2) + +exp(u)*cos(v)+1)^(1/2)/(exp(2*u)+2*exp(u)*cos(v)+1)^(1/2); y = a*2^(1/2)/2*((exp(2*u)+2*exp(u)*cos(v)+1)^(1/2) - - exp(u)*cos(v) - 1)^(1/2)/(exp( 2*u)+2*exp(u)*cos(v)+1)^(1/2); z = w; invellcylindrical: (inverse elliptic cylinder) x = a*cosh(u)*cos(v)/(cosh(u)^2 - sin(v)^2); y = a*sinh(u)*sin(v)/(cosh(u)^2 - sin(v)^2); z = w; invoblspheroidal: (inverse oblate spheroidal) x = a*cosh(u)*sin(v)*cos(w)/(cosh(u)^2 - cos(v)^2); y = a*cosh(u)*sin(v)*sin(w)/(cosh(u)^2 - cos(v)^2); z = a*sinh(u)*cos(v)/(cosh(u)^2 - cos(v)^2); invprospheroidal: (inverse prolate spheroidal) x = a*sinh(u)*sin(v)*cos(w)/(cosh(u)^2 - sin (v)^2); y = a*sinh(u)*sin(v)*sin(w)/(cosh(u)^2 - sin(v)^2); z = a*cosh(u)*cos(v)/(cosh(u)^2 - sin(v)^2); logcoshcylindrical: (ln cosh cylinder) x = a/Pi*ln(cosh(u)^2 - sin(v)^2); y = 2*a/Pi*arctan(tanh(u)*tan(v)); z = w; maxwellcylindric al: x = a/Pi*(u+1+exp(u)*cos(v)); y = a/Pi*(v+exp(u)*sin(v)); z = w; oblatespheroidal: x = a*cosh(u)*sin(v)*cos(w); y = a*cosh(u)*sin(v)*sin(w); z = a*sinh(u)*cos(v); paraboloidal: ( Spiegel ) 
94 x = u*v*cos(w); y = u*v *sin(w); z = (u^2 - v^2)/2; paraboloidal2: ( Moon ) x = 2*((u - a)*(a - v)*(a - w)/(a - b))^(1/2); y = 2*((u - b)*(b - v)*(b - w)/(a - b))^(1/2); z = u+v+w - a - b; paracylindrical: x = (u^2 - v^2)/2; y = u*v; z = w; prolatespheroidal: x = a*sinh(u)*sin(v)*cos(w); y=a*sinh(u)*sin(v)*sin(w); z=a*cosh(u)*cos(v); rectangular: x = u; y = v; z = w; rosecylindrical: x = ((u^2+v^2)^(1/2)+u)^(1/2)/(u^2+v^2)^(1/2); y = ((u^2+v^2)^(1/2) - u)^(1/2)/(u^2+v^2)^(1/2); z = w; s ixsphere: (6 - sphere) x = u/(u^2+v^2+w^2); y = v/(u^2+v^2+w^2); z = w/(u^2+v^2+w^2); spherical: x = u*cos(v)*sin(w); y = u*sin(v)*sin(w); z = u*cos(w); tangentcylindrical: x = u/(u^2+v^2); y = v/(u^2+v^2); z = w ; tangentsphere: x = u*cos(w)/(u^2+v^2); y = u*sin(w)/(u^2+v^2); z = v/(u^2+v^2); toroidal: x = a*sinh(v)*cos(w)/(cosh(v) - cos(u)); y = a*sinh(v)*sin(w)/(cosh(v) - cos(u)); z = a*sin(u)/(cosh(v) - cos(u));