== maximaの初歩的な操作5 ==
・・・関数定義,値の代入,微分積分・・・

【変数の値を代入・削除するには】
(1) xを変数として,xを代入するには.
(2) xの式として変形するために,上記の(1)の操作の後に変数xの値を解除するには.

 入力結果
(出力)
(1) x:%pi/6;
※maximaでは変数に値を代入するとき,コロン:を使う.
代入された変数の値が表示される
○Xmaximaでは

○wxMaximaでは

(2) 一連の作業として,上記の(1)の操作を行うと,以後はすべてその値が代入されるため,たとえばsin(x+y)の展開公式を作ろうと考えても,を前提とした式が表示される.このような場合に,変数xの値を解除するにはどうしたらよいか.
kill(x);
done
(1)により,毎回値を書かなくても式の値が求められる.sin(x);
[他の例] x : −3;y : 4;x^2+2*x*y+y^2;1
 値の代入は,複雑な値が「二度以上」登場する場合に特に有利で,他の例でいえば,のとき,の値を求めるには,x : (-1-sqrt(3)*%i)/2;y : (-1+sqrt(3)*%i)/2;と一度書けば
x^2+3*x*y+y^2;2などとできる
他の言語とほぼ同様に,変数名や関数名はアルファベットで始まりスペースを含まない単語であればよく,2番目以後は数字であってもよい.
≪予約語≫・・・次の語句は,Maximaの中で使い方が決まっていて,変数名として使用できない.関数名でも同様
integratenextfrom diff in at limit sum for and elseif then else do or if unless product while thrustep
(2) 変数に値を代入すると,以後その値を引きずっていくため,例えば(1)のコマンドを実行すると,以後trigexpand(sin(x+y));のようなコマンドを実行しても
などとなる.代入した変数xの値を解除するにはどうしたらよいか,というのがこの項目の内容
kill(x);を実行後にtrigexpand(sin(x+y));を実行すると,
cos(x) sin(y) + sin(x) cos(y)が得られる.

【関数を定義・削除するには】
(1) 関数f(x)x2+3x+4によって定義するには
(2) 別の作業を行うために,関数f(x)の定義を定義し直すには.また,解除するには.

○Xmaxima,wxMaximaいずれも次のようになります.
 入力結果
(出力)
(1) f(x):=x^2+3*x+4;
※maximaでは関数を定義する式は,
左辺に関数名(変数),コロンとイコール:=,右辺に関数の本体を書く.
入力されたコマンドがそのまま表示される
(2) kill(f);
※引数を付けた形kill(f(x));ではなく,関数名だけを書き込みます.
done

【関数を微分・積分するには】
 関数f(x)f(x)=ex+logxと定義し
(1) 関数f(x)の導関数を求めるには
(2) 関数f(x)の不定積分を求めるには
(3) 関数f(x)の区間1≦x≦eにおける定積分を求めるには
○Xmaxima,wxMaximaいずれも次のようになります.
 入力結果
(出力)
  f(x):=%e^x+log(x);
またはf(x):=exp(x)+log(x);
※自然対数の底(ネイピア数)は記号%eで表される.
eを底とする指数関数は
%e^xまたはexp(x)で表す.
eを底とする対数関数はlog(x)で表される.Excelで使うln(x)は定義されていない.また,10を底とする対数関数(常用対数)が必要な場合は,ユーザが底の変換公式を用いて
log10(x):=log(x)/log(10);などと定義して使うことになる.
入力されたコマンドがそのまま表示される
(1) diff(f(x),x);
diff(f(x));
※微分するには関数diff()を使い,第1引数に微分すべき関数,第2引数に微分する変数を指定する.
※第2引数のxを省略した場合,全微分に相当するdf(x)=f ’(x)dxの式が出力され,dxの部分はdel(x)と表示される.・・・(del(x)は「消す」ではなく,differential of the variable x.)


(2) integrate(f(x),x);
※第2引数に積分変数を指定する.
x log(x) + %ex−x
※不定積分では積分定数は省略される.
(3) integrate(f(x),x,1,%e);
integrate(被積分関数,積分変数,下端,上端)の順に指定する.下端が上端よりも大きな値であってもよい.
%e%e−%e + 1




という意味

【三角関数などの値を指定したいとき】
 である
ときの値を求めるには
入力結果
(出力)
assume(x>0,x<%pi/2);…(1)
x : asin(3/5);…(2)
assume(y>%pi/2,y<%pi);…(3)
y : acos(-1/2);…(4)
trigexpand(sin(x-y));…(5)
○Xmaximaでは

○wxMaximaでは
-0.992820323027551
(1)仮定は,assume();で表し,引数として,< , <= , equal , notequal , >= , >を「かつ」を表すカンマで結んで表現することができる.(3)も同様

(2) 左辺が関数であるときに,引数の値ではなく関数の値を代入することはできないので,ここでは逆三角関数を使ってxに値を代入している.
または
のことをmaximaではで表す.(4)も同様

sin(x-y);とした場合には,第1段階の展開のみ行われ
となるので,さらに展開するには
trigexpand(sin(x-y));とする.

...(携帯版)メニューに戻る

...(PC版)メニューに戻る