을 반복법으로 풀어라.
먼저, 주어진 식을 형식으로 변형시킨다.
즉, 으로 변형시킨다. 따라서 가 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Option Explicit '허용오차(allowable error) Private Const EPS As Double = 0.00001 'epsilon의 약자. 매우 작은 값 그러나 0은 아니다. 'which stands for epsilon, mean very small but nonzero Sub SolveEquation() Dim x0 As Double Dim x1 As Double ' ' '1) 초기값 x0를 적당히 정한다. x0 = Range("A3") '2) x1 = G(x0)를 계산한다. x1 = G(x0) ' Do Until (Abs(x1 - x0) < EPS) '수렴할 때까지 계산해라. x0 = x1 '//새로 계산한 값(x1)을 이전 값(x0)으로 대체한다. x1 = G(x0) '//다시 새로운 값(x1)을 계산한다. Loop ' ' Range("C3") = x1 End Sub |
풀어야 할 방정식은 다음과 같다.
1 2 3 4 |
Function G(x As Double) As Double ' 계산할 방정식 f(x) = 0 를 x = g(x) 형식으로 변환시킨 것 G = Exp(x) - 5 * Sin(x) + 2.36 * x End Function |