温故知新:番外編 - 電卓評価用の積分を解いてみた
プログラム電卓 温故知新
- 搭載プログラミング言語に注目して、プログラム電卓の変遷を考える -
番外編 - 電卓評価用の積分を解いてみた
プログラム電卓温故知新の記事、プログラム電卓やスタンダード関数電卓の評価記事では、計算能力を調べるために積分を利用している。
そこで、これらの積分を紙とペンで実際に解いて正しい解を計算してみる。他にも解き方はあると思う。いずれにせよ電卓の計算結果が正しいかどうかの確認になる。また実際に計算してみると積分の性質が少しは解る。
使っているのは、下記の積分;
左辺の積分を I とおき、さらに2つの積分に展開する。

それぞれを F、G とおくと、I = F + G となるので、F と G をそれぞれ別に求める。

=====
先ず、F の被積分関数を f(x) とする。
.png)
これをよく見てみると、f(x) は奇関数である。以下の計算からも f(x) が奇関数だと示せる。
_1.png)
従って、奇関数 f(x) を -2 から 2 まで積分すると、-2 から 0 の積分と0 から 2 までの積分が互いに打ち消し合うので、

=====
次に、G を求める。

変数変換を行うために、以下の直角三角形の各辺の長さの関係(ピタゴラスの定理)を利用する。

この各辺の関係を使って、x から θ に変数変換する。
、
これらを変形すると以下の関係が得られる。


x : -2 → 2
θ :-π/2 → π/2
これらを使うと、以下の不定積分が得られる。

ここで、上記の変数変換の式
を変形すると、以下が得られる ( -π/2 < θ < π/2 )。

(sin-1 は arcsin と同じ)
と 
を用いて、以下が得られる。


ここで得られた不定積分を使って、G を求める。


=====
I = F + G に F = 0 と G = π を代入する。


電卓の10桁の精度では、e-200 は0だから、この積分は1となる。
ちなみに、積分区間を 0 から 無限大に変えると、結果は正しく1になる。

cos(ln x) が、オイラーの公式で展開したときの実部になるような複素数を考える。

ところで、左辺は以下のように変形できる。


これを使って cos(ln x) を積分すると、

ところで、xi の積分を計算すると、

これの実部が求める答えになる。

fx-CP400 を除く電卓では積分区間を [0, 1] とすると計算結果が 0.4999999999 となり 1/2 (=0.5) にならない。しかし積分区間を [-1010, 1] にすると、計算結果 1/2 が得られる。ln 0 の内部演算において、CORDICアルゴリズムを適用する際に -∞ (無限小) によるエラーを回避しようとして誤差が発生していると思われる。実装されている CORDIC アルゴリズムの限界が垣間見える。
CCORDICアルゴリズムについては、以下を参照;
⇒ 関数電卓のしくみ (CORDICアルゴリズム)
x-y直交座標での sin x の曲線を思い浮かべると、下記がわかる;
・x軸と |sin x| の間の面積は、1周期の区間では sin x の2倍
・区間 [-nπ, nπ] での積分は、区間 [0, π/2]での積分の 2n 倍
これに従って、式を変形すれば良い。

温故知新 - FX-502P / FX-602P / FX-603P
温故知新 - fx-4000P / fx-4500P / fx-4800P
温故知新 - fx-7000G
温故知新 - CFX-9850G
温故知新 - CFX-9850GC PLUS
温故知新 - fx-9860G
温故知新 - fx-5800P
温故知新 - fx-9860GII
温故知新 - fx-CG10 / fx-CG20
温故知新 - fx-CP400
温故知新 - fx-CG50
温故知新 - fx-9750GIII
温故知新:番外編 - 関数電卓としての使い勝手
温故知新:番外編 - 電卓評価用の積分を解いてみた
温故知新:番外編 - 電卓評価用の複素数を解いてみた
応援クリックをお願いします。励みになるので...
- 搭載プログラミング言語に注目して、プログラム電卓の変遷を考える -
番外編 - 電卓評価用の積分を解いてみた
プログラム電卓温故知新の記事、プログラム電卓やスタンダード関数電卓の評価記事では、計算能力を調べるために積分を利用している。
そこで、これらの積分を紙とペンで実際に解いて正しい解を計算してみる。他にも解き方はあると思う。いずれにせよ電卓の計算結果が正しいかどうかの確認になる。また実際に計算してみると積分の性質が少しは解る。
使っているのは、下記の積分;
1. | 電卓で時間のかかる積分 | ![]() |
2. | 物理で良く使うガウス積分の類型 | ![]() |
3. | 定義域ギリギリでCORDICアルゴリズムを使う積分 | ![]() |
4. | 電卓では苦手と思われる周期関数の積分 | ![]() |
1. | ![]() |
左辺の積分を I とおき、さらに2つの積分に展開する。

それぞれを F、G とおくと、I = F + G となるので、F と G をそれぞれ別に求める。


=====
先ず、F の被積分関数を f(x) とする。
.png)
これをよく見てみると、f(x) は奇関数である。以下の計算からも f(x) が奇関数だと示せる。
_1.png)
従って、奇関数 f(x) を -2 から 2 まで積分すると、-2 から 0 の積分と0 から 2 までの積分が互いに打ち消し合うので、

=====
次に、G を求める。

変数変換を行うために、以下の直角三角形の各辺の長さの関係(ピタゴラスの定理)を利用する。

この各辺の関係を使って、x から θ に変数変換する。


これらを変形すると以下の関係が得られる。


x : -2 → 2
θ :-π/2 → π/2
これらを使うと、以下の不定積分が得られる。

ここで、上記の変数変換の式

を変形すると、以下が得られる ( -π/2 < θ < π/2 )。

(sin-1 は arcsin と同じ)


を用いて、以下が得られる。


ここで得られた不定積分を使って、G を求める。


=====
I = F + G に F = 0 と G = π を代入する。

2. | ![]() |

電卓の10桁の精度では、e-200 は0だから、この積分は1となる。
ちなみに、積分区間を 0 から 無限大に変えると、結果は正しく1になる。

3. | ![]() |
cos(ln x) が、オイラーの公式で展開したときの実部になるような複素数を考える。

ところで、左辺は以下のように変形できる。


これを使って cos(ln x) を積分すると、

ところで、xi の積分を計算すると、

これの実部が求める答えになる。

fx-CP400 を除く電卓では積分区間を [0, 1] とすると計算結果が 0.4999999999 となり 1/2 (=0.5) にならない。しかし積分区間を [-1010, 1] にすると、計算結果 1/2 が得られる。ln 0 の内部演算において、CORDICアルゴリズムを適用する際に -∞ (無限小) によるエラーを回避しようとして誤差が発生していると思われる。実装されている CORDIC アルゴリズムの限界が垣間見える。
CCORDICアルゴリズムについては、以下を参照;
⇒ 関数電卓のしくみ (CORDICアルゴリズム)
4. | ![]() |
x-y直交座標での sin x の曲線を思い浮かべると、下記がわかる;
・x軸と |sin x| の間の面積は、1周期の区間では sin x の2倍
・区間 [-nπ, nπ] での積分は、区間 [0, π/2]での積分の 2n 倍
これに従って、式を変形すれば良い。

温故知新 - FX-502P / FX-602P / FX-603P
温故知新 - fx-4000P / fx-4500P / fx-4800P
温故知新 - fx-7000G
温故知新 - CFX-9850G
温故知新 - CFX-9850GC PLUS
温故知新 - fx-9860G
温故知新 - fx-5800P
温故知新 - fx-9860GII
温故知新 - fx-CG10 / fx-CG20
温故知新 - fx-CP400
温故知新 - fx-CG50
温故知新 - fx-9750GIII
温故知新:番外編 - 関数電卓としての使い勝手
温故知新:番外編 - 電卓評価用の積分を解いてみた
温故知新:番外編 - 電卓評価用の複素数を解いてみた
応援クリックをお願いします。励みになるので...