|
|||||||
Пример вычисления квадратного корня на Прологе, методом Ньютона
Время создания: 14.03.2010 02:12
Текстовые метки: prolog
Раздел: Компьютер - Программирование - Язык Пролог (Prolog)
Запись: xintrea/mytetra_syncro/master/base/0000001454/text.html на raw.github.com
|
|||||||
|
|||||||
Пример вычисления квадратного корня: %% 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. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|