日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言三角分解非奇异矩阵为L、U矩阵

發(fā)布時間:2023/12/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言三角分解非奇异矩阵为L、U矩阵 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

#include<stdio.h>
# define N 4
int main (void)

{

double A[N][N] ?= {0};
double L[N][N] = {0};
double U[N][N] = {0};
double M[N][N] = {0};
double P[N][N] = {0};
double sum1 = 0,sum2 = 0;
int i = 0,j = 0;
int r,k;

printf("請輸入矩陣A:\n");
for(i=0;i<N;i++)
{
? ? printf("第%d行:",i+1);
? ? for(j=0;j<N;j++)
? ? {
? ? ? ? scanf("%lf",&A[i][j]);
? ? }

}
printf("你輸入的矩陣是:\n");
for(i = 0;i<N;i++)
{
? ? for(j = 0;j<N;j++)
? ? {
? ? ? ? printf("%lf\t",A[i][j]);
? ? }
? ? printf("\n");
}

/*計算U和L*/
/*U的第一行*/
for(j = 0;j<N;j++)
{
? ? U[0][j] = A[0][j];
}

/*L的第一列*/
for(i = 0;i<N;i++)
{
? ? L[i][0] = A[i][0]/U[0][0];
}

/*U的第r+1行、L的第r+1列*/
for(r=1;r<N;r++)
{
? ? for(j=0;j<N;j++)
? ? {
? ? ? ? for(k = 0;k<r;k++)
? ? ? ? {
? ? ? ? ? ? sum1 += L[r][k]*U[k][j];
? ? ? ? }
?? ??? ?M[r][j] = sum1;
?? ??? ?U[r][j] = A[r][j] - M[r][j];?? ?
?? ??? ?sum1 = 0;
? ? }
?? ?if(j == 4)
?? ?{
?? ??? ?j = r;
?? ??? ?for(r = 0;r<N;r++)
?? ??? ?{
?? ??? ??? ?for(k = 0;k<j;k++)
?? ??? ??? ?{
?? ??? ??? ??? ?sum2 += L[r][k]*U[k][j];
?? ??? ??? ?}
?? ??? ??? ?P[r][j] = sum2;
?? ??? ??? ?L[r][j] = (A[r][j] - P[r][j])/U[j][j];?
?? ??? ??? ?sum2 = 0;
?? ??? ?}
?? ?}
?? ?r = j;
}

printf("矩陣U是:\n");
for(i = 0;i<N;i++)
{
? ? for(j = 0;j<N;j++)
? ? {
? ? ? ? printf("%.3lf\t",U[i][j]);
? ? }
? ? printf("\n");
}

printf("矩陣L是:\n");
for(i = 0;i<N;i++)
? ? {
? ? for(j = 0;j<N;j++)
? ? {
? ? ? ? printf("%.3lf\t",L[i][j]);
? ? }
? ? printf("\n");
}


return 0;
}
/*咱就說:就這?!*/

總結(jié)

以上是生活随笔為你收集整理的C语言三角分解非奇异矩阵为L、U矩阵的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。