n維矩陣的乘法AB-1__第1頁
n維矩陣的乘法AB-1__第2頁
n維矩陣的乘法AB-1__第3頁
n維矩陣的乘法AB-1__第4頁
n維矩陣的乘法AB-1__第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 題目n 維矩陣的乘法 AB-1 學(xué)號(hào)_ 姓名_ 專業(yè)_ 指導(dǎo)老師 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 第一章:課程設(shè)計(jì)的目的 第二章:課程設(shè)計(jì)的內(nèi)容和要求 課程設(shè)計(jì)的內(nèi)容 運(yùn)行環(huán)境 第三章:課程設(shè)計(jì)分析 矩陣的存儲(chǔ) 矩陣的輸入與輸出 矩陣的乘法運(yùn)算 矩陣的求逆運(yùn)算 第四章:課程設(shè)計(jì)的算法描述 矩陣的存儲(chǔ) 矩陣的輸出 矩陣的乘法 矩陣的求逆運(yùn)算 第五章:源代碼 11 第六章:結(jié)束語 第3頁共11頁 第一章:課程設(shè)計(jì)的目的 本學(xué)期我們對(duì)數(shù)據(jù)結(jié)構(gòu)這門課程進(jìn)行了學(xué)習(xí)。這門課程是一門實(shí)踐性非 常強(qiáng)的課程,為了讓大家更好地理解與運(yùn)用所學(xué)知識(shí), 提高動(dòng)手能力,我們進(jìn)行 了此次課程設(shè)計(jì)實(shí)習(xí)。這次課程設(shè)計(jì)不但要

2、求實(shí)習(xí)者掌握 數(shù)據(jù)結(jié)構(gòu)中的各方 面知識(shí),還要求實(shí)習(xí)者具備一定的 C語言基礎(chǔ)和編程能力。 具體說來,這次課程設(shè)計(jì)主要有兩大方面目的。 一是讓實(shí)習(xí)者通過實(shí)習(xí)掌握 數(shù)據(jù)結(jié)構(gòu)中的知識(shí)。對(duì)于矩陣乘法這一課題 來說,所要求掌握的數(shù)據(jù)結(jié)構(gòu)知識(shí)主要是數(shù)組的相關(guān)概念和數(shù)組用來存儲(chǔ)矩陣的 相關(guān)便利性。 二是通過實(shí)習(xí)鞏固并提高實(shí)習(xí)者的 C語言知識(shí),并初步了解Visual C+的知 識(shí),提高其編程能力與專業(yè)水平。 章:課程設(shè)計(jì)的內(nèi)容和要求 課程設(shè)計(jì)的內(nèi)容 設(shè)計(jì)一個(gè)矩陣相乘的程序,首先從鍵盤輸入兩個(gè)矩陣a,b的內(nèi)容,并輸出 兩個(gè)矩陣,輸出ab-1結(jié)果。 要求 要求 1) 2) 3) 4) 5) 界面友好,函數(shù)功能要?jiǎng)澐?/p>

3、好 總體設(shè)計(jì)應(yīng)畫一流程圖 程序要加必要的注釋 要提供程序測(cè)試方案 程序一定要經(jīng)得起測(cè)試,寧可功能少一些,也要能運(yùn)行起來,不能運(yùn)行的程序是 沒有價(jià)值的。 運(yùn)行環(huán)境 該程序的運(yùn)行環(huán)境為 Windows xp系統(tǒng),Microsoft Visual C+6.0版本。 第三章:課程設(shè)計(jì)分析 矩陣的存儲(chǔ) 矩陣的結(jié)構(gòu)類似于c語言中的二維數(shù)組,所以可以用二維數(shù)組來存儲(chǔ)矩陣, 這樣 的結(jié)構(gòu)很簡(jiǎn)便而且也最符合要求。 矩陣的輸入與輸出 選擇二維數(shù)組作為矩陣的存儲(chǔ)結(jié)構(gòu)那么可以采用二維數(shù)組的輸入與輸出的方式 來對(duì)矩陣進(jìn)行輸入輸出操作。利用兩個(gè) for循環(huán)語句可以實(shí)現(xiàn)將矩陣中的元素存 入到二維數(shù)組中,但是要注意的是矩陣的

4、行和列的下標(biāo)都是從 1開始的但是二維 數(shù)組的行和列的下標(biāo)都是從0開始所以在編寫程序的時(shí)候要注意這些差別。 矩陣的乘法運(yùn)算 矩陣的乘法運(yùn)算時(shí)線性代數(shù)里的知識(shí),兩個(gè)n階的矩陣相乘,設(shè)有三個(gè)矩陣A,B,C, 矩陣A乘矩陣B等于矩陣C,那么矩陣C中的第i行第j列的元素等于矩陣A 的第i行元素和矩陣B的第j列對(duì)應(yīng)的元素的乘積的和。 矩陣的求逆運(yùn)算 定義一個(gè)矩陣的求逆的運(yùn)算的函數(shù),函數(shù)名為inverse,函數(shù)的參數(shù)為數(shù)組B,利 用線性代數(shù)中的初等變換的知識(shí)求矩陣的逆 第四章:課程設(shè)計(jì)的算法描述 矩陣的存儲(chǔ) printf(” 輸入矩陣 a:); for(i=0;iN;i+) for(j=0;jN;j+) 數(shù)

5、據(jù)結(jié)構(gòu)課程設(shè)計(jì) /*輸入矩陣 A*/ printf(”請(qǐng)?jiān)佥斎刖仃嘼:); for(i=0;iN;i+) for(j=0;jN;j+) scan f(%f, /*輸入矩陣B*/ 矩陣的輸出 printf(”請(qǐng)輸出矩陣A和B的乘積矩陣C:n); for(i=0;iN;i+) for(j=0;jN;j+) prin tf(%ft,cij); prin tf(n); 矩陣的乘法 定義一個(gè)全局變量 sum初值為0.0; for(i=0;iN;i+) for(j=0;jN;j+) for(k=0;kN;k+) sum+=aik*bkj; cij=sum; sum=0; /*矩陣的乘法的函數(shù)的內(nèi)容 */

6、矩陣的求逆運(yùn)算 y=1;矩陣維數(shù)N, 定義一個(gè)函數(shù),函數(shù)名為inverse;之前定義全局變量 和整型變量i,和j, 第4頁共11頁 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 函數(shù)的參數(shù)為數(shù)組 B,返回值為數(shù)組B的逆矩陣B-1 void in verse(float mNN) /*inverse函數(shù)是對(duì)矩陣的求逆運(yùn)算的函數(shù)*/ int dN2*N; float t,x; int k; printf(B 原矩陣為:n); for (i=0;iN;i+) for (j=0;jN;j+) prin tf(%3.2ft,mij); prin tf(n); /*將原數(shù)組輸出*/ for(i=0;iN;i+) for(j=0;j(

7、2*N);j+) if (jN) dij=mij; else if (j=N+i) dij=1.0; else dij=O.O; /*將數(shù)組b中的元素轉(zhuǎn)存到變量數(shù)組d中,其中d中的另 半元素對(duì)應(yīng)一個(gè)單位矩陣 */ for(i=0;iN;i+) for(k=0;kN;k+) if(k!=i) t=dki/dii; for(j=0;j(2*N);j+) x=dij*t; dkj=dkj-x; 第8頁共11頁 /*矩陣的初等變換*/ for(i=0;iN;i+) t=dii; for(j=0;j(2*N);j+) dij=dij/t; for(i=0;iN;i+) y=y*dii; if(y=0)

8、n); printf(對(duì)不起,您輸入的矩陣沒有逆矩陣,請(qǐng)重新輸入。 else for(i=0;iN;i+) for(j=0;jN;j+) mij=dij+N; printf(B 逆矩陣為:n); for (i=0;iN;i+) for (j=0;jN;j+) prin tf(%3.2ft,mij); prin tf(n); 第五章:源代碼 #in clude #defi ne N 3 int i,j,k; float y=1.0; float aNN,bNN,cNN;/*定義全局變量的三個(gè)數(shù)組*/ /*矩陣的乘法的函數(shù)的內(nèi)容 */ void in verse(float mNN); int m

9、ai n() printf(” 輸入矩陣 a:); for(i=0;iN;i+) for(j=0;jN;j+) scan f(%f, /*輸入矩陣A*/ printf(”請(qǐng)?jiān)佥斎刖仃?b:); for(i=0;iN;i+) for(j=0;jN;j+) scan f(%f, /*輸入矩陣B*/ in verse(b);/*調(diào)用in verse函數(shù)對(duì)矩陣b進(jìn)行求逆運(yùn)算*/ for(i=0;iN;i+) for(j=0;jN;j+) for(k=0;kN;k+) cij+=aik*bkj; printf(”請(qǐng)輸出矩陣 A和B的乘積矩陣C:n); for(i=0;iN;i+) for(j=0;jN;

10、j+) prin tf(%3.2ft,cij); prin tf(n); 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) /*主函數(shù)結(jié)束*/ void in verse(float mNN) /*inverse函數(shù)是對(duì)矩陣的求逆運(yùn)算的函數(shù)*/ float dN2*N; float t,x; int k; printf(B 原矩陣為:n); for (i=0;iN;i+) for (j=0;jN;j+) prin tf(%3.2ft,mij); prin tf(n); /*將原數(shù)組輸出*/ for(i=0;iN;i+) for(j=0;j(2*N);j+) if (jN) dij=mij; else if (j=N+i) d

11、ij=1.0; else dij=0.0; /*將數(shù)組b中的元素轉(zhuǎn)存到變量數(shù)組d中,其中d中的另 半元素對(duì)應(yīng)一個(gè)單位矩陣 */ for(i=0;iN;i+) for(k=0;kN;k+) if(k!=i) t=dki/dii; for(j=0;j(2*N);j+) x=dij*t; dkj=dkj-x; 第8頁共11頁 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 第11頁共11頁 /*矩陣的初等變換*/ for(i=0;iN;i+) t=dii; for(j=0;j(2*N);j+) dij=dij/t; for(i=0;iN;i+) y=y*dii; if(y=0) n); printf(對(duì)不起,您輸入的矩陣沒有逆矩

12、陣,請(qǐng)重新輸入。 else for(i=0;iN;i+) for(j=0;jN;j+) mij=dij+N; printf(B 逆矩陣為:n); for (i=0;iN;i+) for (j=0;jN;j+) prin tf(%3.2ft,mij); prin tf(n); 輸入鉅陣自二1 0 0 18再輸入拒陣b: L B厲矩陣為= 1, W0* W 1. 002, 00 1. 00比 00 E逆拒陣為= 1. 000. 00 -0. E00. 50 0. 00-0. 33 12 0 12 3 00120123 0*8 0.00 3.00 0.00 0,00 (X 33 0*00 0.00

13、1,00 to continue 第六章: 結(jié)束語 請(qǐng)輸出矩陣積走陣 1* 00Q* 00 0* 00k 00 0.00-0.00 Pressany key 轉(zhuǎn)眼,為期兩周的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)實(shí)習(xí)即將結(jié)束了。在這次實(shí)習(xí)中, 自己的C語言知識(shí)和數(shù)據(jù)結(jié)構(gòu)知識(shí)得到了鞏固,編程能力也有了一定的提高。 同時(shí)也學(xué)會(huì)了解決問題的方法。總結(jié)起來,自己主要有以下幾點(diǎn)體會(huì): 1.必須牢固掌握基礎(chǔ)知識(shí)。由于 C語言是大一所學(xué)知識(shí),有所遺忘,且未掌 握好這學(xué)期所學(xué)的數(shù)據(jù)結(jié)構(gòu)這門課,所以在實(shí)習(xí)之初感到棘手。不知如何下 手,但在后來的實(shí)習(xí)過程中自己通過看書和課外資料,并請(qǐng)教其他同學(xué),慢慢地 對(duì)C語言和數(shù)據(jù)結(jié)構(gòu)知識(shí)有所熟悉。這時(shí)才逐漸有了思路。所以,這次實(shí)習(xí)之 后,我告誡自己:今后一定要牢固掌握好專業(yè)基礎(chǔ)知識(shí)。 2必、須培養(yǎng)嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度。自己在編程時(shí)經(jīng)常因?yàn)橐恍╊愃朴凇吧倭朔痔?hào)” 的小錯(cuò)誤而導(dǎo)致錯(cuò)誤,不夠認(rèn)真細(xì)致,這給自己帶來了許多麻煩。編程是一件十 分嚴(yán)謹(jǐn)?shù)氖虑?,容不得馬虎。所以在今后自己一定要培養(yǎng)嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度。 我想 這不僅是對(duì)于程序設(shè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論