カテゴリー
数学

平方根を計算できるOA電卓で冪根を求める方法

現在はスマートフォンを含むコンピュータで手軽に冪根の数値解を得ることができる.

しかし, どうやって計算しているのかということを知っている人はいないだろうし、ほとんどの人は知る必要がないだろうし, 少しアルゴリズムに詳しい人ならニュートン法を使うというだろう.

とはいえ, 立方根を求めることができれば日曜大工くらいには使えるだろうから, 以下に手順を残しておこう.

目的をk(≥0)の立方根を求める.

  1. [CM][k][M+]を入力する. (平方根を残したい数をメモリに記憶するとともに画面入力する)
  2. [×][RM][=][][]を入力する.
  3. 前項の操作を繰り返し、作業の前後で値が変わらなくなったら操作を終了する. 画面に表示された値が k の立方根である

この操作は an+1=(kan)1/4 なる漸化式を順次計算することに相当する. この漸化式で表される数列 {an} の一般項が an=k1/3+c/4n (c は初項に依存する定数) であるので, n が大きくなる, すなわち, この漸化式を繰り返し適用し続けることで k の立方根が得られることがわかる.

カテゴリー
数学

数学夏祭り5日目

数学夏祭りの公式 Twitter アカウントに第5問が投稿されたので解いてみた。

カテゴリー
数学

数学夏祭り3日目

数学夏祭りの公式 Twitter アカウントに第3問が投稿されたので解いてみた。

カテゴリー
数学

数学夏祭り1日目

数学夏祭りの公式 Twitter アカウントに第1問が投稿されたので解いてみた。

カテゴリー
数学

数学夏祭り

数学夏祭りというものが開催されているということで, 2020年8月31日から14日間連続で17:00に出題されるということ。回答の投稿には Twitter のアカウントが必要ということで小職は直接の参加ができない状況だが, これのために Twitter のアカウントを開設する気にもならないので個人的にこのブログに投稿できればと思う.

なお, 出題は Twitter のアカウントにて行われるとのこと.

カテゴリー
数学

ベイズの定理(もっとも単純な例)

ベイズの定理とは事後確率と事前確率の変換を表したものである. ここでは最も簡単なモデルを取り扱ってみよう.

ここでは以下の仮定をする.

  • 日本人全体のうち, あるものMをもっているという比率を π とする.
  • あるものをもっている日本人に対し質問Qを行ったときに期待した回答(私は確かにMをもっている)が得られる確率をπAとする.
  • あるものをもっていない日本人に対し質問Qを行ったときに期待した回答(私は確かにMをもっていない)が得られる確率をπSとする.

これらの仮定のもとである日本人に対し質問Qを行ったところ, 私は確かにMをもっているという回答を得た. その人が本当に M をもっている確率を求めてみよう.

結論から言うと, これはベイズの定理によって計算できる.

実際に M をもっているという事象を H, 質問Qにより私は確かにMをもっているという回答を得るという事象をAとする.

求める確率は Pr(H|A) であり, これはベイズの定理により Pr(A|H)Pr(H)/(Pr(A|H)Pr(H)+Pr(A|¬H)Pr(¬H)) に等しい.

これに仮定で設定した値を代入すると (πAπ)/(πAπ+(1-πS)(1-π)) を得る.

カテゴリー
数学

角度の評価

某所にて, (要約すると)ArcTan(5/12) および ArcTan(3/4) を度数法で表せ(小数以下切り捨て) なる問題を出題した. そのときは円周率 π が 333/106<π<355/113 と近似できるというヒントを付けた.

これと, sin(x)<x<tan(x) (第1象限の角に限る) という大小関係をうまく用いてもらい, 適当な評価をしてもらう算段でいた.

実際に, sin(x)=S, tan(x)=T は正確に求められる状況であり, π1<π<π2 という条件を与えれば, x [rad]= θ [deg] という関係においては 180S/π2<θ<180T/π1 という関係が成り立つ.

ただ, この評価方法は0°<θ<15° 程度でないと大雑把すぎるので, 4倍角や5倍角の正弦や正接を計算させる必要があった。

ところが, 必要であれば2倍角の計算をすればいいようなもっといい近似方法があったようだ. 屈折率の式でおなじみのヴィレブロルト・スネルが見出した式である, 3sin(x)/(2+cos(x))<x<(2sin(x)+tan(x))/3 である (以降, この不等式の左辺をL, 右辺をUとする).

これにより、角度の評価は 180L/π2<θ<180U/π1 となる.

何といっても, その誤差は x5に比例するということが大きいし係数も小さい.

下限の比較では sin(x)=x-x3/6+Ο(x5) に対し, 3sin(x)/(2+cos(x))=x-x5/180+Ο(x7) となり, 上限の比較では tan(x)=x+x3/3+Ο(x5) に対し, (2sin(x)+tan(x))/3=x+x5/20+Ο(x7) となる。

この方法で当初の問題を解いてみると…

θ=ArcTan(5/12) のとき, 15/38<ArcTan(5/12)<185/468 は度数法ではこの時点で15900/703<θ<20905/923 と評価できる. この時点で小数第1位まで確定する. (θ=22.6…°)

θ=ArcTan(3/4) のとき, 9/14<θ<13/20 は度数法ではこの時点で9540/259<θ<13221/355 と評価できる. ざっと, θ=37°±0.1° といったところか.

さらに2倍角の公式で得た角と直角との差を評価すると 21/74<π/2-2Arctan(3/4)<511/1800 となり, 122767/3330<θ<50475/1369 を得る. なんと, これで小数第2位まで確定する (θ=36.86…°)

カテゴリー
学力試験 数学

実用数学技能検定1級合格!

9回目の受験にして漸く実用数学技能検定1級に合格することができました!

初めて挑戦したのは6年前. 直前に受験した準1級を満点で合格したのだから1級も何とかなるだろうと思ってチャレンジして, その結果が惨敗だったときの悔しさを胸に, 続けて2回受験するもまるで歯が立たず…

転居で環境が変わったところで気軽に受験できなくなった(個人受験会場が近くになかった)ために諦めていたところ, 次の転居ではまた個人受験会場が近くなったことから再起を決意.

昨年から受験をしたもののやはり合格には届かなかったが, 解法が全く思い浮かばないということがなくなったので、もう少しで手が届くという感触は得ていた。

それでも, 前回の結果が逆ボーダー (1次が4.5/7 (合格ライン 5/7), 2次が (2.3/4 (合格ライン 2.5/4)) だったときは心が折れかけた…

が, ここまでできているのだから何とかなると気合を入れ直したところ, 今度こそ合格ラインを超えることができたのである.

実用数学技能検定1級合格証
2019年10月27日実施第344回実用数学技能検定1級の合格証
カテゴリー
数学

連分数を処理する数式処理ソフトウェア

記事の都合上, 解釈が面倒な数式を書くので, 同じ式を表現した WolframAlpha へのリンクを設定しています.

連分数とは、分数の分母にさらに分数が含まれるような数値表現である.

例えば, 1+2/(3+4/(5+6/7))というようなものである.

特に、分子の部分がすべて 1 になっているような連分数のことを正則連分数といい, 単に連分数といった時には正則連分数であることを暗黙で示していることがある.

正則連分数について, a0+1/(a1+1/(a2+1/a3)) を [a0; a1, a2, a3] と表現する. 各 ai は正の整数 (a0 は0や負の値を含めた整数) である.

ある実数を(正則)連分数に変換することを連分数展開というが, 有理数ならば有限項の連分数で, 無理数ならば無限項の連分数で表現されることがわかっている.例えば, 355/113=[3; 7, 16], π=[3; 7, 15, 1, 292, 1, 1, 1, 2, 1, 3, 1, 14, 2, 1, 1, 2, 2, 2, 2, 1, 84, 2, 1, 1, 15, 3, 13, 1, …] となる.

無理数を分数(整数比)で近似する場合, 連分数展開を途中で打ち切って真分数や仮分数に戻すという手段が使われる。 そうして現れる分子や分母の値は, それ以下の整数を用いたあらゆる整数比(分数)よりもよりよい近似となることが知られている.

実際に, 例に挙げた 355/113=[3; 7, 16]=[3; 7, 15, 1] は 355 以下の整数を用いた分数の中で最良の円周率の近似である.

さて, 正則連分数展開は次の手順で行われる.

  1. 正則連分数展開を行いたい数を ω0 とし, n を 0 とする.
  2. ωn の整数部分を an とする.
  3. ωn の小数部分が 0 に等しい場合は, ak (kn+1) は存在しない, すなわち, 連分数表現は an の項で打ち切る.
  4. ωn+1ωn=an+1/ωn+1 を満たすように定める.
  5. n に 1 を加えて2番目の手続きに戻る.

この作業を行う数式処理ソフトををいくつか紹介する.

カテゴリー
数学

常用対数の近似計算と10の自然対数の近似計算

非常に大きな数を扱うための概念として対数を高校数学で学習する. 例えば, 210 は 103 とほぼ等しい. 10 の累乗に値を換算したときの指数に相当する数を, その元の数の常用対数 をとった値というのである. これを式で表したものが log10210≈3 という関係である.

なお, 3dB(decibel( で 2 倍という関係はこの対数計算から得られるのである.

これを一般化すると, 1 ではない正の実数 a, 任意の実数 r について対数(logarithm(を次のように定義するということである。

ar=R ⇔ logaR=r

a=10 のときは常用対数, a=e (e: ネイピア数) のときは自然対数, a=2 のときは二進対数と特別に呼ばれる.

logaR という表記であるが, 文脈から明らかな場合は a はしばしば省略される.

ここでよく話題になる話として, 様々な整数の常用対数をとるといくらになるのか? というものがある. いくつかの整数に対して, その概算値を出してみよう.

log(1) は正確に 0 である. なぜならば, すべての 0 ではない実数 R について R0=1 が成り立つからである.

log(2) は冒頭で話題にした 210≈103 の関係から 10log(2)≈3 ⇔ log(2)≈0.3 となる. 厳密には 210>103 であるから log(2)>0.3 である. 上からの評価もしたい. 1000<1024<1250 の関係を使うと. 常用対数をとると 3<10log(2)<=4-3log(2) となるから log(2)<4/13<0.3077 が得られるが、 ちょっとこれではおおざっぱすぎる. ここは天下り的ではあるが, 293<1028 という関係を使う. すると, log(2)<28/93<0.3011 を得る.

log(3) についてもここでは近似値を求めることになる. 80<81 より 1+3log(2)<4log(3) から log(3)>19/40=0.475 という評価ができる. また, 20000>19683=39 ⇔ 4+log(2)>9log(3) から log(3)<4/9+log(2)/9=400/837<0.4779

これらの値を用いて log(4)=2log(2), log(5)=1-log(2), log(6)=log(2)+log(3), log(8)=3log(2), log(9)=2log(3) が概算できる.

1桁の整数の残り log(7) は様々な近似が検討されている. 例えば, 48<49<50 ⇔ 4log(2)+log(3)<2log(7)<2-log(2) より 67/80=0.8375<log(7)<17/20=0.85 という簡易的な評価がある. もうちょっと精度を上げるならば 74=2401>2400 ⇔ 4log(7)>2+3log(2)+log(3) より log(7)>27/32=0.84375, 48×1024/1000>49 ⇔ 14log(2)+log(3)-3>2log(7) より log(7)<1417/1674<0.8465 さらには, 106<22×36×73 と 210×78<310×105 を評価すれば小数第3位まで確定できる.

最後に loge(10) を評価する. そうすると, 自然対数と常用対数の変換に必要な定数が得られるのである. ただ, こちらについては積分計算により求めるのが一般的だろう. 12(1/x)dx=loge(2) という関係があるからだ. 被積分関数は積分区間内において凸関数なので、台形近似では収束がちょっと遅い. シンプソンの公式なら劇的に早く収束する. 具体的には (1/(6n))(1+2Σj=1n-11/(1+2j/(2n))+4Σj=1n(1/(1+(2j-1)/(2n)))+1/2) これを必要な精度まで計算して log10(2) で割ると loge(10) が得られる. シンプソンの公式は4次収束なので、n=2 でも3桁の精度は出る. loge(2)≈0.693 なので loge(10) は 2.25 から 2.31 の範囲にあるといえる.