c语言矩阵乘积,c语言矩阵乘积代码

dfnjsfkhak 12 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言矩阵乘积问题,于是小编就整理了2个相关介绍c语言矩阵乘积的解答,让我们一起看看吧。

  1. 三个初等矩阵相乘如何计算?
  2. 怎么把一个3阶方阵,写成若干初等矩阵的乘积?

三个初等矩阵相乘如何计算

三个矩阵相乘时,按照顺序相乘即可,比如ABC,先乘AB,再算ABC,这样是对的;也可以先算BC,再算ABC,因为矩阵乘法满足结合律。矩阵乘法的性质:

1、满足乘法结合律: (AB)C=A(BC)2、满足乘法左分配律:(A+B)C=AC+BC 3、满足乘法右分配律:C(A+B)=CA+CB4、满足对数乘的结合性k(AB)=(kA)B=A(kB)

c语言矩阵乘积,c语言矩阵乘积代码-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

5、转置 (AB)T=BTAT6、矩阵乘法一般不满足交换律乘法结合律:三个数相乘,先把前面两个数相乘,先乘第三个数,或者先把后面两个数相乘,再和第一个数相乘,它们的积不变。字母表示:(a×b)×c=a×(b×c)集合交并***的交,并运算都满足结合律:交:(A∩B)∩C=A∩(B∩C)并:(A∪B)∪C=A∪(B∪C)矩阵乘法矩阵乘法满足结合律。

一个A x B的矩阵乘以一个B x C的矩阵将得到一个A x C的矩阵,时间复杂度为A x B x C。

初等矩阵的乘法可以通过矩阵乘法的规则来计算。具体来说,***设有三个初等矩阵E1、E2和E3,那么它们的乘法可以通过以下步骤计算:
首先,将三个矩阵按列排列,形成一个3列的矩阵。
然后,将三个矩阵按行排列,形成一个3行的矩阵。
最后,将两个矩阵的对应元素相乘,并将结果,得到一个新的矩阵。这个新矩阵就是三个初等矩阵的乘积。
需要注意的是,初等矩阵的乘积不等于它们对应的初等变换的乘积。这是因为初等变换的乘积对应的是对同一矩阵进行多次变换,而初等矩阵的乘积对应的是对不同矩阵进行变换。因此,在进行初等矩阵的乘法计算时,需要按照上述步骤进行操作

c语言矩阵乘积,c语言矩阵乘积代码-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

怎么把一个3阶方阵,写成若干初等矩阵的乘积?

根据以下步骤操作,把一个3阶方阵,写成若干初等矩阵的乘积:

1、给定三阶方阵A:A={{a,b,c},{d,e,f},{p,q,r}},如图所示。

2、开始一步一步的进行行约简:先把第一行的第一个数字变成1,也就是用初等矩阵u来左乘A:u = {{1/a, 0, 0}, {0, 1, 0}, {0, 0, 1}};如图所示。

c语言矩阵乘积,c语言矩阵乘积代码-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

3、让第二行第一个数字变成0:把第三行乘以-d/p,加到第二行上;这个对应的初等矩阵是v=I+(-d/p)*e_(2,3)= {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}} + {{0, 0, 0}, {0, 0, -d/p}, {0, 0, 0}};如图所示。

4、再把第一行乘以-p,加到第三行上;对应的初等矩阵是:w=I+(-p)*e_(3,1)= {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}} + {{0, 0, 0}, {0, 0, 0}, {-p, 0, 0}};再把第三行第二个元素变成0:第二行乘以-(p (-b p + a q))/(a (e p - d q)),加到第三行上;对应的初等矩阵是——x=I+(-(p (-b p + a q))/(a (e p - d q)))*e_(3,2)={{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}+ {{0, 0, 0}, {0, 0, 0}, {0, -(p (-b p + a q))/(a (e p - d q)), 0}};注意看,此时的x.(w.(v.(u.A)))是上三角矩阵。

5、把第三行的第三个元素变成1:也就是左乘矩阵初等矩阵y——y={{1, 0, 0}, {0, 1, 0}, {0, 0, (a (e p - d q))/(p (-c e p + b f p + c d q - a f q - b d r + a e r))}}。把第二行第三个元素变成0:第三行乘以(-f+(d r)/p),加到第二行上就可以了。再把第二行的第二个元素变1:左乘m,m = {{1, 0, 0}, {0, -(p/(-e p + d q)), 0}, {0, 0, 1}};把第一行第二个元素变成0,就是用第二行乘以(-b/a),加到第一行;把第一行第三个元素变成0,就是用第三行乘以(-c/a),加到第一行。最后得到的o.(n.(m.(z.(y.(x.(w.(v.(u.A))))))))就是单位矩阵。

6、这样,o.(n.(m.(z.(y.(x.(w.(v.u)))))))就是A的逆矩阵。反过来,***设u的逆矩阵是u',那么u'也是初等矩阵,所以,A可以写成:u'.v'.w'.x'.y'.z'.m'.n'.o'而初等矩阵的逆矩阵是很容易求出的。

到此,以上就是小编对于c语言矩阵乘积的问题就介绍到这了,希望介绍关于c语言矩阵乘积的2点解答对大家有用

标签: 矩阵 初等 乘积