matrix¶
The matrix module defines an abstract Matrix
object and several
implementations. Matrix objects support basic addition and subtraction
operations and provide a consistent insterface for solving linear systems.
Matrices can be converted into other forms suitable for external processing via
the export
method.

exception
nutils.matrix.
BackendNotAvailable
¶ Bases:
nutils.matrix.MatrixError
Error message reporting that the selected matrix backend is not available on the system.

class
nutils.matrix.
Matrix
(shape, dtype)¶ Bases:
object
matrix base class

T
¶ transpose matrix

__add__
(self, other)¶ add two matrices

__matmul__
(self, other)¶ multiply matrix with a dense tensor

__mul__
(self, other)¶ multiply matrix with a scalar

__neg__
(self)¶ negate matrix

__weakref__
¶ list of weak references to the object (if defined)

export
(self, form)¶ Export matrix data to any of supported forms.
Parameters: form ( str
) – “dense” : return matrix as a single dense array
 ”csr” : return matrix as 3tuple of (data, indices, indptr)
 ”coo” : return matrix as 2tuple of (data, (row, col))

rowsupp
(self, tol=0)¶ return row indices with nonzero/nonsmall entries

solve
(self, rhs=None, *, lhs0=None, constrain=None, rconstrain=None, solver='arnoldi', atol=0.0, rtol=0.0, **solverargs)¶ Solve system given right hand side vector and/or constraints.
Parameters:  rhs (
float
vector orNone
) – Right hand side vector. ANone
value implies the zero vector.  lhs0 (class:float vector or
None
) – Initial values: compute the solution by solvingA dx = b  A lhs0
. ANone
value implies the zero vector, i.e. solvingA x = b
directly.  constrain (
float
orbool
array, orNone
Column) – constraints. For float values, a number signifies a constraint, NaN signifies a free dof. For boolean, aTrue
value signifies a constraint to the value inlhs0
, aFalse
value signifies a free dof. ANone
value implies no constraints.  rconstrain (
bool
array orNone
) – Row constrains. A True value signifies a constrains, a False value a free dof. ANone
value implies that the constraints follow those defined inconstrain
(by implication the matrix must be square).  solver (
str
) – Name of the solver algorithm. The set of available solvers depends on the type of the matrix (i.e. the active backend), although the ‘direct’ and ‘arnoldi’ solvers are always available.  rtol (
float
) – Relative tolerance: seeatol
.  atol (
float
) – Absolute tolerance: require thatA x  b <= max(atol, rtol b)
after applying constraints and the initial value. In caseatol
andrtol
are both zero (the defaults) solve to machine precision. Otherwise fail withnutils.matrix.ToleranceNotReached
if the requirement is not reached.  **kwargs – All remaining arguments are passed on to the selected solver method.
Returns: Left hand side vector.
Return type:  rhs (

solve_leniently
(self, *args, **kwargs)¶ Identical to
nutils.matrix.Matrix.solve()
, but emit a warning in case tolerances are not met rather than an exception, while returning the obtained solution vector.


exception
nutils.matrix.
MatrixError
¶ Bases:
Exception
General error message for matrixrelated failure.

__weakref__
¶ list of weak references to the object (if defined)


exception
nutils.matrix.
ToleranceNotReached
(best)¶ Bases:
nutils.matrix.MatrixError
Error message reporting that the configured linear solver tolerance was not reached. The
.best
attribute carries the nonconforming solution.