Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Самоучитель по Maple.docx
Скачиваний:
258
Добавлен:
08.03.2016
Размер:
17.32 Mб
Скачать

40. Что нового мы узнали?

Что нового мы узнали?

В этом уроке мы научились:

  • Обращаться к пакетам расширения.

  • Пользоваться функциями пакетов комбинаторики.

  • Применять пакет финансово-экономических функций.

  • Использовать ортогональные многочлены из пакета orthpoly.

  • Работать с суммами пакета sumtools.

  • Применять степенные разложения пакета powerseries.

  • Работать с пакетом численной аппроксимации numapprox.

  • Использовать интегральные преобразования пакета inttrans.

  • Осуществлять приближение кривых с помощью пакета CurveFitting.

  • Использовать пакет работы с полиномами PolynomialTools.

Урок 15. Пакеты линейной алгебры и функциональных систем

1. Основные определения линейной алгебры Урок 15. Пакеты линейной алгебры и функциональных систем

Основные определения линейной алгебры

Прежде чем перейти к рассмотрению обширных возможностей пакетов Maple 7 по части решения задач линейной алгебры, рассмотрим краткие определения, относящиеся к ней.

Матрица (m х n) — прямоугольная двумерная таблица, содержащая m строк и n столбцов элементов, каждый из которых может быть представлен числом, константой, переменной, символьным или математическим выражением (расширительная трактовка матрицы).

Квадратная матрица — матрица, у которой число строк m равно числу столбцов n. Пример квадратной матрицы размера 3x3:

Сингулярная (вырожденная) матрица — квадратная матрица, у которой детерминант (определитель) равен 0. Такая матрица обычно не упрощается при символьных вычислениях. Линейные уравнения с почти сингулярными матрицами могут давать большие погрешности при решении.

Единичная матрица — это квадратная матрица, у которой диагональные элементы равны 1, а остальные элементы равны 0. Ниже представлена единичная матрица размера 4x4:

Сингулярные значения матрицы А — квадратные корни из собственных значений матрицы АТ=А, где Ат- транспонированная матрица А (см. ее определение ниже);Транспонированная матрица — матрица, у которой .столбцы и строки меняются . местами, то есть элементы транспонированной матрицы удовлетворяют условию AT(i,j)=A(j,i). Приведем простой пример. Исходная матрица:

Транспонированная матрица:

Обратная матрица — это матрица М-1, которая, будучи умноженной на исходную квадратную матрицу М, дает единичную матрицу Е.

Ступенчатая форма матрицы соответствует условиям, когда первый ненулевой элемент в каждой строке есть 1 и первый ненулевой элемент каждой строки появляется справа от первого ненулевого элемента в предыдущей строке, то есть все элементы ниже первого ненулевого в строке — нули.

Диагональ матрицы — расположенные диагонально элементы Ai,i матрицы А. В приведенной ниже матрице элементы диагонали представлены заглавными буквами:

Обычно указанную диагональ называют главной диагональю — для матрицы А, приведенной выше, это диагональ с элементами А, Е и L. Иногда вводят понятия под диагоналей (элементы d и k) и над диагоналей (элементы b и f). Матрица, все элементы которой, расположенные кроме как на диагонали, под диагонали и над диагонали, равны нулю, называется ленточной.

Ранг матрицы — наибольший из порядков отличных от нуля миноров квадратной матрицы.

След матрицы — сумма диагональных элементов матрицы.

Определитель матрицы — это многочлен от элементов квадратной матрицы, каждый член которого является произведением n элементов, взятых по одному из каждой строки и каждого столбца со знаком произведения, заданным четностью перестановок:

где M1<j>— определитель матрицы порядка n - 1, полученной из матрицы А вычеркиванием первой строки и j-гo столбца. В таком виде определитель (он же детерминант) легко получить в символьных вычислениях. В численных расчетах мы будем подразумевать под определителем численное значение этого многочлена.

Матрица в целой степени — квадратная матрица в степени n (n — целое неотрицательное число), определяемая следующим образом:

М° = Е, М1= М, М2= ММ ..., Мnn-1М.

Идемпотентная матрица — матрица, отвечающая условию Р2= Р.

Симметрическая матрица — матрица, отвечающая условию Ат= А.

Кососимметрическая матрица — матрица, отвечающая условию Ат= -A. Ортогональная матрица — матрица, отвечающая условию Ат-1.Нуль-матрица — матрица, все элементы которой равны 0.Блок-матрица — матрица, составленная из меньших по размеру матриц, также можно представить как матрицу, каждый элемент которой — матрица. Частным случаем является блок-диагональная матрица — блок-матрица, элементы-матрицы которой вне диагонали — нуль-матрицы.

Комплексно-сопряженная матрица — матрица А, полученная из исходной матрицы А заменой ее элементов на комплексно-сопряженные. Эрмитова матрица — матрица А, удовлетворяющая условию А = А .Собственный вектор квадратной матрицы А — любой вектор х е V", х* О, удовлетворяющий уравнению Ах = gx, где g — некоторое число, называемое собственным значением матрицы А.

Характеристический многочлен матрицы — определитель разности этой матрицы и единичной матрицы, умноженный на переменную многочлена, — |А - gE|. Собственные значения матрицы — корни ее характеристического многочлена. Норма — обобщенное понятие абсолютной (величины числа. Норма трехмерного вектора ||х|| — его длина. Норма матрицы — значение sup(||Ax||/||x||).

Матричная форма записи системы линейных уравнений — выражение АХ = В, где А — матрица коэффициентов системы, X — вектор неизвестных и В — вектор свободных членов. Один из способов решения такой системы очевиден — X = А-1В, где А-1— обратная матрица.

1.gif

2.gif

3.gif

4.gif

5.gif

6.gif

2. Пакет решения задач линейной алгебры linatg

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