Integrate function

`intgrf = fnint(f,value) `

fnint(f)

`intgrf = fnint(f,value) `

is the description of an indefinite integral of
the *univariate* function whose description is
contained in `f`

. The integral is normalized to have
the specified `value`

at the left endpoint of the
function's basic
interval, with the default value being zero.

The output is of the same type as the input, i.e., they are
both ppforms or both B-forms. `fnint`

does not work
for rational splines nor for functions in stform.

`fnint(f) `

is the same
as `fnint(f,0)`

.

Indefinite integration of a *multivariate* function,
in coordinate directions only, is available via `fnder`

`(f,dorder)`

with `dorder`

having
nonpositive entries.

The statement `diff(fnval(fnint(f),[a b]))`

provides
the definite integral over the interval [`a `

.. `b`

]
of the function described by `f`

.

If `f`

is in ppform, or in B-form with its
last knot of sufficiently high multiplicity, then, up to rounding
errors, `f`

and `fnder(fnint(f))`

are
the same.

If `f`

is in ppform and `fa`

is
the value of the function in `f`

at the left end
of its basic interval, then, up to rounding errors, `f`

and `fnint(fnder(f),fa)`

are
the same, unless the function described by `f`

has
jump discontinuities.

If `f`

contains the B-form of *f*,
and *t*_{1} is its leftmost knot,
then, up to rounding errors, `fnint(fnder(f))`

contains
the B-form of *f* – *f*(*t*_{1}).
However, its leftmost knot will have lost one multiplicity (if it
had multiplicity > 1 to begin with). Also, its rightmost knot will
have full multiplicity even if the rightmost knot for the B-form of *f* in `f`

doesn't.

Here is an illustration of this last fact. The spline in ```
sp
= spmak([0 0 1], 1)
```

is, on its basic interval [`0`

..`1`

],
the straight line that is 1 at 0 and 0 at 1. Now integrate its derivative: ```
spdi
= fnint(fnder(sp))
```

. As you can check, the spline in `spdi`

has
the same basic interval, but, on that interval, it agrees with the
straight line that is 0 at 0 and -1 at 1.

See the examples "Intro to B-form" and "Intro to ppform" for examples.

Was this topic helpful?