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

📄 gaussian.java

📁 数值计算(科学计算)实验代码高斯消元楚列斯基分解
💻 JAVA
字号:
import java.math.*;

public class Gaussian {
	public double[] Gaussian(double[][] a, double[] b, int n) {
		// double[] x=new double[n];
		double d = 0, t = 0, sum = 0;
		int k = 0, l = 0, i = 0, j = 0;
		while (k < n) {
			// *****选主元素*****

			d = a[k][k];
			l = k;

			for (i = k + 1; i < n; i++) {
				if (Math.abs(a[i][k]) > Math.abs(d)) {
					d = a[i][k];
					l = i;
				}
			}
			if (l != k) {
				for (j = k; j < n; j++) {
					t = a[l][j];
					a[l][j] = a[k][j];
					a[k][j] = t;
				}
				t = b[k];
				b[k] = b[l];
				b[l] = t;
			}
			// **************
			// *****消元*****
			for (j = k + 1; j < n; j++) {
				a[k][j] = a[k][j] / a[k][k];
			}
			b[k] = b[k] / a[k][k];

			for (i = k + 1; i < n; i++) {
				for (j = k + 1; j < n; j++) {
					a[i][j] = a[i][j] - a[i][k] * a[k][j];
				}
				j = 0;
				b[i] = b[i] - a[i][k] * b[k];
			}
			k++;
			// **************
		}
		// *****回代*****
		for (i = n - 2; i >= 0; i--) {
			sum = 0;
			for (j = i + 1; j < n; j++) {
				sum = sum + a[i][j] * b[j];
			}
			b[i] = b[i] - sum;
		}
		// **************
		return b;
	}
}

⌨️ 快捷键说明

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