Maxima では、at() ステートメントを使用して未知数を値に置き換えることができます。しかし、これは置換のためにリストを使用し、solve() ステートメントはリストを返しません。
コード:
(%i1) g(x):=x^2+a;
2
(%o1) g(x) := x + a
(%i2) g(x),solve(x=3),a=2;
(%o2) 11
コンマを使用して結果を計算することはできましたが、そのための関数を作成できません。
(%i3) f(y) := g(x),solve(x=3),a=y;
(%o3) f(y) := g(x)
(%i4) f(2);
2
(%o4) x + a
コンマが行内で直接作用するように作用するステートメントはありますか?
編集:
実際には、solve() はリストのリストを返すだけなので、at() を solve() と一緒に使用して関数 f() を作成することができます。したがって、コードは次のようになります。
(%i5) f(y) := at(at(g(x), solve(x=3)[1]), a=y);
(%o5) f(y) := at(at(g(x), solve(x = 3) ), a = y)
(%i6) f(2);
(%o6) 11
[1]
のaftersolve(x=3)
に注目してください(%i5)
。リストの最初の項目(ソリューション)を選択します。