2013年04月

岡村雄輔探偵小説選Ⅱ(論創ミステリ叢書)

イメージ 1

こんばんは、皆様、三頌亭です。今日は新刊で引き続き「岡村雄輔探偵小説選供廚任后収録作品は「王座よさらば」「斜陽の小径」「黄薔薇殺人事件」「盲魚荘事件」「幻女殺人事件」「通り魔」「ビーバーを捕えろ」で、その他随筆が数編収録されています。

都合、一通り読みましたが、長編の盲魚荘事件」と「幻女殺人事件」は力作といってもいいでしょう。しかしながら、第2巻の白眉は「通り魔」だと個人的には思います。その時代背景と単純で面白い心理トリックが推理小説としての効果を挙げています。これで昔、幻影城で読んだものを合わせますと岡村雄輔作品のかなりの部分を読んだことになります。ただ兼業作家であったため作品数はそう多くはないのが残念です。出来ればSF仕様の作品も読みたいと思いますが、復刻してくれる雑誌か出版社が少なそうなのが気がかりですね(笑)。

関数電卓(Ti-nspire CAS)

イメージ 1

イメージ 2

こんばんは、皆様、三頌亭です。maximaを使ってみて最近のCAS(Computer algebra system)に非常に感心したので買ってみました。CAS搭載の関数電卓です。32bitになり計算速度も向上して非常に強力です。肝心のCASですが複素積分まで網羅していてかなり使いでがあります。PCのヴァージョンも同梱されていてこれを使ってプログラムを作ることも可能になってます。昔、サイエンスという科学雑誌にテキサス・インスツルメンツの関数電卓の広告がよく出ていました。当時はかなり高価でしたので指をくわえてみていました(笑)。広告のファンクションキーやプログラマブルであることからおよそは想像がつくので、こんなこともできるのか!~とかよく思ったものでした(笑)。
ところでこの電卓キーが少し小さくて押しにくいのが欠点です。因みにTi-nspire CASですがディスプレイがフルカラーになったTI-Nspire CX CAS というのが出てましてこちらが幾分か軽い感じになってます。

Stehfestのアルゴリズム(数値的逆ラプラス変換)
講義資料中ほどに記載(項数16から20を使用)
http://park.itc.u-tokyo.ac.jp/aichi/lecture/modeling/2017/3.pdf

Stehfestのアルゴリズム係数vn(n)(81-82p)
https://repositories.lib.utexas.edu/bitstream/handle/2152/32038/LA-THESIS-2015.pdf?sequence=1&isAllowed=y

Function StehfestCoefficients(Nterms As Integer)
Vbaユーザー定義関数code(付属コード後半1/3)
https://pdfs.semanticscholar.org/9c1d/9c5ab9e538a379f63548c2d0cc7a653dc313.pdf

*参考(指定した)n個-偶数のstehfestの係数を与える関数)
Rem StehfestCoefficients returns coefficients in Stehfest inversion formula
Function StehfestCoefficients(Nterms As Integer) As Variant
Dim i As Integer, j As Integer, k As Integer, nh As Integer, sn As Integer, nn As Integer
nh = Nterms / 2 'Must be even
Nterms = 2 * nh
ReDim Coeffs(0 To Nterms) As Double, g(0 To Nterms) As Double, h(0 To nh) As Double
g(0) = 1
For i = 1 To Nterms
g(i) = g(i - 1) * i
Next i
h(1) = 2# / g(nh - 1)
For i = 2 To nh
h(i) = Exp(nh * Log(i)) * g(2 * i) / (g(nh - i) * g(i) * g(i - 1))
Next i
If nh Mod 2 = 0 Then sn = 1 Else sn = -1
For i = 1 To Nterms
Coeffs(i) = 0
If i < nh Then nn = i Else nn = nh
j = Int((i + 1) / 2)
For k = j To nn
Coeffs(i) = Coeffs(i) + h(k) / (g(i - k) * g(2 * k - i))
Next k
sn = -sn
Coeffs(i) = Coeffs(i) * sn
Next i
StehfestCoefficients = Coeffs
End Function

エクセルvbaによるユーザー定義関数
layer2shqtgas(time, dsLs2, KsLs, ddLd2, KdLd , Cv, hm)
所定のパラメータを与えたときの単位面積(cm^2)当たりの累積透過量Acc(time)を与える。

time:所定の時間
dsLs2=Dsc/Lsc^2(膜厚で標準化した角質層拡散パラメータ)
KsLs=Ksc-g*Lsc(角質層分配パラメータ)
ddLd2=Dve/Lve^2(膜厚で標準化したviable-skin拡散パラメータ)
KdLd=Kve-g*Lve(viable-skin分配パラメータ)

Cv:一定暴露時の濃度
hm:対流伝達係数(気相側)
単位はhr, cm, μg, mlに統一、ただしKsc-gとKve-gは濃度比なので単位はありません。
以下ソースコードです


Rem エクセル 開発 --> visual basic --> 挿入 --> 標準モジュール --> 下記コードの貼り付け
Rem 2層膜累積透過量q(t) gas-phase -------
Public Function layer2shqtgas(time As Double, dsLs2 As Double, KsLs As Double, ddLd2 As Double, KdLd As Double, Cv As Double, hm As Double) As Double
Dim vv(100) As Double
Dim qtsh As Double
Dim qs As Double
Dim ds As Double
Dim dd As Double
Dim zs As Double
Dim gs As Double
Dim cosh As Double
Dim sinh As Double
Dim coshd As Double
Dim sinhd As Double
Dim ss As Double

Dim ln2 As Double
Dim n As Integer

ln2 = 0.693147180559945
dsLs2 = Abs(dsLs2)
KsLs = Abs(KsLs)
ddLd2 = Abs(ddLd2)
KdLd = Abs(KdLd)
Cv = Abs(Cv)
hm = Abs(hm)

vv(1) = -5.51146384479718E-06
vv(2) = 0.152386463844797
vv(3) = -117.465476190476
vv(4) = 17342.4493386243
vv(5) = -922806.928902116
vv(6) = 23774087.7871031
vv(7) = -349421166.19537
vv(8) = 3241369852.23187
vv(9) = -20276948307.2378
vv(10) = 89464829823.7973
vv(11) = -287020921147.103
vv(12) = 682992010281.513
vv(13) = -1219082330054.38
vv(14) = 1637573800842.02
vv(15) = -1647177486836.12
vv(16) = 1221924554444.23
vv(17) = -648806558817.535
vv(18) = 233316653213.707
vv(19) = -50913800705.4676
vv(20) = 5091380070.54676

If time > 0.001 Then

qtsh = 0
For n = 1 To 20
ds = Sqr(ln2 * n / time / dsLs2)
dd = Sqr(ln2 * n / time / ddLd2)
ss = ln2 / time * n
cosh = (Exp(ds) + Exp(-ds)) / 2
sinh = (Exp(ds) - Exp(-ds)) / 2
coshd = (Exp(dd) + Exp(-dd)) / 2
sinhd = (Exp(dd) - Exp(-dd)) / 2

gs = (KsLs * dd / (KdLd * ds) * sinhd * sinh + coshd * cosh) * ss
zs = (ds / (KsLs) * coshd * sinh + dd / (KdLd) * sinhd * cosh) * hm
qs = (Cv / ss) * hm / (gs + zs)

qtsh = qtsh + vv(n) * qs
Next n

qtsh = ln2 / time * qtsh
layer2shqtgas = qtsh

Else

layer2shqtgas = 0
End If
End Function

機動戦士ガンダム00

イメージ 1

こんばんは、皆様、三頌亭です。またアップしたまま放置プレイになってしまって申し訳ございません。「機動戦士ガンダム00」です。ファースト&セカンドシーズン合わせて全50話という長さで、ちびちび見ながらやっと見終わりました。作成当時の世相を反映してか「テロ」がどうとかという少し屈折したキャラクターが多いです。「悩める」主人公と言ったところなのですが、三頌亭としてはいささかイライラするわけで・・・(笑)。ストーリーはそこそこ面白いのですが、見てしまうのにかなり忍耐を要しました(笑)。しかしながら総合評価ではほぼ「良」、最近一発芸のアニメばかり見たせいかもしれませんが・・(笑)

岡村雄輔探偵小説選Ⅰ

イメージ 1

イメージ 2

イメージ 3

こんばんは、皆様、三頌亭です。今日は最近出た本から紹介します。論創社の探偵小説シリーズから「岡村雄輔探偵小説選機廚任后まとめた形で出版されるのは初めての作家さんですね。とりあえずさっそく読んでみたのですが、まずまず雰囲気があって力作ぞろいでした。収録作は「紅鱒館の惨劇」「盲目が来りて笛を吹く」「うるっぷ草の秘密」「ミデアンの井戸の七人の娘」「廻廊を歩く女」「夜毎に父と逢ふ女」+長編「加里岬の踊子」の7篇です。収録作中、気に入ったのは「盲目が来りて笛を吹く」と「ミデアンの井戸の七人の娘」でしょうか。小栗虫太郎風の「ミデアンの井戸の七人の娘」はなかなかの力作で独特の雰囲気とガジェットがおもしろく楽しめました。長編の「加里岬の踊子」はいろいろ突っ込みどころ満載ですが勢いというか本格推理にかける情熱が感じられてよろしいです。

ところで買って読んだというわけではないのですが、気になった出版を2つ紹介いたします。まずはE・C・R・ロラック「悪魔と警視庁」です。以前、東京創元社からでた「ウィーンの殺人」というのを紹介したことがあったと思います。作品数は大変多い作家なのですが本邦で紹介された作品がほとんどない作家なので読んでみたいなと思っていたところです。次は坂崎重盛「粋人粋筆探訪」です。これも以前、艶笑コラム集「粋人粋筆」というのを紹介したことがあったと思います。「粋人粋筆」の著者たちとその周辺書というブックガイドです。古書趣味の方向きかもしれませんが、多方面の著作を紹介してあって面白いと思います。この方面あんまりあつかってる本を見ませんので紹介しておきます。


出版社紹介
「岡村雄輔探偵小説選機
『名探偵・秋水魚太郎の事件簿! デビュー作「紅鱒館の惨劇」から「うるっぷ草の秘密」「回廊を歩く女」、そして第一長編「加里岬の踊子」まで、戦後本格ルネサンス期を彩った幻の作品群を初集成!

著者略歴:岡村/雄輔
1913(大2)年、東京都生まれ。本名・吉太郎。早稲田大学理工学部卒業。1949(昭24)年、『宝石』の探偵小説募集に「紅鱒館の惨劇」が選外佳作となってデビュー。62年の「樹上の海女」を最後に、創作は途絶えた。1994(平6)年、歿 』

E・C・R・ロラック「悪魔と警視庁」藤村裕美 訳
『濃霧に包まれた晩秋のロンドン。帰庁途中のマクドナルド首席警部は、深夜の街路で引ったくりから女性を救った後、車を警視庁に置いて帰宅した。翌日、彼は車の後部座席に、悪魔(メフイストフエレス)の装束をまとった刺殺死体を発見する。捜査に乗り出したマクドナルドは、同夜老オペラ歌手の車に、ナイフと「ファウストの劫罰」の楽譜が残されていたことを掴む。英国本格黄金期の傑作、本邦初訳。解説=森英俊』

ライプニッツの夢

イメージ 1

ライプニッツの残した言葉に「機械のできること(計算)に人間が貴重な時間をついやすのはまことにつまらないことだ」というのがあります。ライプニッツという人は百科全書的な天才で「あらゆる理性的真理を一種の計算に帰することができる」と考えていたようです。これは現在の情報工学のあり方を正しく予見したものだと思います。

さて出だしはカッコいいのですが、かなりトホホなお話をいたします(笑)。故あってある種の偏微分方程式を解いてそれをもとにシミュレーションをやることになりました。このタイプの偏微分方程式は一般解がすでに知られていますので、初期条件と境界条件を入れていくつかの定数を求めます。ところが組んだモデルはそうややこしいものではないのですが、6個の定数がいかさまややこしい式で表されます。決して難しいわけではないのですがあまりに煩雑で計算があっているか間違ってるかがわかりません。実際に数値例をいれてエクセルで計算させた後、おかしいかどうかがわかります。あまりに現実と違う値になったり、グラフを描かせてみるととんでもないことになっているから・・・(笑)。

というわけで初めて使ってみたのが数式処理システムのmaximaというフリーウェアです。6元の連立方程式を入力すると文字式の形で解いてくれます。定積分も積分区間が文字で表されてもお構いなしに数学的に正しい文字式で解を出してきます。恐ろしく強力なシステムで感動すら覚えます(笑)。実はそれまで手計算でシコシコ何カ月もやっていたというあまり笑えないお話です。因みに日本語対応もしているようなので興味のある方はぜひ・・・大変素晴らしいシステムだと思います。


2層膜(気相と液相での拡散):ラプラス次元sでの解析解の導出

*特に断らない限り単位面積当たりとする。
Dsc 角質層拡散係数
Lsc 角質層膜厚さ
Ksc-g 気相-角質層膜間の分配係数
Dve viable skin拡散係数
Lve viable skin厚さ
Kve-g 気相-viable skinの分配係数
hm: 対流伝達係数(気相側)
Cla: 気相中濃度Cg(t)のラプラス変換(一定の時はC0/s)
Acc(s):累積透過量のラプラス変換
x: 各層の皮膚表面方向からの距離
s: ラプラス次元変数(複素数)

解析解記述簡略化のための定数
ds=sqrt(s/Dsc)*Lsc (Dsc=s/(ds/Lsc)^2) (sqrt:square root)
dd=sqrt(s/Dve)*Lve (Dve=s/(dd/Lve)^2)

ラプラス次元での拡散方程式の一般解
角質層(-Lsc =<x=<0):Csc(s,x)=C*cosh(ds/Lsc*x)+D*sinh(ds/Lsc*x)
Viable skin (Lve =>x=>0):Cve(s,x)=A*cosh(dd/Lve*x)+B*sinh(dd/Lve*x)
A,B,C,Dは定数

支配方程式(4-7式)の両辺をラプラス変換して
C*s/(ds/Lsc)*sinh(-ds)+D*s/(ds/Lsc)*cosh(-ds)=hm/Ksc-g*(C*cosh(-ds)+D*sinh(-ds))- hm*Cla・・・・(1:気相と角質の境界,7式)
注)符号に注意
A*cosh(dd)+B*sinh(dd)=0・・・(2:シンク条件,4式)
A=Kve-g/Ksc-g*C・・・(3:角質とviable skinとの分配係数,5式)
D*s/(ds/Lsc)=B*s/(dd/Lve)・(4:角質とviable skinの間のflux,6式)

Acc=-(A/(dd/Lve)*sinh(dd)+B/(dd/Lve)*cosh(dd))
(5:Acc=- Dve*∂Cve(s,x)/∂x /s (x=Lve:積分則))

1)から4)の連立方程式を解いてA,B,C,Dを求めAccを求める。

cosh & sinh:双曲線関数として
Acc(s)=hm*Cla/(gs+gh)
gs=(Ksc-g*Lsc*dd/(Kve-g*Lve*ds)*sinh(dd)*sinh(ds)+cosh(dd)*cosh(ds))*s
gh=(ds/(Ksc-g*Lsc)*cosh(dd)*sinh(ds)+dd/(Kve-g*Lve)*sinh(dd)*cosh(ds))*hm



文献2の拡散方程式(再掲)
1) ∂Csc/∂t =Dsc*∂2Csc/∂x2 (Lve<x<Lsc+Lve)
2) ∂Cve/∂t =Dve*∂2Cve/∂x2 (0<x<Lve)
3) Cve=Cv0(x), Csc=Cs0(x) (0<x<Lsc+Lve ,t=0)
4) Cve=0 (x=0, t>0)
5) Csc/Ksc_g=Cve/Kve_g (x=Lve, t>0)
6) Dsc*∂Csc/∂x= Dve*∂Cve/∂x (x=Lve,t>0)
7) Dsc*∂Csc/∂x= hm*(Cg(t)-Csc/Ksc_g) ( x=Lsc+Lve,t>0)

若干の訂正
x=0を角質層とviable skinの境界にする。
正負の方向を皮膚表面から毛細血管にする。
基本的には3式は必要がない。ラプラス変換では時間無限大まで積分するので・・

*計算上の対応
暴露濃度C0で暴露し続ける時の累積透過量をAcc(t):(t>0)とすると、a時間後からb時間だけC0で暴露した場合の累積透過量は次のようにあらわされる。
Cla=C0*exp(-a*s)/s*(1-exp(-b*s))

Acc(t)=0 :(a>=t)
Acc(t-a) :(a+b>t>a)
Acc(t-a)-Acc(t-a-b):(t>=a+b)
C0に関する比例計算と時間軸のスライドのみで様々なスケジュールのステップ関数の暴露パターンに対応が可能。
https://www.jeea.or.jp/course/contents/01138/

*2層膜の定常状態でのラグタイムLTの算出法
x=Dsc/Lsc^2
y=Ksc*Lsc
z=Dve/Lve^2
u=Kve*Lve
LT=(1/x+1/z)/2-(1/3)*1/(1/(x*y)+1/(z*u))*(y/(x*y)^2+u/(z*u)^2)

------------------------------------------------------------------------------------
まとめ:ラプラス次元での解析解と定数

Acc(s)=hm*Cla/(gs+gh)
gs=(Ksc*Lsc*dd/(Kve*Lve*ds)*sinh(dd)*sinh(ds)+cosh(dd)*cosh(ds))*s
gh=(ds/(Ksc*Lsc)*cosh(dd)*sinh(ds)+dd/(Kve*Lve)*sinh(dd)*cosh(ds))*hm

A=(Cla*Ksc*Kve*Lsc*dd*sinh(dd)*ds*hm)/us

B=-(Cla*Ksc*Kve*Lsc*dd*cosh(dd)*ds*hm)/us

C=(Cla*Ksc*Ksc*Lsc*dd*sinh(dd)*ds*hm)/us

D=-(Cla*Ksc*Kve*Lve*cosh(dd)*ds^2*hm)/us

Csc=-(hm*(Cla*Ksc*Kve*Lve*cosh(dd)*ds^2*sinh((ds*x)/Lsc)-Cla*Ksc*Ksc*Lsc*dd*sinh(dd)*ds*cosh((ds*x)/Lsc)))/us

Cve=(Cla*Ksc*Lsc*ds*hm*(Kve*dd*sinh(dd)*cosh((dd*x)/Lve)-Kve*dd*cosh(dd)*sinh((dd*x)/Lve)))/us

us=((Ksc*Ksc*Lsc^2*dd*sinh(dd)*sinh(ds)+Ksc*Kve*Lsc*Lve*cosh(dd)*ds*cosh(ds))*s+
(Kve*Lve*cosh(dd)*ds^2*sinh(ds)+Ksc*Lsc*dd*sinh(dd)*ds*cosh(ds))*hm)

気相と角質層境界での累積透過量xst
xst=(Cv/s**Ksc*Lsc^2*dd*sinh(dd)*hm)*sinh(ds)/us+(Cv/s*Ksc*Lsc*Kve*Lve*cosh(dd)*ds*hm)*cosh(ds)/us

角質層とviable skin境界での累積透過量vexst
vexst=(Cv/s*Ksc*Lsc*Kve*Lve*cosh(dd)*ds*hm)/us

角質層内薬物量Msc
Msc=xst-vexst

viable skin内薬物量Mve
Mve=vexst-Acc
最新コメント
ギャラリー
  • 萩尾望都「11人いる!」&「スター・レッド」
  • 萩尾望都「11人いる!」&「スター・レッド」
  • 萩尾望都「11人いる!」&「スター・レッド」
  • 萩尾望都「11人いる!」&「スター・レッド」
  • 和田慎二傑作選「砂時計は血の匂い」他
  • 和田慎二傑作選「砂時計は血の匂い」他
  • 和田慎二傑作選「砂時計は血の匂い」他
  • 和田慎二傑作選「砂時計は血の匂い」他
  • 花とゆめ・1975年5月5日号
アーカイブ
  • ライブドアブログ