2007年9月25日火曜日

なんだかガウス関数

昔の著名な数学者、ガウスさんが作った関数として、ガウス関数という物があります。

wikipediaによく記述されていますが、至る所でこの関数が現れてきます。

正規分布を用いる統計学や、グリーン関数論、量子力学、統計力学等など、
初等的な関数扱いされています。

ガウス関数の説明をするためには、ネイピア数と指数関数などの高校数学だけで充分です。
wikipediaの説明に任せますw

なので、pythonで、ガウス関数をば。
f(x)=exp(-x*x)

----python---script---

import math
def gaussfunc(x):
return math.exp(-x*x)

----python script----

となります。これを次はガウス積分に使えますw
積分方法は台形公式を使ってしまいましょう。
----python---script---

import math
def gaussfunc(x):
return math.exp(-x*x)

def integrate(a,b,n):
integ=0.0
for i in range(0,n):
w=float(b-a)/n
x0=a+float(i)*w
x1=a+float(i+1)*w
y=w*(gaussfunc(x0)+gaussfunc(x1))*0.5
integ+=y
return integ
print integrate(0,100,1000)

----python script----

ガウス関数を0から無限大まで積分すると積分公式から円周率の二乗根を2で割った数になります。


ここで、integrate(0,100,1000)で、意味しているのは
0から100まで積分し、積分区間を1000で割った数(0.1刻み)という条件で、
台形公式を微小領域に適応するという事です。

そうすると、答えは
0.88622692545275794
となります。
円周率の二乗根を2で割った数は
0.88622692545275794
なので、17桁会うくらいの精度で計算出来ています。
よって円周率を求めるプログラムは
----python---script---

import math
def gaussfunc(x):
return math.exp(-x*x)

def integrate(a,b,n):
integ=0.0
for i in range(0,n):
w=float(b-a)/n
x0=a+float(i)*w
x1=a+float(i+1)*w
y=w*(gaussfunc(x0)+gaussfunc(x1))*0.5
integ+=y
return integ

a=integrate(0,100,1000)
print a*a*4

----python script----
となって、
3.14159265359
と求まります。

このプログラムだと、16桁以降が怪しいですけどね。

高校生にもおすすめプログラム言語ですね、pythonは。
windowsだとエディタが無いと辛いけどね

2007年9月23日日曜日

ネタがないなぁ

某2chではすごいことになっているらしい。

ipod touchがユーザーにとどき始めたのだけど、日本語版windowsシリーズにてipod touchが認証できないらしい。認証できないと起動できない仕様っぽいですね。

linuxでは最新のitunesの仕様が使えるようになっていない(某海外ソフトの人が出来るようにしたらしい)ので、linuxを使っている人は最新のipodを認識できないようです。これはほかのオーディオプレイヤーでも一緒かな。

Appleの場合は特にlinuxが若干競合っぽい仕様になっているのもあってか、サファリやクイックタイムも、linux向けにソフト開発をしていないけど。

ubuntuもfedoraもデフォルトでmp3やmpeg再生が不可能。ubnutuは対応ソフトをインストール出きるようにしているようだけど、未使用なので使用感は分かりません。fedoraはxmmsをインストールすれば使えるようになる。knoppixはなぜか最初からmp3やmpegなどを認識して再生出きるようにしてある。fedoraでもkaffeineを導入すればmpegとか見れるのだろうなぁ。マルチメディア系の形式対応が、ライセンス問題に阻まれてオープンソースでは使用不可というのもなんだかなぁ…。共通ファイル形式の「共通」って意味がないじゃないってきがするな。

通常環境がすでにfedoraに移行していて、ipodの音楽転送の時、デジカメの画像データ同期くらいしかwindowsを立ち上げなくなってしまった…。ま、いっかw