Deconvolution Algorithm

デコンボリューション法が紹介されていたのできちんと理解しておきたいところ。

ProductName ファーマコキネティクス―演習による理解
杉山 雄一,山下 伸二,加藤 基浩
南山堂 / ¥ 6,300 ()
在庫あり。

で、ちょっと調べたら古い論文がヒットした。

An algorithm and computer program for deconvolution in linear pharmacokinetics

fortranのコードが載っているのでpythonに移植すればいいやと軽く考えてたんだけど、go toで混乱している最中。if else 的なgo toは読みやすいんだけど、あっちいったりこっちいったりするのはちょっと辛い。

あとは式の内容ちゃんと理解してないのでコード追えないってのもあるが。 移植しながら論文の式の内容を理解していくつもりだったのだけどなかなか疲れる。

符号付け替え関数

fortranの組み込み関数にsignという符号付け替え関数が用意されている。

def sign(a1,a2):
    if a2 >= 0: return abs(a1)
    else:       return -abs(a1)

限りなく小さくする

古いfortranのプログラムを読んでいたら

   EPS = 1.0
10 EPS = EPS/2.0
   S = 1.0 + EPS
   IF (S .GT. 1.0) GO TO 10

というコードをみつけて?となったがすぐに限りなく小さいの求め方か!と気がついた。

pythonだとこんな感じ

eps = 1.0
while eps+1.0 > 1.0: eps = eps/2.0 
# eps=1.1102230246251565e-16