資源簡介
高斯列主消元法 LU分解法 迭代法求解線性方程組
高斯列主消元法 LU分解法 迭代法求解線性方程組
高斯列主消元法 LU分解法 迭代法求解線性方程組
高斯列主消元法 LU分解法 迭代法求解線性方程組
高斯列主消元法 LU分解法 迭代法求解線性方程組

代碼片段和文件信息
import?java.util.Scanner;
public?class?Duri_Ritter?{
/**
?*?@杜里特爾法求解線性方程組
?*/
static?double?a[][];
static?double?b[];
static?double?x[];
static?int?n;
public?static?void?LU(){//將系數(shù)矩陣進(jìn)行LU分解
for(int?j=2;j<=n;j++)
a[j][1]=a[j][1]/a[1][1];
for(int?r=2;r<=n;r++)
{
for(int?i=r;i<=n;i++)
a[r][i]=a[r][i]-jisuan(ri);
for(int?i=r+1;i<=n;i++)
a[i][r]=(a[i][r]-jisuan1(ri))/a[r][r];
}???
PrintA();
}
public?static?void?Jie_xy(){
x[1]=b[1];
for(int?i=2;i<=n;i++)
x[i]=b[i]-jisuan2(i);
PrintX(0);
x[n]=x[n]/a[n][n];
for(int?i=n-1;i>=1;i--)
x[i]=(x[i]-jisuan3(i))/a[i][i];
PrintX(1);
}
public?static?void?HL(){//計算系數(shù)矩陣A的行列式
double?cj=1.0;
for(int?i=1;i<=n;i++)
cj=cj*a[i][i];
System.out.println(“A的行列式:|A|?=?“+cj);
}
public?static?double?jisuan(int?rint?i){
double?Sum=0.0;
for(int?k=1;k<=r-1;k++)
Sum=Sum+a[r][k]*a[k][i];
return?Sum;
}
public?static?double?jisuan1(int?rint?i){
double?Sum=0.0;
for(int?k=1;k<=r-1;k++)
Sum=Sum+a[i][k]*a[k][r];
return?Sum;
}
public?static?double?jisuan2(int?i){
double?Sum=0.0;
for(int?k=1;k<=i-1;k++)
Sum=Sum+a[i][k]*x[k];
return?Sum;
}
public?static?double?jisuan3(int?i){
double?Sum=0.0;
for(int?k=i+1;k<=n;k++)
Sum=Sum+a[i][k]*x[k];
return?Sum;
}
public?static?void?PrintA(){//輸出矩陣A
System.out.println(“分解后的矩陣A:“);
for(int?i=1;i<=n;i++)
{
for(int?j=1;j<=n;j++)
System.out.print(a[i][j]+“????“);
System.out.print(“\n“);
}
}
public?static?void?PrintX(int?x1){//輸出數(shù)組X
if(x1==0)?System.out.println(“方程組Ly=b的解為:“);
else?System.out.println(“方程組Ux=y的解為:“);
for(int?i=1;i<=n;i++)
{
if(x1==0)
System.out.print(“y“+i+“?=?“+x[i]+“????“);
else?System.out.print(“x“+i+“?=?“+x[i]+“????“);
}
System.out.print(“\n“);
}
public?static?void?main(String[]?args)?{
Scanner?as=new?Scanner(System.in);
????????System.out.println(“輸入方程組的元數(shù):“);
????????n=as.nextInt();
????????a=new?double[n+1][n+1];
????????b=new?double[n+1];
????????x=new?double[n+1];
????????System.out.println(“輸入方程組的系數(shù)矩陣a:“);
????????for(int?i=1;i<=n;i++)
???????? for(int?j=1;j<=n;j++)
???????? a[i][j]=as.nextDouble();
????????System.out.println(“輸入方程組矩陣b:“);
????????for(int?i=1;i<=n;i++)
???????? b[i]=as.nextDouble();
????????LU();
????????Jie_xy();
????????HL();
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2510??2009-11-30?18:00??Duri_Ritter.java
?????文件???????2839??2009-11-30?13:31??Gauss.java
?????文件???????1983??2009-11-30?19:26??Gauss_Seidel.java
-----------?---------??----------?-----??----
?????????????????7332????????????????????3
評論
共有 條評論