免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 1551|回复: 3
收起左侧

【WalkLan】array中的内置矩阵运算

[复制链接]

22

主题

444

铜板

3

好友

助理工程师

Rank: 5Rank: 5

积分
265
发表于 2012-6-7 12:31 | 显示全部楼层 |阅读模式
矩阵运算
      
矩阵相加。
       结果矩阵为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=0E为单位矩阵
              使用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");
}

185

主题

2898

铜板

13

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2398
发表于 2012-7-2 14:22 | 显示全部楼层
学习一下!{:soso_e113:}
回复 支持 反对

使用道具 举报

27

主题

1856

铜板

2

好友

版主

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
1022
发表于 2012-7-2 15:41 | 显示全部楼层
呵呵 多谢分享  不断的学习!
回复 支持 反对

使用道具 举报

头像被屏蔽

0

主题

3246

铜板

0

好友

禁止发言

积分
1892
发表于 2025-1-14 15:25 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表