exponenta event banner

ndBasis

Базовые функции для настраиваемой поверхности усиления

Описание

Расширения базовых функций используются для параметризации поверхностей усиления для настройки контроллеров, запланированных для усиления, с помощью tunableSurface команда. Сложность таких расширений быстро возрастает при наличии нескольких переменных планирования. Использовать ndBasis для построения N-мерных расширений из низкомерных расширений. ndBasis аналогичен ndgrid таким образом, он пространственно повторяет расширения вдоль каждого измерения.

пример

shapefcn = ndBasis(F1,F2) образует внешнее (тензорное) произведение двух базисных расширений функции. Каждое расширение базисной функции - это функция, которая возвращает вектор членов расширения, например, polyBasis. Если F1 (x1) = [F1,1 (x1), F1,2 (x1),..., F1, i (x1)] и F2 (x2) = [F2,1 (x2), F2,2 (x2), ..., F2, i (x2)], тоshapefcn - вектор членов вида:

Fij = F1, i (x1) F2,j (x2).

Термины перечислены колонноориентированным образом, причем i изменяется сначала, а затем j.

shapefcn = ndBasis(F1,F2,...,FN) формирует внешнее произведение трех или более расширений базисной функции. Термины в векторе, возвращенные shapefcn имеют вид:

Fi1... iN = F1, ii (x1) F2,i2 (x2)... FN, iN (xN).

Эти термины перечислены в порядке сортировки N-мерного массива, где сначала изменяется i1, затем i2 и так далее. Каждый Fj само по себе может быть многомерным базисным расширением функции.

Примеры

свернуть все

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

Определите одномерный набор базисных функций.

F = @(x)[x,x^2];

Эквивалентно, вы можете использовать polyBasis для создания F.

F = polyBasis('canonical',2);

Создание двумерного расширения из F.

F2D = ndBasis(F,F);

F2D является функцией двух переменных. Функция возвращает вектор, содержащий вычисленные базисные функции этих двух переменных:

F2D (x, y) = [x, x2, y, yx, yx2, y2, xy2, x2y2].

Чтобы подтвердить это, оцените F2D для x = 0,2, y = -0,3.

F2D(0.2,-0.3)
ans = 1×8

    0.2000    0.0400   -0.3000   -0.0600   -0.0120    0.0900    0.0180    0.0036

Расширение, которое вы объединяете с ndBasis не обязательно иметь такой же порядок. Например, комбинировать F с расширением первого порядка в одной переменной.

G = @(y)[y];
F2D2 = ndBasis(F,G);

Массив, возвращенный F2D2 аналогичен возвращенному F2D, без членов, которые являются квадратичными во второй переменной.

F2D2 (x, y) = [x, x2, y, yx, yx2].

Оценить F2D2 для x = 0,2, y = -0,3 для подтверждения порядка членов.

F2D2(0.2,-0.3)
ans = 1×5

    0.2000    0.0400   -0.3000   -0.0600   -0.0120

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

Сначала создайте одномерные расширения. Назовите переменные для улучшения читаемости.

F1 = polyBasis('canonical',2,'x');
F2 = fourierBasis(1,1,'y');

Для простоты в этом примере используется только первая гармоника периодического изменения. Эти расширения имеют базовые функции, задаваемые:

F1 (x) = [x, x2], F2 (y) = [cos (αy), sin (αy)].

Создайте расширение двумерной базисной функции. Обратите внимание, что ndBasis сохраняет имена переменных, назначенные одномерным расширениям.

F = ndBasis(F1,F2)
F = function_handle with value:
    @(x,y)utFcnBasisOuterProduct(FDATA_,x,y)

Массив, возвращенный F включает в себя все мультипликативные комбинации базисных функций:

F (x, y) = [x, x2, cos (αy), cos (αy) x, cos (αy) x2, sin (αy), xsin (αy), x2sin (αy)].

Чтобы подтвердить это, оцените F для x = 0,2, y = -0,3.

F(0.2,-0.3)
ans = 1×8

    0.2000    0.0400    0.5878    0.1176    0.0235   -0.8090   -0.1618   -0.0324

Входные аргументы

свернуть все

Расширение базовой функции, указанное как дескриптор функции. Функция должна возвращать вектор базисных функций одной или нескольких переменных планирования. Эти базовые функции можно определить явным образом или с помощью polyBasis или fourierBasis.

Пример: F = @(x)[x,x^2,x^3]

Пример: F = polyBasis(3,2)

Выходные аргументы

свернуть все

Расширение базовой функции, указанное как дескриптор функции. shapefcn принимает в качестве входных аргументов общее количество переменных в F1,F2,...,FN. Он возвращает вектор функций этих переменных, определенный на интервале [-1,1] для каждой входной переменной. При использовании shapefcn для создания поверхности усиления, tunableSurface автоматически генерирует перестраиваемые коэффициенты для каждого члена в векторе.

Совет

  • ndBasis операция является ассоциативной:

    ndBasis(F1,ndBasis(F2,F3)) = ndBasis(ndBasis(F1,F2),F3) = ndBasis(F1,F2,F3)
Представлен в R2015b