温故知新:番外編 - 電卓評価用の積分を解いてみた

プログラム電卓 温故知新
 - 搭載プログラミング言語に注目して、プログラム電卓の変遷を考える -
目次

 
2021/07/03



番外編 - 電卓評価用の積分を解いてみた

プログラム電卓温故知新の記事、プログラム電卓やスタンダード関数電卓の評価記事では、計算能力を調べるために積分を利用している。

そこで、これらの積分を紙とペンで実際に解いて正しい解を計算してみる。他にも解き方はあると思う。いずれにせよ電卓の計算結果が正しいかどうかの確認になる。また実際に計算してみると積分の性質が少しは解る。

使っているのは、下記の積分;
1. 電卓で時間のかかる積分I

2. 
物理で良く使うガウス積分の類型Gauss

3. 定義域ギリギリでCORDICアルゴリズムを使う積分cos_ln

4. 電卓では苦手と思われる周期関数の積分periodi




1.I


左辺の積分を I とおき、さらに2つの積分に展開する。
TimeWastingIntegral_1

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

=====

先ず、F の被積分関数を f(x) とする。
f(x)

これをよく見てみると、f(x) は奇関数である。以下の計算からも f(x) が奇関数だと示せる。
f(x)_1

従って、奇関数 f(x)-2 から 2 まで積分すると、-2 から 0 の積分と0 から 2 までの積分が互いに打ち消し合うので、

 F_1

=====

次に、G を求める。
G

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


Pytha

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

これらを変形すると以下の関係が得られる。
sqrt
x
x-2 → 2
θπ/2 → π/2

これらを使うと、以下の不定積分が得られる。
G_2

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

sin  と cos
を用いて、以下が得られる。
sincos_2

G_3

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

 G_5

=====

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

I_1



2.Gauss

Gauss_1

電卓の10桁の精度では、e-200 は0だから、この積分は1となる。

ちなみに、積分区間を 0 から 無限大に変えると、結果は正しく1になる。

Gauss_2



3.cos_ln

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

Euler

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

Euler_1

Euler_2


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

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

cos_ln_2

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

cos_ln_4

fx-CP400 を除く電卓では積分区間を [0, 1] とすると計算結果が 0.4999999999 となり 1/2 (=0.5) にならない。しかし積分区間を [-1010, 1] にすると、計算結果 1/2 が得られる。ln 0 の内部演算において、CORDICアルゴリズムを適用する際に - (無限小) によるエラーを回避しようとして誤差が発生していると思われる。実装されている CORDIC アルゴリズムの限界が垣間見える。

CCORDICアルゴリズムについては、以下を参照;
関数電卓のしくみ (CORDICアルゴリズム)



4.periodi

x-y直交座標での sin x の曲線を思い浮かべると、下記がわかる;
 ・x軸と |sin x| の間の面積は、1周期の区間では sin x の2倍
 ・区間 [-nπ, nπ] での積分は、区間 [0, π/2]での積分の 2n 倍

これに従って、式を変形すれば良い。

periodic_result





温故知新 - 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

温故知新:番外編 - 関数電卓としての使い勝手
温故知新:番外編 - 電卓評価用の積分を解いてみた
温故知新:番外編 - 電卓評価用の複素数を解いてみた



応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 


keywords: プログラム関数電卓、プログラミング、Casio Basic、CFX-9850GC PLUS

リンク集 | ブログ内マップ

関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

コメントの投稿

非公開コメント

最新記事
検索フォーム
最新コメント
カテゴリ
C# (3)
Online Counter
現在の閲覧者数:
プロフィール

やす (Krtyski)

Author:やす (Krtyski)
since Oct 30, 2013


プログラム電卓は、プログラムを作って、使ってナンボ!

プログラム電卓を実際に使って気づいたこと、自作プログラム、電卓での Casio Basic, C.Basic そして Casio Python プログラミングについて書いています。

なお管理人はカシオ計算機の関係者ではありません。いつでもどこでもプログラミングができるプログラム電卓が好きな1ユーザーです。


写真: 「4駆で泥んこ遊び@オックスフォード郊外」

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

ブロとも申請フォーム

この人とブロともになる

QRコード
QR