Многомерные массивы

Автор работы: Пользователь скрыл имя, 15 Февраля 2013 в 11:13, курсовая работа

Описание

В работе описывается Maple-язык и его синтаксис. Большие возможности в сочетании с прекрасно выполненным и удобным пользовательским интерфейсом и мощной справочной системой делают Maple первоклассной программной средой для решения самых разнообразных математических задач, способной оказать пользователям действенную помощь в решении учебных и реальных научно-технических задач.

Содержание

1. Введение
2. Постановка задачи
3. Метод решения задачи
4. Теоретическая часть
5. Практическая часть
6. Технические требования
7. Тестирование программы
8. Результат работы программы
9. Заключение
10. Список использованной литературы
11. Приложения

Работа состоит из  1 файл

Курсовая MAPLE.doc

— 1.99 Мб (Скачать документ)

Примеры применения функций  оценивания даны ниже:

В дальнейшем мы многократно  будем применять функции оценивания для демонстрации тех или иных вычислений.

Последовательности выражений

Maple 7 может работать  не только с одиночными выражениями, но и с последовательностями выражений. Последовательность выражений — это ряд выражений, разделенных запятыми и завершенных фиксатором:

Для автоматического  формирования последовательности выражений  применим специальный оператор $, после которого можно указать число выражений или задать диапазон формирования выражений:

Для создания последовательностей  выражений можно использовать также  функцию seq:

 

 

Вывод выражений

При выполнении порой  даже простых операций результаты получаются чрезвычайно громоздкими. Для повышения наглядности выражений Maple 7 выводит их с выделением общих частей выражений и с присваиванием им соответствующих меток. Метки представлены символами #N, где N — номер метки. Помимо меток при выводе результатов вычислений могут появляться и другие специальные объекты вывода, например корни RootOf, члены вида О(х"), учитывающие погрешность при разложении функций в ряд, и обозначения различных специальных функций, таких как интегральный синус, гамма-функция и др. Примеры такого вывода приведены ниже:

 

Часто встречаются также  знаки ~ для отметки предполагаемых переменных, постоянные интегрирования и другие специальные обозначения. По мере упоминания в тексте таких  объектов вывода они будут описаны.

 

Простые типы данных

Числа и числовые константы

Maple 7 работает с числами  следующего типа: целыми (О, 1, 123, -456 и  т. д.), рациональными в виде  отношения целых чисел (7/9, -123/127 и т. д.), вещественными с мантиссой  и порядком (1.23Е5, 123.4567Е-10). Признаком  вещественного числа является  десятичная точка (запятая). Примеры простых операций с числами приведены ниже:

Как видно из этих примеров, ввод и вывод чисел имеет следующие  особенности: 

  • для отделения целой части мантиссы от дробной используется разделительная точка; 
  • нулевая мантисса не отображается (число начинается с разделительной точки); 
  • мантисса отделятся от порядка пробелом, который рассматривается как знак умножения; 
  • мнимая часть комплексных чисел задается умножением ее на символ мнимой единицы I (квадратный корень из -1).

Десятичная точка в  числах имеет особый статус — указание ее в любом месте числа, даже в конце, делает число вещественным и ведет к переводу вычислений в режим работы с вещественными числами. При этом количеством выводимых после десятичной точки цифр можно управлять, задавая значение системной переменной окружения Digits:

Для работы с числами Maple 7 имеет множество функций. Они будут рассмотрены в дальнейшем. На комплексной плоскости числа задаются координатами точек (х, у) (рис. 5.1).

Рис. 5.1. Представление обычных и комплексных чисел на плоскости

Для представления чисел  на рис. 5.1 используется функция pointplot(list), где list — список координат точек. Эта функция становится доступной при подключении пакета plots командой with(plots). Кроме того, использована функция вывода ряда графических объектов на один график — display (см. далее описание представления комплексных чисел).

С помощью функции convert Maple 7 может преобразовывать числа с различным основанием (от 2 до 36, в том числе бинарные и шестнадцатеричные) в десятичные числа:

При символьных вычислениях Maple 7 реализует точную арифметику. Это значит, что результат может быть получен с любым числом цифр. Однако надо помнить, что идеально точные численные вычисления выполняются только в случае целочисленных операций, например таких, как приведены ниже:

 

 

Комплексные числа

Maple 7, естественно, может работать с комплексными числами. Мнимая единица в комплексном числе (корень квадратный из -1) обозначается как I. Функции Re(x) и Im(x)возвращают действительную и мнимую части комплексных чисел. Примеры задания комплексного числа и вывода его действительной и мнимой частей представлены ниже:

Комплексные числа обычно представляют на так называемой комплексной  плоскости, у точек которой координата х задает действительную часть комплексного числа, а у (мнимая ось) показывает мнимую часть такого числа. На рис. 5.1 показано задание в виде радиус-векторов комплексного числа z = 4+3I, -z и комплексно-сопряженного числа 4-3I.

Окружность радиуса abs(z)=sqrt(a2 + b2) представляет абсолютное значение комплексного числа z=a+b*I. Она является геометрическим множеством комплексных чисел, образованных концом вращающегося радиус-вектора числа z вокруг его начала в точке (0, 0) комплексной плоскости. Позже мы рассмотрим ряд функций для работы с комплексными числами.

Контроль за числами

Числа могут служить объектами ввода, вывода и константами, входящими в математические выражения. Функция type(x, numeric) позволяет выяснить, является ли х числом. Если является, то она возвращает логическое значение true (истина), а если нет, то false (ложь). Например:

Функции type(x, integer), type(x, rational) и type(x, fraction) можно использовать для проверки того, имеет ли х значение соответственно целого числа, рационального числа или простой дроби:

  

 

 

Преобразования  чисел с разным основанием

В Maple возможна работа с числами, имеющими различное основание (base), в частности с двоичными числами (основание 2 — binary), восьмеричными (основание 8 — octal) и шестнадцатеричными (основание 16 — hex). Функция convert позволяет легко преобразовывать форматы чисел:

Помимо приведенных  вариантов функция convert имеет еще ряд других форм. С ними можно познакомиться с помощью справки по этой мощной функции. В дальнейшем будет приведен ряд других применений этой функции.

 

Данные множественного типа

Наборы (множества)

Любые выражения могут  включаться также в наборы. Такие  наборы в виде множеств создаются  с помощью фигурных скобок { }:

 

Отличительная черта  множеств — автоматическое устранение из них повторяющихся по значению элементов. Кроме того, Maple 7 расставляет элементы множеств в определенном порядке — числа в порядке увеличения значения, а символы и строки в алфавитном порядке. Для множеств нет строгого математического определения, и мы будем считать их наборами, удовлетворяющими перечисленным выше признакам.

Списки выражений

Для создания упорядоченных  наборов — списков — служат квадратные скобки [ ]: 

> [10,2+3.4+4,8,5,1]: [10,5,8,8,5,1]

Как нетрудно заметить, элементы списков преобразуются и выводятся  строго в том порядке, в каком  они были заданы. Списки широко применяются для задания векторов и матриц.

В ряде случаев, например при подготовке данных для двумерных  графиков, возникает необходимость  в подготовке парных списков —  скажем, координат точек (х, у) графика. Для этого можно использовать функцию zip(f, u, v) или zip(f, u, v, d). Здесь f — бинарная функция, u, v — списки или векторы, d — необязательное значение. Примеры применения функции zip даны ниже:

Рисунок 5.2 показывает применение этих средств для построения точек, представляющих множество действительных чисел на плоскости. Для этого использована функцияpointplot из пакета plots.

Массивы, векторы  и матрицы

Как отмечалось, важным типом  данных являются списки (lists). Они создаются  с помощью квадратных скобок, например:  

  • [1,2,3,4] — список из четырех целых чисел; 
  • [1. ,2.34,5] — список из двух вещественных и одного целого числа; 
  • [а,b.'Привет'] — список из двух символов (переменных) и строковой константы; 
  • [sin(x), 2*cos(x) ,a^2-b] — список из трех математических выражений.

Для создания векторов (одномерных массивов) и матриц (двумерных массивов) служит функция array. Обычно она используется в следующих формах:

  • аrrау[а. .b,sl] — возвращает вектор с индексами от а до b и значениями в одномерном списке si; 
  • аrrау[а. .b,c. .d,s2] — возвращает матрицу с номерами строк от а до b, номерами столбцов от с до d и значениями в двумерном списке s2.

Рис. 5.2. Представление множества чисел на плоскости Примеры задания вектора и матрицы представлены ниже:

Двумерные списки часто  путают с матрицами. Следует помнить, что векторы и матрицы создаются с помощью функции array и являются отдельным типом данных. Элементами векторов и массивов могут быть константы, переменные, выражения, списки и иные объекты. Эти элементы являются индексированными переменными и их положение указывается индексами. Имеется множество функций для работы со списками, массивами и матрицами. Они будут рассмотрены в дальнейшем. В принципе, размерность массивов, создаваемых списками, не ограничена и массивы могут быть многомерными.

Таблицы

Еще одним важным типом множественных данных являются таблицы. Они задают данные с произвольной индексацией. Для создания таблиц служит функция table, которая при вызове в простейшем виде table[] создает шаблон пустой таблицы:

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

В конце приведенных  примеров показано, как можно выделить отдельные компоненты таблицы и вывести значения и индексы таблицы с помощью функций entries и indices. Следующие примеры показывают, что таблицу можно использовать для выполнения математических преобразований:

Следует внимательно  присмотреться к этим примерам —  они демонстрируют замену функции косинуса на отрицательный синус и синуса на косинус.

 

Строки и  комментарии

Строковые данные

Строки как тип данных — это просто цепочки символов. Они обычно используются для создания текстовых комментариев. Строки должны каким-либо образом выделяться, чтобы Maple не отождествляла их с именами констант и переменных. Для этого строки-комментарии имеют внутренний разделительный признак, который устанавливается при их вводе (нажатием клавиши F5, которое приводит к исчезновению знака >).

В других случаях последовательность символов рассматривается как строка, если она заключена в обратные апострофы, то есть в знаки '. Два апострофа подряд формируют апостроф как знак символьной строки, например `abc``def ` дает строку abc`def. Любое математическое выражение может входить в строку, разумеется, оно при этом не выполняется:

> '2+2 не всегда "четыре"'; 

2+2 не всегда 'четыре'

Неисполняемые программные  комментарии

Часто возникает необходимость  в задании программных комментариев. Любой текст после знака # рассматривается как невыводимый (неисполняемый) программный комментарий — даже если это математическое выражение. При этом он не вычисляется. Например:

> 2+3;#Это прииер. А это выражение не вычисляется: 4+5

.5

Комментарии полезны в программах на Maple-языке и обычно используются для объяснения особенностей реализованных алгоритмов.

 

Константы

Числовые константы

Константы - это простейшие именованные  объекты, несущие заранее предопределенные значения. Их имена (идентификаторы) также  заранее определены и не могут меняться. Подробную информацию о константах можно найти, исполнив команду ?constant.

Обычные числовые константы не имеют  имени и представлены просто числами, типы которых были указаны выше. Можно считать, что именем такой  константы является само ее значение. Например, в выражении 2*sin(1.25) числа 2 и 1.25 являются числовыми константами. При этом указание десятичной точки делает константу действительным числом — например, 2 — это целочисленная константа, а  2., 2.0 или 1.25 — это уже действительные константы.

Строковые константы

Строковыми константами  являются произвольные цепочки символов, заключенные в обратные апострофы, например 'Hello', 'Привет', 'My number' и т. д. Числа, заключенные в апострофы, например '123456', также становятся строковыми константами, которые нельзя использовать в арифметических выражениях. Строковые константы представляют значения строковых переменных. В них можно использовать символы кириллицы при условии, что соответствующий шрифт имеется.

Встроенные  в ядро константы

Есть также ряд констант, которые правильнее считать заведомо определенными глобальными переменными:  

  • false — логическое значение «ложно»; 
  • gamma — константа Эйлера, равная 0.5772156649...; 
  • infinity — положительная бесконечность (отрицательная задается как infinity); 
  • true — логическое значение «истинно»; 
  • Catalan — константа Каталана, равная 0.915965594...; 
  • FAIL — специальная константа (см. справку, выдаваемую по команде ?FAIL); 
  • I — мнимая единица (квадратный корень из -1); 
  • Pi — представляет константу  = 3.141...

Любопытно, что в этот список не входит основание натурального логарифма — число е. В качестве этой константы рекомендуется использовать ехр(1). Она отображается как жирная прямая буква Е. A exp(l.0) выводит 2.71828... (что и следовало ожидать).

Идентификация констант

Функции type(х, constant) и type(x, realcons) возвращают логическое значение true, если х представляет целочисленную или вещественную константу, и false, если х не является константой. Таким образом, эти функции можно использовать для идентификации констант, например:

Информация о работе Многомерные массивы