単純化して、パラメタをいじる

  • こちらで、中央にピークがあるプロットと、中央にくぼみがあって、一度盛り上がってから減衰するプロットを重ねて描こうとしている
  • 2つの要素が検討できる
    • 1つ目は、Rでプロットすることに関する基本的なノウハウ
    • 2つ目は、「こういう絵」がほしいというときに、試行錯誤して、よい絵になるまで調整するにはどうするか、というノウハウ
  • 第1のノウハウ
    • 対称性のあるグラフだから、対称的なものを対称的に扱うこと
      • x軸について、原点を中心に対称的である、とはどういうことかというと、xの値を適当に変換すれば、yの値を出す関数は1つである、ということ
      • ここでは、xの座標を原点からの距離に変えて処理するということに相当する
    • あとは、プロットするときのエリアの制御など
    • 図を保存するには、図のウィンドウが「前面」になった状態で、ファイル→別名で保存→Jpeg→「適当な品質」で保存
      • それをはてなダイアリーのサムネール図にするには、「編集画面」から、『今日の一枚』→画像選択『ファイルを選択』
  • 第2のノウハウ
    • モデルは単純にしたい
    • 調整するパラメタを少なくしたい
    • パラメタの値を変えるだけで、何度も簡単に描きなおしたい
    • 以下のやり方では、2種類の分布を同じ関数で考える(それは、自然のルールは簡単に違いないという思い込みからも妥当な選択かもしれない)
    • パラメタはkrod/kconeという2係数の比のみとなっている。この至適な値を試行錯誤で探索する
      • パラメタが1個のときは、探索は容易。適当な値を少しずつ変化させてみてもよいし、極端な2つの値から、その中間をとり、より適切な絵に近い方の2つを選んで、また、その中間をとるなどして、狭めてもよい
    • x軸・y軸の値を求める値に変えるのは、(簡単なので)後回しにして、調整が大変な「形」のコントロールを優先する
  • さて。距離に応じて密度が指数関数的に減衰するような現象は、どうやったら起きるのだろうか?
    • たとえば。黄斑に焦点があたるように視線を固定する努力を繰り返すと、黄斑を中心に距離に応じて「明るさ」が減衰するだろう。この明るさを栄養として細胞の増加を制御する仕組みがあれば、そのようになりそう。
# x軸の範囲をパラメタ化する(-x...x)
X<-1 # エリアの等倍・拡縮は簡単なので、ここは、簡単な数字を使う
x<-seq(from=-X,to=X,length.out=100)

# cone rodの2種類の分布には、何かしら単純なルールがあるとみなす
# もっとも単純なのは、1つのルール
# ここで、ほぼ明らかなのは、coneは原点からの距離(|x| : 絶対値)が長くなると少なくなること
# その関係を y = exp(-k|x|)で表す方法を考える
# kは減衰の程度を決めるパラメタ
# rodもそのルールを適用する
# ただし、2種類の細胞は、相互に同一領域を占拠し合う関係にあるので、coneが先に占拠し、
# その残りをrodが占拠するとする
# 
# cone
kcone<-30 # coneの減衰パラメタ
ycone<-exp(-kcone*abs(x))
# 原点の値が1になるように標準化
ycone<-ycone/max(ycone)
# rod
krod<-1
yrod<-exp(-krod*abs(x))
# 標準化
yrod<-yrod/max(yrod)

# coneに先に占拠させる
yrod<-yrod-ycone

# 描図領域の指定
# x軸の範囲
xlim<-c(min(x),max(x))
# y軸の範囲
ylim<-c(min(ycone,yrod),max(ycone,yrod))

plot(x,ycone,type="l",xlim=xlim,ylim=ylim)
# 重ねて描く
par(new=TRUE)
plot(x,yrod,col=2,type="l",xlim=xlim,ylim=ylim)