linalg
:: invvandermonde
Матрицы Вандермонда и их инверсии
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
linalg::invvandermonde([v1, v2, …]
, <R
>)
linalg::invvandermonde(v1, v2, ... , vn)
возвращает инверсию матрицы Вандермонда с узлами v i.
Используйте linalg::invvandermonde([v1, ..., vn], R)
, чтобы задать n ×n обратная матрица Вандермонда по полю R
. Обратите внимание на то, что узлы v i должен быть элементами R
или должен быть конвертируемым к элементам R
.
Матрицы Вандермонда размерности n ×n могут быть инвертированы с операциями O (n 2). Линейные уравнения с матрицей коэффициентов Вандермонда могут быть решены через linalg::vandermondeSolve
.
Создайте 3×3 матрица Вандермонда:
V := linalg::vandermonde([v1, v2, v3])
Инверсия этой матрицы:
invV := linalg::invvandermonde([v1, v2, v3])
V
и его инверсия являются матрицами доменного Dom::Matrix()
.
domtype(V), domtype(invV)
Можно задать специальный звонок компонента для матриц, если узлы могут быть преобразованы в элементы звонка. Например, спецификация доменного Dom::Float
генерирует записи с плавающей точкой:
V := linalg::vandermonde([2, PI, 1/3], Dom::Float)
domtype(V)
Это быстрее, чтобы вычислить инверсию через linalg::invvandermonde
, чем инвертирование матрицы Вандермонда типичным алгоритмом инверсии, реализованным V^(-1)
:
V^(-1) = linalg::invvandermonde([2, PI, 1/3], Dom::Float)
delete V, invV
|
Узлы Вандермонда: арифметические выражения |
|
Звонок компонента: область категории |
n ×n матрица доменного Dom::Matrix
(R)
.
Матрицы Вандермонда известно плохо обусловлены. Инверсии больших матриц Вандермонда с плавающей точкой подвергаются серьезным эффектам округления.