=== 読者が配色を変更したい場合 ===
◎外側の色を変えるには,次の色をクリック
《体験・入門レベル》
== Rによるグラフの表示 == R version 4.0.3, 4.0.4Patched ----- 最終更新年月日:2021.4.04
この教材は,体験・入門のレベルで,30分から1時間ほどで「そこそこ分かる」ことを目指す.
関数のグラフ
具体例からスタート
(1) Rのコンソール画面で,次のように入力すると,y=sinxのグラフが表示される.
curve(sin)
• Rに組み込まれている関数は,curve( )の中に関数名を書く[sinなど]かxを変数として関数を書けば[sin(x)など],その関数の概形が表示される.
• この例のように,区間を省略すれば0.0≦x≦1.0の区間で関数が表示される. |
(2) 第2引数,第3引数として数値を記入すれば,各々グラフを表示する区間の下端と上端を表す.
curve(sin(2*x), 0, pi)
• 正弦関数を省略せずに書くときはsin(x)と書く.sin2xはsin(2*x)と言う形で定数との積で書く
from= , to= という名前付きタグによって区間の下端と上端を表す場合は,第2第3引数以外の場所に記入してもよい.
• 円周率は記号定数piで表す.この他,自然対数の底[ネイピア数]を表す記号定数はないので,指数関数を使ってexp(1)とすればよい. curve(cos(x/2),to=pi,from=-pi) |
関数の例:一覧
関数は,xの関数として書かなければならない.ただし,変数名そのものの「x」だけというものは受け付けられないが,「1*x」や「x+0」はよい.
1 多項式,分数式
-- グラフ1.1 --
-- グラフ1.2 -- |
-- グラフ(1.3) --
-- グラフ(1.4) -- |
-- グラフ(1.5) -- ylim=c(下端, 上端)により,y座標のうちで表示する範囲を指定できる なお,縦線は漸近線ではなく,−∞から∞を結んでしまった「失敗の線」 |
2 無理関数
-- グラフ2.1 -- • x<0のときこの関数は定義されないが,描画区間として負のx座標を指定した場合 curve(sqrt(x), −1, 1)⇒警告付きだがグラフは表示される curve(x^(1/2), −1, 1)⇒警告なしでグラフが表示される いずれもx≧0の区間においてのみグラフがある |
*** 読み物 ***
高校数学Uでは,累乗根について,次のように教える. は実数,は正の整数とするとき,となる実数をの乗根という. (@) が奇数のとき 【例1】 (A) が偶数のとき のとき,の乗根は正負の2つ存在する. 【例2】 (B) ,は正の整数とするとき, が成り立つ.また,このとき が成り立つ. |
以上が,高校数学Uの教科書に書かれている公式見解であるが,逆に言えば次のことは何も書かれていない・・・つまり,何も決まっていないのだから.各コンピュータ・ソフトなどが,別の解釈をしていても,どれかが正しくて,どれかが間違っているということではない(と,この教材の筆者は考える). 【例A】 について
• @高校数学Uの教科書の立場では,になる.この結果は,AMaxima, BExcelにおいて(-1)^(1/3)と入力したときの結果と一致する.
• CPythonでは累乗の記号は**となっており,(-1)**(1/3)と入力したときの結果は,[実際には小数表示であるが]になる.高校数学Uの累乗根は,実数の範囲で結果を求めているのに対して,Pythonでは複素数の範囲で求めて,ド・モアブルの定理を使って,正の最小偏角を持つ原始n乗根を解としている. • DRでは,nが偶数であろうが奇数であろうがのときのの値は,問答無用で定義されない・・・統計では,使わないということかも. |
【例B】 について
*定義されないの箇所について: 筆者は,少なくとも30年間,高校でこの問題は教えていない.教科書的にも, ならば,は言えるが, のとき,の話はあるが,は決まっていない.さらに,などは全然言えない. • CPython: • DR:定義されない |
【例C】 について
以上から,予想される各ソフトの傾向(筆者の予想) • 各ソフトにおいて,という演算はないから,で代用する. • のときの結果は AMaxima:小数の場合も,分数の場合も,分数を約分した結果で答える. BExcel:指数が小数の場合は定義されない.指数の分子が1でない分数の場合も定義されない.指数の分子が1の分数の場合は,数学Uの定義と一致する.
Excelのワークシート関数は,高校数学Uで教えることにかなり忠実に一致する.
CPython:実数の累乗根が定まる場合でも,解を複素数の範囲で求め,ド・モアブルの定理を使って,正の最小偏角を持つ原始n乗根を返す.決まっていないことには,不用意に答えない. DR:負の数に対する累乗根は,すべて定義されないものとする. |
3 指数関数
--グラフ(3.1)-- |
(3.2) 関数 curve(exp(-0.5*x))
curve(exp(-0.5*x), from=-2, to=2, col="#ff0000", --グラフ(3.2)-- lwd=1,2,3,・・・ などで指定できる(大きいほど太くなる) • 線種(line-style)は lty=番号またはlty="solid" の形で指定できる.
lty=1 または lty="solid" (実線)
lty=2 または lty="dashed" (ダッシュ) lty=3 または lty="dotted"(鎖線ドット) ・・・ lty=6 または lty="twodash"(2点鎖線) |
4 対数関数
(4.1) 対数関数
curve(log(x),xlim=c(0,3),ylim=c(-5,2),n=500) #・・・(1) par(new =T) #・・・(2) curve(log10(x),col="#009900",xlim=c(0,3), |
(1) 対数関数のグラフは,curve(log(x, base=...))の形で書かれる.base=で底を示すが,これが省略された場合は,base=exp(1)すなわち自然対数の底(ネイピア数)が底となる. (2) この例のように,2つ以上のグラフを上書きするときは,後から描くグラフの前にpar(new=T)を付ける. また,グラフを重ねて描くためには,x座標の値の範囲xlim=c(left,right)およびy座標の値の範囲ylim=c(bottom,top)を各グラフで共通にしておく必要がある. (3) 底が10の対数は,log10(x)と書くか,または,(5)のように log(x, base=10)と書く.(3)(5)は同じグラフになり,完全に重なるため見えなくなるので,(5)の方のy座標を+0.1だけ上げてある. (4)(6) 底が2の対数は,log2(x)と書くか,または,log(x, base=2)と書く.(6)の方はのy座標を+0.1だけ上げてある.
※ n=という名前タグ付き引数は,「与えられた区間を何個のx座標に区切って表すか」を示す=実際には,関数のグラフは「微細な区間に区切った折れ線」で表されており,「何等分して表示するか」ということをこのn=という引数が示す.区間と点の数は「植木算」の関係にあるから,区間がm個なら点はm+1個になる.n=という点の数が省略された場合はn=101すなわち100等分した点を結んで折れ線が作られることになる.
このグラフのように,x≒0のとき「グラフが急傾斜になる場合」,デフォルト設定のn=101では,うまく曲線が描けないので,n=500に増やした. |
5 三角関数
• はsin(3*x),は sin(3*x-pi/2)と書く. |
(5.2) のグラフ(黒色)とその振幅を表す関数および
を重ねて表示する.
curve(exp(x)*cos(4*x), -pi/2, pi/2, |
6 逆三角関数
【逆三角関数とは】
[1] のグラフは,次の図の内で黒色の部分になる. になるが,これをについて解きなおした関数を次の形で書き,逆三角関数という. またはまたは (上の図の赤線の部分になる) Rでは asin(x)を使う. [2][3] 同様にしてy=cos(x), y=tan(x)に対応する逆三角関数を,acos(x), atan(x)で表す. |
(6.1)
curve(acos(x), 1, -1, xlim=c(-1,1),• 黒色は のグラフ • 青はx軸,赤はy軸 |
7 双曲線関数
【双曲線関数とは】
指数関数を使って次のように定義される関数を双曲線関数という. …(1) …(2) …(3) |
(7.1)
curve(sinh(x), -3,3,xlim=c(-3,3),ylim=c(-3,3),• 赤はのグラフ • 青はのグラフ • 緑はのグラフ • 灰色は座標軸 |
8 逆双曲線関数
【逆双曲線関数とは】
逆双曲線関数については,次の関係が成り立つ.をyについて解いた関数をで表す.も同様 ・・・@ ・・・A (ただし第1象限だけ) ・・・B これらを確かめるために,左辺の関数のグラフ,右辺の関数のグラフを別々に描いた.ただし,完全に重なると見えなくなるから,y方向に+0.05だけ移動した (8.1) curve(asinh(x), -2,2,xlim=c(-2,2), |
• 青はおよびのグラフ (ただし第1象限だけ) • 緑はおよびのグラフ • 灰色は座標軸 |
9 正規分布関数
(9.1)正規分布の確率密度関数 dnorm curve(dnorm(x, mean = 0, sd = 1, log = FALSE),xlim=c(-3,3)) |
(9.2) 正規分布の累積密度関数 pnorm curve(pnorm(x, mean = 0, sd = 1, log = FALSE),xlim=c(-3,3)) |