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
.
Много примеров может быть найдено на странице справки доменного конструктора 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(%)
Мы можем преобразовать квадратную матрицу в или от другой матричной области, как показано затем:
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 ×n массив |
|
n ×n матрица, т.е. элемент области категории |
|
Список матричных компонентов |
|
Список в большинстве строк |
|
Функция или функциональное выражение с двумя параметрами (индекс строки и столбца) |
|
Функция или функциональное выражение с одним параметром (индекс строки) |
|
Создайте диагональную матрицу С опцией
Записи
Значения функции преобразованы в элементы доменного |
|
Создайте полосную матрицу Теплица
Все элементы основной диагонали созданной матрицы инициализируются со средним элементом Записи |
"один" | n ×n единичная матрица. Эта запись существует, если кольцевой |
"randomDimen" | установлен в |
"нуль" | n ×n нулевая матрица. |