Найти корни уравнения метод простых итераций 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.308 из 5