linalg:: vandermondeSolve

Решите линейную систему Вандермонда

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

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

Синтаксис

linalg::vandermondeSolve(v, y, <Transposed>)

Описание

linalg::vandermondeSolve(v, y) возвращает решение линейной системы Вандермонда с i = 1, …, n.

linalg::vandermondeSolve использует O (n 2) элементарные операции, чтобы решить систему Вандермонда. Это быстрее, чем общий решатель solve и линейные решатели linsolve, numeric::linsolve, linalg::matlinsolve и numeric::matlinsolve.

Решение, возвращенное linalg::vandermondeSolve([v[i] $ i=1..n], [y[i] $ i=1..n]), приводит к коэффициентам полиномиального p (v) = x 1 + x 2 v + ··· + x n  vn - 1 интерполяция таблицы данных (v 1, y 1), …, (v n, y n), т.е.

.

Смотрите пример 1.

Примеры

Пример 1

Вандермонд указывает v и правую сторону, y линейной системы вводится как векторы:

delete y0, y1, y2:
v := matrix([[0, 1, 2]]); 
y := matrix([[y0, y1, y2]])

Вектор решения:

x := linalg::vandermondeSolve(v, y)

Решение приводит к коэффициентам интерполяционного многочлена:

P := v -> _plus(x[i+1]*v^i $ i=0..2):

через точки (0, y 0), (1, y 1), (2, y 2):

P(v[1]), P(v[2]), P(v[3])

С дополнительным аргументом Transposed решена линейная система с транспонированной матрицей Вандермонда, соответствующей v:

linalg::vandermondeSolve(v, y, Transposed)

delete v, y, x, P:

Пример 2

Вандермонд указывает v и правую сторону, y линейной системы вводится как 2×1 матрицы:

Mat := Dom::Matrix(Dom::ExpressionField(normal)):
delete v1, v2, y1, y2:
v := Mat([v1, v2]): 
y := Mat([y1, y2]):

Мы задаем векторы по доменному Dom::ExpressionField (normal) в порядке упростить промежуточные вычисления.

Затем, мы вычисляем решение соответствующей системы Вандермонда:

x := linalg::vandermondeSolve(v, y)

Мы создаем матричный V Вандермонда и проверяем результат:

V := Mat([[1, v[1]], [1, v[2]]])

V * x

delete Mat, v, y, x, V:

Пример 3

Мы решаем систему Вандермонда по полю 7 (целые числа по модулю 7) представленный доменным Dom::IntegerMod (7):

MatZ7 := Dom::Matrix(Dom::IntegerMod(7)):
v := MatZ7([1, 2, 3]): y := MatZ7([0, 1, 2]):
linalg::vandermondeSolve(v, y)

delete MatZ7, v, y:

Параметры

v

Вектор с отличными элементами (вектором является n ×1 или 1 ×n матрица категории Cat::Matrix). Также список с n отличные элементы также принят.

y

Вектор той же размерности и области вводит как v. Также список с элементами n также принят.

Опции

Transposed

Возвращает решение транспонированной системы с i = 1, …, n.

Возвращаемые значения

Вектор того же доменного типа как y.

Алгоритмы

Матрица Вандермонда

сгенерированный v = [v 1, …, v n] является обратимым, если и только если i v отличен.

Вектор, возвращенный linalg::vandermondeSolve(x, y), является уникальным решением.

Векторный x, возвращенный linalg::vandermondeSolve(x, y, Transposed), является уникальным решением.