Dom:: MatrixGroup

Абелева группа матриц

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

Доменное создание

Dom::MatrixGroup(m, n, <R>)

Создание элемента

Dom::MatrixGroup(m, n, R)(Array)
Dom::MatrixGroup(m, n, R)(Matrix)
Dom::MatrixGroup(m, n, R)(<m, n>)
Dom::MatrixGroup(m, n, R)(<m, n>, List)
Dom::MatrixGroup(m, n, R)(<m, n>, ListOfRows)
Dom::MatrixGroup(m, n, R)(<m, n>, f)
Dom::MatrixGroup(m, n, R)(<m, n>, List, <Diagonal>)
Dom::MatrixGroup(m, n, R)(<m, n>, g, <Diagonal>)
Dom::MatrixGroup(m, n, R)(<m, n>, List, <Banded>)

Описание

Доменное создание

Dom::MatrixGroup(m, n, R) создает область, которая представляет Абелевую группу m ×n матрицы по кольцевому R компонента, т.е. это - область категории Cat::AbelianGroup.

Доменный Dom::ExpressionField() используется в качестве звонка компонента для матриц, если дополнительный параметр R не дан.

Для матриц области, созданной Dom::MatrixGroup(m, n, R), матричная арифметика реализована путем перегрузки стандартных арифметических операторов +, -, *, / и ^. Могут быть применены все функции linalg пакета, имеющего дело с матрицами.

Dom::MatrixGroup(m, n, R) имеет доменный Dom::Matrix(R) как свою супер область, т.е. это наследовало каждый метод, который задан Dom::Matrix(R) и не повторно реализован Dom::MatrixGroup(m, n, R).

Методы, описанные ниже, реализованы Dom::MatrixGroup.

Доменный Dom::Matrix(R) представляет матрицы по R произвольного размера, и это поэтому не имеет никакой алгебраической структуры (кроме того, чтобы быть набором матриц).

Доменный Dom::SquareMatrix(n, R) представляет звонок n ×n матрицы по R.

Создание элемента

Dom::MatrixGroup(m, n, R)(Array) и Dom::MatrixGroup(m, n, R)(Matrix) создают новую матрицу, сформированную записями Array и Matrix, соответственно.

Компоненты Array и Matrix, соответственно, преобразованы в элементы доменного R. Сообщение об ошибке выпущено, если одно из этих преобразований перестало работать.

Вызов Dom::MatrixGroup(m, n, R)( m , n ) возвращает m ×n нулевая матрица. Обратите внимание на то, что m ×n нулевая матрица может также быть найден в записи "zero" (см. ниже).

Dom::MatrixGroup(m, n, R)( m , n List) создает m ×n матрица с компонентами, взятыми из list List.

Этот вызов только позволен для m ×1 или 1 ×n матрица, т.е. если или m или n равны одному.

Если список имеет слишком мало записей, остающиеся компоненты матрицы обнуляются.

Записи списка преобразованы в элементы доменного R. Сообщение об ошибке выпущено, если одно из этих преобразований перестало работать.

Dom::MatrixGroup(m, n, R)( m , n ListOfRows) создает m ×n матрица с компонентами, взятыми из вложенного list ListOfRows. Каждый внутренний список соответствует строке матрицы.

Если внутренний список имеет меньше, чем записи n, остающиеся компоненты в соответствующей строке матрицы обнуляются. Если существуют меньше, чем m внутренние списки, остающиеся более низкие строки матрицы заполнены, обнуляет.

Записи внутренних списков принуждены в элементы доменного R. Сообщение об ошибке выпущено, если одно из этих преобразований перестало работать.

Это может быть хорошая идея сначала, чтобы создать двумерный массив из того списка прежде, чем вызвать Dom::MatrixGroup(m, n, R). Это - то, вследствие того, что создание матрицы от массива является самым быстрым способом, которым можно достигнуть. Однако в этом случае подсписки должны иметь то же число элементов.

Dom::MatrixGroup(m, n, R)( m , n f) возвращает матрицу, чья (i, j) th компонент значение вызова функции f(i, j). Индекс строки i колеблется от 1 до m и индекса столбца j от 1 до n.

Значения функции принуждены в элементы доменного R. Сообщение об ошибке выпущено, если одно из этих преобразований перестало работать.

Суперобласть

Dom::Matrix (R)

Аксиомы

Если R имеет Ax::canonicalRep, то Ax::canonicalRep.

Категории

Cat::Matrix (R), Cat::AbelianGroup

Примеры

Пример 1

Много примеров может быть найдено на странице справки доменного конструктора Dom::Matrix, и большинство из них является также примерами для работы с областями, созданными Dom::MatrixGroup. Этот пример только подсвечивает некоторые различия относительно работы с матрицами доменного Dom::Matrix(R).

Следующая команда задает абелевую группу 3 ×4 матриц по rationals:

MatGQ := Dom::MatrixGroup(3, 4, Dom::Rational)

MatGQ::hasProp(Cat::AbelianGroup), MatGQ::hasProp(Cat::Ring)

MatGQ является коммутативной группой относительно сложения матриц. Модуль этой группы является 3 нулевыми матрицами ×4:

MatGQ::zero

Обратите внимание на то, что некоторые операции, заданные доменным MatGQ, возвращают матрицы, которые больше не являются элементами матричной группы. Они возвращают матрицы доменного Dom::Matrix(Dom::Rational), суперобласть MatGQ.

Например, если мы задаем матрицу:

A := MatGQ([[1, 2, 1, 2], [-5, 3], [2, 1/3, 0, 1]])

и удалите его третий столбец, мы получаем матрицу:

MatGQ::delCol(A, 3)

который имеет доменный тип:

domtype(%)

Как другой пример мы создаем 3×3 единичная матрица с помощью метода "identity" нашей области:

E3 := MatGQ::identity(3)

Это - также матрица доменного Dom::Matrix(Dom::Rational):

domtype(E3)

Если мы конкатенируем E3 справа от матричного A, заданного выше, мы получаем 3 ×7 матрицы:

B := A . E3

который имеет доменный тип Dom::Matrix(Dom::Rational):

domtype(B)

Пример 2

Мы можем преобразовать матрицу от области, созданной с Dom::MatrixGroup в или от другой матричной области, как показано затем:

MatGR := Dom::MatrixGroup(2, 3, Dom::Real):
MatC := Dom::Matrix(Dom::Complex):
A := MatGR((i, j) -> i*j)

Преобразовывать A в матрицу доменного MatC, введите:

coerce(A, MatC)

domtype(%)

Преобразование сделано покомпонентно. Например, мы задаем следующую матрицу:

B := MatC([[0, 1, 0], [exp(I), 0, 1]])

Матричный B имеет один комплексный компонент и поэтому не может быть преобразован в доменный MatGR:

coerce(B, MatGR)

Примечание: системная функция coerce использует методы "convert" и "convert_to", реализованный любой областью, созданной с Dom::MatrixGroup и Dom::Matrix.

Параметры

m, n

Положительные целые числа (матричная размерность)

R

Коммутативный звонок, т.е. область категории Cat::CommutativeRing; значением по умолчанию является Dom::ExpressionField()

Array

m ×n массив

Matrix

m ×n матрица, т.е. элемент области категории Cat::Matrix

List

Список матричных компонентов

ListOfRows

Список в большинстве строк m; каждая строка является списком в большинстве матричных компонентов n

f

Функция или функциональное выражение с двумя параметрами (индекс строки и столбца)

g

Функция или функциональное выражение с одним параметром (индекс строки)

Опции

Diagonal

Создайте диагональную матрицу

С опцией Diagonal диагональные матрицы могут быть созданы с диагональными элементами, взятыми из списка, или вычислили функцией.

Dom::MatrixGroup(m, n, R)( m , n List, Diagonal) создает m ×n диагональная матрица, диагональные элементы которой являются записями List.

List должен иметь в большей части min (m, n) записи. Если это имеет меньше элементов, то остающиеся диагональные элементы обнуляются.

Записи List принуждены в элементы доменного R. Сообщение об ошибке выпущено, если одно из этих преобразований перестало работать.

Dom::MatrixGroup(m, n, R)( m , n g, Diagonal) возвращает матрицу, i которой th диагональный элемент является g(i, i), куда индекс i запускается от 1 до min (m, n).

Значения функции принуждены в элементы доменного R. Сообщение об ошибке выпущено, если одно из этих преобразований перестало работать.

Banded

Создайте полосную матрицу Теплица

С опцией Banded могут быть созданы соединенные матрицы.

Ленточная матрица имеет весь нуль записей вне основной диагонали и некоторые смежные под - и супердиагоналей.

Dom::MatrixGroup(m, n, R)( m , n List, Banded) создает m ×n, соединил матрицу Теплица с элементами List как записи. Количество записей List должно быть нечетным, сказать 2 h + 1 и не должно превышать n. Получившаяся матрица имеет пропускную способность самое большее 2 h + 1.

Все элементы основной диагонали созданной матрицы инициализируются со средним элементом List. Все элементы i th поддиагональ инициализируются с (h + 1 - i) th элемент List. Все элементы i th супердиагональ инициализируются с (h + 1 + i) th элемент List. Все записи на остающемся под - и супердиагонали обнуляются.

Записи List преобразованы в элементы доменного R. Сообщение об ошибке выпущено, если одно из этих преобразований перестало работать.

Записи

"один"

только задан, если m равен n; в этом случае это задает n ×n единичная матрица.

"randomDimen"

установлен в [m, n].

"нуль"

m ×n нулевая матрица.

Методы

развернуть все

Математические методы

evalp(A, x = a, …)

Этот метод только задан, если R является полиномиальным звонком категории Cat::Polynomial.

Этот метод перегружает функциональный evalp для матриц, т.е. можно использовать его в форме evalp(A, x = a).

identity(k)

Примечание

Возвращенная матрица имеет доменный Dom::Matrix(R), если или если.

matdim(A)

random()

Компоненты случайной матрицы случайным образом сгенерированы с методом "random" кольцевого R компонента.

Методы доступа

_concat(A, B, …)

Сообщение об ошибке выпущено, если данные матрицы не имеют одинакового числа строк.

Примечание

Возвращенная матрица имеет доменный Dom::Matrix(R).

Этот метод перегружает функциональный _concat для матриц, т.е. можно использовать его в форме A . B . ..., или в функциональном обозначении: _concat(A, B, ...).

_index(A, i, j)

_index(A, r1 .. r2, c1 .. c2)

_index(A, i)

_index(A, i1 .. i2)

Если i и j не являются целыми числами, то вызов этого метода возвращается в его символьной форме (типа "_index") с оцененными аргументами.

В противном случае сообщение об ошибке дано, если i и j не являются допустимыми индексами строки и столбца, соответственно.

Примечание

Обратите внимание на то, что системная функция context используется, чтобы оценить запись в контексте среды вызова.

Этот метод перегружает функциональный _index для матриц, т.е. можно использовать его в форме A[i, j] или в функциональном обозначении: _index(A, i, j).

Возвращает субматрицу A, созданного строками A с индексами от r1 до r2 и столбцов A с индексами от c1 до c2.

Примечание

Субматрица имеет доменный Dom::Matrix(R).

Этот метод возвращает i th запись A.

Если i не является целым числом, то вызов этого метода возвращается в его символьной форме (типа "_index") с оцененными аргументами.

В противном случае сообщение об ошибке дано, если i - меньше чем один или больше, чем размерность v.

Этот вызов только допускается n или m ×1 матрицы, т.е. или m или n должны быть равны одному. В противном случае сообщение об ошибке выпущено.

Примечание

Обратите внимание на то, что системная функция context используется, чтобы оценить запись в контексте среды вызова.

Этот метод возвращает подвектор A, сформированного записями с индексом i1 к i2 (см. также метод "op").

Этот вызов только допускается n или m ×1 матрицы, т.е. или m или n должны быть равны одному. В противном случае сообщение об ошибке выпущено.

Этот метод перегружает функциональный _index для матриц, т.е. можно использовать его в форме A[i,j], A[r1..r2,c1..c2], A[i] или A[i1..i2], соответственно, или в функциональном обозначении: _index(A, ...).

concatMatrix(A, B, …)

col(A, c)

Сообщение об ошибке выпущено, если c - меньше чем один или больше, чем n.

delCol(A, c)

NIL возвращен, если A только состоит из одного столбца.

Примечание

Возвращенная матрица имеет доменный Dom::Matrix(R).

Сообщение об ошибке выпущено, если c - меньше чем один или больше, чем n.

delRow(A, r)

NIL возвращен, если A только состоит из одной строки.

Примечание

Возвращенная матрица имеет доменный Dom::Matrix(R).

Сообщение об ошибке выпущено, если r - меньше чем один или больше, чем m.

row(A, r)

Сообщение об ошибке выпущено, если r - меньше чем один или больше, чем m.

stackMatrix(A, B, …)

Сообщение об ошибке выпущено, если данные матрицы не имеют одинакового числа столбцов.

Примечание

Возвращенная матрица имеет доменный Dom::Matrix(R).

Методы преобразования

convert(x)

FAIL возвращен, если преобразование перестало работать.

x может или быть m ×n массив или m ×n матрица категории Cat::Matrix.

x может также быть списком. Смотрите параметр List и ListOfRows в “Создании Элементов” выше для допустимых значений x.

Записи x должны быть конвертируемы в элементы доменного R, в противном случае FAIL возвращен.

Смотрите также

Области MuPAD