Вопрос 11.doc

  • doc
  • 13.05.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Вопрос 11.doc

Вопрос 11.

В настоящее время научное программирование претерпевает серьёзную трансформацию: развиваются интегрированные среды, основанные на алгоритмических языках, и растет применение универсальных математических систем(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.

 

Двумерная графика

Графические команды преобразуют входные данные в графические структуры и выводят их на экран при помощи команды PLOT. Эти структуры состоят из небольшого числа элементарных объектов:

POINTS([x1,y1],[x2,y2]….) – набор точек с координатами [x1,y1],[x2,y2],…;

CURVES([[x11,y11],…,[x1n,y1n]],…,[[xm1,ym1],…,[xmn,ymn]]) – m наборов по n точек, определяющих незамкнутые кривые. Точки каждого из наборов будут последовательно соединенными отрезками;

POLIGONS([[x11,y11],…,[x1n,y1n]],…,[xm1,ym1],…,[xmn,ymn]]) – m наборов по n точек, определяющие замкнутые кривые. Точки каждого из наборов будут последовательно соединены отрезками, причем последняя точка отрезка соединяется спервой;

TEXT([x,y], “str”, horizontal, vertical, font) – графический вывод текста str начиная с позиции, заданной координатами [x,y]. Необязательный параметр horizontal определяет вид горизонтального выравнивания и может принимать значение ALIGNLEFT или ALIGNRIGHT. Способ вертикального выравнивания задает необязательный параметр font управляет видом и размером шрифта.

Для вывода графических объектов str1,…,strn на экране используется команда стандартной библиотеки: PLOT({str1,…,strn});

Результатом действия этой команды будет графическая структура.

В пакет plottools включены команды часто требующих графических объектов.

Результатом команд, определяющих элементарные графические объекты, являются графические структуры:

circle([x,y],r) – задает окружность с центром в точке [x,y] и радиусом r;

disk ([x,y],r) – задает круг с центром в точке [x,y] и радиусом r;

ellipse([x,y],a,b) – формирует эллипс с центром в точке [x,y] и полуосями a и b;

line([x1,y1],[x2,y2]) – соединяет линии точки с координатами [x1,y1] и [x2,y2];

polygon([[x1,y1],…,[xn,yn]]) – задает многоугольник, соединяющий последовательно точки с координатами [x1,y1],…,[xn,yn]. Последняя точка соединяется с первой.

Определить вид осей координат и заголовка можно при помощи следующих параметров:

title=”Name” – заголовок рисунка;

axees=val – тип выводимых осей координат. Величина val может принимать одно из следующих значений: NORMAL – обычные оси координат, BOXED – график заключается в рамку с нанесенной на ней шкалой, FRAME – оси с центром в левом нижнем углу рисунка, NONE – вывод без нанесения осей;

xtickmarks=nx – число насечек по оси абцисс (X);

ytickmarks=yx – число насечек по оси ординат (Y);

labels=[str_X, str­Y] – надпись по осям координат. По умолчанию принимаются имена вводимых переменных;

legend=stri – комментарий (легенда) к кривой виде строки stri. Если на графике несколько кривых, то в качестве stri должен фигурировать список из строк.

Тип координат и разрешение можно определить с помощью следующих параметров:

cords=type – тип координат;

view=[xmin..xmax, ymin..ymax] – область вывода, диапазон изменения горизонтальной переменной задают величины xmin и xmax, а вертикальной – ymin и ymax;

numpoints=n – число вычисляемых точек графика (по умолчанию 49);

resolution=n – горизонтальное размещение дисплея в пикселях (по умолчанию 200).

Команда plot.

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

plot({func1, func2,…}, x=a..b, y=c..d);

Здесь  func1, func2,… - выражения, зависящие от переменной x, a..b – диапазон изменения переменной x (отрезок оси абцисс), c..d – выводимый интервал по оси ординат. Если одним из концов интервала изменения x является бесконечность, то выводится график асимптотического поведения функции.

Для изображения набора точек команда plot имеет вид:

Plot([[x1,y1],[x2,y2]…],x=a..b,y=c..d);

Здесь [[x1,y1],[x2,y2]…] – набор точек, x1, x2,… - абсциссы, а y1,y2,… - ординаты. Обязательным параметром в случае вывода набора точек является сам набор. По умолчанию точки соединены линиями.

Трехмерная графика.

Многие трехмерные объекты аналогичны соответствующим двумерным объектам и имеют на одну размерность больше при задании координат точек.

Работа с графическими структурами с помощью команд пакета plottools в трехмерном случае во многом аналогична двумерному. Специальные трехмерные команды:

cone([x,y,z],r,h) – формирует усеченный конус с началом в точке с координатами [x,y,z]. Необязательные параметры r и h определяют соответственно высоту и диаметр основания. По умолчанию они принимаются равными 1;

cuboid([x1,y1,z1], [x2,y2,z2]) – задает параллелепипед с диагональю, определяемыми точками [x1,y1,z1], [x2,y2,z2];

curve([[x1,y1,z1], [x2,y2,z2]…]) – определяет пространственную ломанную, проходящую через координаты [[x1,y1,z1], [x2,y2,z2]…];

cylinder(c,r,h) – формирует цилиндр с центром основания в точке с координатами c=[x,y,z]. Необязательные параметры r и h определяют соответственно радиус и высоту цилиндра. По умолчанию они принимаются равными 0;

hemisphere([x,y,z],r) – задает полусферу с центром в точке [x,y,z]  и радиусом r. По умолчанию радиус равен 1;

sphere([x,y,z],r) – определяет сферу с центром в точке [x,y,z] и радиусом r. По умолчанию радиус равен 1;

torus([x,y,z],r,R) – задает тор с центром в точке [x,y,z], радиусом r и расстоянием R между центром меридиана и тора. По умолчанию радиус равен 1, а R равно 2.

Команда plot3d имеет вид:

plot3d({ex1,ex2,…},var1=a..b, var2=c..d};

Выражения ex1, ex2,… зависят только от двух переменных var1 и var2. Поверхности рисуются для прямоугольника avar1≤b, cvar2≤d

Специальные команды:

cylinderplot (expr, var1=a..b, var2=c..d) –изображение поверхности, определяемой выражение expr, заданными в цилиндрических координатах;

contourplot3d(expr, var1=a..b, var2=c..d) – построение линии уровня  выражения expr от двух переменных var1 и var2 в прямоугольнике [a,b]*[c,d];

implicitpot3d (expr=g, var1=a..b, var2=c..d, var3=e..f) – построение неявно заданной поверхности expr=g в параллелепипеде [a,b]*[c,d]*[e,f]. Здесь выражение expr зависит от переменных var1, var2, var3.

Анимация.

Двумерная анимация

animate(F, x=a..b, t=c..d, frame=n) – здесь F – выражение, зависящее от переменных x и t, которые соответственно в интервалах [a,b] и [c,d]. Переменная x отвечает оси абцисс, t – переменная времени, а параметр frame задает число кадров.

Трехмерная анимация.

animate3d(F, x=a..b, y=c..d, t=t1..t2, frame=n). Здесь F – выражение, зависящее от переменных x (абцисса), y (ордината) и t (переменная времени), которые изменяются соответственно в интервалах [a,b], [c,d] и [t1,t2]. Параметр frame задает число кадров.