Арифметика с функцией (ами)
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
является скаляром, вектором, матрицей или вектором символов следующим образом.
| Умножьте функцию на этот скаляр. |
| Добавьте этот вектор к значениям функции; это требует, чтобы функция была векторно оценена. |
| Примените эту матрицу к коэффициентам функции. |
| Примените функцию, заданную этим вектором символов, к коэффициентам функции. |
Остальные опции работают только для одномерных функций. Для получения дополнительной информации см. раздел Ограничения.
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 функции
с op
один из '+', '-'
, '*'
, и f1
, f2
произвольной полиномиальной формы. Если, в сложение, f2
является скаляром или вектором, это принимается как функция, которая постоянно равна этому скаляру или вектору.