fncmb

Арифметика с функцией (ами)

Синтаксис

fn = fncmb(function,operation)
f = fncmb(function,function)
fncmb(function,matrix,function)
fncmb(function,matrix,function,matrix)
f = fncmb(function,op,function)

Описание

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

fn = fncmb(function,operation) возвращает (описание) функцию, полученную путем применения к значениям функции в function операция, заданная как operation. Характер операции зависит от того, operation является скаляром, вектором, матрицей или вектором символов следующим образом.

Scalar

Умножьте функцию на этот скаляр.

Vector

Добавьте этот вектор к значениям функции; это требует, чтобы функция была векторно оценена.

Matrix

Примените эту матрицу к коэффициентам функции.

Character array

Примените функцию, заданную этим вектором символов, к коэффициентам функции.

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

f = fncmb(function,function) возвращает (описание) точечную сумму двух функций. Эти две функции должны иметь одну и ту же форму. Эта конкретная ситуация только двух входных параметров не включена в приведенную выше таблицу, поскольку он работает только для одномерных функций.

fncmb(function,matrix,function) то же, что и fncmb(fncmb(function,matrix),function).

fncmb(function,matrix,function,matrix) то же, что и fncmb((fncmb(function,matrix),fncmb(function,matrix))).

f = fncmb(function,op,function) возвращает ppform сплайна, полученного путем точечного объединения двух функций, заданное вектором символов op. Аргумент op может быть одним из векторов символов '+', '-', '*'. Если вторая функция должна быть константой, достаточно просто задать эту константу.

Примеры

fncmb(fn,3.5) умножает (коэффициенты) функцию в fn на 3,5.

fncmb(f,3,g,-4) возвращает линейную комбинацию с весами 3 и -4 функции в f и функцию в g.

fncmb(f,3,g) добавляет 3 раза больше функции в f в функцию в g.

Если функция f в f оказывается скалярным, тогда f3=fncmb(f,[1;2;3])содержит описание функции, значением которой в x является 3-вектор (f (x), 2 f (x), 3 f (x)). Обратите внимание, что по соглашению на протяжении всего этого тулбокса последующий оператор fnval (f 3, x) возвращает 1-столбцевую матрицу .

Если f описывает поверхность в R3, т.е. функцию в f является 3 вектор -значенным бивариатом, затем f2 = fncmb(f,[1 0 0;0 0 1]) описывает проекцию этой поверхности на (x, z) -плоскость .

Следующие команды создают изображение... спирохет?

c = rsmak('circle');
fnplt(fncmb(c,diag([1.5,1]))); axis equal, hold on
sc = fncmb(c,.4);
fnplt(fncmb(sc,-[.2;-.5]))
fnplt(fncmb(sc,-[.2,-.5]))
hold off, axis off

Если t - последовательность узлов длины n+k и a является матрицей с n столбцы, затем fncmb(spmak(t,eye(n)),a) то же, что и spmak(t,a).

fncmb(spmak([0:4],1),'+',ppmak([-1 5],[1 -1])) является кусочно-полиномиальным с пропусками - 1:5 что, на интервале [0.. 4], соглашается с функцией x | − B (x | 0,1,2,3,4) + x (но не имеет активного перерыва в 0 или 1, следовательно, отличается от этой функции за пределами интервала [ 0.. 4]).

fncmb(spmak([0:4],1),'-',0) имеет тот же эффект, что и fn2fm(spmak([0:4],1),'pp').

Принимая, что sp описывает B-форму сплайна порядка < k, выходные выходы

 fn2fm(fncmb(sp,'+',ppmak(fnbrk(sp,'interv'),zeros(1,k))),'B-')

описывает B-форму того же сплайна, но с его порядком, поднятым до k.

Ограничения

fncmb работает только для одномерных функций, кроме случая fncmb(function,operation), то есть, когда во входе есть только одна функция.

Кроме того, если задействованы две функции, то они должны быть одного типа. Это означает, что они должны быть либо в B-форме, либо оба в ppform, и, кроме того, иметь одинаковые узлы или пропуски, тот же порядок и ту же цель. Единственным исключением из этого является команда формы fncmb(function,op,function).

Алгоритмы

Коэффициенты извлекаются (посредством fnbrk) и управляемые заданной матрицей или операцией (и, возможно, добавленные), затем рекомбинированные с остальной частью описания функции (через ppmak, spmak,rpmak,rsmak,stmak). Конечно, когда функция рациональна, матрица применяется только к коэффициентам числителя. Снова, если мы хотим переместить значения функции на заданный вектор, и функция находится в ppform, то так переведены только коэффициенты, соответствующие постоянным терминам.

Если входы две функции, то они должны быть одного типа (см. Ограничения, ниже), кроме следующего.

fncmb(f1,op,f2) возвращает ppform функции

x|f1(x) op f2(x)

с op один из '+', '-', '*', и f1, f2 произвольной полиномиальной формы. Если, в сложение, f2 является скаляром или вектором, это принимается как функция, которая постоянно равна этому скаляру или вектору.