Арифметика с функцией (функциями)
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) возвращает (описание) pointwise сумму двух функций. Две функции должны иметь ту же форму. Этот конкретный случай всего двух входных параметров не включен в вышеупомянутую таблицу, поскольку это только работает на одномерные функции.
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 сплайна, полученного объединением pointwise двух функций, как задано вектором символов 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 (f 3, x) возвращает 1 матрицу столбца.
Если f описывает поверхность в R3, т.е. функция в f является 3 векторами, оцененными двумерный, то f2 = fncmb(f,[1 0 0;0 0 1]) описывает проекцию той поверхности к (x, z) - плоскость.
Следующие команды производят изображение... spirochete?
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 является скаляром или вектором, он взят, чтобы быть функцией, которая постоянно равна тому скаляру или вектору.