文档介绍:数值分析实验报告(四)
一、实验名称
三角分解法解方程组。
二、实验目的
利用三角分解法解方程组的直接法。
三、题目
利用三角分解法解方程组。
四、程序
#include<>
#include<>
#include<>
#include<>
#define AL 100
#define ROW 100
void main(){
int n;
double A[AL][ROW];
double b[AL];
int i,j;
char flag='n';
cout<<"输入方程的阶数: "<<endl;
cin>>n;
cout<<"输入方程的系数矩阵A: "<<endl;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>A[i][j];
cout<<"输入方程的常数项b: "<<endl;
for(i=0;i<n;i++)
cin>>b[i];
cout<<endl;
//.........计算L矩阵和U矩阵(都放到A矩阵里)..........
int k;
double sum_1=0;
for(k=0;k<n-1;k++){//循环
//L矩阵算法
for(i=k+1;i<n;i++){
sum_1=0;
for(int m=0;m<k;m++)
sum_1+=A[i][m]*A[m][k];
A[i][k]=(A[i][k]-sum_1)/A[k][k];
}
//U矩阵算法
for(i=k+1;i<n;i++){
sum_1=0;
for(int m=0;m<k+1;m++)
sum_1+=A[k+1][m]*A[m][i];
A[k+1][i]-=sum_1;
}
}
//.............. LUX=b ......................
//第一步:UX=X_*,算LX_*=b,得到Y(即b[i])
cout<<"第一步:UX=X_*,算LX_*=b,得到Y"<<endl;
for(i=0;i<n;i++){
sum_1=0;
for(j=i;j>0;j--)
sum_1+=A[i][j-1]*b[j-1];
b[