
- •Maple - cистемa аналитических вычислений для математического моделирования
- •Оглавление
- •Введение
- •Объекты, типы переменных.
- •Команды Maple
- •Выражения
- •Синтаксис
- •Стандартная библиотека
- •Операции с полиномами
- •Преобразование формул
- •Решение алгебраических уравнений
- •Решение дифференциальных уравнений
- •Линейная алгебра
- •Матричные и векторные операции.
- •Математические операции с матрицами и векторами.
- •Команды работы со структурой матриц и векторов.
- •Программирование в среде Maple.
- •Условный оператор
- •Операторы цикла.
- •Процедуры.
- •Команды ввода/вывода.
- •Графика в maple.
- •Двумерная графика.
- •Вывод графиков функций одной переменной:
- •Вывод параметрически заданной кривой:
- •Графический вывод набора точек :
- •Трехмерная графика.
- •Приложение. Список пакетов и библиотек.
- •Приложение. Список имен математических функций.
- •Приложение. Пункты меню Windows-версии
- •Литература
Линейная алгебра
Часть команд линейной алгебры содержится в стандартной библиотеке (т.е. доступны по умолчанию), к таким командам относятся: evalm, Eigenvals, Det и некоторые другие. Другие команды содержатся в пакете linalg. Пакет линейной алгебры (linalg) , содержащий более 100 команд, подключается командой
with(linalg);
Основными объектами команд линейной алгебры являются массивы (array), векторы (vector) и матрицы (matrix). Приведем примеры их эквивалентного ввода матриц.
> array(1..3,1..2,[[a,b,c],[d,e,f]]);
> matrix(2,3,[a,b,c,d,e,f]);
Для ввода вектора можно также использовать два способа, например,
> array(1..3,[x,y,z])
> vector(3,[x,y,z])
При вводе можно опускать часть элементов массива, матрицы, вектора. Maple заполнит вакансии переменными по умолчанию. Maple предоставляет возможность сокращенного задания симметричных, антисимметричных, разреженных, диагональных и единичных матриц. Для ввода таких матриц достаточно ввести характерные элементы и указать тип вводимой матрицы. При работе с массивами нужно помнить, что Maple следует правилу оценки последнего имени. Это означает, в частности, что если вы определили массив, а затем в строке ввода напечатали его имя, то строка вывода будет состоять из этого имени. Для выдачи содержимого массива можно использовать команды eval и op. Нижеследующий пример иллюстрирует сказанное
> M:=array(1..2,1..2,identity);
> M;
> eval(M);
Это же правило действует также для таблиц и процедур.
Команды линейной алгебры позволяют производить все основные операции с матрицами и векторами. Ниже приводится часть возможных операций и соответствующие Maple-команды. Об остальных командах можно узнать при работе с программой Maple, обратившись к справке: ?linalg.
Матричные и векторные операции.
add(u,v) или evalm(u+v) сложение двух векторов или матриц, Для команды add существует расширенный вариант:
add(M1,M2,c1,c2) сложение матриц или векторов M1 и M2 со скалярными множителями c1 и с2 (c1*M1+c2*M2), причем размерности этих матриц должны быть одинаковыми.
multiply(M1,M2) или evalm(M1 &*M2) умножение матриц M1 и M2. Причем в качестве одного из параметров может быть вектор (multiply(M1,v1) ).
dotprod(v1,v2) скалярное произведение векторов v1 и v2.
crossprod(v1,v2) векторное произведение векторов v1 и v2.
evalm(M^n) возведение матрицы M в n-ую степень.
inverse(M) или evalm(1/M) вычисление обратной к M матрицы.
det(M) вычисление определителя матрицы M.
trace(M) вычисление следа матрицы M.
adjoint(M) вычисление сопряженной матрицы для квадратной матрицы M.
transpose(M) транспонирование матрицы M.
Математические операции с матрицами и векторами.
linsolve(M,v) решение линейной системы уравнений Mx=v.
gausselim(M) метод Гаусса для матрицы M.
eigenvals(M) вычисление собственных чисел матрицы M.
eigenvects(M) вычисление собственных векторов матрицы M. Результат представляется в виде: собственное число,.его кратность, затем соответствующий собственный вектор.
charpoly(M,lambda) вычисление характеристического многочлена матрицы M относительно переменной .
minpoly(M,x) вычисление минимального полинома для матрицы M по переменной x.
norm(M) вычисление нормы матрицы M.
orthog(M) проверка ортогональности матрицы M.
jordan(M) приведение матрицы M к жордановой форме.
hermite(M,x) получение эрмитовой формы матрицы M.
angle(v1,v2) вычисление угла между векторами v1 и v2 одинаковой длины.
basis(V) определение базиса для набора векторов V.
kernel(M) вычисление ядра матрицы M.
rank(M) вычисление ранга матрицы M.
rowspace(M) определение базиса векторного пространства, задаваемого строками матрицы M.
colspace(M) определение базиса векторного пространства, задаваемого столбцами матрицы M.
GramSchmidt(M) определение ортогонального базиса векторного пространства генерируемого столбцами матрицы M.
sylvester(pol1,pol2,x) вычисление матрицы Сильвестра для полиномов pol1 и pol2, зависящих от переменной x.
curl(v,x) вычисление ротора трехмерного вектора v по трем переменным x.
grad(v,x) вычисление градиента вектора v по переменным x.
diverge(f,x) вычисление дивергенции функции f по переменным x.
laplacian(f,x) вычисление Лапласиана функции f по переменным x.
jacobian(v,x) вычисление матрицы Якоби для вектора v по переменным x.