私はSWI-Prologを使用しています。私は非常に新しく、まだ学習しています。実際には、この質問はフォローアップですWhy can't my rule solve for X in a simple algebraic equation?Prolog/clpqがこの2次方程式を解くのはなぜですか?
私はclpqをインポートしました。
?- use_module(library(clpq)).
true.
私の式は6X + 7倍である - 二次方程式を使用している場合、Xは文字通り-1.5又はも1/3である3 = 0、。
?- {(6 * X^2) + (7 * X) - 3 = 0}.
{-3+7*X+6*X^2=0}.
?- {(6 * X^2) + (7 * X) - 3 = 0}, R is float(X).
ERROR: is/2: Arguments are not sufficiently instantiated
さて、-3の添加の減算を変更することによって、わずか数の減少、それはX
ために解決しませんでした。私の最初のステップは、それに答えを与え、それを受け入れるかどうかを調べることでした。
?- X is -1.5, (6 * X^2) + (7 * X) - 3 =:= 0.
X = -1.5.
うん...すべてがうまく見えます。完全性のために、私は二次方程式も実行しました。 (「式」、複数の私はプロローグには±オペレータはありませんと思いますので。少なくとも、私は1つを見つけることができませんでした。)
?- A is 6, B is 7, C is -3, X is (-B + sqrt((B^2) - (4 * A * C)))/(2 * A).
A = 6,
B = 7,
C = -3,
X = 0.3333333333333333.
?- A is 6, B is 7, C is -3, X is (-B - sqrt((B^2) - (4 * A * C)))/(2 * A).
A = 6,
B = 7,
C = -3,
X = -1.5.
をさて、すべてがチェックアウトしているようです。それで、なぜ私の方程式を解決できなかったのですか?