MyTetra Share
Делитесь знаниями!
Отель в СЗАО: частный пансионат для пожилых. База отдыха Селигерское Заплавье.
Пример вычисления квадратного корня на Прологе, методом Ньютона
14.03.2010
02:12
Текстовые метки: prolog
Раздел: Компьютер - Программирование - Язык Пролог (Prolog)

Пример вычисления квадратного корня:

%% Sqrt, Newton method

absolute(X, Result) :-

X >= 0, Result is X.

absolute(X, Result) :-

X < 0, Result is -X.

squared(X, Result) :-

Result is X * X.

good_enough(X, Guess) :-

squared(Guess, Y),

absolute(Y - X, Abs),

Abs < 0.001.

average(A, B, Result) :-

Result is (A + B) / 2.

improve(X, Guess, Result) :-

average(Guess, (X / Guess), Result).

newton_sqrt(X, Guess, Result) :-

good_enough(X, Guess), Result is Guess,!.

newton_sqrt(X, Guess, Result) :-

improve(X, Guess, Improved),

newton_sqrt(X, Improved, Result).

Для нахождения квадратного корня тут использован численный метод Ньютона (см. SICP, к примеру).

?- newton_sqrt(4,1,X).

X = 2.0.

?- newton_sqrt(9,1,X).

X = 3.00009.

← Содержание ...
 
MyTetra Share v.0.35
Яндекс индекс цитирования