13

式が常に正であることをマキシマに伝える方法はありますか? 以下は式 について maxima に質問させるスニペットの例ですsin(a)*x:

宣言 ([a、x、y]、実数);
 ca: cos(a) = (x / (sqrt(x*x + y*y)));
 a1: 解決 (ca、a) [1];
 解決 (a1、y);
4

2 に答える 2

14

使用できますassume。Maxima自身のドキュメントから:

    -- 関数: 仮定 (, ..., )
     述語、...、を現在のコンテキストに追加します。
     述語が の述語と矛盾または冗長である場合
     コンテキストに追加されません。コンテキスト
     `assume' への各呼び出しからの述語を蓄積します。

     `assume' は、追加された述語を要素とするリストを返します。
     コンテキストまたはアトム「冗長」または「矛盾」
     該当する。

     述語 , ..., は式のみにすることができます
     関係演算子 `=' と `>' を使用します。
     述語は、リテラル等価 `=' またはリテラル不等価であってはなりません
     `#' 式も、次のような述語関数にすることもできません。
     「整数」。

     ` and ... and ' の形式の複合述語
     は認識されますが、` または ... または ' は認識されません。ない
     ' が関係述語の場合に認識されます。
     「not ( and )」および「not」の形式の式
     ( または )' は認識されません。

     Maxima の演繹メカニズムはあまり強力ではありません。沢山あります
     「である」によって決定できない明白な結果。これは
     既知の弱点。

     「assume」はその引数を評価します。

     「is」、「facts」、「forget」、「context」、および「declare」も参照してください。
 Examples:

      (%i1) assume (xx > 0, yy < -1, zz >= 0);
      (%o1)              [xx > 0, yy < - 1, zz >= 0]
      (%i2) assume (aa < bb and bb < cc);
      (%o2)                  [bb > aa, cc > bb]
      (%i3) facts ();
      (%o3)     [xx > 0, - 1 > yy, zz >= 0, bb > aa, cc > bb]
      (%i4) is (xx > yy);
      (%o4)                         true
      (%i5) is (yy < -yy);
      (%o5)                         true
      (%i6) is (sinh (bb - aa) > 0);
      (%o6)                         true
      (%i7) forget (bb > aa);
      (%o7)                       [bb > aa]
      (%i8) prederror : false;
      (%o8)                         false
      (%i9) is (sinh (bb - aa) > 0);
      (%o9)                        unknown
      (%i10) is (bb^2 < cc^2);
      (%o10)                       unknown
于 2013-01-12T07:13:19.013 に答える