人気ブログランキング |
<   2010年 03月 ( 11 )   > この月の画像一覧
獣の数字  その2



獣の数字と呼ばれる666に関する駄文の続き。
8乗や10乗くらいを扱うのでは平凡だから、大きな値を計算してみた。
求めたのは666の666乗で、1881桁ある。
c0069055_1884367.jpg

計算の補助具としてEXCELを使った。
数を小さな桁にばらして計算。

たとえば、587179×798781 を計算するとき、
587をA
179をB
798をC
781をD とすると、
 587179×798781
=(1000A+B)(1000C+D)
=1000000AC + 1000AD + 1000BC + BD となるので、
実質的に3桁同士の掛け算とそれらの足し算で済む。
(1000000 や 1000 は、位取りを意味する)

これを応用して、桁数の多い数を小さく分割してやれば
小さい桁の掛け算の集まりになり、
最後に位取りを意識して合成すれば、できあがり。

したがって、たとえば1000桁同士の掛け算は、
そのままでは実行できないが、
5桁ずつ200個に分割してやれば、EXCELでも計算できる。

書いてしまえばそれだけのことだが、
位取りを間違えずに40000個(200個×200個)の計算結果を合成するのは
手間がかかる、繰り上がりも面倒だし。
by hikihitomai | 2010-03-28 19:03 | 物見遊山
radiko
「Photomatix Pro 体験版」で加工。
c0069055_0331641.jpg

ラジオ放送をインターネットで聴取できる。
民放のIPサイマル放送 "radiko.jp" がそれ。
いわゆるネットラジオとは異なり、電波に乗せたラジオ番組を数秒遅れで配信している。
先週から関東と関西地方で「実験放送」が始まった。
開設初日はつながりにくかったけれど、今は問題なく聴取できるようだ。

ストリーミングにありがちなシュワシュワ感が少なく、
FM局もAM局(中波放送)も聞きやすい。
うちにはAMステレオ対応のラジオがないから、
文化放送やニッポン放送がステレオ音声で聴けるのは新鮮。

音声のみの放送はPCと親和性が高いと思う。
放送を聞きながら、PCで他の作業ができるからだ。
もともとラジオは何かをしながら聞くものだし。

いくつか残念な点もある。
民放サイトなのでNHKは聞けない。
ないものねだりはさておき、地域によって聴取できる局が限定されるのが残念。
せっかくのインターネットなのに、
千葉県民の私は関東地方の放送局しか聞けない。

いうまでもなくインターネットは国境を越えてアクセスできる。
海外のエッチなサイトでアレやソレを閲覧することだって可能なのに、
ラジオ番組は関東圏内を脱出できない。

全国各地の放送をPCで聞くことができれば楽しいと思うが、
実現する可能性は低いだろう。
許認可問題やら著作権やら面倒な問題がたくさんあるらしい。
加えて、もともと放送局は各地域で電波を寡占(または独占)することで
利益を生む構造になっているから、今後どうなることやら。
by hikihitomai | 2010-03-23 22:45 | HDR
獣の数字
20年ほど前に知人から聞いた笑い話。
「オレのオヤジは昭和6年6月6日生まれだから6・6・6なんだ。
 オ-メンみたいだろ?
 でもオヤジは中華ソバ屋だからラーメンなんだ」

大切なことは忘れても、くだらないことは覚えている。
というわけで「獣の数字」などと呼ばれる666に関する駄文。
666は面白い特徴がある。
c0069055_22184725.jpg

まず、1から36(6×6)までの総和が666。それが先頭の足し算。
2番目の足し算は、小さい順に7つの素数をそれぞれ自乗(2乗)。
このあたりまでは、数学本によくでてくる。
3つ目の足し算はうろ覚えの式を試算して確かめたもの。
1,2,3,4,5,6,5,4,3,2,1という回文のような数をそれぞれ3乗。
数学本のネタばかりではアレなので、
意味ありげな加算を探索したのが4番目と5番目。
4番目は指数が1,2,3,4,5ときれいに並んでいる。
5番目は数字の「しりとり」。

Wikipediaには、「666」の記事があって、
「円周率の最初の3を除く、小数点以下144桁の数字の和は666」と掲載されている。
1桁のランダムな数字を足していって、合計が666になる確率は、
大雑把に考えて1/9だから、あまり不思議でもないような気がするが。
c0069055_2219799.jpg

さんざん考えても666関係はそれらしい足し算が思いつかなかったので、
666×666を累乗数(べき乗数)の足し算にしてみた。
まあ、ナンクロみたいなもので、やみくもに計算した結果である。
上から順に、自乗数(2乗数)の和、立方数(3乗数)の和、4乗数の和、5乗数の和。
自乗数の和は、一応、素数だけで構成されているが、
その他は4の4乗や、8の5乗など、反則気味の数を無理やり使っている。

c0069055_22192519.jpg

ついでというか、勢いで計算したのが666×666×666のパターン。
2番目の足し算は素数の自乗で構成したが、1番目の方がすっきりしている。
3番目の1の3乗、4番目の1の4乗は反則気味だけれど、
それぞれ1回しか使っていないのでヨシとした。
5番目の5乗数の和は、これを見つけるのに手間取った。
なかなか見つからないのがまた楽しいのであるが、
こういうことが楽しいと思えるのは、性格的にアレかもしれない。

いろいろと考えていたら、666にまつわる事例をみつけた。
日本で日常的に使用されている硬貨は、6種類。
500円玉、100円玉、50円玉、10円玉、5円玉、1円玉。
それら1枚ずつの合計金額は666円である。
獣やオーメンには関係ないけど。

*******
Queen/ Don't stop me now
by hikihitomai | 2010-03-22 22:52
超音波診断
c0069055_23133572.jpg

動物病院で診てもらった。
ソラのおなかに赤ちゃん。
近親交配だから心配事もあるが、何はともあれ出産準備。


c0069055_23422449.jpg
ソラ





c0069055_2343124.jpg
シバ(別名デブゴン)

by hikihitomai | 2010-03-21 23:44 | ねこ
素因数分解
c0069055_222359.jpg

大きな数を素因数分解するのは楽しい。
趣味と呼ぶには妙な遊びだとは思うが、
時間が経つのも忘れて計算に没頭してしまう。

キッカケは中学生の頃、1234567 が素数か否かを調べたことにさかのぼる。
1970年代前半のことだから家には電卓もパソコンもなく、手計算である。
  1234567 = 127×9721

約数を発見したときの喜びは大きかった。
これに味をしめ、次にチャレンジしたのは、123456789
各位の数の合計(45)が9で割り切れるから、9を約数に持つことはすぐにわかる。
  123456789 = 3×3×137174421
ここまでは簡単。

問題は、137174421が約数を持つか否か。
幸運なことに、闇雲に割り算をしていたら、偶然、発見した。
  123456789 = 3×3×3607×3803

計算を繰り返しているうち、
確実に約数を見つける方法はないかと考えるようになり、
素数の一覧表を作れば効率が良さそうだと思いついた。
一覧の中から、小さい順に割り算を繰り返せば素因数分解できる。

一覧表は、手間はかかるが単純作業で作ることができる。
たとえば、1から1000までの数を羅列し、
その中から2の倍数を消し、3の倍数を消し、5の倍数を消し、、、
という具合に繰り返せば、残った数が素数である。

誰でも思いつくような泥臭い手段であるが、
後年、それが「エラトステネスの篩(ふるい)」と呼ばれることを知った。

カーペンターズの “Yesterday once more” がヒットしていた頃、
私はノートに1万までの数を書き出し、せっせと自家製の篩を作った。
c0069055_22243744.jpg

割り算をしているうち、あることに気付いた。

たとえば、100の約数は小さい順に 1,2,4,5,10,20,25,50,100 であり、
100をそれらで割った結果は 100,50,25,20,10,5,4,2,1 という具合に順に小さくなる。
「割る数」と「割った結果」の大小関係は10で入れ替わるから、
10より大きい数で割り算をしなくても、20,25,50 の存在は自ずと分かる。

このとき、10 は、もとの数100の平方根である。
つまり、割り算による約数の探索は、もとの数の平方根まで計算すればよい。
これは発見だと思ったのは、早合点。
私が知らなかっただけのことで、発見でも何でもない。

中学生だったから仕方がない、ということにして、
1234567に類する数の素因数分解は次のとおり。

       12 = 2×2×3
      123 = 3×41
     1234 = 2×617
    12345 = 3×5×823
   123456 = 2×2×2×2×2×2×3××643
  1234567 = 127×9721
 12345678 = 2×3×3×47×14593
123456789 = 3×3×3607×3803

ちなみに、23456789 は素数である。

そんな計算をして遊んでいるうち、変な癖がついてしまった。
数をみると約数が気になるのである。

車を見れば、ナンバープレートの4桁の数を素因数分解。
乗車券に印字された通し番号を素因数分解。
雑誌の通巻番号を素因数分解。
変な癖である。

やがて大人になリ、
美しい女性を見ると無性に口説きたくなるエロオヤジになったが、
それでも数をみると無性に素因数分解したくなる癖は治らなかったから、
約数を探索する行為は、動物の根本的な欲望に関係があるに違いない。
食欲、性欲、素因数分解欲である。

美しいといえば、数学本などに、
次のような数字のピラミッドが掲載されている。

        1^2 =         1
       11^2 =        121
      111^2 =       12321
     1111^2 =      1234321
    11111^2 =     123454321
   111111^2 =    12345654321
  1111111^2 =   1234567654321
 11111111^2 =  123456787654321
111111111^2 = 12345678987654321


12321のように左右どちらから見ても同じ数を「回文数」と呼ぶそうだ。
c0069055_22272247.jpg

欲望に基づき、それらの回文数を素因数分解した。
さすがに手計算は無理があるので、補助具としてEXCELを利用。
シート上に「エラトステネスの篩」を作り、
表中のすべての素数で割り算を実行し、割り切れるか否かを判定。

全自動ではない。手計算を交える方法なので、
つまり手計算に毛が生えた程度の方法なので手間がかかる。
そして、その手計算が何故か嬉しい。
もう少し洗練された方法を思いついたら、誇らしげにblogに投稿しようと思うが、
手計算を残す方が遊びとしては楽しいだろう。

で、毛が生えた計算結果は次のとおり。

       121         = 11×11
      12321        = 3×3×37×37
     1234321       = 11×11×101×101
    123454321      = 41×41×271×271
   12345654321     = 3×3×7×7×11×11×13×13×37×37
  1234567654321    = 239×239×4649×4649
 123456787654321   = 11×11×101×101×73×73×137×137
12345678987654321  = 3×3×3×3×37×37×333667×333667


上の計算結果の中で、
 “123456787654321 = 11×11×101×101×73×73×137×137” は、
 “123456787654321 = 11×11×101×101×10001×10001” と、
表記する方が美しいと思う。
素因数分解したことにはならないけれど、
手計算したから気が付いた美しさである。

ついでに、次のような回文数も素因数分解。

        212         = 2×2×53
       32123        = 7×13×353
      4321234       = 2×2160617
     543212345      = 5×13×73×239×479
    65432123456     = 2×2×2×2×2×2×7×146053847
   7654321234567    = 7×59×18533465459
  876543212345678   = 2×449×52511×18588601
 98765432123456789  = 449×494927×444444443
9876543210123456789 = 3×3×13×6353×8969×1481481481

というわけで、だらだらと書いたけれど、
これらの計算結果が何かの役に立つのかといえば、何の役にも立たない。
例によって、計算することが目的だから。
by hikihitomai | 2010-03-19 23:51 | 植物
強盗
c0069055_22342587.jpg

今日、職場の近くで強盗事件。
現場周辺は騒然となったらしい。
昼休み、外出から帰った職場のオバチャンは
そりゃあもう大変だったんだから、と熱く語っていた。

オバチャンは事件に巻き込まれたわけでもなく、
ただ現場付近を通っただけであり、
しかも事件が起きる前に通っただけなのに、
何が「大変」だったのかは誰にもわからない。
理屈ではないのである。

確かなことは、こういうときのオバチャンは生き生きとしていること。
根拠のない高揚感に酔いしれている。

からかうつもりで、
「犯人はシーシェパードらしいよ」とデタラメを言ったら、
オバチャンは冗談を真に受けてしまった。
海賊が日本橋界隈で暴れるわけがないのに、
さっそく内線電話を手にとり、仲のよいオバチャンに情報伝達。
「知ってる? 犯人はシーパレードなんだってさ」

犯人の名前が微妙に違うんだけど、ま、だいたい合っている。
デマはこうやって広まるのだろう、なんて偉そうに書く資格はないか。。。

シーシェパードといえば、捕鯨船が海賊船に襲われる昨今、
日本のイルカ漁を盗撮した映画がアカデミー賞を受賞した。
高度な知能を持つイルカを食うのはケシカラン、と。
授賞式は盛り上がったようだけれど、
彼らの高揚感はきっとオバチャンの高揚感と共通のものだろう。

だいたい、奥さん信じられますか、盗撮映像ですよ。
くだらない映画など放っておけばいいのにね。
ラジー賞もあることだし。

来年は、女性の私生活を盗撮した映画がアカデミー賞かな。
高度な知能を持つ女性を食うのはケシカラン、という理由で。
平等を期して、男性の盗撮映画もアカデミー賞ってことでどうだ。

イルカ映画に関して、日本の反応は、
アメリカ人は牛を年間数千万頭も食うくせに、とか、
動物を知能の高さで云々するのはオカシイ、とか。

食肉レベルの問題なのかな?
アメリカ人の言い分を突き詰めると、
高度な知能を持つアメリカ人を食うのはケシカラン、と
そういう主張に行き着くように思えるのは気のせいかしら。

説明するのは難しいけど、なにしろアメリカ人は優秀だからね。
まあ、少なくとも牛より知能が高いことは間違いない。
よだれを垂らしてないから。
鼻に鉄製の輪もつけてないし。

そういうアメリカ人が相手だから、理屈で対抗しても勝ち目はないだろう。
強盗を退治するくらいの態度でないとね。
by hikihitomai | 2010-03-16 23:49 | 植物
円周率の日
c0069055_1758830.jpg

今日、3月14日は「円周率の日」だとか。
円周率は、小数点以下がランダムに現れて無限に続く無理数であり、
ネイピア数とならび超越数とも呼ばれる。

小学生の頃、誰かが学校に持ってきた本に円周率が40桁くらい書いてあった。
みんなで競うように暗記したものだ。
小学生の流行みたいなものだからインフレが起こり、
図書室で調べて100桁まで覚えるヤツもいた。
私のことである。

社会人になる頃まで100桁を暗唱できたのだが、
その後、急激に記憶が失われた。
現在、10桁までは覚えているが20桁となると曖昧になる。
たまに40桁くらいまで思い出したりして笑える。

記憶といえば、電話番号も50件くらいは覚えていられたけれど、
それは若い頃の、遠い日の話。
今はまるでダメ。
ケータイなんかを使うようになったら、自宅の電話番号も怪しい。
生活が便利になると同時にアホになるのは危険だと思うが、どうにもならない。
ま、今年50歳になるオヤジだから、仕方がないとあきらめるのも肝要であろう。
c0069055_17581836.jpg

紀元前の大天才アルキメデスは、
円に内接する多角形と外接する多角形の辺の長さをもとに円周率を算出した。
  223/71 < 円周率 < 22/7

小数にすると偉大さがわかる。
  223/71 ≒ 3.1408450704・・・
  22/7   ≒ 3.1428571428・・・

小数点以下第2位まで正解。
天才とはいえ紀元前の人が計算した結果なのだから驚異的である。

PCを使えば、現代のアホでも紀元前の天才に迫れるかもしれない。
そう思ったのは1984年頃、中古のPCを貰ったときのこと。
シャープのMZ80である。

既に型落ち品であったが、初めて使うパソコンは面白かった。
マニュアルを読みつつ、BASICでプログラムを作って遊んだ。
特に熱中したのは円周率の近似計算。

ただ、MZ80は一行ずつ翻訳しながら処理するインタプリタ方式のため、
お世辞にも高速とはいえなかった。
低速ゆえに、計算をいかに工夫するかが面白かったのである。

まず、ものは試しに、原始的な方法で計算してみた。
正方形とそれに内接する円の面積比から円周率を求める方法である。
正方形内のxy座標が、円の内側か外側をカウントする単純な計算。
きめ細かく座標を区切れば計算精度が高くなる。

しかし、計算量が多くて結果が出るまで時間がかかった。
一日放っておいても計算が終わらないのである。
有効桁数8桁の計算には、
座標を10^8で区切るわけで、計算量は(10^8)^2となり、
一日どころか一ケ月かかっても結果が出ないのである。

そこで、計算方法を改め、処理方法も工夫した。
詳細は割愛して、ニュートン法を応用したら、あっという間に計算が終わった。
このとき私は「ニュートン法は収束が速い」ことを、しみじみと実感したのである。
c0069055_18215948.jpg

円周率は、小数点以下が無限に続くので、
たとえば11を「あ」、12を「い」という具合に数を言葉に置き換えると、
意味のある文章が現れるかもしれない。

無限に続くのだから、
夏目漱石の「吾輩は猫である」が現れる可能性もゼロではない。
「無限の猿定理」である。
万物の真理だって現れるかもしれない。

あらゆるモノが現れる可能性があるが、円周率自身が出現したら大事件である。
小数点以下1桁目からn桁目の数の並びが、n+1桁目から再現してしまったら、
円周率は循環小数(有理数)になってしまい、無理数ではなくなる。

つまり、円周率(無理数)は、無限の猿定理とは相容れないのである。
なんてことを思いついた私は、ちょっとした発見ではないかと
密かに思っているのだけれど、酔っ払いオヤジの考えることだからなぁ。。。


というわけで、関連する当blogの駄文は次のとおり。時間のある方はご参照ください。
2007年3月1日付/ 「円周率」
2009年9月7日付/ 「無限の猿定理」
2010年1月4日付/ 「最も美しい等式」

by hikihitomai | 2010-03-14 19:06 | 生き物
シェルピンスキーのギャスケット
「パスカルの三角形」で、奇数を塗り潰して偶数を空白にすると
フラクタル図形(部分と全体が相似になっている図形)が現れる。
「シェルピンスキーのギャスケット」である。
例によって、EXCELで作ってみた。
c0069055_22395073.jpg

作成手順 (128段の例)
1.セルB2に次の計算式を入れる。
  =IF(A1=C1,"","■")
2.セルB2を選択し、右下隅をつかんでB128までドロー(コピー)。
3.上記2の状態(セルB2からセルB128を選択した状態)で
  セルB128の右下隅をつかんで列IVまでドロー(コピー)。
4.セルDY1に "■" を入れる。
5.列の幅を縮小し(1以下にする)、
  シートの表示倍率を下げるなど見栄えを整えれば出来上がり。

余計なセルに計算式が入ってしまうなど、かなり雑な方法だけれど、
最も手軽な方法だと思う。

パスカルの三角形は、二項展開の係数を三角形に並べたもので、
各数値は、左上と右上を足した値になっている。
それがポイント。
c0069055_22523148.jpg

正攻法でいくなら、パスカルの三角形を2進数(0と1)の足し算に変換する方法。

  0+0=0
  0+1=1
  1+0=1
  1+1=0 (繰り上がりの1は切り捨てる)

0と1で三角形をつくり、0を空白、1を塗り潰せば、
シェルピンスキーのギャスケットが完成する。

足し算を使わない方法もある。

 偶数+偶数=偶数
 偶数+奇数=奇数
 奇数+偶数=奇数
 奇数+奇数=偶数

であるから、
奇数同士または偶数同士を足すと偶数、異なる場合は奇数、
という具合にパターンが決まっている。
これを、左上と右上が同じなら偶数、異なれば奇数と読み替えて、IF文を使う。
基本的には2進数の方法と同じパターンである。

で、いっそのこと、
三角形の先頭(1段目)の1を、最初から奇数を表す"■"にしておく。
下段に入れるIF文は、上段の左上と右上がイコールなら空白(偶数)、
異なるなら"■"(奇数)を返すようにすればよい。
その方法が上記の「手順」。

というわけで、128段まで処理したシートを縮小表示したものが
先頭に掲示した「シェルピンスキーのギャスケット」である。
目を細めて眺めれば、それらしく見えると思う。

こんなものを作って楽しいのかと問われれば、
まあなんというか、楽しいのである、アタシの場合。
by hikihitomai | 2010-03-09 23:39
2の2048乗をEXCELで算出する
今日もまた、EXCELでのお遊び。
2のべき乗を求める。
簡単なので時間のある人はお試しください。
c0069055_18171728.jpg

手順 (10桁まで算出する例)
1.セルJ1に2を入れる。
2.セルA2に次の計算式を入れる。
 =IF(A1>4,IF(B1>4,A1*2-10+1,A1*2-10),IF(B1>4,A1*2+1,A1*2))
3.セルA2の右下隅をつかんでJ2までドロー。
4.セルA2からJ2を選択し右下隅をつかんで、33行までドロー。
c0069055_18212691.jpg

行数が乗数を示しているので、たとえば32行目の表示から、
2の32乗(2^32)は、4294967296 となる。

※行数と列数を拡張すれば、より大きな値を算出できるので、
 興味がある人はお試しください。
 ただし、範囲を広げるとPCに負荷がかかるのでご注意を。

で、EXCEL(Sheet)の限界まで拡張してみた。
各セルに計算式が入るので、列はIV列(256列)が限界だった。
しかし、上述の計算式では
右側に最低一列の空白行を必要とするので、IV列が使えない。
そこで、セルIV2に次の計算式を入れて最終行(IV850)までドロー。
 =IF(IV1=2,4,IF(IV1=4,8,IF(IV1=6,2,6)))
 ※2のべき乗数の下1ケタは 2,4,8,6 の順に現れる

これで256桁まで算出できる。
 log(2^n) = 256 であることから
 n = 256 / log2 ≒ 850.4 なので、2の850乗までの計算である。

計算結果は次のとおり。(50桁で区切って表記)
2^850 =
75075168288047002299711576955092568613117595935495
03536677899390762631562619231707947410198580331380
84855401918470546261918269066630224326176146090663
99051600397269225909025773366283498891454123199797
67917902626154330339044684617119264613887239597666
074624

この程度の計算結果ではありきたりなので、さらに桁数の拡張を考案。
3つのSheetを横断し、桁数を768けたまで拡張した。
 Sheet1:256桁目まで
 Sheet2:257桁目から512桁目まで
 Sheet3:513桁目から768桁目まで

Sheet2の最後の列(IV列)に入れる計算式では、
Sheet1の最初の列(A列)を参照するように手を加える。
同様に、Sheet3の最後の列(IV列)に入れる計算式では、
Sheet2の最初の列(A列)を参照するように手を加える。
ちなみに、作成したEXCEL(ブック)は、ファイルサイズが約42MBになった。

というわけで、
 log(2^n) = 768 であることから
 n = 768 / log2 ≒ 2551.4 なので、2の2551乗まで算出。


主な結果は次のとおり。(50桁で区切って表記)

2^64 =
18446744073709551616

2^128 =
340282366920938463463374607431768211456

2^256 =
11579208923731619542357098500868790785326998466564
0564039457584007913129639936

2^512 =
13407807929942597099574024998205846127479365820592
39337772356144372176403007354697680187429816690342
76900318581864860508537538828119465699464336490060
84096

2^1024 =
17976931348623159077293051907890247336179769789423
06572734300811577326758055009631327084773224075360
21120113879871393357658789768814416622492847430639
47412437776789342486548527630221960124609411945308
29520850057688381506823424628814739131105408272371
63350510684586298239947245938479716304835356329624
224137216

2^2048 =
32317006071311007300714876688669951960444102669715
48403213034542752465513886789089319720141152291346
36887179609218980194941195591504909210950881523864
48283120630877367300996091750197750389652106796057
63838406756827679221864261975616183809433847617047
05816458520363050428875758915410658086075523991239
30385521914333389668342420684974786564569494856176
03532632205807780565933102619270846031415025859286
41771167259436037184618573575983511523016459044036
97613233287231227125684710820209725157101726931323
46967854258065669793504599726835299863821552516638
94373355436021354332296046453184786049521481935558
53611059596230656

2^2551 =
84628947319321636582272602147486431470088266467237
02466344362627873001092837271071749843737665112487
79985271720004119471238750216056334996035356076610
27036633602854731867405430012139132694424210721452
24236425981380922645384803231518431322791773237655
08940477647899145306717497241109860822253819742934
21305377314674562213190008729356393981072933314685
55728378861648707338172221492856529602934908897523
62512783964650309870198637146030591548728730467696
47851391742022611028667664693304671714792166206745
51300313478662126354303011501701193266862106755880
48412394085772895251407899456740313233559162646141
74696184066375374255249034838750845508447402065396
92106559983757795704732087904656838214367521426927
57295443198643244894866442290377077200750076665295
003978494008885248


追記;
1)EXCELのままだとひとつのセルにひとつの数しかないので、
  連続した数値として扱うにはCSVファイルで保存し、カンマを全置換で削除すればよい。
  その必要性があるか否かは別として、ご参考まで。
2)当blogの2009年10月31日付「2の128乗」と題した駄文は、
  今回書いた方法で2^128の値を確認した。
by hikihitomai | 2010-03-06 19:05
ニュートン法で平方根を求める
EXCELでのお遊び。
平方根をニュートン法で近似計算する。
簡単なので時間のある人はお試しください。
c0069055_22375015.jpg

手順
1.セルA1に平方根を求める数を入れる。(たとえば2)
2.セルA2に初期値(真の解に近いと思われる適当な値)を入れる。(たとえば1)
3.セルA3に計算式 =A2-(A2*A2-A$1)/(A2*2) を入れる。
4.セルA3を選択し、右下隅をつかんで、下方向へ20行分くらいドロー。
c0069055_2239110.jpg

近似値はセルA3から下の行に表示される。
下にいくほど真の解に近づく、というカラクリ。
8桁程度の近似値であれば、数回の計算で済む。
「ニュートン法は収束が速い」ことを実感する教材に使えるかも。
まあ、私が思い付くくらいだから、たぶんどこかの先生が実施済みだろう。

ちなみに上記手順を一度実行してしまえば、
セルA1に2以外の数字を入れると、その平方根が求められる。

以下、説明など。

関数f(x)の導関数をf'(x)とすると、
ニュートン法による漸化式は、
  Xn - f(Xn) / f'(Xn) = Xn+1

数aの平方根を求める場合、 x^2 - a = 0 の解を求めることと同じだから、
  f (x) = x^2 - a
  f'(x) = 2x
初期値(真の解に近いと思われる適当な値)をkとすると1回目の近似計算は、
  k - (k^2 - a) / 2k
この計算結果を 上記の k に代入して再び計算。
それを気が済むまで繰り返す。

ところで、EXCELには有効桁数の制約があるから、小数点以下は14桁が限界。
そこで、15桁以上を計算してみた。
暇人の計算結果は次のとおり。(小数部の末桁は誤差込み)
c0069055_1192461.jpg

by hikihitomai | 2010-03-04 23:35