Численные методы на Фортране: метод деления пополам и многое другое

Вот объяснение метода деления пополам на Фортране, а также нескольких других численных методов.

Метод деления пополам — это алгоритм поиска корня, который можно использовать для поиска корня функции в пределах заданного интервала. Это простой, но надежный метод, основанный на теореме о промежуточном значении. Вот пример реализации на Фортране:

program bisection_method
    implicit none

    real :: a, b, c, fa, fb, fc, tol
    integer :: max_iter, iter

    ! Input values
    a = 1.0
    b = 2.0
    tol = 1e-6
    max_iter = 100

    ! Initialize iteration counter
    iter = 0

    ! Check if initial interval bounds are valid
    if (f(a) * f(b) >= 0.0) then
        print *, "Error: Function has same sign at interval bounds."
        stop
    end if

    ! Perform bisection iterations
    do while (abs(b - a) > tol .and. iter < max_iter)
        c = (a + b) / 2.0
        fa = f(a)
        fb = f(b)
        fc = f(c)

        if (fa * fc < 0.0) then
            b = c
        else
            a = c
        end if

        iter = iter + 1
    end do

    ! Output the approximated root
    print *, "Approximated root:", c

contains

    ! Define the function f(x)
    real function f(x)
        real, intent(in) :: x
        f = x2 - 2.0
    end function f

end program bisection_method

Помимо метода деления пополам, вот несколько других часто используемых численных методов в вычислительной математике:

  1. Метод Ньютона-Рафсона
  2. Метод секущей
  3. Метод итерации с фиксированной точкой
  4. Метод Regula falsi (ложное положение)
  5. Метод Стеффенсена
  6. Метод Брента