C語(yǔ)言求矩陣的逆矩陣_第1頁(yè)
C語(yǔ)言求矩陣的逆矩陣_第2頁(yè)
C語(yǔ)言求矩陣的逆矩陣_第3頁(yè)
C語(yǔ)言求矩陣的逆矩陣_第4頁(yè)
C語(yǔ)言求矩陣的逆矩陣_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

卑微如螻蟻、堅(jiān)強(qiáng)似大象卑微如螻蟻、堅(jiān)強(qiáng)似大象共享知識(shí)分享快樂(lè)C語(yǔ)言求矩陣的逆矩陣班級(jí):自動(dòng)化1604小組成員:潘孝楓金豆小組成員:潘孝楓金豆2017年4月共享知識(shí)分享快樂(lè)共享知識(shí)分享快樂(lè)卑微如螻蟻、堅(jiān)強(qiáng)似大象卑微如螻蟻、堅(jiān)強(qiáng)似大象作業(yè)要求:用C語(yǔ)言編程;查閱相關(guān)資料,至少了解三種以上的求矩陣的逆的方法;倆人一組,提交大作業(yè)報(bào)告,含源代碼。方法一:用伴隨矩陣求矩陣的逆矩陣(潘孝楓)最主要的問(wèn)題就是求解矩陣的逆矩陣,而且是一個(gè)動(dòng)態(tài)矩陣1.求解矩陣的伴隨矩陣,套用求行列式的函數(shù)解決問(wèn)題的關(guān)鍵是如何運(yùn)用一個(gè)循環(huán)遞歸將求行列式的函數(shù)反復(fù)嵌套函數(shù)的分塊求矩陣的行列式的函數(shù)求余子式的函數(shù)求逆的函數(shù)#defiNne9/默/認(rèn)行列式最大輸入階數(shù)為9定義行列式計(jì)算程序,為行列式階數(shù),為矩陣/主*程序*/定義階數(shù)定義循環(huán)變量定義數(shù)組,為原始錄入數(shù)組,為中間變量數(shù)組,用于提取與計(jì)算余子式,為輸出結(jié)果數(shù)組定義的行列式值輸入的階數(shù)輸入矩陣計(jì)算的行列式判斷的行列式值是否為輸出“行列式值為0,不可逆非繼續(xù)運(yùn)算階/數(shù)為1的情況共享知識(shí)分享快樂(lè)共享知識(shí)分享快樂(lè)卑微如螻蟻、堅(jiān)強(qiáng)似大象卑微如螻蟻、堅(jiān)強(qiáng)似大象階數(shù)大于的情況提取所對(duì)應(yīng)的余子共享知識(shí)分享快樂(lè)共享知識(shí)分享快樂(lè)卑微如螻蟻、堅(jiān)強(qiáng)似大象卑微如螻蟻、堅(jiān)強(qiáng)似大象式到矩陣中計(jì)/算+對(duì)應(yīng)的代數(shù)余子式,存入矩陣中并完成轉(zhuǎn)置輸/出結(jié)果求*行列式定義求矩陣行列式的程序,采用逐步降階求值定義矩陣定義循環(huán)變量定義行列式運(yùn)算結(jié)果定/義=輔助0變;量c,p/行/列式階數(shù)為1函數(shù)直接返回值]針對(duì)行列式第一列展開(kāi)判斷錄入數(shù)組時(shí)行數(shù)值,如果大于,則在執(zhí)行錄入數(shù)組時(shí)行數(shù)下移一行,否則不執(zhí)行數(shù)+1的操作取出第一列每個(gè)元素對(duì)應(yīng)的余子式存入數(shù)組中求出第一列每個(gè)元素代數(shù)余子式之和,其中嵌套進(jìn)行逐步降階完成高階行列式計(jì)算方法二:用行初等變換來(lái)求矩陣的逆//應(yīng)用矩陣初等變換的方法求逆矩陣//參數(shù)說(shuō)明://naturalmat原矩陣//num矩陣的階數(shù)//InvMat求解結(jié)果,逆矩陣boolMatrix_Inv(double**naturalmat,intnum,double**InvMat){inti,j,k;double**MatEnhanced;//增廣矩陣(A|E)MatEnhanced=(double**)malloc(num*sizeof(double*));for(i=0;i<num;i++)MatEnhanced[i]=(double*)malloc(2*num*sizeof(double));double*temp;temp=(double*)malloc(2*num*sizeof(double));doublexishu=1;//初等變換時(shí)系數(shù),設(shè)初值為1for(i=0;i<num;i++)//增廣矩陣賦值,前半部分{for(j=0;j<num;j++)MatEnhanced[i][j]=naturalmat[i][j];}for(i=0;i<num;i++)//增廣矩陣賦值,后半部分{for(j=num;j<2*num;j++)MatEnhanced[i][j]=0;//先將后半部分全部賦值為0MatEnhanced[i][i+num]=1;//再將其對(duì)角線部分賦值為1}//接下來(lái)進(jìn)行初等行變換for(i=0;i<num;i++){0,if(MatEnhanced[i][i]==0)//如果前半部分的對(duì)角線上的元素為此時(shí)進(jìn)行行變換{0,if(i==num-1)//如果是最后一行,那么說(shuō)明該矩陣不可returnfalse;//對(duì)第i□□□□□□□□□□,□□□i□□□□□□□□,□□□i行進(jìn)行交換for(j=i;j<num;j++){if(MatEnhanced[j][i]!=0){k=j;//記住該行的行號(hào)break;//退出循環(huán)}}//□□□□□i行和第k行進(jìn)行交換temp=MatEnhanced[k];//第k行MatEnhanced[k]=MatEnhanced[i];MatEnhanced[i]=temp;//初等變換for(j=0;j<num;j++)//對(duì)其他行的所有列進(jìn)行計(jì)算{if(j!=i)//本行不參與計(jì)算{if(MatEnhanced[j][i]!=0)//只有當(dāng)其不為零時(shí)進(jìn)行計(jì)算,否則不計(jì)算{xishu=MatEnhanced[j][i]/MatEnhanced[i][i];for(k=i;k<2*num;k++)//對(duì)后面的所有列進(jìn)行計(jì)算MatEnhanced[j][k]-=xishu*MatEnhanced[i][k];}}}}//將本行所有列都除以對(duì)角線上的值,將前半部分化成單位矩陣xishu=MatEnhanced[i][i];for(j=i;j<2*num;j++)if(xishu!=0)MatEnhanced[i][j]/=xishu;}

//計(jì)算完成后,后半部分即為原矩陣的逆矩陣,將其賦值給for(i=0;i<num;i++){for(j=0;j<

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論