Taylor coefficients

`taylor = fntlr(f,dorder,x) `

`taylor = fntlr(f,dorder,x) `

returns the
nonnormalized Taylor coefficients, up to the given order `dorder`

and at the given `x`

, of the function described in
`f`

.

For a univariate function and a scalar `x`

, this is the
vector

$$T(f,\text{dorder},x):=[f(x);Df(x);\mathrm{...};{D}^{\text{dorder}-1}f(x)]$$

If, more generally, the function in `f`

is
`d`

-valued with `d>1`

or even
`prod(d)>1`

and/or is `m`

-variate for some
`m>1`

, then `dorder`

is expected to be an
`m`

-vector of positive integers, `x`

is
expected to be a matrix with `m`

rows, and, in that case, the
output is of size `[prod(d)*prod(dorder),size(x,2)]`

, with its j-th
column containing

$$T(f,\text{dorder},x(:,j))(i1,\mathrm{...},im)={D}_{1}{}^{i1-1}\mathrm{...}{D}_{m}{}^{im-1}f(x(:,j))$$

for `i1=1:dorder(1)`

, ..., `im=1:dorder(m)`

.
Here, *D _{i}f* is the partial derivative of

If `f`

contains a univariate function and `x`

is
a scalar or a 1-row matrix, then `fntlr(f,3,x)`

produces the same
output as the statements

df = fnder(f); [fnval(f,x); fnval(df,x); fnval(fnder(df),x)];

As a more complicated example, look at the Taylor vectors of order 3 at 21 equally spaced points for the rational spline whose graph is the unit circle:

ci = rsmak('circle'); in = fnbrk(ci,'interv'); t = linspace(in(1),in(2),21); t(end)=[]; v = fntlr(ci,3,t);

We plot `ci `

along with the points `v(1:2,:)`

,
to verify that these are, indeed, points on the unit circle.

fnplt(ci), hold on, plot(v(1,:),v(2,:),'o')

Next, to verify that `v(3:4,j)`

is a vector tangent to the circle
at the point `v(1:2,j)`

, we use the MATLAB^{®}
`quiver`

command to add the corresponding arrows to our
plot:

quiver(v(1,:),v(2,:),v(3,:),v(4,:))

Finally, what about `v(5:6,:)`

? These are second derivatives, and
we add the corresponding arrows by the following `quiver`

command,
thus finishing First and Second Derivative of a Rational Spline Giving a Circle.

quiver(v(1,:),v(2,:),v(5,:),v(6,:)), axis equal, hold off

**First and Second Derivative of a Rational Spline Giving a Circle**

Now, our curve being a circle, you might have expected the 2nd derivative arrows
to point straight to the center of that circle, and that would have been indeed the
case if the function in `ci`

had been using arclength as its
independent variable. Since the parameter used is not arclength, we use the formula,
given in Example: B-form Spline Approximation to a Circle, to
compute the curvature of the curve given by `ci`

at these selected
points. For ease of comparison, we switch over to the variables used there and then
simply use the commands from there.

dspt = v(3:4,:); ddspt = v(5:6,:); kappa = abs(dspt(1,:).*ddspt(2,:)-dspt(2,:).*ddspt(1,:))./... (sum(dspt.^2)).^(3/2); max(abs(kappa-1)) ans = 2.2204e-016

The numerical answer is reassuring: at all the points tested, the curvature is 1 to within roundoff.