VBA 固有ベクトルを求める(関数)
Function vk(a() As Double) As Double()
Dim i As Integer
Dim k As Integer
Dim l As Integer
Dim n As Integer
Dim w As Double
Dim sum As Double
Dim x() As Double
Dim y() As Double
Dim r() As Double
n = UBound(a, 1)
l = 10000
ReDim y(n)
ReDim x(n)
For i = 1 To n '標準正規乱数を作る
w = Rnd
x(i) = w
Next i
For k = 1 To l 'k回繰り返す
sum = 0
y() = Ax(a(), x()) 'k回目の掛け算
For i = 1 To n
sum = sum + y(i) * y(i)
Next i
For i = 1 To n 'x(i)を標準化する
x(i) = y(i) / Sqr(sum)
Next i
Next k
vk = x
End Function
使った関数 ↓