数式処理ソフト DERIVE(デライブ) de ドライブ

18.関数の定義

陽関数

「なんなの?陽関数って」

「おや、ともちゃんか。君たちがふつう知っている1次関数や2次関数、三角関数などでy=f(x)のように表せる関数のことじゃよ。
変数x(複数個あってもよい)に対して関数yが一意に計算可能な関数を陽関数(表示)と呼んでいるのじゃ。
1次関数でもax+by+c=0の形では、yは、xの陰関数(表示)になっているという」

「ふ~ん。
数式処理ソフト DERIVE(デライブ)で関数が定義できるの?」

「もちろんじゃとも。「入力」メニューから「関数の定義」をクリックすれば、よい」

「たとえば、どんな関数にしたらよいのかしら」

「そうじゃのう、わかりやすい例では、y=x^2+2などはどうじゃな」

「関数の定義の上部にy(x)と入力して、下段に、x^2+2と入力して、OKするだけ?」

「そうじゃ。試しにy(2)と数式入力行に入力して、計算(=)を指示してご覧」

「6と表示されたわ」

「そう、2^2+2=6であってるじゃろう」

「もっと、複雑な関数でもよいのね」

「たとえば、y(x)で、x<0では、x^2で、x≧0では、x+1である関数はどうじゃ?」

「えー。どう書けばいいの?」

「このようなときは、if(条件,真の場合,偽の場合)とすればよいのじゃ」

「というと、if(x < 0,x^2,x + 1)でいいのね」

「そう、確かめてご覧」

「なーるほど。確かに」

「このような場合は、ちょうど境目のx=0で正しいかどうかを確認しておくことが肝心じゃ。今回は、ゼロの時は、1とならねばならぬからな。関数の定義を使うと複雑な式も見やすくなるな」

陰関数

「陰関数は、そのままでは、定義できないな」

「じゃどうするの」

「陰関数のままでも(変数が1つまたは2つまでは)2Dまたは3Dグラフは、描くことはできる。関係式をそのまま入力してグラフを描かせればよい」

「x^2+y^2=1のようなものね」

「そうじゃな。原点を中心とした円が描けるな。しかし、xの値を一つ決めてもyの値は、2価となって、一つに決まらない。このままでは、DERIVEの関数の定義にはなじまない。x=sinθ、y=cosθとおいて、パラメータ表示にすれば、1価となって扱うことは、できるな」

「どんな、陰関数でもパラメータ表示にできるの?」

「これは、難しい質問だ。宿題にさせてもらおう」

帰納的(再帰的)定義関数

「なんだか、また、難しそうな名前ね」

「階乗の定義は、なんじゃな?」

「n!=n×(n-1)×・・×1でしょ」

「うん。そうなんだが、こういうようにも言えるな。f(n)=n×f(n-1)、f(0)=1。
このような定義の仕方で定義される関数を帰納的定義関数というのじゃ」

「こういうのは、DERIVEでどうやって定義するの?」

「陽関数の場合と同じじゃ。「入力」から「関数の定義」で関数名と引数にf(n)として、定義式でif(n=0,1,n*f(n))とすればよい」

「f(6)=720で合っているわ」

「アッカーマンの関数というのがある。f(1)=2、f(n)=2^f(n-1)じゃ」

「階乗とほとんど同じ定義でいいのね」

「そうなんじゃが、nが増えるととんでもなく大きくなってすぐに計算ができなくなるのじゃ」

「ほんとだ。f(3)=16、f(4)=65536、とまではいいのだけど、f(5)=びっくり、≒2.003529930×10^19728、10の約2万乗だなんて!」
「f(6)やf(7)もなんとか計算できるが、大きすぎて実感がないのう」