ビジュアル Octaveで遊ぶ逆関数 2014年9月 1 逆関数(inverse function)とは 𝑦 = 𝑓(𝑥)の関数をxについて解いたとき、𝑥 = 𝑔(𝑦)の形になったとします。g(y)は、yか らxへ値を与えますので、f(x)の逆変換となっています。 逆変換は、𝑔 = 𝑓 −1 とも書かれます。これはつぎのような関係があるためです。 𝑦 = 𝑓 𝑥 = 𝑓 𝑔 𝑦 ですので、𝑓𝑔 = 𝐼。つまり𝑔 = 𝑓 −1 𝑎−1 = 1/𝑎ですが、𝑓 −1 ≠ 1/𝑓です。 この逆変換で、xとyを入れ替えた𝑦 = 𝑔 𝑥 が逆関数です。例えば、 𝑦 = 𝑥2 をxについて解けば、つぎのようになります。 𝑥=± 𝑦 xとyを入れ替えれば、つぎのようになります。 𝑦=± 𝑥 逆関数のグラフは、y=xの線に対して、もとの関数のグラフと対称になっています(な ぜでしょうか)。 2 逆関数のグラフ 逆関数のグラフは、y=xの線に対してもとの関数と対称になりますが、Octaveで逆関 数を描く方法には、つぎの3つがあります。 A 逆関数をもとめて描く。 例えば、𝑦 = 𝑥 2 の逆関数のグラフは、𝑦 = ± 𝑥 のグラフを描きます。この場合、逆 関数を求める必要がありますが、y=x-sin(x)のように、必ずしも、逆関数が簡単に求 められない場合があります。 B もとの関数で、xとyを入れ替え、yを変化させながらグラフを描く。 例えば、𝑦 = 𝑥 2 の逆関数のグラフは、𝑥 = 𝑦 2 として、yを変化させながらxの点を求 め、描く。 C Octaveでプロットする関数plot( )で、xとyを入れ替える。 例えば、𝑦 = 𝑥 2 のグラフはplot(x,y)で描きますが、逆関数はplot(y,x)で描きます。 この方法では、逆関数を求める必要がなく、一番簡単です。 3 y=x2の逆関数のグラフ 前のスライドの方法で、y=x2の逆関数のグラフをOctaveで描いてみます。 まずy=x2のグラフです。 x=linspace(-5,5,50); y=x.^2; plot(x,y); hold on; grid on つぎは、𝑦 = ± 𝑥のグラフです。 x1=linspace(0,25,50); y1=sqrt(x1); plot(x1,y1,’r’) plot(x1,-y1,’r’) つぎは、xとyを入れ替えたx=y2のグラ フをyを変えて描きます。 y2=linspace(-5,5,50); x2=y2.^2; plot(x2,y2,’r’); つぎは、もとのグラフのxとyを入れ替え ます。 plot(y,x,’b o’) o(オーの小文字)で描いています。 4 y=xの線と対称な点(1) 問 点A(x,y)があります。この点がy=xの線に ついて対称な点B(X,Y)の座標はどうなるで しょうか。 B(X,Y) 答え 点Aを通る傾きが-1の直線の方程式を求 め、y=xとの交点を求めます。点Aからその 交点までの距離を求め、それを反対側に 伸ばした点がBになりますが、そのように 解く人はいないと思います。 A(x,y) この問題の解き方は3つあります。 5 y=xの線と対称な点(2) A 代数的に解く 点A(x,y)と点B(X,Y)の中点はy=xの線上にあ りますので、 𝑋+𝑥 𝑌+𝑦 = 2 2 これから、𝑌 = 𝑋 + 𝑥 − 𝑦 となりますが、こ の式からは点Bは求められません。たとえば 点A(5,3)とすると、𝑌 = 𝑋 + 2でy切片が2で、 傾きが1の直線となります。この直線上の点と 点A(5,3)との中点はy=xの線上にあります。 点Aと点Bを通る直線の傾きは-1ですので、 𝑦−𝑌 = −1 𝑥−𝑋 の式と組み合わせれば、 X=y Y=x となります。つまり点Aのx座標とy座標を入れ 替えた座標が点Bの座標になります。 B(X,Y) A(x,y) 6 y=xの線と対称な点(3) B ベクトル的に解く 中点Cの座標を(a,a)とします。点Aから中点Cま でのベクトルは、 𝑎 − 𝑥, 𝑎 − 𝑦 となります。これと(a,a)のベクトルは、直交しま すので、 𝑎, 𝑎 ∙ 𝑎 − 𝑥, 𝑎 − 𝑦 = 0 これより2𝑎2 − 𝑎 𝑥 + 𝑦 = 0 これより、𝑎 = B(X,Y) C(a,a) A(x,y) 𝑥+𝑦 2 点Bの座標は、 𝑎, 𝑎 + 𝑎 − 𝑥, 𝑎 − 𝑦 = (2𝑎 − 𝑥, 2𝑎 − 𝑦) = 𝑦, 𝑥 となります。 7 y=xの線と対称な点(4) C 幾何的に解く 右の図から、点A(x,y)が作る長方形をy=xの線 で折り返した長方形を考えれば、点Bの座標は (y,x)となります。 B(X,Y) A(x,y) 点Bは点Aをy=aの線で折り返せばよいが、三角 関数などは、折り返す点を探すのが難しい。 この場合は、もとの図形を時計まわりに90度回 転して新しいx軸に折り返せば、y=xの線と対称 な図形が得られる。 あるいは、時計と反対まわりに90度回転して新 しいy軸に折り返してもよい。 x y 8 y=sin(x)のグラフ 逆関数のグラフは、y=xの線に対し てもとの関数に対称になりますが、 三角関数のような周期関数の対称 なグラフはすぐには分かりません。 三角関数の逆関数のグラフを求め てみましょう。 Octaveでsin(x)のグラフを書くと右の ようになります。 x=linspace(-5,5,50); y=sin(x); plot(x,y); hold on; grid on 9 sin(x)とsin-1(x)のグラフ sin(x)のグラフに、逆関数sin-1(x)のグラ フを重ね合わせたのが、右のグラフで す。予想していた通りですか。 x=linspace(-5,5,50); y=sin(x); plot(x,y); hold on; grid on plot(y,x,’r’); sin-1(x)は、arcsin(x)と呼ばれています。 Octaveにはsinの逆関数としてasinが 用意されています。 10 cot(x)のグラフ 同じようにして、cot(x)のグラフを描 いてみます。cot(x)はx=0で不連続に なるため、xの区域を分割します。 x1=linspace(-pi+0.1,-0.1,50); x2=linspace(0.1,pi-0.1,50); y1=cot(x1); y2=cot8x2); plot(x1,y1); hold on; grid on plot(x2,y2); 11 cot(x)の逆関数のグラフ(1) Octaveには、cot(x)の逆関数としてacot(x)が あります。それを使い描くと右のようになりま す。 x=0で不連続のようなグラフとなっています。 acot(x)でx=0の値を求めるとつぎのような メッセージが表示されます。 acot(0) warning: division by zero ans = 1.5708 cot(x)の定義はつぎのとおりです。 cos(𝑥) cot 𝑥 = sin(𝑥) 従って、𝑥 = 𝜋/2 で、cot(x)=0となりますが、 不連続ではありません。 x=linspace(-10,10,100); y=acot(x); plot(x,y); grid on 12 cot(x)の逆関数のグラフ(2) x<0の部分をπだけ上に上げてみます。 ここではlinspaceを使わずに範囲を設 定してみます。 x1=0:0.1:5; x2=-5:0.1:-0.1; y1=acot(x1); y2=acot(x2); y2=pi + y2; plot(x1,y1); hold on; grid on plot(x2,y2) x=0で切れていますが、不連続ではありません。 13 cot(x)と逆関数arccot(x)のグラフ cot(x)のグラフに逆関数arccot(x)の グラフを重ねてみます。 逆関数のグラフは、plot()でxとyを 入れ替えて描きます。 x1=linspace(-pi+0.1,-0.1,50); x2=linspace(0.1,pi-0.1,50); y1=cot(x1); y2=cot(x2); plot(x1,y1); hold on; grid on plot(x2,y2) plot(y1,x1,’r’) plot(y2,x2,’r’) 14 累積正規分布関数のグラフ(1) 問 右上のグラフは、正規確率分布のグラフです。 横軸の𝑥 = −∞から + ∞ まで積分した値は1に正 規化されています。x まで積分した値のグラフは 右下に描かれています。左にいくほど0に近づき、 x=0で0.5になり、右にいくほど1に近づきます。 Octaveでは、正規確率分布はnorm(x)で、累積の 確率分布は normcdf(x)で表されます。 CDF: Cumulative Distribution Function 右下のグラフの逆関数はどのように描かれます か。横軸と縦軸の範囲が異なりますので、注意が 必要です。 15 累積正規分布関数のグラフ(2) 答え 右の図は、累積確率分布関数のグラフに その逆関数のグラフを重ね合わせたもの です。 x=linspace(-3,3,50); y=normcdf(x); plot(x,y); hold on; grid on plot(y,x,’r’) 16 逆関数はなんの役に立つのか 逆関数の求め方とOctaveを使ったグラフの描き方は分かりました。 しかし、逆関数は、なんのご利益(りやく)があるのでしょうか。数学的には、どのよ うな場合、逆変換があるのかを調べるのは、おもしろいですが、実用的にはどうな のでしょうか。 物理学では、cot(x)がときどきでてきますが、y=cot-1(x)がでてくれば、x=cot(y)で考 えてしまいます。逆関数の微分ももとの関数で考えます。たとえば、y=cot-1(x)のxで の微分はx=cot(y)の両辺をxで微分するとつぎのようになります。 𝑑 −1 𝑑𝑦 1= cot y = 𝑑𝑥 sin 2 𝑦 𝑑𝑥 𝑑𝑦 −1 2 ⇒ = −𝑠𝑖𝑛 (𝑦) = 𝑑𝑥 1 + 𝑥2 17
© Copyright 2024 ExpyDoc