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 скаляр, вектор, матрица, или вектор символов или строковый скаляр, можно следующим образом.

Скаляр

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

Вектор

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

Матрица

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

Вектор символов или строковый скаляр

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

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

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 функции

x|f1(x) op f2(x)

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