十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
什么是矩陣?
在數(shù)學中,矩陣(Matrix)是一個按照長方陣列排列的復數(shù)或?qū)崝?shù)集合,最早來自于方程組的系數(shù)及常數(shù)所構成的方陣。這一概念由19世紀英國數(shù)學家凱利首先提出。
矩陣是高等代數(shù)學中的常見工具,也常見于統(tǒng)計分析等應用數(shù)學學科中。在物理學中,矩陣于電路學、力學、光學和量子物理中都有應用;計算機科學中,三維動畫制作也需要用到矩陣。 矩陣的運算是數(shù)值分析領域的重要問題。將矩陣分解為簡單矩陣的組合可以在理論和實際應用上簡化矩陣的運算。對一些應用廣泛而形式特殊的矩陣,例如稀疏矩陣和準對角矩陣,有特定的快速運算算法。關于矩陣相關理論的發(fā)展和應用,請參考矩陣理論。在天體物理、量子力學等領域,也會出現(xiàn)無窮維的矩陣,是矩陣的一種推廣。
——來自百度百科
例如:A是一個由m*n個元素組成的m行n列矩陣的矩陣:
矩陣的乘法的定義:
設A為n*p的矩陣,B為p*n的矩陣。則將生成一個n*n的矩陣,假定為C.
則C中的i行j列的元素可以表示為
那么在計算機程序中怎么表示呢?
首先是矩陣的定義,這里我們知道。c語言中的二維數(shù)組和其具有相似特征。
我打算用二級指針來表示所求矩陣,你想啊,給的A,B矩陣,長度要是變化了,就要修改所求矩陣的大小,不是一件很無聊的事嘛???
不過,用到了二級指針,那么注定了內(nèi)存要自己管理啦。
由基礎的高等代數(shù)常識,我們可以得出。不是什么矩陣都可以做乘法的,這需要滿足一定條件。
A的行長度要和B的列長度相同才行。怎么獲取A B的長度呢?這里需要用到一個小技巧。
里面的原理,就不仔細說了。我們主要演示算法部分。
值得注意的是,程序如果計算了一半,出錯了,那么已分配內(nèi)存的釋放,是一個值得考慮的問題。
我給出了以下的解決方案,請看。。。
為了方便操作,提供以下函數(shù)解耦和
更多細節(jié),請下載源代碼。。
附件:http://down.51cto.com/data/2367668另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。