Dom:: SquareMatrix

Звонки квадратных матриц

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

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

Синтаксис

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

Dom::SquareMatrix(n, <R>)

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

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

Описание

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

Dom::SquareMatrix(n, R) создает область, которая представляет звонок n ×n матрицы по доменному R компонента. Доменный R должен иметь категорию Cat::Rng (звонок, возможно без модуля).

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

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

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

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

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

Доменный Dom::MatrixGroup(m, n, R) представляет Абелевую группу m ×n матрицы по R.

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

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

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

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

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

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

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

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

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

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

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

Dom::Matrix (R)

Аксиомы

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

Категории

Cat::SquareMatrix (R)

Примеры

Пример 1

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

Эти примеры только концентрируются на некоторых различиях относительно работы с матрицами доменного Dom::Matrix(R).

Следующая команда задает звонок двумерных матриц по rationals:

SqMatQ := Dom::SquareMatrix(2, Dom::Rational)

SqMatQ::hasProp(Cat::Ring)

Модуль задан записью "one", который является 2×2 единичная матрица:

SqMatQ::one

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

A := SqMatQ([[1, 2], [-5, 3]])

мы получаем матрицу:

SqMatQ::delRow(A, 1)

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

domtype(%)

Пример 2

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

SqMatR := Dom::SquareMatrix(3, Dom::Real):
MatC := Dom::Matrix(Dom::Complex):
A := SqMatR((i, j) -> sin(i*j))

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

coerce(A, MatC)

domtype(%)

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

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

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

coerce(B, SqMatR)

Параметры

n

Положительное целое число

R

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

Array

n ×n массив

Matrix

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

List

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

ListOfRows

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

f

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

g

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

Опции

Diagonal

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

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

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

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

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

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

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

Banded

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

Dom::SquareMatrix(n, R)( n , n List, Banded) создает n ×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. Сообщение об ошибке выпущено, если одно из этих преобразований перестало работать.

Записи

"один"

n ×n единичная матрица. Эта запись существует, если кольцевой R компонента является областью категории Cat::Ring, т.е. звонок с модулем.

"randomDimen"

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

"нуль"

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

Методы

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

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

evalp(A, x = a, …)

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

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

identity(k)

Примечание

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

Этот метод только существует, если кольцевой R компонента имеет категорию Cat::Ring, т.е. звонок с модулем.

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)

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

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

Примечание

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

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

Примечание

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

Этот метод перегружает функциональный _index для матриц, т.е. можно использовать его в форме A[i, j] и A[r1..r2, c1..c2], соответственно, или в функциональном обозначении: _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 - меньше чем один или больше, чем n.

row(A, r)

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

stackMatrix(A, B, …)

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

Примечание

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

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

create(x, …)

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

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

Области MuPAD