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

📄 sample3_15.java

📁 《Java数值计算算法编程》随书代码 已生成DOCS说明文件
💻 JAVA
字号:
/*
 * 示例程序Sample3_15: Matrix类的实对称三对角阵的全部特征值与特征向量的计算
 */
package javaalgorithm.sample;

import javaalgorithm.algorithm.Matrix;

public class Sample3_15 
{
	public static void main(String[] args) 
	{
		// 矩阵数据
		double[] mtxData16 = {
				10.0,1.0,2.0,3.0,4.0,
				1.0,9.0,-1.0,2.0,-3.0,
				2.0,-1.0,7.0,3.0,-5.0,
				3.0,2.0,3.0,12.0,-1.0,
				4.0,-3.0,-5.0,-1.0,15.0};

		// 构造矩阵
		Matrix mtx16 = new Matrix(5, 5, mtxData16);

		// 实对称三对角阵的全部特征值与特征向量的计算
		Matrix mtxQ2 = new Matrix();
		Matrix mtxT2 = new Matrix();
		double[] bArray2 = new double[mtx16.getNumColumns()];
		double[] cArray2 = new double[mtx16.getNumColumns()];
		// 1: 约化对称矩阵为对称三对角阵: 豪斯荷尔德变换法
		if (mtx16.makeSymTri(mtxQ2, mtxT2, bArray2, cArray2))
		{
			// 2: 计算全部特征值与特征向量
			if (mtx16.computeEvSymTri(bArray2, cArray2, mtxQ2, 60, 0.0001))
			{
				System.out.println("特征值=");
				String s = "";
				for (int i=0; i<mtxQ2.getNumColumns(); ++i)
				{
					s += new Float(bArray2[i]).toString() + ", ";
				}
				System.out.println(s);
				System.out.println("-------------------------------"); 
				System.out.println("对应的特征向量=");
				for (int i=0; i<mtxQ2.getNumColumns(); ++i)
				{
					System.out.println(mtxQ2.toStringCol(i, ", "));
				}
			}
			else
			{
				System.out.println("失败");
			}
		}
		else
		{
			System.out.println("失败");
		}
	}
}

⌨️ 快捷键说明

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