Состав пакета linalg
Несомненно, что уникальной возможностью системы Maple 7, как и других систем компьютерной алгебры, является возможность решения задач линейной алгебры в символьном (формульном, аналитическом) виде. Однако такое решение представляет скорее теоретический, чем практический интерес, поскольку даже при небольших размерах матриц (уже при 4-5 строках и столбцах) символьные результаты оказываются очень громоздкими и труднообозримыми. Они полезны только при решении специфических аналитических задач, например с разреженными матрицами, у которых большинство элементов имеют нулевые значения.
Поэтому разработчики Maple 7 были вынуждены реализовать в своей системе численные методы решения задач линейной алгебры, которые широко используются в основных сферах ее приложения — математическом моделировании систем и устройств, расчетах в электротехнике, механике, астрономии и т. д.
В ядро Maple 7, как отмечалось, введены очень скромные и минимально необходимые средства для решения задач линейной алгебры. Основной упор в их реализации сделан на подключаемые пакеты. Основным из них, унаследованным от предшествующих реализаций системы, является пакет решения задач линейной алгебры Unalg. Это один из самых обширных и мощных пакетов в области решения задач линейной алгебры. Он содержит свыше ста функций:
> with(linalg);
Warning, the names fibonacci, inverse and multiply have been redefined Warning, the protected names norm and trace have been redefined and unprotected[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp, QRdecomp, Wronskian, addcol, addrow, adj, adjoint, angle, augment, backsub, band, basis, bezout, blockmatrix, charmat, charpoly, cholesky, col, coldim, colspace, colspan, companion, concat, cond, copyinto, crossprod, curl, definite, delcols, delrows, det, diag, diverge, dotprod, eigenvals, eigenvalues, eigenvectors, eigenvects, entermatrix, equal, exponential, extend, ffgausselimfifibonacci,forwardsub,frobenius, gausselim, gaussjord, geneqns, genmatrix, grad, hadamard, hermite, hessian, hilbert,htranspose, thermite, indexfunc, innerprod, intbasis, inverse, ismith, issimilar, iszerojacobian, Jordan, kernel, laplacian, leastsqrs, linsolve,matadd, matrix, minor, minpoly, mulcol, /им/row,multiply, norm, normalize, nullspace, orthog, permanent, pivot, potential, randmatrix, randvector, rank, ratform, row, rowdim, rowspace, rowspan, rref, scalarmul, singularvals, smith, stackmatrix, submatrix, subvector, sumbasis, swapcol, swaprow, Sylvester, toeplitz, trace, transpose, vandermonde, vecpotent, vectdim, vector, wronskian]
Ниже указано назначение тех функций пакета linalg, которые подробно не описаны:
- addcol — добавляет к одному из столбцов другой столбец, умноженный на некоторое число;
- addrow — добавляет к одной из строк другую строку, умноженную на некоторое число;
- angle — вычисляет угол между векторами;
- augment — объединяет две или больше матриц по горизонтали;
- backsub — реализует метод обратной подстановки при решении системы линейных уравнений (см. также forwardsub);
- band — создает ленточную матрицу;
- basis — находит базис векторного пространства;
- bezout — создает Bezout-матрицу двух полиномов; . г
- BlockDiagonal — создает блок-диагональную матрицу;
- blockmatrix — создает блок-матрицу;
- cholesky — декомпозиция Холесского для квадратной положительно определенной матрицы;
- charmat — создает характеристическую матрицу (charmat(M,v) — матрица, вычисляемая как v E-M);
- charpoly — возвращает характеристический полином матрицы;
- colspace — вычисляет базис пространства столбцов;
- colspan — находит базис линейной оболочки столбцов матрицы;
- companion — вычисляет сопровождающую матрицу, ассоциированную с полиномом;
- cond — вычисляет число обусловленности матрицы (cond(M) есть величина norm(M) norm(М-1);
- curl — вычисляет ротор вектора;
- definite — тест на положительную (отрицательную) определенность матрицы;
- diag — создает блок-диагональную матрицу;
- diverge — вычисляет дивергенцию векторной функции;
- eigenvals — вычисляет собственные значения матрицы;
- eigenvects — вычисляет собственные векторы матрицы;
- equal — определяет, являются ли две матрицы равными;
- exponential — создает экспоненциальную матрицу;
- ffgausselim — свободное от дробей Гауссово исключение в матрице;
- fibonacci — матрица Фибоначчи;
- forwardsub — реализует метод прямой подстановки при решении системы линейных уравнений (например, для матрицы L и вектора b
- forwardsub(L, b) возвращает вектор решения х системы линейных уравнений L-x=b);
- frobenius — вычисляет форму Фробениуса (Frobenius) матрицы;
- gausselim — Гауссово исключение в матрице;
- gaussjord — синоним для rref (метод исключения Гаусса—Жордана);
- geneqns — генерирует элементы матрицы из уравнений;
- genmatrix — генерирует матрицу из коэффициентов уравнений;
- grad — градиент векторного выражения;
- GramSchmidt — вычисляет ортогональные векторы;
- hadamard — вычисляет ограничение на коэффициенты детерминанта;
- hessian — вычисляет гессиан-матрицу выражения;
- hilbert — создает матрицу Гильберта;
- htranspose — находит эрмитову транспонированную матрицу;
- ihermite — целочисленная эрмитова нормальная форма;
- indexfunc — определяет функцию индексации массива;
- Innerprod — вычисляет векторное произведение;
- Intbasis — определяет базис пересечения пространств;
- ismith — целочисленная нормальная форма Шмитта;
- iszero — проверяет, является ли матрица ноль-матрицей;
- jacobian —' вычисляет якобиан векторной функции;
- JordanBlock — возвращает блок-матрицу Жордана;
- kernel — находит базис ядра преобразования, соответствующего данной матрице;
- laplacian — вычисляет лапласиан;
- leastsqrs — решение уравнений по методу наименьших квадратов;
- linsolve — решение линейных уравнений;
- LudeComp — осуществляет LU-разложение;
- minpoly — вычисляет минимальный полином матрицы;
- mulcol — умножает столбец матрицы на заданное выражение;
- mulrow — умножает строку матрицы на заданное выражение;
- multiply — перемножение 'матриц или матрицы и вектора;
- normalize — нормализация вектора;
- orthog — тест на ортогональность матрицы;
- permanent — вычисляет перманент матрицы — определитель, вычисляемый без перестановок;
- pivot — вращение относительно элементов матрицы;
- potential — вычисляет потенциал векторного поля;
- Qrdecomp — осуществляет QR-разложение;
- randmatrix — генерирует случайные матрицы;
- randvector — генерирует случайные векторы;
- ratform — вычисляет рациональную каноническую форму;
- references — выводит список основополагающих работ по линейной алгебре;
- rowspace — вычисляет базис пространства строки;
- rowspan — вычисляет векторы охвата для места столбца;
- rref — реализует преобразование Гаусса-Жордана матрицы;
- scalarmul — умножение матрицы или вектора на заданное выражение;
- singval — вычисляет сингулярное значение квадратной матрицы;
- singularvals — возвращает список сингулярных значений квадратной матрицы;
- smith — вычисляет Шмиттову нормальную форму матрицы;
- submatrix — извлекает указанную подматрицу из матрицы;
- subvector — извлекает указанный вектор из матрицы;
- sumbasis — определяет базис объединения системы векторов;
- swapcol — меняет местами два столбца в матрице;
- swaprow — меняет местами две строки в матрице;
- sylvester — создает матрицу Сильвестра из двух полиномов;
- toeplitz — создает матрицу Теплица;
- trace — возвращает след матрицы;
- vandermonde — создает вандермондову матрицу;
- vecpotent — вычисляет векторный потенциал;
- vectdim — определяет размерность вектора;
- wronskian — вронскиан векторных функций.
Ниже мы рассмотрим более подробно наиболее часто используемые функции из этого пакета.С деталями синтаксиса (достаточно разнообразного) для каждой из указанных функций можно ознакомиться в справочной системе Maple. Для этого достаточно использовать команду
?name; где name — имя функции (из приведенного списка).
Содержание раздела