Арифметика с функцией (ями)
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) возвращает pppform сплайна, полученного точечным объединением двух функций, как определено вектором символов 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), 2f (x), 3f (x)). Обратите внимание, что в соответствии с соглашением на этой панели инструментов последующий оператор fnval (f3, 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)
с op один из '+', '-', '*', и f1, f2 произвольной полиномиальной формы. Если, кроме того, f2 является скаляром или вектором, он принимается как функция, которая постоянно равна скаляру или вектору.