Spline Toolbox | ![]() ![]() |
Syntax
values = fnval(f,x) values = fnval(x,f) values = fnval(f,x,'l')
Description
Both fnval(f,x) and fnval(x,f)
provide the matrix f(x
), with f the function whose description is contained in f
. The output (and input) depends on whether f is univariate or multivariate.
If the function in f
is univariate, then the output is a matrix of size [d*m,n]
, with [m,n]
the size of x
and d
the dimension of f`s target (e.g., d
= 2 if f maps into the plane).
If f has a jump discontinuity at x
, then the value f(x
+), i.e., the limit from the right, is returned, except when x
equals the right end of f's basic interval; for it, the value f(x
-), i.e., the limit from the left, is returned.
If the optional third input argument is present and is a string beginning with 'l'
, then, f is instead made to be continuous from the left. This means that if f has a jump discontinuity at x
, then the value f(x
-), i.e., the limit from the left, is returned, except when x
equals the left end of the basic interval; for it, the value f(x
+) is returned.
If the function is multivariate, then the above statements concerning continuity from the left and right apply coordinatewise. Further, if the function is, more precisely, m
-variate for some m
>1, then x
must be either a list of m
-vectors, i.e., of size [m,n
], or a cell array {x1,...,xm}
containing m
vectors. In the first case, the output is of size [d*m,n]
and contains the values of the function at the sites in x
. In the second case, the output is of size [d,length(x1),...,length(xm)]
(or of size [length(x1),...,length(xm)
] in case d
is 1), and contains the values of the function at the m
-dimensional grid specified by x
.
Examples
The statement fnval(csapi(x,y),xx)
has the same effect as the statement csapi(x,y,xx)
.
Algorithm
For each entry of x
, the relevant break- or knot-interval is determined and the relevant information assembled. Depending on whether f
is in ppform or in B-form, nested multiplication or the B-spline recurrence (see, e.g., [PGS; X.(3)]) is then used vector-fashion for the simultaneous evaluation at all entries of x
. Evaluation of a multivariate function takes full advantage of the tensor product structure.
See Also
![]() | fntlr | getcurve | ![]() |