欢迎使用Matrix
Matrix目前能实现矩阵的基本功能,例如:方阵行列式求解,矩阵的线性运算和矩阵相乘,矩阵求逆等等.
我会持续更新此库,需要的朋友可以进行下载。
V1.1版本10阶矩阵的行列式和逆矩阵求解对齐了matlab的精度,但是速度较慢。谨慎使用于高阶矩阵运算。
链接:
link
.
提取码:wyqq
链接失效请联系:hkx1ol@163.com
效果展示图片:矩阵B为矩阵A的逆,精度尽量对齐MATLAB。但是速度。。。
测试代码如下
MatrixTypedef A, B,C;
double detA,detB,detC;
A = CreateMatrix("[100.1,200.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9,10.1;\
400.4,4.4,4.4,4.4,50.5,60.6,70.7,80.8,9.9,40.4;\
1.1,2.2,4.4,400.4,5.5,6.6,7.7,8.8,9.9,10.1;\
2.2,2.2,2.2,2.2,5.5,6.6,7.7,8.8,9.9,20.2;\
1.1,2.2,2.2,200.2,5.5,6.6,7.7,8.8,9.9,10.1;\
1.1,2.2,3.3,2.2,5.5,6.6,7.7,8.8,9.9,10.1;\
6.6,7.6,8.6,6.6,5.5,6.6,7.7,8.8,7.7,60.6;\
1.1,6.6,8.6,600.6,5.5,6.6,700.7,0.8,7.7,10.1;\
1.1,6.6,3.3,6.6,5.5,6.6,7.7,100.8,7.7,100.1;\
1.1,6.6,3.3,4.4,500.5,6.6,7.7,0.8,7.7,10.1]", 10, 10);
detA = Determinant(A);
B = Matrix_Inv(A);
detB = Determinant(B);
C = Matrix_xMult(A,B);
detC = Determinant(C);
printf("矩阵A:");
disp_matrix(A);
printf("det(A)=%.4e\r\n\n", detA);
printf("矩阵B:");
disp_matrix(B);
printf("det(B)=%.4e\r\n\n", detB);
printf("矩阵C:");
disp_matrix(C);
printf("det(c)=%.4e\r\n\n", detC);
DestroyMatrix(A);
DestroyMatrix(B);
部分函数概述
函数 | 功能 |
---|---|
CreateMatrix | 以字符串格式输入矩阵,具体格式见Matrix.c函数描述 |
Zeros | 生成零矩阵 |
Eye | 生成单位矩阵 |
Determinant | 计算方阵行列式 |
版本更新说明:
V1.2
优化矩阵的运行速度,并适当调整了行列式运算速度和精度
版权声明:本文为qq_29936881原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。