頭が一次方程式の変数のセットの名前と値を表し、本体が実際の方程式である節がいくつかあります。そのようです:
:-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/3
maplist/2
関連する質問: プロローグでの線形関数の表現
ありがとう!
/JC