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

Для просмотра документации необходимо авторизоваться на сайте