|
Пакет
решения задач линейной алгебры linalg
Состав пакета 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 — имя функции (из приведенного списка).
|