Найти корни уравнения метод простых итераций VBA
Формулировка задачи:
Дана функция
f(x)=0.25*cos(0.2*|x3-3|)
Нужно методом простых итераций найти корень на промежутке: a=-3, b=-2, с точностью e=0.00001
Прочитал все темы на этом форуме и на других тоже, вот что получилось, но программа зацикливается. Помогите найти ошибку.
Решение задачи: «Найти корни уравнения метод простых итераций VBA»
textual
Листинг программы
'============================================================================= ' Функция '============================================================================= Private Function fx#(x#) fx = 0.25 * Cos(0.2 * Abs(x ^ (3) - 3)) End Function Private Function Iteration#(a#, b#, eps#) Dim x#, x1#, M#, dFa#, dFb#, h# x = (a + b) / 2 h = 0.01 dFa = (fx(a + h) - fx(a - h)) / (2 * h) dFb = (fx(b + h) - fx(b - h)) / (2 * h) If Abs(dFa) > Abs(dFb) Then M = -dFa Else M = -dFb Do If x < a Or x > b Then MsgBox "Необходимо предварительно уточнить отрезок & vbCrLf" _ & " или корень отсутствует." End End If x1 = x x = x1 + fx(x1) / M Loop Until Abs(x - x1) < eps Iteration = x End Function Private Sub test() Dim a#, b#, eps#, x# a = -2.9 b = -2 eps = 0.00001 x = Iteration(a, b, eps) MsgBox "x= " & x & " F(x)=" & fx(x) End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д