溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

矩陣乘法實(shí)現(xiàn)(c語言版)

發(fā)布時(shí)間:2020-06-14 07:20:15 來源:網(wǎng)絡(luò) 閱讀:1530 作者:騰揚(yáng) 欄目:編程語言

什么是矩陣?

    在數(shù)學(xué)中,矩陣(Matrix)是一個(gè)按照長方陣列排列的復(fù)數(shù)或?qū)崝?shù)集合,最早來自于方程組的系數(shù)及常數(shù)所構(gòu)成的方陣。這一概念由19世紀(jì)英國數(shù)學(xué)家凱利首先提出。

矩陣是高等代數(shù)學(xué)中的常見工具,也常見于統(tǒng)計(jì)分析等應(yīng)用數(shù)學(xué)學(xué)科中。在物理學(xué)中,矩陣于電路學(xué)、力學(xué)、光學(xué)和量子物理中都有應(yīng)用;計(jì)算機(jī)科學(xué)中,三維動(dòng)畫制作也需要用到矩陣。 矩陣的運(yùn)算是數(shù)值分析領(lǐng)域的重要問題。將矩陣分解為簡(jiǎn)單矩陣的組合可以在理論和實(shí)際應(yīng)用上簡(jiǎn)化矩陣的運(yùn)算。對(duì)一些應(yīng)用廣泛而形式特殊的矩陣,例如稀疏矩陣和準(zhǔn)對(duì)角矩陣,有特定的快速運(yùn)算算法。關(guān)于矩陣相關(guān)理論的發(fā)展和應(yīng)用,請(qǐng)參考矩陣?yán)碚?。在天體物理、量子力學(xué)等領(lǐng)域,也會(huì)出現(xiàn)無窮維的矩陣,是矩陣的一種推廣。

        ——來自百度百科


例如:A是一個(gè)由m*n個(gè)元素組成的m行n列矩陣的矩陣:

        矩陣乘法實(shí)現(xiàn)(c語言版)


矩陣的乘法的定義:

    設(shè)A為n*p的矩陣,B為p*n的矩陣。則將生成一個(gè)n*n的矩陣,假定為C.

    則C中的i行j列的元素可以表示為

    



那么在計(jì)算機(jī)程序中怎么表示呢?

    首先是矩陣的定義,這里我們知道。c語言中的二維數(shù)組和其具有相似特征。矩陣乘法實(shí)現(xiàn)(c語言版)


    我打算用二級(jí)指針來表示所求矩陣,你想啊,給的A,B矩陣,長度要是變化了,就要修改所求矩陣的大小,不是一件很無聊的事嘛???

       矩陣乘法實(shí)現(xiàn)(c語言版)

不過,用到了二級(jí)指針,那么注定了內(nèi)存要自己管理啦。


    由基礎(chǔ)的高等代數(shù)常識(shí),我們可以得出。不是什么矩陣都可以做乘法的,這需要滿足一定條件。

A的行長度要和B的列長度相同才行。怎么獲取A B的長度呢?這里需要用到一個(gè)小技巧。

矩陣乘法實(shí)現(xiàn)(c語言版)

里面的原理,就不仔細(xì)說了。我們主要演示算法部分。


值得注意的是,程序如果計(jì)算了一半,出錯(cuò)了,那么已分配內(nèi)存的釋放,是一個(gè)值得考慮的問題。

我給出了以下的解決方案,請(qǐng)看。。。

矩陣乘法實(shí)現(xiàn)(c語言版)



為了方便操作,提供以下函數(shù)解耦和

矩陣乘法實(shí)現(xiàn)(c語言版)


更多細(xì)節(jié),請(qǐng)下載源代碼。。


附件:http://down.51cto.com/data/2367668
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI