




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGEPAGE5第二步:求L和U矩陣的逆,(1)求U矩陣的逆由式(9)可得矩陣U的逆的各元素計算如下:(2)求L矩陣的逆由(8)式可得L矩陣的逆的各元素計算如下所以得到L和U的逆矩陣為:(3)求A的逆矩陣由式(10)可計算得到矩陣A的逆,如下:由程序計算出的結果如下:2、C語言程序設計及測試2.1算法c程序實現#include<stdio.h>#include<string.h>#defineN4voidmain(){floata[N][N];floatL[N][N],U[N][N],out[N][N],out1[N][N];floatr[N][N],u[N][N];memset(a,0,sizeof(a));memset(L,0,sizeof(L));memset(U,0,sizeof(U));memset(r,0,sizeof(r));memset(u,0,sizeof(u));intn=N;intk,i,j;intflag=1;floats,t;////////////////////inputamatrix////printf("\ninputA=");for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%f",&a[i][j]);//////////////////figuretheinputmatrix//////////////////////////printf("輸入矩陣:\n");for(i=0;i<n;i++){ for(j=0;j<n;j++) { printf("%lf",a[i][j]); } printf("\n");}for(j=0;j<n;j++)a[0][j]=a[0][j];//計算U矩陣的第一行for(i=1;i<n;i++)a[i][0]=a[i][0]/a[0][0];//計算L矩陣的第1列for(k=1;k<n;k++){for(j=k;j<n;j++){s=0;for(i=0;i<k;i++)s=s+a[k][i]*a[i][j];//累加a[k][j]=a[k][j]-s;//計算U矩陣的其他元素}for(i=k+1;i<n;i++){t=0;for(j=0;j<k;j++)t=t+a[i][j]*a[j][k];//累加a[i][k]=(a[i][k]-t)/a[k][k];//計算L矩陣的其他元素}}for(i=0;i<n;i++)for(j=0;j<n;j++){if(i>j){L[i][j]=a[i][j];U[i][j]=0;}//如果i>j,說明行大于列,計算矩陣的下三角部分,得出L的值,U的//為0else{U[i][j]=a[i][j];if(i==j)L[i][j]=1;//否則如果i<j,說明行小于列,計算矩陣的上三角部分,得出U的//值,L的為0elseL[i][j]=0;}}if(U[1][1]*U[2][2]*U[3][3]*U[4][4]==0){ flag=0;printf("\n逆矩陣不存在");}if(flag==1){/////////////////////求L和U矩陣的逆for(i=0;i<n;i++)/*求矩陣U的逆*/{u[i][i]=1/U[i][i];//對角元素的值,直接取倒數for(k=i-1;k>=0;k--){s=0;for(j=k+1;j<=i;j++)s=s+U[k][j]*u[j][i];u[k][i]=-s/U[k][k];//迭代計算,按列倒序依次得到每一個值,}}for(i=0;i<n;i++)//求矩陣L的逆{r[i][i]=1;//對角元素的值,直接取倒數,這里為1for(k=i+1;k<n;k++){for(j=i;j<=k-1;j++)r[k][i]=r[k][i]-L[k][j]*r[j][i];//迭代計算,按列順序依次得到每一個值}}/////////////////繪制矩陣LU分解后的L和U矩陣///////////////////////printf("\nLU分解后L矩陣:");for(i=0;i<n;i++){printf("\n");for(j=0;j<n;j++)printf("%lf",L[i][j]);}printf("\nLU分解后U矩陣:");for(i=0;i<n;i++){printf("\n");for(j=0;j<n;j++)printf("%lf",U[i][j]);}printf("\n");////////繪制L和U矩陣的逆矩陣printf("\nL矩陣的逆矩陣:");for(i=0;i<n;i++){printf("\n");for(j=0;j<n;j++)printf("%lf",r[i][j]);}printf("\nU矩陣的逆矩陣:");for(i=0;i<n;i++){printf("\n");for(j=0;j<n;j++)printf("%lf",u[i][j]);}printf("\n");//驗證將L和U相乘,得到原矩陣printf("\nL矩陣和U矩陣乘積\n");for(i=0;i<n;i++) { for(j=0;j<n;j++) {out[i][j]=0;}}for(i=0;i<n;i++) { for(j=0;j<n;j++) { for(k=0;k<n;k++) {out[i][j]+=L[i][k]*U[k][j];} }}for(i=0;i<n;i++){ for(j=0;j<n;j++) { printf("%lf\t",out[i][j]); }printf("\r\n");}//////////將r和u相乘,得到逆矩陣printf("\n原矩陣的逆矩陣:\n");for(i=0;i<n;i++) { for(j=0;j<n;j++) {out1[i][j]=0;}}for(i=0;i<n;i++) { for(j=0;j<n;j++) { for(k=0;k<n;k++) {out1[i][j]+=u[i][k]*r[k][j];} }}fo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 荷塘蓮藕種植與農業保險合作委托經營管理協議
- 愛爾蘭外貿協議書
- 鉆孔灌注樁質量協議書
- 舊手機買賣協議書
- 營養土供貨協議書
- 影視動畫色彩校準儀租賃與色彩校正技術指導協議
- 探視權時間爭議調解及實施保障合同
- 宅基地房子協議書
- 美食街攤位出租協議書
- 烤煙房用地協議書
- GB/T 6287-1986分子篩靜態水吸附測定方法
- GB/T 12359-2008梯形螺紋極限尺寸
- 企業統計基礎工作規范化建設工作總結范文
- 安全生產物資領用登記表
- 玉雕教學講解課件
- 國開電大農村社會學形考任務1-4答案
- DBJ51-T 198-2022 四川省既有民用建筑結構安全隱患排查技術標準
- 數控加工中心培訓課件
- 2分鐘雙人相聲劇本
- 小學數學節低年級一二年級七巧板競賽試題
- 輪扣架支撐模板施工方案(169頁)
評論
0/150
提交評論