📄 lzy11.java
字号:
import java.io.*;
class Lzy11{
static double a[][]={{1,1,0,3,4},
{2,1,-1,1,1},
{3,-1,-1,3,-3},
{-1,2,3,-1,4},
{0,0,0,0,0}};
//寻找列主元
static int max(int k){
int m=k;
for(int i=k;i<3;i++)
if(a[m][k]<a[i+1][k])m=i+1;
return m;
}
public static void main(String[]args)throws IOException{
PrintWriter out = new PrintWriter(new FileWriter("result.txt"));
for(int k=0;k<3;k++){
int i=max(k);
if(a[i][k]==0)out.println("矩阵奇异");
//交换
if(i!=k){
for(int j=k;j<5;j++){
a[4][j]=a[k][j];
a[k][j]=a[i][j];
a[i][j]=a[4][j];
}
}
//消元
for(i=k+1;i<4;i++){
double l=a[i][k]/a[k][k];
for(int j=k;j<5;j++)
a[i][j]=a[i][j]-a[k][j]*l;
}
}
//回代
if(a[3][3]==0.0)out.println("矩阵奇异");
else{ double x[]=new double[4];
x[3]=a[3][4]/a[3][3];
for(int i=2;i>=0;i--){
double sum=0;
for(int j=i+1;j<=3;j++)
sum=sum+a[i][j]*x[j];
x[i]=(a[i][4]-sum)/a[i][i];
}
//显示
for(int m=0;m<4;m++)out.println("x["+(m+1)+"]="+x[m]); }
out.close();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -