将方阵化为上Hessenberg矩阵
来源:互联网 发布:恒久软件 编辑:程序博客网 时间:2024/05/16 15:23
上Hessenberg矩阵
形如把
b =
[ 54.0000000000000 40.0000000000000 10.0000000000000 76.0000000000000
47.0000000000000 20.0000000000000 94.0000000000000 49.0000000000000
26.0000000000000 80.0000000000000 94.0000000000000 70.0000000000000
3.00000000000000 92.0000000000000 83.0000000000000 45.0000000000000 ]
化为:
b1 =
[ 54.0000000000000 50.3829787234043 82.9789551473672 10.0000000000000
47.0000000000000 75.1276595744681 114.602178385252 94.0000000000000
0.00000000000000 135.991851516523 95.6102950602596 77.0000000000000
0.00000000000000 0.00000000000000 5.47923255500914 -11.737954634727 ]
的这种矩阵。b1的特点是在矩阵的下三角部分的次对焦线元素不为0外,其它元素均为0,则b1就叫做b的上H(Hessenberg)矩阵 。
注意:Hessenberg矩阵与原矩阵的行列式、特征值均相同。
//*********************************************************************************************************************************
下面是代码的实现。
Math_Matrix_Hessenberg(A,n,ret)
A:我们要转化的n阶方阵
n:方阵A的阶数
ret:转化成功的n阶方阵(其就是我们要的值)
函数返回值为n
Public Function Math_Matrix_Hessenberg(ByVal A(,) As Double, ByVal n As Int16, ByRef ret(,) As Double) As Int16
Dim i As Int16
Dim j As Int16
Dim k As Int16
Dim temp As Double
Dim MaxNumber As Int16
n -= 1
ReDim ret(n, n)
For k = 1 To n - 1
i = k - 1
MaxNumber = k
temp = Math.Abs(A(k, i))
For j = k + 1 To n
If Math.Abs(A(j, i)) > temp Then
MaxNumber = j
End If
Next
ret(0, 0) = A(MaxNumber, i) '储存最大值
i = MaxNumber
If ret(0, 0) <> 0 Then
If i <> k Then
For j = k - 1 To n
temp = A(i, j)
A(i, j) = A(k, j)
A(k, j) = temp
Next
For j = 0 To n
temp = A(j, i)
A(j, i) = A(j, k)
A(j, k) = temp
Next
End If
For i = k + 1 To n
temp = A(i, k - 1) / ret(0, 0)
A(i, k - 1) = 0
For j = k To n
A(i, j) -= temp * A(k, j)
Next
For j = 0 To n
A(j, k) += temp * A(j, i)
Next
Next
End If
Next
For i = 0 To n
For j = 0 To n
ret(i, j) = A(i, j)
Next
Next
Return n + 1
End Function
- 将方阵化为上Hessenberg矩阵
- Java之Hessenberg矩阵
- 矩阵的拟上三角化(Hessenberg矩阵)
- Householder变换将对称矩阵化为三对角形式
- Matlab之将非严格占优矩阵化为严格占优矩阵
- 将流转化为字符串
- 打印螺旋矩阵(方阵)
- python 非方阵矩阵求解
- 生成螺旋矩阵(方阵、矩阵)
- 将对象序列化为XML
- 将真分数化为埃及分数:
- Java将流转化为文件
- 将json文件格式化为protobuf
- MATLAB中求非方阵的广义逆矩阵
- 为什么只有方阵有逆矩阵? 证明
- 方阵的逆矩阵的求法
- 方阵
- 将一个方阵旋转90度
- Github
- 在MVC5中使用Ninject
- scsi学习笔记
- windows快捷键
- 中国微信在哪些国家被“拉黑”
- 将方阵化为上Hessenberg矩阵
- Linux系统分区方案建议
- 《Java虚拟机原理图解》 1.1、class文件基本组织结构
- hdoj 1207 汉诺塔II 【dp】
- 学习记录--Java数据导出到excel
- 串口应用编程
- scsi总线驱动的初始化
- 透過jQuery的Ajax,呼叫server端的aspx,回傳JSON格式的資料
- cocos2d-x-3.3rc2-003 cocos中的引用计数和自动释放池