go41c 基本編の続き (3) - 関数編
本日は、go41c(HP-41C)入門編の最後、数学関数編です。
1. 組み込み関数一覧
特に記載がない場合は、Xレジスタの値に対して計算を行い、結果をXレジスタに格納します(Y, Z, Tは動きません)。
[CHS] : 符号反転。他の電卓の[+/-]キーと同じです。[EEX]の後だと指数部の符号を反転します。
[XEQ] "ABS" : 絶対値を求めます。
[XEQ] "INT" : 数値の整数部を求めます。
[XEQ] "FRC" : 数値の小数部を求めます。
[XEQ] "RND" : 内部数値を四捨五入して実際の表示数値(FIX, SCI, ENG で指定された書式)に合わせます。
[XEQ] "MOD" : 除算の余りを求めます。YをXで割った余りをXに格納します。スタックは一段ずつpopされます(Y←Z←T)。
[1/x] : 逆数を求めます。
[XEQ] "FACT" : 階乗を求めます。
[√x] : 平方根を求めます。[XEQ] "SQRT" も同じです。
[x2] : 2乗を求めます。[XEQ] "X↑2" (ALPHAモードで X [SHIFT] N [SHIFT] 2)も同じです。
[SHIFT] [π] : 円周率をXに格納します。スタックは一段ずつpushされます(X→Y→Z→T)。
[SHIFT] [%] : Y × X% を求めます。結果はXに格納され、Y以下のスタックは動きません。
[XEQ] "%CH" : 変化率(=(X-Y)/Y×100)を求めます。結果はXに格納され、Y以下のスタックは動きません。
[XEQ] "SIGN" : 符号を返します。X<0 のとき -1, x≧0 のとき 1, ALPHA文字列のとき 0 を返します。
[SIN] : 三角関数 sin を求めます。
[COS] : 三角関数 cos を求めます。
[TAN] : 三角関数 tan を求めます。
[SHIFT] [SIN-1] : 逆三角関数 arcsin を求めます。[XEQ] "ASIN" も同じです。
[SHIFT] [COS-1] : 逆三角関数 arccos を求めます。[XEQ] "ACOS" も同じです。
[SHIFT] [TAN-1] : 逆三角関数 arctan を求めます。[XEQ] "ATAN" も同じです。
[XEQ] "R-D" : ラジアンを度に変換します(ALPHAモードで - を入力するには[SHIFT] - です)。
[XEQ] "D-R" : 度をラジアンに変換します。
[XEQ] "HMS" : 10進数(時)を60進数(時分秒)に変換します。ここから4つの関数については2.で解説します。
[XEQ] "HR" : 60進数(時分秒)を10進数(時)に変換します。
[XEQ] "HMS+" : 60進数(時分秒)同志を加算します(ALPHAモードで + を入力するには[SHIFT] + です)。
[XEQ] "HMS-" : 60進数(時分秒)同志を減算します。
[SHIFT] [R→P] : 直交座標を極座標に変換します(X=x, Y=y → X=r, Y=θ)。
[SHIFT] [P→R] : 極座標を直交座標に変換します(X=r, Y=θ → X=x, Y=y)。
[LOG] : 常用対数(log10(X))を求めます。
[LN] : 自然対数(loge(X))を求めます。
[10x] : 10のx乗を求めます。[XEQ] "10↑X" も同じです。
[ex] : eのx乗を求めます。[XEQ] "E↑X" も同じです。
[XEQ] "LN1+X" : loge(X+1)を求めます。Xが0に近いとき、LN を用いるより正確な値が得られます。
[XEQ] "E↑X-1" : eのX乗-1を求めます。Xが0に近いとき、ex を用いるより正確な値が得られます。
[SHIFT] [yx] : YのX乗を求めてXに格納します。スタックは一段ずつpopされます(Y←Z←T)。
[XEQ] "DEC" : 8進数を10進数に変換します。
[XEQ] "OCT" : 10進数を8進数に変換します。
2. 60進数計算
HP-41Cでは、60進数(時分秒 or 度分秒)を次のように小数点下6桁の数字として表現します。
hh.mmsscc (例:12時間34分56.78秒 = 12.345678)
HMS 関数は、時間を時分秒に変換します。例えば次のようになります。
21.57 [XEQ] "HMS" → 21.3412 (21.57時間 = 21時間34分12秒)
この場合、実際に表示される小数点下の桁数は、FIX 命令などの指定に従います。なので、すべてを表示するためには[SHIFT] [FIX] 6 を実行しておく必要があります。
HR 関数は、時分秒を時間に変換します。例えば次のようになります。
167.221568 [XEQ] "HR" → 167.3710 (167時間22分15.68秒 = 167.3710時間)
60進数同志の加減算は、+ の代わりに HMS+ を、- の代わりに HMS- をそれぞれ使用します。通常の加減算と同じく、X+YまたはX-Yの結果がXに(60進形式で)格納され、スタックは一段ずつpopされます(Y←Z←T)。
3. 統計関数
統計の準備として、ΣREG 命令を使用して連続した6本のメモリレジスタを確保しする必要があります。その後、実際の計算に入る前に、CLΣ 命令を使用してデータをクリアする必要があります。例えば、以下のようにします(ALPHAモードで Σ を入力するには [SHIFT] F です)。
[XEQ] "ΣREG" 11 [SHIFT] [CLΣ]
HP-41Cの初期状態では、R11-R16が統計用メモリとして確保されています。以下ではその前提で説明します。
データを入力するのには[Σ+]キーを使用します。このキーによりXレジスタとYレジスタの値がそれぞれ各統計用メモリに集計され、Xレジスタには入力されたデータ数が格納されます(LASTx にはさきほど入力済みのXの値が入ります)。例えば、次のように入力していきます。
1 [ENTER] 2 [Σ+] : x1=2, y1=1
4 [ENTER] 3 [Σ+] : x2=3, y2=4
…
5 [ENTER] 0 [Σ+] : xn=0, yn=5
この操作により、以下の統計用メモリに集計値が格納されます。
R11 : Σx
R12 : Σx2
R13 : Σy
R14 : Σy2
R15 : Σxy
R16 : n
この値は通常のメモリレジスタと同じく、RCL 命令や VIEW 命令で参照することができます。
これらの集計値から、以下の統計値が求められます。
[XEQ] "MEAN" : xの平均をXレジスタに、yの平均をYレジスタに格納します。スタックZ, Tは動きません。
[XEQ] "SDEV" : xの標準偏差をXレジスタに、yの標準偏差をYレジスタに格納します。スタックZ, Tは動きません。
誤って入力した値を削除するには[SHIFT] [Σ-]キーを使用します。これは[Σ+]の逆で、Xレジスタ、Yレジスタの値を各統計用メモリから除き(減算し)ます。
これらの機能を使いこなせられるようになれば、関数電卓としては十分だと思います。RPNなので慣れるまでは大変かもしれませんが…。あと残っているのはプログラム機能だけですが、これについてはまたの機会にシリーズ化しようと思っています。
↓HP電卓の図鑑です
1. 組み込み関数一覧
特に記載がない場合は、Xレジスタの値に対して計算を行い、結果をXレジスタに格納します(Y, Z, Tは動きません)。
[CHS] : 符号反転。他の電卓の[+/-]キーと同じです。[EEX]の後だと指数部の符号を反転します。
[XEQ] "ABS" : 絶対値を求めます。
[XEQ] "INT" : 数値の整数部を求めます。
[XEQ] "FRC" : 数値の小数部を求めます。
[XEQ] "RND" : 内部数値を四捨五入して実際の表示数値(FIX, SCI, ENG で指定された書式)に合わせます。
[XEQ] "MOD" : 除算の余りを求めます。YをXで割った余りをXに格納します。スタックは一段ずつpopされます(Y←Z←T)。
[1/x] : 逆数を求めます。
[XEQ] "FACT" : 階乗を求めます。
[√x] : 平方根を求めます。[XEQ] "SQRT" も同じです。
[x2] : 2乗を求めます。[XEQ] "X↑2" (ALPHAモードで X [SHIFT] N [SHIFT] 2)も同じです。
[SHIFT] [π] : 円周率をXに格納します。スタックは一段ずつpushされます(X→Y→Z→T)。
[SHIFT] [%] : Y × X% を求めます。結果はXに格納され、Y以下のスタックは動きません。
[XEQ] "%CH" : 変化率(=(X-Y)/Y×100)を求めます。結果はXに格納され、Y以下のスタックは動きません。
[XEQ] "SIGN" : 符号を返します。X<0 のとき -1, x≧0 のとき 1, ALPHA文字列のとき 0 を返します。
[SIN] : 三角関数 sin を求めます。
[COS] : 三角関数 cos を求めます。
[TAN] : 三角関数 tan を求めます。
[SHIFT] [SIN-1] : 逆三角関数 arcsin を求めます。[XEQ] "ASIN" も同じです。
[SHIFT] [COS-1] : 逆三角関数 arccos を求めます。[XEQ] "ACOS" も同じです。
[SHIFT] [TAN-1] : 逆三角関数 arctan を求めます。[XEQ] "ATAN" も同じです。
[XEQ] "R-D" : ラジアンを度に変換します(ALPHAモードで - を入力するには[SHIFT] - です)。
[XEQ] "D-R" : 度をラジアンに変換します。
[XEQ] "HMS" : 10進数(時)を60進数(時分秒)に変換します。ここから4つの関数については2.で解説します。
[XEQ] "HR" : 60進数(時分秒)を10進数(時)に変換します。
[XEQ] "HMS+" : 60進数(時分秒)同志を加算します(ALPHAモードで + を入力するには[SHIFT] + です)。
[XEQ] "HMS-" : 60進数(時分秒)同志を減算します。
[SHIFT] [R→P] : 直交座標を極座標に変換します(X=x, Y=y → X=r, Y=θ)。
[SHIFT] [P→R] : 極座標を直交座標に変換します(X=r, Y=θ → X=x, Y=y)。
[LOG] : 常用対数(log10(X))を求めます。
[LN] : 自然対数(loge(X))を求めます。
[10x] : 10のx乗を求めます。[XEQ] "10↑X" も同じです。
[ex] : eのx乗を求めます。[XEQ] "E↑X" も同じです。
[XEQ] "LN1+X" : loge(X+1)を求めます。Xが0に近いとき、LN を用いるより正確な値が得られます。
[XEQ] "E↑X-1" : eのX乗-1を求めます。Xが0に近いとき、ex を用いるより正確な値が得られます。
[SHIFT] [yx] : YのX乗を求めてXに格納します。スタックは一段ずつpopされます(Y←Z←T)。
[XEQ] "DEC" : 8進数を10進数に変換します。
[XEQ] "OCT" : 10進数を8進数に変換します。
2. 60進数計算
HP-41Cでは、60進数(時分秒 or 度分秒)を次のように小数点下6桁の数字として表現します。
hh.mmsscc (例:12時間34分56.78秒 = 12.345678)
HMS 関数は、時間を時分秒に変換します。例えば次のようになります。
21.57 [XEQ] "HMS" → 21.3412 (21.57時間 = 21時間34分12秒)
この場合、実際に表示される小数点下の桁数は、FIX 命令などの指定に従います。なので、すべてを表示するためには[SHIFT] [FIX] 6 を実行しておく必要があります。
HR 関数は、時分秒を時間に変換します。例えば次のようになります。
167.221568 [XEQ] "HR" → 167.3710 (167時間22分15.68秒 = 167.3710時間)
60進数同志の加減算は、+ の代わりに HMS+ を、- の代わりに HMS- をそれぞれ使用します。通常の加減算と同じく、X+YまたはX-Yの結果がXに(60進形式で)格納され、スタックは一段ずつpopされます(Y←Z←T)。
3. 統計関数
統計の準備として、ΣREG 命令を使用して連続した6本のメモリレジスタを確保しする必要があります。その後、実際の計算に入る前に、CLΣ 命令を使用してデータをクリアする必要があります。例えば、以下のようにします(ALPHAモードで Σ を入力するには [SHIFT] F です)。
[XEQ] "ΣREG" 11 [SHIFT] [CLΣ]
HP-41Cの初期状態では、R11-R16が統計用メモリとして確保されています。以下ではその前提で説明します。
データを入力するのには[Σ+]キーを使用します。このキーによりXレジスタとYレジスタの値がそれぞれ各統計用メモリに集計され、Xレジスタには入力されたデータ数が格納されます(LASTx にはさきほど入力済みのXの値が入ります)。例えば、次のように入力していきます。
1 [ENTER] 2 [Σ+] : x1=2, y1=1
4 [ENTER] 3 [Σ+] : x2=3, y2=4
…
5 [ENTER] 0 [Σ+] : xn=0, yn=5
この操作により、以下の統計用メモリに集計値が格納されます。
R11 : Σx
R12 : Σx2
R13 : Σy
R14 : Σy2
R15 : Σxy
R16 : n
この値は通常のメモリレジスタと同じく、RCL 命令や VIEW 命令で参照することができます。
これらの集計値から、以下の統計値が求められます。
[XEQ] "MEAN" : xの平均をXレジスタに、yの平均をYレジスタに格納します。スタックZ, Tは動きません。
[XEQ] "SDEV" : xの標準偏差をXレジスタに、yの標準偏差をYレジスタに格納します。スタックZ, Tは動きません。
誤って入力した値を削除するには[SHIFT] [Σ-]キーを使用します。これは[Σ+]の逆で、Xレジスタ、Yレジスタの値を各統計用メモリから除き(減算し)ます。
これらの機能を使いこなせられるようになれば、関数電卓としては十分だと思います。RPNなので慣れるまでは大変かもしれませんが…。あと残っているのはプログラム機能だけですが、これについてはまたの機会にシリーズ化しようと思っています。
↓HP電卓の図鑑です
- 関連記事
-
- HP-41C プログラミング編 (1) (2012/04/11)
- go41c 基本編の続き (3) - 関数編 (2012/03/31)
- go41c 基本編の続き (2) - メモリ編 (2012/03/30)
スポンサーサイト