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

📄 calculator.java

📁 基于j2me的高等代数计算工具
💻 JAVA
字号:
package edu.neu.aatk;

public class Calculator {
	private double [][] matrix;
	private double [][] matrix1;
	private double [][] matrix2;
	
	private int xValue;
	private int yValue;
	private int xValue1;
	private int yValue1;
	private int xValue2;
	private int yValue2;
	
	public Calculator(double matrix[][]) {
		this.matrix = matrix;
		xValue = matrix.length;
		yValue = matrix[0].length;
	}
	
	public Calculator(double matrix1[][], double matrix2[][]) {
		this.matrix1 = matrix1;
		this.matrix2 = matrix2;
		xValue1 = matrix1.length;
		yValue1 = matrix1[0].length;
		xValue2 = matrix2.length;
		yValue2 = matrix2[0].length;
		
	}
	
	public void guass() {
		double k=0; 
		for (int p = 0; p<matrix[0].length-1; p++) { 
			for (int r =p+1; r<matrix.length; r++) {
				if(matrix[p][p] != 0)
					k=matrix[r][p]/matrix[p][p];
				else
					k=0;
				matrix[r][p]=0; 
				for (int c = p+1; c< matrix[0].length; c++) { 
					matrix[r][c]=matrix[r][c]-k*matrix[p][c]; 
				}
			}
		}
	}
	
	public double hlsqz() {
		double result = 1;
		guass();
		
		for(int i=0;i<xValue;i++) {
			result *= matrix[i][i];
		}
		return result;
	}
	
	public boolean pdjzknx() {
		if(xValue == yValue && hlsqz() != 0)
			return true;
		else
			return false;
	}
	
	public void printMatrix() {
		System.out.println("Printing...");
		
		for(int i=0;i<xValue;i++) {
			for(int j=0;j<yValue;j++) {
				System.out.print(matrix[i][j] + "\t");
			}
			System.out.println();
		}
		
	}
	
	public int qjzdz() {
		int z = xValue;
		int count = 0;
		
		guass();
		for(int i=0; i<xValue; i++) {
			count = 0;
			for(int j=0; j<yValue; j++) {
				if(matrix[i][j] == 0 || matrix[i][j] == Double.longBitsToDouble(0x7fefffffffffffffL))
					count ++;
			}
			if(count == yValue)
				z --;
		}
		return z;
	}

	public String jzjf() {
		String result = "";
		matrix = new double[xValue1][yValue1];
		
		for(int i = 0; i < xValue1; i++) {
			for(int j = 0; j < yValue1; j++) {
				matrix[i][j] = matrix1[i][j] + matrix2[i][j];
			}
		}
		
		for(int i = 0; i < xValue1; i++) {
			for(int j = 0; j < yValue1; j++) {
				result = result + "x" + (i + 1) + ", y" + (j + 1) 
					+ " = " + matrix[i][j] + "\n";
			}
		}
		
		return result;

	}
	

	public String jzcf() {
		String result = "";
		xValue = xValue1;
		yValue = yValue2;
		matrix = new double[xValue][yValue];
		
		for(int i = 0; i < xValue; i++) {
			for(int j = 0; j< yValue; j++) {
				int sum = 0;
				for(int k = 0; k < yValue1; k++) {
					sum += matrix1[i][k] * matrix2[k][j];
				}
				matrix[i][j] = sum;
			}
		}
		
		for(int i = 0; i < xValue; i++) {
			for(int j = 0; j < yValue; j++) {
				result = result + "x" + (i + 1) + ", y" + (j + 1) 
				+ " = " + matrix[i][j] + "\n";
			}
		}
		
		return result;
	}
	
	public static String divDouble(double d) {
		String str = Double.toString(d);
		StringBuffer strBuf = new StringBuffer(str);
		int pos = str.indexOf(".");
		int length = str.length();
		
		if(pos + 3 > length)
			strBuf.append('0');
		else
			strBuf.delete(pos + 3, length + 1);
		
		return strBuf.toString();
	}
	
	public String qnjz() {
		String result = "";
		int dim = xValue;
	    double[] tMatrix = new double[2*dim*dim];
	    double[] pMatrix = new double[dim*dim];
	    double[] _pMatrix = new double[dim*dim];
	    
	    for(int i = 0; i < dim; i++) {
	    	for(int j = 0; j < dim; j++)
	    		pMatrix[i * dim + j] = matrix[i][j];
	    }
	    
	    for (int i=0; i<dim; i++){
	        for (int j=0; j<dim; j++)
	            tMatrix[i*dim*2+j] = pMatrix[i*dim+j];        
	    }
	    for (int i=0; i<dim; i++){
	        for (int j=dim; j<dim*2; j++)
	            tMatrix[i*dim*2+j] = 0.0;
	        tMatrix[i*dim*2+dim+i]  = 1.0;        
	    }
	    //Initialization over!
	    for (int i=0; i<dim; i++)//Process Cols
	    {
	        double base = tMatrix[i*dim*2+i];
	        for (int j=0; j<dim; j++)//row
	        {
	            if (j == i) continue;
	            double times = tMatrix[j*dim*2+i]/base;
	            for (int k=0; k<dim*2; k++)//col
	            {        
	                tMatrix[j*dim*2+k] = tMatrix[j*dim*2+k] - times*tMatrix[i*dim*2+k];
	            }
	        }        
	        for (int k=0; k<dim*2; k++){
	            tMatrix[i*dim*2+k] /= base;
	        }
	    }
	    for (int i=0; i<dim; i++)
	    {
	        for (int j=0; j<dim; j++)
	            _pMatrix[i*dim+j] = tMatrix[i*dim*2+j+dim];        
	    }    
	    
		for(int i = 0; i < dim; i++) {
			for(int j = 0; j < dim; j++) {
				result = result + "x" + (i + 1) + ", y" + (j + 1) 
				+ " = " + _pMatrix[i * dim + j] + "\n";
			}
		}
		
		return result;
	}
}

⌨️ 快捷键说明

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