|
RcdMathLib_doc
Open Source Library for Linear and Non-linear Algebra
|
Moore–Penrose algorithm to compute the pseudo-inverse of a matrix. More...
#include "matrix.h"Go to the source code of this file.
Macros | |
| #define | MAX_ROW_NUM 23 |
| The maximal row number allowed. | |
| #define | MAX_COL_NUM 23 |
| The maximal column number allowed. | |
| #define | MOORE_PENROSE_PSEUDO_COMP_SUCCESS 1 |
| The Moore–Penrose inverse is successfully completed. | |
| #define | MOORE_PENROSE_PSEUDO_MAX_ALLOW_ROW_COL_EXCEEED -1 |
| The maximal row number allowed is exceeded. | |
| #define | MOORE_PENROSE_PSEUDO_GIVE_MATRIX_TRANSPOSE -2 |
| The transposed matrix should be delivered. | |
| #define | MOORE_PENROSE_INVALID_RANK_VALUE -3 |
| Invalid rank value of a matrix. | |
Functions | |
| int8_t | moore_penrose_get_pinv (uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m]) |
| Calculate the Moore–Penrose inverse of a rectangular matrix. More... | |
| void | moore_penrose_pinv_compute_print (uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t i) |
| Compute and print the Moore–Penrose inverse of a matrix. More... | |
Moore–Penrose algorithm to compute the pseudo-inverse of a matrix.
The computation of the pseudo-inverse is based on the Singular Value Decomposition (SVD).
Definition in file moore_penrose_pseudo_inverse.h.
Calculate the Moore–Penrose inverse of a rectangular matrix.
The computation of the Moore–Penrose inverse is based on the Golub–Kahan–Reinsch SVD algorithm.
| [in] | m | row number of the matrix to inverse. |
| [in] | n | column number of the matrix to inverse. |
| [in] | A[][] | pointer to the matrix A. |
| [out] | pinv_A[][] | pointer to the pseudo-inverse matrix. |
Definition at line 38 of file moore_penrose_pseudo_inverse.c.
References matrix_dim_t::col_num, matrix_t, matrix_transpose(), matrix_dim_t::row_num, svd_get_single_values_num(), and svd_get_U_dim().
Referenced by get_delta_x(), get_PDOP(), loc_gauss_newton(), modified_gauss_newton(), moore_penrose_pinv_compute_print(), newton_raphson(), solve(), trilateration2(), and trilateration_get_particular_solution().
| void moore_penrose_pinv_compute_print | ( | uint8_t | m, |
| uint8_t | n, | ||
| matrix_t | matrix[m][n], | ||
| uint8_t | i | ||
| ) |
Compute and print the Moore–Penrose inverse of a matrix.
| [in] | m | row number of the matrix. |
| [in] | n | column number of the matrix. |
| [in] | matrix[][] | pointer to the matrix. |
| [in] | i | label. |
Definition at line 167 of file moore_penrose_pseudo_inverse.c.
References matrix_flex_print(), matrix_t, and moore_penrose_get_pinv().
Referenced by moore_penrose_pinv_test().