谁能帮我把这一段改成VB代码啊?谢谢
C# 版本
public void cholfree(MAT A, out MAT L, out VEC D)
{
/*------------------------------------------ comment
Author : syz
Date : 2011-07-01 11:07:09
---------------------------------------------------
Desciption : 不开平方的CHOLESKY分解
* LDL'分解
Post Script :
*
paramtegers :
* A----------对称正定矩阵
* L----------L矩阵
* D----------对角矩阵-(这里实际用N维向量存储)
*
-------------------------------------------------*/
int N = A.dim1;
L = new MAT(N, N);
D = new VEC(N);
MAT G = new MAT(N, N);
int i, j, k;
//设置初值
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
{
L.ele[i, j] = 0.0;
G.ele[i, j] = 0.0;
}
D.ele[0] = A.ele[0, 0];
double tmp1;
for (i = 1; i < N; i++)
{
for (j = 0; j <= i - 1; j++)
//此层循环计算g(i,j)
{
tmp1 = 0.0;
for (k = 0; k <= j - 1; k++)
tmp1 = tmp1 + G.ele[i, k] * L.ele[j, k];
G.ele[i, j] = A.ele[i, j] - tmp1;
}
//此循环计算L(i,j)
for (j = 0; j <= i - 1; j++)
L.ele[i, j] = G.ele[i, j] / D.ele[j];
//以下计算D(i)
tmp1 = 0.0;
for (k = 0; k <= i - 1; k++)
tmp1 = tmp1 + G.ele[i, k] * L.ele[i, k];
D.ele[i] = A.ele[i, i] - tmp1;
}
//设置对角元素
for (i = 0; i < N; i++)
L.ele[i, i] = 1.0;
}
大意是这样的:将对称正定矩阵A分解为LDL^T(转置)的形式, L为下三角矩阵,对角线元素为1.D为对角阵
代码是求L D中的元素的。
[解决办法]
怎么没人回答啊?