VBA 使えるソースコード

つたないソースコードを載せます。これは、他人の書いたソースコードを読む練習に最適です。初心者の方は、どうしたらきれいになるかなど考えながら活用してください。

微積分編

VBA シンプソン則で関数を積分しよう(関数)

Function S(h As Double, a As Double, b As Double) As Double S = (2 * M(2 * h, a, b) + T(2 * h, a, b)) / 3 End Function 使った関数 ↓ yoronx.hatenablog.com yoronx.hatenablog.com

VBA 台形則で関数を積分しよう(関数)

Function T(h As Double, a As Double, b As Double) As Double Dim inte As DoubleDim i As IntegerDim n As DoubleDim x_i As Double n = (b - a) / hinte = 0 For i = 0 To n - 1 x_i = a + i * h inte = inte + (f2(x_i) + f2(x_i + h)) * h / 2Next i T…

VBA 中点則で関数を積分しよう(関数)

Function M(h As Double, a As Double, b As Double) As Double Dim inte As DoubleDim i As IntegerDim n As DoubleDim x_i As Double n = (b - a) / hinte = 0 For i = 1 To n x_i = a + (2 * i - 1) / 2 * h inte = inte + f2(x_i) * hNext i M = inte En…

VBA 最小の固有値を求める

Function ramda_min(a() As Double) As Double Dim n As IntegerDim a_inv() As DoubleDim v() As DoubleDim y() As Double n = UBound(a, 1) ReDim y(n)ReDim v(n)ReDim a_inv(n, n) a_inv() = A_inverse(a())v() = vk(a_inv())y() = Ax(a_inv(), v()) ramd…

VBA 固有値を求める(関数)

Function ramda(a() As Double) As Double Dim n As IntegerDim v() As DoubleDim y() As Double n = UBound(a, 1) ReDim y(n)ReDim v(n) v() = vk(a())y() = Ax(a(), v()) ramda = y(1) / v(1) '最初だけ見れば良い End Function 使った関数 ↓ yoronx.haten…

VBA 固有ベクトルを求める(関数)

Function vk(a() As Double) As Double() Dim i As IntegerDim k As IntegerDim l As Integer Dim n As IntegerDim w As DoubleDim sum As Double Dim x() As DoubleDim y() As DoubleDim r() As Double n = UBound(a, 1)l = 10000 ReDim y(n)ReDim x(n) For…