📄 matrix.cpp
字号:
#include <iostream.h>
#include <stdio.h>
#define N 5 //定义一个3*3的矩阵,改变N可以改变矩阵的大小
int i,j,k,r;
int a[N][N];
int l[N][N],u[N][N];
//下面这个是直接三角法的第2步公式
void add(int r,int i)
{
int b=0;
for(k=0;k<=r-1;k++)
b+= l[r][k]*u[k][i];
u[r][i]=a[r][i]-b;
}
//下面这个是直接三角法的第3步公式
void add2(int i,int r)
{
int d=0;
for(k=0;k<=r-1;k++)
d+=l[i][k]*u[k][r];
l[i][r]=(a[i][r]-d)/u[r][r];
}
//主函数
void main()
{
//输入矩阵
for(i=0;i<=N-1;i++)
for(j=0;j<=N-1;j++)
scanf("%d",&a[i][j]);
//将矩阵输出
cout<<"原始矩阵A:"<<endl;
for(j=0;j<=N-1;j++)
{
for(i=0;i<=N-1;i++)
{
cout<<a[j][i]<<"\t";
}
cout<<endl;
}
//直接三角法的第一步
for(i=0;i<=N-1;i++)
{
u[0][i]=a[0][i];
l[i][0]=a[i][0]/u[0][0];
l[i][i]=1;
}
//计算
for(i=1;i<=N-2;i++)
{
for(j=i;j<=N-1;j++)
add(i,j);
for(j=i+1;j<=N-1;j++)
add2(j,i);
}
add(2,N-1);
cout<<"输出矩阵u:"<<endl;
for(j=0;j<=N-1;j++)
{
for(i=0;i<=N-1;i++)
{
cout<<u[j][i]<<"\t";
}
cout<<endl;
}
cout<<"输出矩阵l:"<<endl;
for(j=0;j<=N-1;j++)
{
for(i=0;i<=N-1;i++)
{
cout<<l[j][i]<<"\t";
}
cout<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -