Вопрос 9.
В настоящее время научное программирование претерпевает серьёзную трансформацию: развиваются интегрированные среды, основанные на алгоритмических языках, и растет применение универсальных математических систем(Maple, MATLAB, MatCad и др.). Эти системы имеют дружественный интерфейс, реализуют множество стандартных и специальных математических операций, снабжены мощными графическими средствами и обладают собственными языками программирования. Все это предоставляет широкие возможности для эффективной работы специалистов разных профилей, о чем говорит активное применение математических пакетов и научных исследованиях. С помощью этих пакетов проще готовить и выполнять задания, устраивать демонстрации и гораздо быстрее решать исследовательские и инженерные задачи. Этот пакет позволяет создавать интегрированные среды с участием систем программирования. Его можно использовать для визуализации данных и подготовки иллюстраций.
Пакет Maple – интерактивная программа, позволяющая проводить аналитические выкладки и вычисления, снабженная средствами двумерной и трехмерной графики, имеющая мощный язык программирования и богатую библиотеку математических формул и сведений. Работа с Maple заключается в том, что пользователь вводит математические выражения и команды, а система пытается их выполнить и предоставить ответ. Получив (или не получив) ответ, пользователь вводит новые команды и так далее – взаимодействие происходит в диалоговом режиме. Благодаря собственному языку программирования высокого уровня введенные выражения и инструкции, а также результаты выполнения команд – формулы, графики, таблицы и числа – запоминаются в едином документе. Это обеспечивает уникальную технологию работы, когда чуть ли не все этапы математического исследования можно отразить в одном документе.
Общие принципы работы с Maple.
Работа в Maple проходит в режиме сессии – пользователь вводит команды, математические выражения, процедуры, которые воспринимаются и интерпретируются в Maple. Каждая команда должна завершаться (;) или двоеточием (:). В первом случае в строке под предложением будет выводиться результат исполнении команды или сообщение об ошибке, во втором случае результат не выводится. Разделитель (:)используется для отмены вывода, когда команда выполняется системой, но ее результат не выводится. Для отмены всех сделанных назначений и начала нового сеанса без выхода из Maple используется команда restart.
Команды Maple набираются после приглашения (>). Нажатие клавиши Enter запускает исполнение введенных команд. Если интерпретатор посчитал введенное законченным предложением, то команды выполняются, в противном случае Maple ожидает завершение сеанса ввода. Обнаружив ошибку, Maple печатает наследующей строке сообщение о ней; при синтаксической ошибке символом ^ отмечается первая нераспознанная литера. В Maple применяются круглые, квадратные и фигурные скобки. Назначение круглых скобок – задавать порядок при построении математических выражений и обрамлять аргументы функций и параметры в записи команд. Квадратные скобки нужны для работы с индексными величинами. Фигурные скобки используются для формирования множеств. В Maple две последовательные точки в параметрах команд применяются для определения интервала изменения переменных. Знаком процента (%) обозначается предшествующий вывод. Два знака процента отсылают к предшествующему результату. Предшественник предпоследнего результата обозначается тремя знаками процента. Используя константы, переменные, знаки арифметических и др. операций, составляются выражения. Это основной объект для многих команд. Последовательность выполнения арифметических операций соответствует стандартным математическим правилам: сначала проводится возведение в степень (^), затем умножение и деление, а в конце сложение и вычитание. Операции выполняются слева направо. Для операций отношения имеются знаки >,<,>=,<=,<>,=, а для конструирования булевых выражений используются команды not, or, and. Обратный слеш (\) используется для переносов, а для комментария в Maple предусмотрен символ #. Вся строка после этого символа не выполняется.
Переменная Maple идентифицируется именем – набором символов, начинающихся с буквы, причем большие и малые буквы различаются. Кроме букв могут употребляться цифры и знак подчеркивания. Для обозначения служебных констант используются имена, начинающиеся с подчеркивания. Переменные среды являются Digits и Order, определяющие соответственно число знаков мантиссы для операций с плавающей запятой (по умолчанию десять цифр) и порядка разложений (по умолчанию разложения выписываются члены до шестого порядка). Для переопределения любой из этих величин достаточно просто присвоить ей новое значение.
Команды. Выражения и переменные обычно служат параметрами команд Maple. Стандартное обращение к команде выглядит следующем образом:
Command(par1,par2…);
Здесь command – команды, а par1,par2,…- ее параметры. Результат выполнения команд может быть присвоен некоторой переменной. Наиболее важные команды содержатся в ядре Maple и вызываются автоматически, команды из главной библиотеки загружаются в память при их вызове. Остальные команды являются частью пакетов. До запуска таких команд пакет должен быть загружен командой with(package). Здесь package – имя пакета.
В Maple для некоторых математических операций существуют по две команды: одна прямого, а другая – отложенного исполнения, причем имена этих команд состоят из одинаковых букв. Команды прямого исполнения, как правило, начинаются с маленькой буквы и выполняются немедленно. Отложенные команды часто начинаются с большой буквы, обычно в том случае, когда существует команда-синоним прямого действия. После обращения к команде отложенного действия заданная математическая операция (интеграл, производная, предел и т.д.) Выводится в стандартном математическом виде и сразу не вычисляется. Для выполнения отложенной операции нужно использовать команду value. Перед использованием некоторых команд необходимо предварительно получить соответствующую библиотеку командой with.
Пределы, суммы, ряды.
Для вычисления предела в Maple существуют команды:
Limit (expr, x=val, dir) и limit (expr, x=val, dir)
Здесь expr – выражение, для которого вычисляется предел (функция или n-й член последовательности), x=val – точка, в которой вычисляется предел, а dir – необязательный параметр, который может принимать следующие значения: left (предел слева), right(предел справа), real (действительный) или complex (комплексный).
Пример:
>Limit(n/(n^2+1), n=infinity); value (%);
Ответ:
0
Для операции суммирования используют команды:
Sum(expr, var=var1..var2) и sum (expr, var=var1..var2)
Здесь expr – выражение, зависящее от переменной суммирования var, а var1..var2 - пределы суммирования. Пределы суммирования могут быть конечными, бесконечными или отсутствовать. Эта команда может быть использована и для суммирования рядов.
Для вычисления бесконечных и конечных произведений используют две команды:
product(expr, k) и Product(expr, k=k1..k2).
Здесь expr – k-й член произведения, k – индекс, а k1 и k2 задают интервал изменения индекса.
Пример:
>Limit(Product(1-1/n^2, n=2..k), k=infinity): %=value(%);
.
Дифференцирование и интегрирование.
Вычисление производной выражения expr по переменной x осуществляется при помощи команд diff(expr, x) или Diff(expr, x). Отметим, что эти команды могут использоваться и для вычисления частных производных функций многих переменных, в этом случае используется следующий формат:
Diff(expr,x1$n1, x2$n2,…)
Здесь expr - выражение, зависящее от переменных x1, x2, …, а n1, n2,… - порядки дифференцирования по соответствующим переменным. Для команды Diff параметры аналогичны. Если правило дифференцирования функции пакету известно или одна из переменных неявно зависит от другой, то в ответе будут сохраняться символы дифференцирования.
Для задания дифференциального оператора используется символ D. Чтобы преобразовать выражение с оператором D к виду, использующему команду diff, применяется команда convert. Она же используется и для обратного преобразования.
Пример:
>f:=diff(y(x), x$7); convert(f,D);
(D)(y)(x)
Оператор дифференцирования D применяется в тех случаях, когда ищется производная функции, а не выражения, и результатом действия оператора будет также функция.
Пример:
>g:=x->x*sin(x);
g:=x->xsin(x)
>gd:=D(g): gd(Pi);
Sd:=x-> sin(x)+xcos(x)
-π
Для интегрирования функций в пакете предусмотрено несколько команд, находящихся в различных библиотеках. В стандартной библиотеке находятся процедуры int(expr,par) и Int(expr,par), которые в зависимости от параметров par могут использоваться для поиска неопределенных интегралов, аналитического или численного вычисления определенных, собственных и несобственных интегралов. Для поиска неопределенных интегралов используется следующая команда:
int(expr,var)
Здесь expr – интегрируемое выражение, а var – переменная интегрирования. Для отложенной команды Int все анологично.
Для вычисления определенных интегралов используется команда:
int(expr,var=a..b)
Здесь expr – интегрируемое выражение, а var – переменная интегрирования, а (a,b) – отрезок интегрирования, его концы могут принимать значение бесконечности. Для вычисления двойных, тройных и т.д. интегралов нужно применить эту команду несколько раз. Если не удается взять аналитически и подынтегральное выражение не содержит неопределенных параметров, то его можно вычислить численно. Для этого предназначена команда evalf(int(expr,x=a..b,digits, flag))
Здесь обязательными параметрами являются подынтегральная функция expr, зависящая только от переменной х и пределов интегрирования a и b, а необязательными – число значащих цифр digits (по умолчанию принимает значение константы Digits) и flag – код численного метода.
Несколько команд интегрирования имеется в библиотеке student. Все эти команды отложенного действия и библиотеку предварительно нужно подключить при помощи with(student). Кратко их перечислим.
• Int(expr,x) – интегрированное выражение expr по переменной x;
•Doubleint(expr,x,y,Domain) – двойное интегрирование выражения expr по переменным x и y в области Domain;
•Lineit(f(x,y),x.y) – вычисление линейного интеграла. Переменная x считается зависящей от переменной y, а если переменных больше, то все они считаются зависящими от последней;
• Tripleint (expr, x, y, z) – вычисление тройного интеграла;
• intparst(f,u) – интегрирование по частям, где f – выражение Int[student], а u – часть подынтегрального выражения , которая будет дифференцироваться.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.