Amoiensis / Matrix_hub

A lib of Matrix operation for C language. (矩阵运算库--C语言)
Apache License 2.0
234 stars 53 forks source link

关于矩阵2范数的计算问题 #2

Closed zzni closed 3 years ago

zzni commented 3 years ago

作者你好,我感觉运算库中的矩阵2范数计算错了,矩阵的2范数应该是矩阵的转置乘该矩阵的最大特征值的开方呀?

Amoiensis commented 3 years ago

您好,谢谢您的关注~ 是的,非常抱歉,这之前写代码的时候弄错了,我将尽快进行修正。如果您能够帮助进行修复的话,也期待您能将成为本项目的贡献者。

Amoiensis commented 3 years ago

您好,在目前v1.42版本的项目中,矩阵的2-范数运算的错误已得到解决。此外,还新增了向量和矩阵范数(1/2/p/INF/F)的计算,具体可以使用help("M_norm")查看具体使用。再次感谢您对本项目的关注和支持!

[e.g.2]

[code]

//  Mat_21

MATRIX_TYPE _mat_21[3][3] = { 1,2,3,2,1,3,3,3,5};

int row = sizeof(_mat_21) / sizeof(_mat_21[0]);

int column = sizeof(_mat_21[0]) / sizeof(_mat_21[0][0]);

Matrix*  mat_21 = Matrix_gen(row,column,_mat_21);

M_print(mat_21);

//  Norm

printf(">>2-Norm = %lf\n",M_norm(mat_21,2));

printf(">>1-Norm = %lf\n",M_norm(mat_21,2));

printf(">>F-Norm = %lf\n",M_norm(mat_21,2));

[output]

>>Matrix_151460:

1.00    2.00    3.00

2.00    1.00    3.00

3.00    3.00    5.00

>>2-Norm = 69.871247

>>1-Norm = 11.000000

>>F-Norm = 8.426150