2

頭が一次方程式の変数のセットの名前と値を表し、本体が実際の方程式である節がいくつかあります。そのようです:

:-use_module(library(clpr)).    
relation(
        independents([
            var(x1, X1),
            var(x2, X2),
            var(x3, X3)
        ]),
        dependent(
            var(y, Y)
        )
    ):- {Y = 3 + 0.5 * X1 + 0.6 * X2 + 0.7 * X3}.

この方程式の係数を (間接的に) 取得する簡単な方法はありますか? coefficient(VARNAME, COEFFICIENT)つまり、 egなどを返すルールcoefficient(x1, 0.5), coefficient(x2, 0.6)です。

すべての係数を節の先頭に置くのは簡単であることを考えると、これはばかげた質問のように思えるかもしれません。しかし、私のアプリケーションでは、これらの句の先頭に、各変数の値 (係数ではなく) を厳密に表示したいと考えています。つまり、あいまいさを避けるためです。

私の現在の解決策は、 、 、および X1、X2、X3 を 1 または 0 に設定して各勾配を計算することを含むmember/2、複雑で洗練されていないものです。subtract/3maplist/2

関連する質問: プロローグでの線形関数の表現

ありがとう!

/JC

4

1 に答える 1