Определение корня любого уравнения методом половинного деления - Prolog

Формулировка задачи:

Определите корень любого уравнения методом половинного деления, помогите пожалуйста

Код к задаче: «Определение корня любого уравнения методом половинного деления - Prolog»

textual
f(X,Y):-
    Y is X*X*X - 2.
 
half(X1, X2, X1) :-
    X2 - X1 < 0.0001,
    !.
half(X1, X2, XX) :-
    XX is (X1 + X2)/2,
    f(XX, YY),
    0 =:= sign(YY),
    !.
half(X1, X2, X) :-
    XX is (X1 + X2)/2,
    f(X1, Y1),
    f(XX, YY),
    1 =:= sign(Y1) * sign(YY),
    !,
    half(XX, X2, X).
half(X1, X2, X) :-
    XX is (X1 + X2)/2,
    half(X1, XX, X).

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


СОХРАНИТЬ ССЫЛКУ