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

📄 qr_decomposition.java

📁 用QR分解来求矩阵的全部特征值 包括:QR分解
💻 JAVA
字号:
import java.math.*;

public class QR_Decomposition {
	public static GetArray QR(double[][] a,double[][] q,int n ){
		int i,j,k;
		double[][] R=new double[5][5];
		double c,s,sq;
		double[] ai=new double[5];
		double[] aj=new double[5];
		double[] qi=new double[5];
		double[] qj=new double[5];
		Matrix_Transpose transpose=new Matrix_Transpose();
		GetArray getarray=new GetArray();
		
		for(j=0;j<n;j++)
			for(i=j+1;i<n;i++){
				sq=Math.sqrt(a[j][j]*a[j][j]+a[i][j]*a[i][j]);
				c=a[j][j]/sq;
				s=a[i][j]/sq;
				for(k=0;k<n;k++){
					aj[k]=c*a[j][k]+s*a[i][k];
					qj[k]=c*q[j][k]+s*q[i][k];
					ai[k]=-s*a[j][k]+c*a[i][k];
					qi[k]=-s*q[j][k]+c*q[i][k];          
				}
				for(k=0;k<n;k++){
					a[j][k]=aj[k];
					q[j][k]=qj[k];
					a[i][k]=ai[k];
					q[i][k]=qi[k];				
				}
			}
		R=a;	
		q=transpose.Tranpose(q, n);
		getarray.GetData(R, q);	
		return getarray;		
	}
	
/*	public static void main(String[] args){
		double[][] A={{1,3},{3,1}};
		double[][] Q={{1,0},{0,1}};
		double[][] R= new double[5][5];     
		int n=A.length;
		int i,j,k;
		
		GetArray getarray=QR(A,Q,n);   //QR Decomposition
		R=getarray.array1;
		Q=getarray.array2;
		
		for(i=0;i<n;i++){
			for(j=0;j<n;j++)
				System.out.print(R[i][j]+" ");
			System.out.println();
		}		
	}*/
}

⌨️ 快捷键说明

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