pymor.algorithms.image
¶
Module Contents¶
- class pymor.algorithms.image.CollectOperatorRangeRules(source, image, extends)[source]¶
Bases:
pymor.algorithms.rules.RuleTable
RuleTable
for theestimate_image
algorithm.Methods
- class pymor.algorithms.image.CollectVectorRangeRules(image)[source]¶
Bases:
pymor.algorithms.rules.RuleTable
RuleTable
for theestimate_image
algorithm.
- pymor.algorithms.image.estimate_image(operators=(), vectors=(), domain=None, extends=False, orthonormalize=True, product=None, riesz_representatives=False)[source]¶
Estimate the image of given
Operators
for all mu.Let
operators
be a list ofOperators
with common source and range, and letvectors
be a list ofVectorArrays
or vector-likeOperators
in the range of these operators. Given aVectorArray
domain
of vectors in the source of the operators, this algorithms determines aVectorArray
image
of range vectors such that the linear span ofimage
contains:op.apply(U, mu=mu)
for all operatorsop
inoperators
, for all possibleParameters
mu
and for allVectorArrays
U
contained in the linear span ofdomain
,U
for allVectorArrays
invectors
,v.as_range_array(mu)
for allOperators
invectors
and all possibleParameters
mu
.
The algorithm will try to choose
image
as small as possible. However, no optimality is guaranteed. The image estimation algorithm is specified byCollectOperatorRangeRules
andCollectVectorRangeRules
.- Parameters:
operators – See above.
vectors – See above.
domain – See above. If
None
, an emptydomain
VectorArray
is assumed.extends – For some operators, e.g.
EmpiricalInterpolatedOperator
, as well as for all elements ofvectors
,image
is estimated independently from the choice ofdomain
. Ifextends
isTrue
, such operators are ignored. (This is useful in case these vectors have already been obtained by earlier calls to this function.)orthonormalize – Compute an orthonormal basis for the linear span of
image
using thegram_schmidt
algorithm.product – Inner product
Operator
w.r.t. which to orthonormalize.riesz_representatives – If
True
, compute Riesz representatives of the vectors inimage
before orthonormalizing (useful for dual norm computation when the range of theoperators
is a dual space).
- Returns:
The
VectorArray
image
.- Raises:
ImageCollectionError – Is raised when for a given
Operator
no image estimate is possible.
- pymor.algorithms.image.estimate_image_hierarchical(operators=(), vectors=(), domain=None, extends=None, orthonormalize=True, product=None, riesz_representatives=False)[source]¶
Estimate the image of given
Operators
for all mu.This is an extended version of
estimate_image
, which callsestimate_image
individually for each vector ofdomain
.As a result, the vectors in the returned
image
VectorArray
will be ordered by thedomain
vector they correspond to (starting with vectors which correspond to the elements ofvectors
and toOperators
for which the image is estimated independently fromdomain
).This function also returns an
image_dims
list, such that the firstimage_dims[i+1]
vectors ofimage
correspond to the firsti
vectors ofdomain
(the firstimage_dims[0]
vectors correspond tovectors
and toOperators
with fixed image estimate).- Parameters:
operators – See
estimate_image
.vectors – See
estimate_image
.domain – See
estimate_image
.extends – When additional vectors have been appended to the
domain
VectorArray
afterestimate_image_hierarchical
has been called, andestimate_image_hierarchical
shall be called again for the extendeddomain
array,extends
can be set to(image, image_dims)
, whereimage
,image_dims
are the return values of the lastestimate_image_hierarchical
call. The olddomain
vectors will then be skipped during computation andimage
,image_dims
will be modified in-place.orthonormalize – See
estimate_image
.product – See
estimate_image
.riesz_representatives – See
estimate_image
.
- Returns:
image – See above.
image_dims – See above.
- Raises:
ImageCollectionError – Is raised when for a given
Operator
no image estimate is possible.