Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Лекция 10. Пакеты для математической обработки данных.Maple. Матрицы и графики
План
Основная часть команд для решения задач линейной алгебры содержится в библиотеке linalg. Поэтому перед решением задач с матрицами и векторами следует загрузить эту библиотеку командой with(linalg).
Способы задания векторов
Для определения вектора в Maple используется команда vector([x1,x2,…,xn]), где в квадратных скобках через запятую указываются координаты вектора. Например:
> x:=vector([1,0,0]);
x:=[1, 0, 0]
Координату уже определенного вектора x можно получить в строке вывода, если ввести команду x[i] , где i номер координаты. Например, первую координату заданного в предыдущем примере вектора можно вывести так:
> x[1];
1
Сложение векторов
Сложить два вектора a и b можно с помощью двух команд:
1) evalm(a+b);
2) matadd(a,b).
Скалярное, векторное произведение векторов и угол между векторами
Скалярное произведение двух векторов вычисляется командой dotprod(a,b).
Векторное произведение двух векторов вычисляется командой crossprod(a,b).
Угол между двумя векторами a и b вычисляется с помощью команды angle(a,b).
Норма вектора
Норму (длину) вектора , которая равна , можно вычислить с помощью команды norm(а,2).
Можно нормировать вектор а с помощью команды normalize(a), в результате выполнения которой будет получен вектор единичной длины .
Примеры
1. Даны два вектора: и . Найти и угол между a и b. Для решения этой задачи наберите:
> with(linalg):
> a:=([2,1,3,2]); b:=([1,2,-2,1]);
a:=[2,1,3,2]
b:=[1,2,-2,1]
> dotprod(a,b);
0
> phi=angle(a,b);
2. Найти векторное произведение , а затем скалярное произведение , где , .
> restart; with(linalg):
> a:=([2,-2,1]); b:=([2,3,6]);
a:=[2, 2,1]
b:=[2,3,6]
> c:=crossprod(a,b);
c:=[ 15, 10,10]
> dotprod(a,c);
0
3. Найти норму вектора .
> restart; with(linalg):
> a:=vector([1,2,3,4,5,6]): norm(a,2);
Определение матрицы
Для определения матрицы в Maple можно использовать команду matrix(n, m, [[a11,a12,…,a1n], [a21,a22,…,a2m],…, [an1,an2,…,anm]]), где n число строк, m число столбцов в матрице. Эти числа задавать необязательно, а достаточно перечислить элементы матрицы построчно в квадратных скобках через запятую. Например:
> A:=matrix([[1,2,3],[-3,-2,-1]]);
В Maple матрицы специального вида можно генерировать с помощью дополнительных команд. В частности диагональную матрицу можно получить командой diag. Например:
> J:=diag(1,2,3);
Генерировать матрицу можно с помощью функции f(i, j) от переменных i, j индексов матрицы: matrix(n, m, f), где где n - число строк, m число столбцов. Например:
> f:=(i, j)->x^i*y^j;
> A:=matrix(2,3,f);
Число строк в матрице А можно определить с помощью команды rowdim(A), а число столбцов с помощью команды coldim(A).
Арифметические операции с матрицами
Сложение двух матриц одинаковой размерности осуществляется теми же командами, что и сложение векторов: evalm(A+B) или matadd(A,B). Произведение двух матриц может быть найдено с помощью двух команд:
В качестве второго аргумента в командах, вычисляющих произведение, можно указывать вектор, например:
> A:=matrix([[1,0],[0,-1]]);
> B:=matrix([[-5,1], [7,4]]);
> v:=vector([2,4]);
> multiply(A,v);
> multiply(A,B);
> matadd(A,B);
Команда evalm позволяет также прибавлять к матрице число и умножать матрицу на число. Например:
> С:=matrix([[1,1],[2,3]]):
> evalm(2+3*С);
Определители, миноры и алгебраические дополнения. Ранг и след матрицы.
Определитель матрицы А вычисляется командой det(A). Команда minor(A,i,j) возвращает матрицу, полученную из исходной матрицы А вычеркиванием i-ой строки и j-ого столбца. Минор Mij элемента aij матрицы А можно вычислить командой minor(A,i,j). Ранг матрицы А вычисляется командой rank(A). След матрицы А, равный сумме ее диагональных элементов, вычисляется командой trace(A).
> A:=matrix([[4,0,5],[0,1,-6],[3,0,4]]);
> det(A);
1
> minor(А,3,2);
> det(%);
-24
> trace(A);
9
Обратная и транспонированная матрицы
Обратную матрицу А 1 , такую что А 1А=АА 1=Е, где Е единичная матрица, можно вычислить двумя способами:
Транспонирование матрицы А это обмен местами строк и столбцов. Полученная в результате этого матрица называется транспонированной и обозначается А'. Транспонированную матрицу А' можно вычислить командой transpose(A).
Например, используя заданную в предыдущем пункте матрицу А, найдем обратную ей и транспонированную:
> inverse(A);
> multiply(A,%);
> transpose(A);
Графики функций
Maple 9 реализует всевозможные варианты математических графиков. Строятся как графики простых функций в декартовой и полярной системах координат, так и графики, показывающие реалистические образы сложных, пересекающихся в пространстве фигур с их функциональной окраской. Возможны наглядные графические иллюстрации решений самых разнообразных уравнений, включая системы дифференциальных уравнений.
В само ядро Maple 9 встроено ограниченное число функций построения графиков. Это прежде всего функция для построения двумерных графиков plot и функция для построения трехмерных графиков plot3d. Они позволяют строить графики наиболее распространенных типов. Для построения специальных графиков (например, векторных полей градиентов, решения дифференциальных уравнений, построения фазовых портретов и т. д.) в пакеты системы Maple 9 включено большое число различных графических функций. Для их вызова необходимы соответствующие указания.
Графические объекты можно использовать в качестве значений переменных, то есть переменным можно присваивать значения графических объектов и выполнять над ними соответствующие операции (например, с помощью функции show выводить на экран несколько графиков).
Графические функции заданы таким образом, что обеспечивают построение типовых графиков без какой-либо особой подготовки. Для этого нужно лишь указать функцию, график которой строится, и пределы изменения независимых переменных. Однако с помощью дополнительных необязательных параметров можно существенно изменить вид графиков например, настроить стиль и цвет линий, вывести титульную надпись, изменить вид координатных осей и т. д.
Основная функция построения двумерных графиков plot
В математике широко используются зависимости вида y(x). Их графики строятся на плоскости в виде ряда точек y1(x1), обычно соединяемых отрезками прямых. Таким образом, используется кусочно-линейная интерполяция двумерных графиков. Если число точек графика достаточно велико (десятки или сотни), то приближенность построения не очень заметна.
Для построения двумерных графиков служит функция plot(f, h, v, о),
где f визуализируемая функция, h переменная с указанием области ее изменения, v необязательная переменная с указанием области изменения, о параметр или набор параметров, задающих стиль построения графика (толщину и цвет кривых, тип кривых, метки на них и т. д.).
Самыми простыми формами задания этой функции являются следующие:
> plot(sin(x), x=-Pi..Pi);
Диапазон изменения независимой переменной х задается диапазоном xmin..xmax, где xmin и xmax минимальное и максимальное значение х, .. (две точки) составной символ, указывающий на изменение независимой переменной.
Помимо построения самой кривой у(х) или f(x) можно задать ряд других свойств графиков, например вывод координатных осей, тип и цвет линий графика и др. Это достигается применением параметров графика специальных указаний для Maple. Графики обычно строятся сразу в достаточно приемлемом виде. Это достигается тем, что многие параметры задаются по умолчанию, и пользователь, по крайней мере начинающий, может о них ничего не знать. Однако язык общения и программирования Maple 9 позволяет задавать управляющие параметры и в явном виде.
Для двумерного графика возможны следующие параметры:
В основном задание параметров особых трудностей не вызывает, за исключением задания титульной надписи с выбором шрифтов по умолчанию в этом случае не всегда поддерживается вывод символов кириллицы (русского языка). Подбором подходящего шрифта эту проблему удается решить. Модификация графиков с помощью управляющих параметров подробно рассматривается ниже.
Специальный параметр adaptive задает работу специального адаптивного алгоритма для построения графиков наилучшего вида. При этом Maple автоматически учитывает кривизну изменения графика и увеличивает число отрезков прямых в тех частях графиков, где их ход заметно отличается от интерполирующей прямой. При задании adaptive=false адаптивный алгоритм построения графиков отключается, а при adaptive=true включается (значение по умолчанию).
В версии Maple 9 параметр coords задает 15 типов координатных систем для двумерных графиков. По умолчанию используется прямоугольная (декартова) система координат (coords=cartesian). Например:
> plot(sin(x), x=-4*Pi..4*Pi, labels=[x,y],
labelfont=[TIMES,ITALIC,14], thickness=4);
Maple 9 позволяет воспроизводить на одном графике множество кривых. При этом возникает необходимость как-то идентифицировать их. Для этого можно использовать построение линий разными стилями, разными цветами и с разной толщиной. Набор средств выделения кривых позволяет уверенно различать их как на экране цветного дисплея и в распечатках, сделанных цветным струйным принтером, так и при печати монохромными принтерами. Параметр color позволяет использовать обширный набор цветов линий графиков:
Aquamarine, black, blue, navy, coral, cyan, brown, gold, green, gray, grey, khaki, magenta, maroon, orange, pink, plum, red, sienna, tan, turquoise, violet, wheat, white, yellow.
Управление диапазоном изменения переменной и значения функции
Для управления отображаемой на графике области служит задание диапазонов принимаемых значений для переменной и функции. В ряде случаев их можно не применять, тогда Maple автоматически задает приемлемые диапазоны. Однако их явное указание позволяет управлять областью графика вручную. Иногда соответствующее задание диапазонов случайно или целенаправленно ведет к отсечению части графика. Правильный выбор диапазонов повышает представительность графиков функций. Рекомендуется вначале пробовать строить графики с автоматическим выбором диапазонов, а уже затем указывать их вручную.
Графики функций в неограниченном диапазоне
Изредка встречаются графики функций f(x), которые надо построить при изменении значениях от нуля до бесконечности или даже от минус бесконечности до плюс бесконечности. Бесконечность в таких случаях задается как особая константа infinity. В этом случае переменной х, устремляющейся в бесконечность, откладывается значение аrctan(x)..
Графики функций с разрывами
Некоторые функции, например tan(x), имеют при определенных значениях х разрывы, причем случается, что значения функции в этом месте устремляются в бесконечность. Построение графиков таких функций нередко дает плохо предсказуемые результаты. Графический процессор Maple 9 не всегда в состоянии определить оптимальный диапазон по оси ординат, а график функции выглядит весьма непредставительно.
Среди аргументов функции plot есть специальный параметр discont. Если задать его значение равным true, то качество графиков существенно улучшается, Улучшение достигается разбиением графика на несколько участков, на которых функция непрерывна, и более тщательным контролем за отображаемым диапазоном. При discont=false данный параметр отключен и строятся обычные графики.
Следует отметить, что вид графика можно улучшить, просто задав диапазон по оси у, например, введя в параметры функции запись у=-10..10). При этом в точках разрыва могут появиться вертикальные линии. Иногда это бывает полезно. Например:
> plot(x/(x^2-1),x=-3..3,y=-3..3,color=magenta,thickness=4);
Графики нескольких функций на одном рисунке
Важное значение имеет возможность построения на одном рисунке графиков нескольких функций. В простейшем случае для построения таких графиков достаточно перечислить нужные функции и установить для них общие интервалы изменения.
Обычно графики разных функций автоматически строятся разными цветами. Но это не всегда удовлетворяет пользователя например, при распечатке графиков монохромным принтером некоторые кривые могут выглядеть слишком блеклыми или даже не пропечататься вообще. Используя списки параметров color (цвет линий) и style (стиль линий), можно добиться выразительного выделения кривых. Например:
Два графика на одной координатной плоскости
> plot([x^2,x^3],x=-2..2,linestyle=[1,3],thickness=4);
Графики функций, построенные точками
Однако часто возникает необходимость построения графиков функций, которые представлены просто совокупностями точек. Такая совокупность может быть создана искусственно, либо просто задаваться списком координат х и значений функции.
В данном случае переменная Р имеет вид списка, в котором попарно перечислены координаты точек функции sin(x).
Графики функций, заданных своими именами
Имеется возможность построения графиков функций, заданных только их функциональными именами даже без указания параметров в круглых скобках.
При этом диапазон по горизонтальной оси устанавливается равным по умолчанию -10.. 10, а по вертикальной оси выбирается автоматически в соответствии с экстремальными значениями функций в указанном диапазоне изменения независимой переменной (условно х).
В ряде случаев для задания функциональных зависимостей используются заданные параметрически уравнения, например х = f1(t) и у =f2(t) при изменении переменной t в некоторых пределах. Точки(х, у) наносятся на график в декартовой системе координат и соединяются отрезками прямых. Для этого используется функция plot в следующей форме:
plot([fl(t),f2(t),t-tmin..tmax].h,v.p)
Если функции f1(£) и f2(0 содержат периодические функции (например, тригонометрические), то для получения замкнутых фигур диапазон изменения переменной t обычно задается равным 0. .2*Pi или -Pi..Pi. К примеру, если задать в качестве функций f1(t) и f2(t) функции sin(t) и cos(t), то будет получен график окружности. Рисунок 11.13 показывает другие, чуть менее тривиальные примеры построения графиков такого рода.
Задание диапазонов для изменений h и v, а также параметров р не обязательно. Но, как и ранее, они позволяют получить вид графика, удовлетворяющий всем требованиям пользователя. Например:
> plot([sin(2*t),cos(3*t),t=0..2*Pi], axes=BOXED, color=blue);
При построении графика значения функции считаются численно, поэтому определение функции не должно содержать символьные переменные. Масштаб по оси OY выбирается автоматически, поэтому если функция содержит вертикальные асимптоты, то масштаб может оказаться слишком мелким. В этом случае необходимо задать в качестве дополнительного параметра интервал, отображаемый по оси OY:
> plot(1/x,x=-3..3,-10..10);
В этом примере строится график функции 1/x, при этом на оси OX отображается отрезок [-3,3], на на оси OY [-10,10].
На одном рисунке могут быть изображены графики нескольких функций, для этого вместо функции необходимо задать список функций: перечислив их в квадратных скобках через запятую. Пример построения графиков x2 и x3
на одном рисунке:
> plot([x^2,x^3],x=-2..2);
Функцию можно задавать параметрически, для этого первый аргумент должен быть списком вида [x(t),y(t),t=a..b]. Пример параметрического задания окружности:
> plot([cos(t),sin(t),t=0..2*Pi]);
Трехмерные графики функций двух переменных строятся при помощи функции plot3d. Ее синтаксис: plot3d(f(x,y),x=a..b,y=c..d). Пример построения графика функции x*sin(y):
> 3-хмерный график
> plot3d(x*sin(y),x=-2..2,y=-Pi..Pi);
На панели инструментов есть ряд кнопок, позволяющих вращать построенный график в пространстве, изменять масштабы по осям координат и переключать режимы отображения осей.
Если необходимо задать интервал, который будет отображаться на оси OZ, необходимо задать еще один параметр view=e..f (в отличие от плоских графиков необходимо написать слово view).
Контрольные вопросы
Литература
Основные понятия
Вектор - одномерная таблица, каждый элемент которой может быть представлен числом, константой, переменной, символьным или математическим выражением.
Матрица - прямоугольная двумерная таблица, содержащая m строк и n столбцов элементов, каждый из которых может быть представлен числом, константой, переменной, символьным или математическим выражением (расширительная трактовка матрицы).
График совокупность точек, координаты которых соответствуют аргументу и значению заданной функции для этого аргумента.
Определитель матрицы это многочлен от элементов квадратной матрицы, каждый член которого является произведением n элементов, взятых по одному из каждой строки и каждого столбца со знаком произведения, заданным четностью перестановок
След матрицы сумма диагональных элементов матрицы.
Ранг матрицы наибольший из порядков отличных от нуля миноров квадратной матрицы.
Единичная матрица это квадратная матрица, у которой диагональные элементы равны 1, а остальные элементы равны 0.
Обратная матрица это матрица М-1, которая, будучи умноженной на исходную квадратную матрицу М, дает единичную матрицу Е.