矩陣的運算

2023-10-12 01:08
文章标签 矩陣 運算

本文主要是介绍矩陣的運算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 http://blog.csdn.net/as3_flash/article/details/2378453

把一組數字記錄成矩陣形式是沒有意義的,學習矩陣的關鍵在於掌握矩陣之間的運算。

1.矩陣加法運算

矩陣之間也可以相加。把兩個矩陣對應位置的單個元素相加,得到的新矩陣就是矩陣加法的結果。由其運算法則可知,只有行數和列數完全相同的矩陣才能進行加法運算。

矩陣之間相加沒有順序,假設AB都是矩陣,則A+B=B+A。通常認為矩陣沒有減法,若要與一個矩陣相減,在概念上是引入一個該矩陣的負矩陣,然後相加。A-BA+(-B)的簡寫。圖演示了兩個三行三列矩陣的加法。

矩陣加法在圖像位移運算時經常用到。

2.矩陣乘法運算

矩陣之間也可以進行乘法運算,但其運算過程相對複雜得多。與算術乘法不同,矩陣乘法並不是多個矩陣之和,它有自己的邏輯。其算法的具體描述為:假設mn列的矩陣Arv列的矩陣B相乘得到矩陣C,則首先矩陣A和矩陣B必須滿足n=r,也就是說,第一個矩陣的列數必須和第二個矩陣的行數相同。在運算時,第一個矩陣A的第i行的所有元素同第二個矩陣Bj列的元素對應相乘,並把相乘的結果相加,最終得到的值就是矩陣C的第i行第j列的值。

這個過程用數學公式描述為:

C(i,j)=A(i1,i2,i3……in)×B(j1,j2,j3……jv)

進而推出:

C(i,j)= i1×j1+i2 ×j2+i3×j3……+in×jv

從矩陣的乘法運算過程可以看出,矩陣A和矩陣B相乘的產生的矩陣C,必然是mv列的。例如,一個5×3的矩陣同一個3×7的矩陣相乘,結果必然是產生一個5×7的矩陣。而一個5×3的矩陣同一個5×7的矩陣,則無法相乘。圖演示了兩組矩陣的乘法運算。

在圖形變換時,經常用到多次變換,這會造成多個矩陣相乘。如果多個矩陣相乘,則等價於前兩個矩陣相乘的結果再乘以第三個矩陣,以此向後類推。例如,假設ABCD都是矩陣,則A×B×C×D=((A×B)×C)×D。矩陣乘法同數字乘法不同,其運算的先後順序十分敏感,矩陣A乘矩陣B的結果可能完全不同於矩陣B乘矩陣A的結果,有時甚至根本無法相乘。

矩陣相乘要求矩陣之間列與行前後對應相等。為了方便操作,在圖形學的實際應用中變換矩陣都是行數和列數相等的方陣。對於行和列不相等的矩陣,甚至要人為補足。

 

 

这篇关于矩陣的運算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/192137

相关文章

Float/Double不可以進行運算

BigDecimal totalBalance = new BigDecimal(0);totalBalance = totalBalance.add(new BigDecimal(_stock.getIsQty()));如果使用float直接運算float a += _stock.getIsQty()結果錯誤

矩陣分析-基礎-常見矩陣

http://www.cnblogs.com/pegasus/archive/2011/10/18/2121170.html   單位陣(Identity Matrix) 定義:單位陣是對角元素為1,其它元素為0的方陣。 ,也可表示為In = diag(1,1,...,1)   性質: AIn = A 且 InB = B 對稱陣(symmetric matrix) 定義:

矩陣分析-線性系統-5 最小二乘問題(The Least Squares Problem)

http://www.cnblogs.com/pegasus/archive/2011/11/10/2244472.html   1. 引文 假設我們要確定一根繩子的彈性,而它的長度與拉力間服從公式,F為拉力,l為繩子在拉力F作用下的長度,e和k為待確定的常數。為此,我們進行一批實驗采集如下數據,並繪制其散點圖

矩陣分析-線性系統-4 病態系統(ill-conditioned Systems)與條件數(condtion number)

http://www.cnblogs.com/pegasus/archive/2011/11/21/2257262.html   1. 病態系統 系統的精確解為x=1,y=-1。若對b2=0.067進行輕微的擾動變為0.066,那麼精確解變為x=-666,y=834。這個例子深刻說明了病態系統(ill-conditioned systems)的解對於小擾動非常敏感。而這種敏感是由於系

矩陣分析-線性系統-3 LU分解

http://www.cnblogs.com/pegasus/archive/2011/11/21/2257258.html  1. LU分解 LU分解在本質上是高斯消元法的一種表達形式。實質上是將A通過初等行變換變成一個上三角矩陣,其變換矩陣就是一個單位下三角矩陣。這正是所謂的杜爾裡特算法(Doolittle algorithm):從下至上地對矩陣A做初等行變換,將對角線左下方的元素

矩陣分析-線性系統-2 高斯消元法、高斯-若爾當消元法

http://www.cnblogs.com/pegasus/archive/2011/07/31/2123195.html   1. 高斯消元法 高斯消元法(Gaussian elimination)是求解線性方陣組的一種算法,它也可用來求矩陣的秩,以及求可逆方陣的逆矩陣。它通過逐步消除未知數來將原始線性系統轉化為另一個更簡單的等價的系統。它的實質是通過初等行變化(Elementa

矩陣分析-線性系統-1 定義、方程組解的表現形式和性質

http://www.cnblogs.com/pegasus/archive/2011/07/31/2121792.html   1. 定義 線性系統(線性方程組)的一般形式如下,其中 是未知數,  是系數,   是常量。   線性方程組的列向量形式如下。從這個角落來看,常量b是系數列向量{a1,a2…,an}基於未知數的加權線性組合(linear combination)。

矩陣算法原理

http://blog.csdn.net/as3_flash/article/details/2378598 Matrix類的變形方法,最終都是根據用戶給出的參數修改內部矩陣。這些方法的不同之處,在於修改值的算法,以及修改結果在矩陣中的位置。 當用戶在代碼中調用translate(5,13)時,AS3修改矩陣類的內建矩陣,將其中的(tx,ty)T與(5,13)T相加,由於在矩陣創建時(tx,

矩陣變形方法

http://blog.csdn.net/as3_flash/article/details/2378571 用戶在代碼中可以創建矩陣類的實例,並通過手動設置矩陣的內部屬性a、b、c、d、tx和ty,純手工的創造或改變一個變換矩陣。如果用戶具備豐富的圖形學知識,可以自己算出位移,縮放,旋轉,斜切等變形所需要的二次變換矩陣值,那麼使用這種方法就足夠了。高級用戶使用這種方式將會相當的高效。 但是

旋轉變換矩陣

http://blog.csdn.net/as3_flash/article/details/2378483  利用矩陣能完成旋轉。對於圖中的點S(j,0),可以看作矩陣A[j,0],令點S旋轉a度得到點T(m,n),可以看作矩陣C[m,n],顯然可以存在變換矩陣B,令A×B=C成立。由簡單的幾何知識就能得出變換矩陣B的構造。 因為點S位於坐標軸上,使得計算矩陣B的過程極大的簡化了。如果