Note: This page has been translated by MathWorks. Please click here

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

Taylor coefficients

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

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

returns
the unnormalized 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.

Was this topic helpful?