⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lzy11.java

📁 数值分析之计算方法与实验3:线性方程组数值解法 by java
💻 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 + -