Closed KimKitsurag1 closed 5 months ago
@KimKitsurag1 The matrix R is also containing the Householder reflectors below the diagonal like it is done in some matrix libraries. So indeed, there are some values below the diagonal and if you only want the R matrix part, you need to zero those values. (It is documented in description of the function).
For instance, first column below the diagonal in your screenshot is [0.110687, -0.319764] and it corresponds to Householder reflector [1,0.110687,-0.319764]
Thank you!
Tried to use "arm_mat_qr_f32" and "arm_mat_qr_f64" to find eigenvalues by using QR method. Found out that R-matrix isn't triangular, because there are values that significantly differ from 0(~1e-1)
The code is following:
include "utils.h"
include
include "arm_math.h"
void printMatrix(float64_t matrix, uint32_t numRows, uint32_t numCols) { for (uint32_t i = 0; i < numRows; i++) { for (uint32_t j = 0; j < numCols; j++) { printf("%f\t", matrix[i numCols + j]); } printf("\n"); } } void eigen_values(arm_matrix_instance_f64 *A){ float64_t Q[9]={0}; float64_t R[9]={0}; arm_matrix_instance_f64 Q_mat = {.numCols = 3, .numRows = 3, .pData = Q}; arm_matrix_instance_f64 R_mat = {.numCols = 3, .numRows = 3, .pData = R};
}
int main(){
}![Снимок](https://github.com/ARM-software/CMSIS-DSP/assets/96314483/ec836194-39de-4ff9-ba39-a23b477522f3)