linear_problem module¶
Linear equations problem.
- class gemseo.algos.linear_solvers.linear_problem.LinearProblem(lhs, rhs=None, solution=None, is_symmetric=False, is_positive_def=False, is_converged=None)[source]¶
Bases:
BaseProblem
Representation of the linear equations’ system \(Ax = b\).
It also contains the solution, and some properties of the system such as the symmetry or positive definiteness.
- Parameters:
lhs (ArrayType | LinearOperator) – The left-hand side (matrix or linear operator) of the problem.
rhs (ndarray | None) – The right-hand side (vector) of the problem.
solution (ndarray | None) – The current solution.
is_symmetric (bool) –
Whether to assume that the LHS is symmetric.
By default it is set to False.
is_positive_def (bool) –
Whether to assume that the LHS is positive definite.
By default it is set to False.
is_converged (bool | None) – Whether the solution is converged to the specified tolerance. If
False
, the algorithm stopped before convergence. IfNone
, no run was performed.
- check()[source]¶
Check the consistency of the dimensions of the LHS and RHS.
- Raises:
ValueError – When the shapes are inconsistent.
- Return type:
None
- compute_residuals(relative_residuals=True, store=False, current_x=None)[source]¶
Compute the L2 norm of the residuals of the problem.
- Parameters:
relative_residuals (bool) –
If
True
, return norm(lhs.solution-rhs)/norm(rhs), else return norm(lhs.solution-rhs).By default it is set to True.
store (bool) –
Whether to store the residuals value in the residuals_history attribute.
By default it is set to False.
current_x – Compute the residuals associated with current_x, If
None
, compute then from the solution attribute.
- Returns:
The residuals value.
- Raises:
ValueError – If
solution
isNone
andcurrent_x
isNone
.- Return type:
ndarray
- plot_residuals()[source]¶
Plot the residuals’ convergence in log scale.
- Returns:
The matplotlib figure.
- Raises:
ValueError – When the residuals’ history is empty.
- Return type:
Figure
- lhs: LinearOperator | SparseArrayType¶
The left-hand side of the equation.
If
None
, the problem can’t be solved and the user has to set it after init.
- rhs: ndarray¶
The right-hand side of the equation.
- solution: ndarray¶
The current solution of the problem.