АЛГОРИТМЫ

Новости

Рассылка новостей

Форум

AlgoPascal

Редактор блок-схем

Статьи

О сайте

Контакты



Содержание - Уравнения общего вида и полиномиальные - Метод Ньютона (касательных)

Решение уравнения F(x) = 0 методом Ньютона (касательных)

Действительный корень x' уравнения F(x) = 0 вычисляется методом Ньютона по итерационному уравнению:

xk+1  = x-F(x)/F'(x)

Процесс сходится к точному значению корня, если начальное приближение x выбрано так, что

|F(x)F''(x)| < |F'(x)| 2

Оценка погрешности k-го приближения производится по приближенной формуле

|F(x)F'(x)| < e

В процедуре кроме функции F используется также функция DF - производная функции F.

Если нашли ошибку в алгоритме - сообщите!



Реализации алгоритма на различных языках:

Реализация алгоритма на C++
Реализация алгоритма на Delphi
Реализация алгоритма на Visual Basic 6

Блоксхемы:

Посмотреть блок-схему алгоритма
Скачать блок-схему алгоритма


Реализация алгоритма на AlgoPascal:

unit SearchRootNewtonUnit;

declaration
    function F(X:Real):Real;
    function dFdX(X:Real):Real;

interface
    SearchRootNewton;
implementation
(*
Решение уравнения методом Ньютона (метод касательных).

function SearchRootNewton(x1,e:real):real;

алгоритм использует функцию F(x) и её производную dFdX.
*)
function SearchRootNewton(
    const x1    :   Real;
    const e     :   Real):Real;
var
    x   :   Real;
    a   :   Real;
begin
    x:=x1;
    a:=F(x)/dFdX(x);
    while AbsReal(a)>e do
    begin
        x:=x-a;
        a:=F(x)/dFdX(x)
    end;
    Result:=x;
end;




end.

 


Бочканов Сергей, Быстрицкий Владимир
Copyright © 1999-2004
При поддержке проекта MANUAL.RU