• ベストアンサー

Maxima-条件設定?

x^2の平方根は±xですね?これをMaximaで計算すると、squr関数ではsqur(x^2)との答えしかかえって来ませんでしたので、^(1/2)としてみると、|x|という答えが返ってきました。 …話を簡単にするために、複雑な式であるものをxとして書きましたが、実はこの式の値は正であることに限定されています。すなわち、 「x^2の平方根を求めよ。ただし、x>0である。」 という問題の答えxを導きたいのですが、この但し書き以下のことをあらかじめ条件設定することは可能なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

調べた. assume らしい.

bgm38489
質問者

お礼

ありがとうございます。「仮定する」という意味ですね?早速、簡単な例で試してみました。 (%i36) assume(x>0)$ x^(1/2); (%o37) √x というように表示されました。(最後の行はルート記号がちゃんと上にかかっていました。) しかし、このxに式を当てはめることはできるのでしょうか?f(x,a)ですが、関数を定義してからassume(f(x,a)>0)としたらエラーが出ました。関数を定義するときに同時にすればいいのでしょうか?それとも… ちなみに、assumeを使わなければ、|g(x)|(g(x)は有理式)という形でちゃんと表示されています。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

sqrt(x) は assume しなくても同じ結果になります.... 可能であれば, 「エラーが出る」ような f(x, a) の例とそのエラーメッセージを出していただけますでしょうか? 手元では f(x, a) := a*x; assume(f(x, a) > 0); sqrt(f(x, a)^2); で |a| |x| と返ります.

bgm38489
質問者

お礼

f(x,a)は正であるのは、よく考えたら、x,aに条件がついているからでした。assumeでx,aに条件をつけます。