矩阵运算
矩阵相加。
结果矩阵为array所有元素为double类型,若为两维数组,则存储和表达为A[ i ][ j ]。
输入数组的元素可以是int类型或double类型
下同
array mtAdd(arrayb);
矩阵相减
array mtSubtract(arrayb);
矩阵相乘
array mtMultiply(arrayb);
矩阵转置
array mtTranspose(arrayb);
高斯消元:AX+L=0
为保证求解精度,高斯消元采用的是主元素消元法
若要求n满秩矩阵N的逆阵N(-1),可组成N*N(-1)-E=0,E为单位矩阵
使用n次高斯消元,得到逆阵
int mtGauss(arrayA, array L);
l 例子
int main()
{
array a = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {3, 6, 9}};
array b = {{3, 2, 1}, {6, 5, 4}, {9, 8, 7}, {6, 1, 7}};
array c = a.mtAdd(b);
message("a+ b = " + toString(c));
array d = a.mtSubtract(b);
message("a- b = " + toString(d));
array e = a.mtMultiply(b.mtTranspose());
message("a* transpose(b) = " + toString(e));
array p1 = {{1, 2, 3}, {4, 5, 6}, {7, 8, 10}};
array x1;
int o1 = x1.mtGauss(p1, {3, 9, 10});
message("p1= " + toString(p1));
if(o1 == 1)
message("唯一解 x1 = " + toString(x1));
elseif (o1 == -1)
message("无解\n");
elseif (o1 == 0)
message("无数组解\n");
}