数学マニアック2015年09月11日 06:36


数学マニアック

1から200までの数字にまつわる話題を取り上げる。数学の定理や発見に関する事項も多く取り上げるが、野球などスポーツにまつわる数字の話題も多い。上院議員の改選数やルート66など、身近な米国の話題も多く、ちょっとしたアメリカ雑学事典。最初の方にエルデシュ数が出てきたときは、ひょっとしてと思ったが、期待を裏切らない内容。

日本に関する話題もいくつか。たとえば、
151:初代ポケモンの数
96:石道のマスの数
31:芦ヶ原伸之のパズル

ちょっとほっとしたのは、
93:ユーゴーの最後の長編は「九十三年」。ずいぶん前に米国を訪れた際、本の話になり、レ・ミゼラブルとユーゴーの名前を出して、??な顔をされ、米国では読まれない作家と思っていたが、ここに出てくるということは、そうでもない様子。

そうそう、14のところで見つけたストマキオン、アイコンにしてみた。

飽和水蒸気圧の計算 C#とMathematica2015年02月20日 16:50

飽和水蒸気圧を計算するアプリを作り始める。横で元気に働く加湿器を見ていると、がんばりを数字で見てみたくなった次第。

用途からいって高い精度は必要ないが、せっかくなので、W.WagnerとA.Prussの近似式を使ってみる。理科年表の2015年版では、数表(P411)はあるが計算式はないので探す。

見つけたのが、英国の数表のサイト。摂氏の表が便利。理科年表は単位がKなので、少し手間。

さっそく、C#で計算式を式の通りに実装してみる。

飽和水蒸気圧0℃

0℃の計算結果。小数点以下4桁まで合っている。

飽和水蒸気圧60℃

60℃の計算結果。小数点以下2桁目で誤差が出ている。

こうなると、検算したくなる。電卓では荷が重い。Excelでは、MS製品どうし、同じような計算ライブラリを使うことになるので、今ひとつ。ここは、真打ちMathematicaに登場願う。

飽和水蒸気圧の計算

ざっと、実装したところ。Reduceで圧力(P)を求める式に変形。変形式は長い。右は切れている。

方程式の解の抽出

100℃の場合を解いてみる。
温度(K)を代入すると、圧力(P)の方程式になるので、Solveで解き、解を式(P)に代入すると数値になる。有効数字5桁、小数点3桁目を四捨五入すると、数表とぴったり合う。

飽和水蒸気圧の温度変化によるグラフと数表

うまくいったので、温度(K)と飽和水蒸気圧の二次元の表を作って、グラフにする。参考書に書いてあるのと同じ図が現れた。
※化学の新研究、P107。蒸気圧の性質

Mathematicaの方は、誤差が出ないように式を変形してから計算している様子。同様に、Reduceの結果をC#で実装すれば、精度は高くなりそうだが、今回は有効数字3桁もあれば十分なので、このままにしておく。まあ、検算は大事という話。

PolynomialReduceとSymmetricReduction2015年01月20日 11:43

「数学の視点」からもう一題。5.5.5で3次方程式を論ずる中で、判別式を3次方程式の係数を使って表す計算がある。少し面倒な計算なので、Mathematicaの力を借りられないか。

基本対称式

U+Vをx1,x2,x3の基本対称式a1,a2,a3で表すための計算。
下付文字にしていないのは、ただの怠慢。

基本対称式による表現

答えは、a1 a2 - 3a3 になるらしい(本書、誤植?)。展開すると、U+Vと同じかたちになる。

PolynomialReduce

探してみると、PolynomialReduce(多項式の簡約)が使えそう。答えがリストで返ってくるのが少々厄介。答えを使って式を組み立ててみると、a1とa3は使えているが、a2を使えていない。展開すると、U+Vと同じかたちになるので、方向はあっていそう。

PolynomialReduce その2

PolynomialReduceの引数の与え方を逆にしてみる。今度は惜しい。

SymmetricReduction

ここで一思案。ふと、アドオンの代数関連のパッケージを見ていると、対称式に関連していそうなものを見つける。またしても、そのものずばりの関数がある。SymmetricReduction。今は、標準の関数になっている様子。-3a3+a1 a2が得られる。

やはり、MathematicaCookbookのようなテキストがあると助かる。そうでないときは、丹念にマニュアルを探っていくことになりそう。

ExtendedGCD2015年01月20日 10:59

「数学の視点」を、例題をいくつか手計算で確認しながら読み進む。Mathematicaがあるのだから、例題に使えるか試したくなる。Cookbookには代数の例は少なかった気がしたけど。

定理2.1.3(数学の視点、から)
正整数m,nの最大公約数がdであれば、
  d=pm+qn
を満足する整数p,qが存在する。特にmとnとが互いに素であれば、
  1=pm+qn
を満足する整数p,qが存在する。

を受けて、

問題2.1.1
m=36, n=47に対して、36a+47b=1となるa,bを求めよ。

手計算では結構苦労したので、さて。

Solve, Roots, Reduce

素人らしく、SolveやRoots、Reduceでは、求める解は出てこない。a,bを整数と指示しても変わらない。ここまでは予想のうち。

ExtendedGCD

悩むこと数分、マニュアルの目次から、整数論に関連する関数の項に、そのものずばりの関数を見つける。ExtendedGCD:拡張版の最大公約数。引数の順番を変えると答えが変わる。いや、あっけない。

拡張版の最大公約数については、ユークリッドの互除法の拡張版で探すと、いろいろなサイトに説明がある。手計算でもう一度、確認。確かに、同じ答えが得られる。

数学の視点2015年01月20日 09:40


数学の視点

目次を見ていると、方程式に素因数分解に角の三等分問題にベクトルと、あれこれ四方山話を詰め込んだのかなと思わせておいて、結局、環や体や群の優れた導入の話になっているという。

数学は高校までで、大学の教養でちょっと数論をかじったくらい。その後、理工系向けの大学初年度向けのテキストなどを試したものの、道具として身につけることを優先した記述は、どうしてもしっくりこない。そういう立場で本書を読むと、古代からの歴史の中で、問題を解くために、時に数の性質を突き詰め、時に作図を突き詰め、云々と、様々な道具立てを編み出してきた思考の経緯がすっと入ってきて、これまでの消化不良が解消される。最後のガロア理論のあたりは、新しい消化不良に残ってしまったけど。

まえがきにあるように、数学好きの高卒程度の下地があれば、読み進められる。記号の解説もしっかり(ちょっとばらつきはあるけど)。誤植はいくつかあるようだが、自己解決できる範囲。とはいえ、代数やベクトル解析のテキスト、数学入門辞典(岩波)のお世話になった。手元に使い慣れた参考書類はあったほうがいい。

あとで手元の本を探すと、岩波口座 現代数学への入門のシリーズの代数入門1,2が同じ上野健爾氏の著作でカバーする範囲も似ている。より専門的にはこちら。

Mathematica Cookbook2015年01月06日 17:52

2014年末にMathematica 10へのバージョンアップのお知らせが届く。このところ年末恒例。今では、Home Editionが用意され、5,6万円くらいなので、まあ、できないこともない(業務用途での使用は不可、金額はメールでのみお知らせ)。
http://www.wolfram.com/

手持ちにあるのは、ver.4.2、2002年のCopyright。当時、研究職的な仕事をしており、ITにももっと数学を、と意気込んだもの。こちらはStandard Editionなので、今でも、手持ちで最も高価な買い物の一つ。仕事内容も変わり、その後、使うにしてもRの方がメインに。もっと使いこなさないと、と今さら奮起。

Mathematica Cookbook

手にしたのは、Mathematica Cookbook。なかなか手頃な本がない中、高機能なソフトの前で固まる人向け、とあり、共感。Amazon.comのKindle版。数式やグラフはKindle本体では見にくいので、PC版のアプリを利用(デスクトップ版)。Amazon.co.jpはPC版を提供していないが、Amazon.comはOK。なお、ストアアプリ版はリージョンの制限があるのか、導入できない。

Mathematica学習中

読書中のデスクトップ。ver.4はWindows XPまででしか動作しないので、VMware WorkstationのUnity機能を利用して、Win8.1のデスクトップに表示。これだと、Kindleやブラウザ、辞書ソフトなどと一緒に読み進められる。XP上のIMEの動作にはやや不都合があるが、目をつぶる。

本に戻る。ざっと読んだところ、ver.7くらいをベースにしている。ところどころ、それ以前のバージョンへの言及がある。著者はver.3から使い始めたらしい。Wolframの製品説明では、Mathematica言語はver.1からの互換性がある、といっているが、アドオンで提供されていた機能が標準に取り込まれるような場合、仕様変更がかなりあるので、例題を動かすのにそれなりに手間を伴う。また、ver.6、ver.7で大きな仕様追加があり、その分は実行できない。

内容は、大きく4つ。全19章。
※分類と、和訳は適当。

1)基本機能
1章「数の扱い」
2章「関数プログラミング」、対話操作するにも一応は必要。
3章「データ構造」、行列などはここ

2)数学の問題を解く
10章「代数」、方程式の解法など
11章「解析」、極限、級数、微積分、微分方程式、漸化式など
12章「統計」、基本統計量、乱数、確率分布、標本分布、回帰分析、分散分析、仮説検定など
 ver.7で大きく拡充され、Rでできることの多くができそう。

3)応用
13章「理学工学」、化学、遺伝、力学、電子回路、有限要素法など
 ver.7には分子や素粒子の基礎データも入っているのは驚き。
14章「金融工学」

4)プログラムを組む
残りの章、グラフィックやイメージ処理なども
ver.6からアニメーション機能が対話的に。ver.7から並列処理が充実。

数学や物理の本を読みながら、例題を解く、グラフを描いてみる、くらいをめざすなら、1)と2)に目を通せばよさそう。実際、このあたりを中心に読み進めた。記述は、どちらかというとTips集的な書き方なので、本体付属のヘルプをしっかり読みつつ進めることになる。

ひととおり読み終えてみて、著者の興味分野によるのか、それなりの偏りを感じる。代数の記述は弱めかな。整数論は最近の機能なのかな。複素関数はあまり見かけず。幾何はもともと少ないのか。まあ、ある程度の地図は頭の中に描けたので、この先は自修に努めることにする。