sample3_18.cs

来自「C#的数值计算的几乎所有算法」· CS 代码 · 共 50 行

CS
50
字号
/*
 * 示例程序Sample3_18: Matrix类的求实对称矩阵特征值与特征向量的雅可比法
 */

using System;
using CSharpAlgorithm.Algorithm;

namespace CSharpAlgorithm.Sample
{
	class Class1
	{
		[STAThread]
		static void Main(string[] args)
		{
            // 矩阵数据
            double[] mtxData19 = {
                                     2.0,-1.0,0.0,
                                     -1.0,2.0,-1.0,
                                     0.0,-1.0,2.0};

            // 构造矩阵
            Matrix mtx19 = new Matrix(3, 3, mtxData19);

            // 求实对称矩阵特征值与特征向量的雅可比法
            double[] valArray = new double[mtx19.GetNumColumns()];
            Matrix mtxVV = new Matrix();
            if (mtx19.ComputeEvJacobi(valArray, mtxVV, 100, 0.0001))
            {
                Console.WriteLine("特征值=");
                String s = "";
                for (int i=0; i<mtx19.GetNumColumns(); ++i)
                {
                    s += valArray[i] + ", ";
                }
                Console.WriteLine(s);
                Console.WriteLine("-------------------------------"); 
                Console.WriteLine("对应的特征向量=");
                for (int i=0; i<mtx19.GetNumColumns(); ++i)
                {
                    Console.WriteLine(mtxVV.ToStringCol(i, ", "));
                }
            }
            else
            {
                Console.WriteLine("失败");
            }		
        }
	}
}

⌨️ 快捷键说明

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