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) возвращает (описание) 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 скаляр или вектор, это взято, чтобы быть функцией, которая постоянно равна тому скаляру или вектору.