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

📄 sanjiao.java

📁 数值方法实验:自己用java写的一个数值方法三角消元程序
💻 JAVA
字号:
import java.io.*;
import java.lang.Math.*;
public class sanjiao {
	public static void main(String[] args) {
		String s1,s2;
		int m=0,n=0;		
		System.out.println("请输入要计算的矩阵的行数:");
		try{
			BufferedReader br=
				new BufferedReader(new InputStreamReader(System.in));
			s1=br.readLine();
			m=Integer.parseInt(s1);		
		}catch(IOException e){}	
               System.out.println("请输入要计算的矩阵的列数:");
		try{
			BufferedReader br=
				new BufferedReader(new InputStreamReader(System.in));
			s2=br.readLine();
			n=Integer.parseInt(s2);		
		}catch(IOException e){}	
	   	
		String r[][]=new String[m][n];
		double a[][]=new double[m][n];		
		System.out.print("请输入矩阵:");
		for(int i=0;i<m;i++){
			for(int j=0;j<n;j++){
	try{
		BufferedReader in=
		         new BufferedReader(new InputStreamReader(System.in));
		 r[i][j]=in.readLine();
		 a[i][j]=Double.parseDouble(r[i][j]);
		 
		} catch(IOException e){}	
	}
		}	
	        System.out.println("你输入的矩阵为:");
               
		for(int i=0;i<m;i++){
			for(int j=0;j<n;j++){
		System.out.print(a[i][j]);
                System.out.print("\t");		
	}
                System.out.println();
}        
   
         double b[][]=new double[m][m];	
         
         double sum=0,c=0;
     System.out.println("中间矩阵为:");

         for(int j=0;j<m;j++){
         for(int i=0;i<m;i++){
         if(i==j){
         for(int k=0;k<=i-1;k++){
         c=b[i][k]*b[i][k];
         sum=sum+c;
}
        b[j][j]=(double)Math.sqrt(a[i][j]-sum);

}
        if(i>j){
        for(int k=0;k<=j-1;k++){
            c=b[i][k]*b[j][k];
            sum=sum+c;
}   

try{
        b[i][j]=(a[i][j]-sum)/b[j][j];

        }catch(ArithmeticException   e){   
              System.out.println("devided   by   0");}          
}   
    
        System.out.println("b["+i+"]["+j+"]:"+b[i][j]);
 }        
}

    System.out.println("中间量Y为:");	
        double y[][]=new double[m][1];	
        for(int i=0;i<m;i++) {
        for(int k=0;k<i-1 ;k++)
        {
         c=b[i][k]*y[k][0];
        sum=sum+c;
}

try{
        y[i][0]=(a[i][n-1]-sum)/b[i][i];     

 }catch(ArithmeticException   e){   
              System.out.println("devided   by   0");}          
      
        System.out.println("y["+i+"][0]:"+y[i][0]);
}


  System.out.println("所求的X为:");

  double x[][]=new double[m][1];	

        for(int i=m-1;i>-1;i--) {
        for(int k=m-1;k>i ;k--)
        {
         c=b[k][i]*x[k][0];
        sum=sum+c;
}
try{
        x[i][0]=(y[i][0]-sum)/b[i][i];     

 }catch(ArithmeticException   e){   
              System.out.println("devided   by   0");}          
 
        System.out.println("x["+i+"][0]:"+x[i][0]);
}

}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -