#include<stdio.h>
#define N 100
/*输入函数*/
void input(float a[][N],int n)
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n+1;j++)
scanf("%f",&a[i][j]);
}
/*拆分函数*/
void split(float A[][N],float a[][N],float b[][1],int n)
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j]=A[i][j];
for(i=0;i<n;i++)
b[i][0]=A[i][n];
}
/*输出函数*/
void output(float x[][1],int n)
{
int i;
for(i=0;i<n;i++)
printf("x(%d)=%f\n",i+1,x[i][0]);
}
/*消元函数*/
void eliminate(float a[][N],float b[][1],int k,int n)
{
int i,j;
float m;
for(i=k+1;i<n;i++)
{
m=a[i][k]/a[k][k];
b[i][0]=b[i][0]-m*b[k][0];
for(j=k;j<n;j++)
a[i][j]=a[i][j]-m*a[k][j];
}
}
/*回代函数*/
void back(float a[][N],float b[][1],int n)
{
int i,j;
float s;
b[n-1][0]=b[n-1][0]/a[n-1][n-1];
for(i=n-2;i>=0;i--)
{
s=0;
for(j=i+1;j<n;j++)
s=s+a[i][j]*b[j][0];
b[i][0]=(b[i][0]-s)/a[i][i];
}
}
/*初始化函数*/
void initialize(float a[N][N],int n)
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j]=0;
}
/*矩阵分解函数*/
void disassemble(float a[][N],float b[][1],float l[][N],float u[][N],int n)
{
int i,j,k;
float s,m,p;
for(i=0;i<n;i++)
u[0][i]=a[0][i];
for(i=0;i<n;i++)
l[i][0]=a[i][0]/u[0][0];
for(i=1;i<n;i++)
{
for(j=i;j<n;j++)
{
s=0;
m=0;
for(k=0;k<i;k++)
s+=l[i][k]*u[k][j];
u[i][j]=a[i][j]-s;
for(k=0;k<i;k++)
m+=l[j][k]*u[k][i];
l[j][i]=(a[j][i]-m)/u[i][i];
}
p=0;
for(k=0;k<i;k++)
p+=l[i][k]*b[k][0];
b[i][0]=b[i][0]-p;
}
}
/*显示函数*/
void show(float a[][N],int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%f ",a[i][j]);
printf("\n");
}
}
/*主函数*/
void main()
{
float A[N][N],a[N][N],b[N][1],u[N][N],l[N][N];
int n;
printf("请输入方程未知数的个数:\n");
scanf("%d",&n);
initialize(u,n); /*初始化u矩阵*/
initialize(l,n); /*初始化l矩阵*/
printf("请输入所求线性代数方程组的增广矩阵:\n");
input(A,n); /*输入矩阵*/
split(A,a,b,n); /*将增广矩阵拆分为系数矩阵与列矩阵*/
disassemble(a,b,l,u,n); /*拆分系数阵*/
printf("L=\n");
show(l,n); /*显示l矩阵*/
printf("U=\n");
show(u,n); /*显示u矩阵*/
back(u,b,n); /*回代*/
printf("求解方程为:\n");
output(b,n); /*输出结果*/
}
LU-decomposition.rar_decomposition
版权申诉
187 浏览量
2022-09-19
21:55:33
上传
评论
收藏 110KB RAR 举报
Kinonoyomeo
- 粉丝: 74
- 资源: 1万+
最新资源
- 5uonly.apk
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
- 基于MIC+NE555光敏电阻的声光控电路Multisim仿真原理图
- 基于JSP毕业设计-基于WEB操作系统课程教学网站的设计与实现(源代码+论文).zip
- 基于LM324和LM386的音响放大器Multisim仿真+PCB电路原理图
- Python机器学习与数据挖掘环境配置与库验证
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈