Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

CODIGO DE LA MATRIZ DE CHOLESKY PARA EXCEL MACRO

Public Function Cholesky(mat As Range)

Dim a, L() As Double, S As Double

a = mat

n = mat.Rows.Count

m = mat.Columns.Count

If n <> m Then

Cholesky = "?"

Exit Function

End If

ReDim L(1 To n, 1 To n)

For j = 1 To n

S=0

For k = 1 To j - 1

S = S + L(j, k) ^ 2

Next k

L(j, j) = a(j, j) - S

If L(j, j) <= 0 Then Exit For

L(j, j) = Sqr(L(j, j))

For i = j + 1 To n

S=0

For k = 1 To j - 1

S = S + L(i, k) * L(j, k)
Next k

L(i, j) = (a(i, j) - S) / L(j, j)

Next i

Next j

Cholesky = L

End Function

Function CorrMatrix(rng As Range) As Variant

Dim i As Long

Dim j As Long

Dim numCols As Long

numCols = rng.Columns.Count

numRows = rng.Rows.Count

Dim matrix() As Double

ReDim matrix(numCols - 1, numCols - 1)

For i = 1 To numCols

For j = 1 To numCols

matrix(i - 1, j - 1) = Application.WorksheetFunction.Correl(rng.Columns(i), rng.Columns(j))

Next j

Next i

CorrMatrix = matrix

End Function

You might also like