ただのメモ

他の人に見せても良い方のメモ

「数値積分・数値微分」

文章読解力や文章作成力向上のために、これまで、一つ一つの記事は、長いものとしてきた。しかし、忙しくなってきたので、暫くは短いものでも良いとする。

こちらの文献をざっと味わってみるとする。

There is no easy way, but there is an alternative way.

始めましょうか。

  • 台形法
    • 縦に分割して、それぞれの面積を求めたあと、それらを足し合わせて、全体の面積を求める。
    • ミソは、分けて、それぞれに操作して、それらをまた合体させる。
    • 分けたものを、単純に台形と見なす。
    • 注意点:上に凸、下に凸などの場合、差が出てしまう。精密に面積を知りたい時はダメ。
  • 中点法
    • 分割するとき、縦で割ったところの値の長さと、区切り幅の、積を分割した面積とする。
    • わかりやすい。
  • シンプソン法
    • 台形法では、2点から、直線近似をして面積を求めた。
    • 3点から、2次曲線近似をして、面積を求めることだって出来る。
    • n+1点から、n次曲線近似をして、面積を求めることが出来る。
  • モンテカルロ法
    • ある範囲で乱数を発生させる。
    • 面積を求めたい領域の中か外かを判定するもの(関数)を用意する。
    • 一つ一つの乱数に対して、領域の中か外かを判定する。
    • その回数を数えて、ある範囲の面積と求めたい領域の中にあった回数の積を、乱数を発生させた数で割る。
    • それが面積(だとする)
  • オイラー
  • ルンゲクッタ法

『数学と物理学により触発された幾何学の趣』を読んで

  • 物理と形、記号演算としての代数、幾何、解析に興味がある。
  • そこで調べものをしていると、よさげな文献に出会った。
  • こちらを素早くまとめる。
  • 始めましょうか。
  • 幾何学
    • 直観(構成要素の関係)
    • 空間の構造
    • 見えることと、構造
      • 日常の経験が、根源にある
      • しかし、見え方はいろいろ
        • 小さすぎるものは見えない
        • 人体の中身は見えない(可視光)
        • 全部は見えない(視界による制限)
      • 仮定
        • 領域が、隣同士の距離が定まった連続的に並ぶ点から構成される集合
          • 距離という付加的構造
          • 点が要素
    • さまざまな幾何学
  • グロタンディークのスキーム理論
    • 代数幾何学
    • 空間X
    • X上の関数のデータR
      • 別の言い方をすると、RはX上のある種の関数の集合
    • 関数
      • X上の任意の点xに数値f(x)を対応させるもの
    • 関数には各点毎で演算がある
      • 足し算、引き算、掛け算
      • これらで閉じているのが、環
      • ところで、関数の環は、可換
      • 空間Xがn次元座標空間
      • 1つの多項式方程式
        • その方程式の自然数倍分は、Rの要素は、同一視される。
          • 自然な同一視
          • 例:
            •  x^2+y, x^2は、[tex: yを0として見た時に同一視出来る。
      • XをRのスペクトルという。
    • ニルポテント(nilpotent)
      • 何回か掛けたら0になるもの
      • これを含む環
        • 二重数の環D
  • 非可換幾何学
    • 可換環の理論を、非可換環に拡張する試み
    • 非可換と物理
      • 例:量子力学での作用素
        • 座標と運動量の作用素のブラケット積が pq - qp = ih
        • 非可換
      • 非可換多項式
        • 経路問題
        • 格子を考えて、(0,0)から(5,5)に移動することを考える。
        • 上に行って右に行くことと、右に行って上に行くことは、結果が同じだが、道のりは違う。
          • 掛けたものが同じなら同じと見なすのが可換、違うと思うのが非可換 
          • なので、経路の和をとること=道のりを区別しないこと=可換にすること
          • 経路積分
    • 幾何学的直観
      • ベクトル束
        • 空間Xにより連続的にパラメータ付けされたベクトル空間の族
        • X上のベクトル束が、加群と対応する
        • 環の形をとる部分(中心からずれる、ベクトル的)と、群の形をとる部分(パラメータ付けしているところ、輪っか)
      • 難しい言葉ばかりでわかりにくい時は、平たい言葉を使う方が良い。
      • 例:メビウスの帯
        • メビウスの帯はぐるっと回してまたかえって来る。
          • もとの帯を伸ばして端から1㎝ごとに印をつける。
          • これがパラメータ付け。
        • ぐるっと戻ってくるので、「辿る」という操作に関して、群をなす。
        • ここで、メビウスの帯の各点において、1次元実数空間を割り当てることが出来る。(帯の各位置における、横幅みたいなイメージ)
          • 環をなす
  • 超幾何
    • 超可換性
      • 可換かもしれないし、掛ける順番が逆だと‐1が掛かるかもしれない。
        • そこは、掛けるもの、f、g依存
      •  f \cdot g = (-1)^{deg(f) \cdot deg(g)} g \cdot f
      • これを考えると、可換の時の議論が使えることがあるらしい。
      • 超代数
    • 超幾何と超ひも理論
      • 代数曲線とそのモジュライ空間
  • 幕間:ホモロジー代数学
    • 既存の集合から新しい集合を構成する2つの方法
      • 「条件」
        •  x^2+y^2=1で円、という集合を考える
      • 「パラメータ付け」
        • 全てのデータを余すところなく示す
        • [tex: x=cos( \alpha), y=sin( \alpha )
    • ホモロジー代数
      • トポロジーを関連
        • 空間のおおまかな形状を研究する幾何学
      • 「サイクル」
      • ホモロガス
        • 2つのサイクルが何かしらの図形の境界となる。
          • 球は互いにホモロガスな1次元のサイクルはない
          • トーラスにはそれがある。
      • コチェイン複体
        • 境界の境界は存在しない
        • 2回微分する(境界演算子をかける)と0
      • BRST量子化
        • 物理的状態の同一視
  • 導来幾何学
    • 平坦な空間から曲がった空間に進む
    • 線形空間から多様体
    • 多様体上には、接空間という平坦な空間がある。
      • 例えば、円における接線
    • ここでの平坦な空間を、曲がった空間に拡張する。
      • 複体を考える。
      • why?-円錐の尖点などでは、近傍で線形近似が成り立たないから、上手くいく仕組みが欲しかった。
      • 導来化、なるものがあるらしい。
    • 局所的幾何学と大域的幾何学
      • 導来スキームと高次スタック
  • 結論

わからない言葉が多かったが、以前まとめた時よりは、数学的な言葉への抵抗が少なかった気がする。

それでも、やんわり理解をしただけで、厳密に理解できている訳ではない。目を通して少し考えた、というのが現状だ。

自分が知らない幾何学がたくさんあることが分かっただけでも、収穫である。

バイバイ!

歪度を求める

レクチャーを受けた。その感想を含めて書き残しておく。

マルファン症候群をもっと世間に周知することが、マルファン症候群の患者さんがより良い生活及び人生を送ることを支援する上で、必要不可欠である。

これは、決して一般的な話だけに留まらず、病院内での職員もその症状を知っておくべきだ、という話である。

(気持ち:最近確率を勉強しているので、そこと絡めてみよう。)

そのためにも、まず、マルファン症候群の患者さんとどれくらいの確率で出会うのか、という情報を知っていても損では無い。

マルファン症候群の患者さんは、5000人に1人と言われている。

1000人の集団を1000回集めた時に、何人マルファン症候群の患者さんがいるか、を考えて見る。

 

結果について。点が小さいくて見にくい(申し訳ない)が、8割で0人、2割で1人、3%程で、2人といったところだ。

 

平均値も求めると、2.21だった。一学年160人の6年制大学なら、2人はいるだろう、というところだ。(6年制大学、という条件によるバイアスがかかっていることは忘れてはならない)

 

次に、歪度なる特徴量を取り出してみる。

歪度については、こちら

どうやら、歪度とは、確率変数が従う分布の、非対称性を扱う値であるようだ。

左向きを正の向きと取ったときに、右に山があれば、歪度は正。逆に、左に山があれば、歪度は負、となる。

歪度は、2.23と出た。無事、正であることも確認できた。

似たような特徴量として、尖度というものがあるらしいが、3乗が4乗に変わっただけなので、今回はパス。(平均との近さと裾の重さを反映しているらしい)

from numpy import sin, cos
import numpy as np
import matplotlib.pyplot as plt
import random

#マルファン症候群は5000人から10000人に1人
#ここでは、5000人に1人とする
p=1/5000
#日本の人口は1.258億
N=1000
M=1000
def binomial(p,x):
    if x<p:
        return 1
    else:
        return 0
ans=[0]*(N+1)
random.seed(25)
for j in range(M):
    h=[binomial(p,random.random()) for i in range(N)]
    ans[sum(h)]+=1
for i in range(N+1):
    plt.scatter(i,ans[i]/M,s=1)


plt.xlabel("number of patients per 1000")
plt.ylabel("probability")
plt.title("Marfan disease")
plt.show()

def expected(x):
    mu=0
    for i in range(N+1):
        mu+=x[i]*i/M
    return mu

mu=expected(ans)
def sd(x):
    s=0
    for i in range(N+1):
        s+=(i-mu)**2*x[i]/M
    return s

def skewness(x):
    sk=0
    for i in range(N+1):
       sk+=(i-mu)**3*x[i]/M
    return sk
skew=skewness(ans)/(sd(ans)**(3/2))
print(skew,"skewness")

 

めでたしめでたし。

『歩行障害ハンドブック』を読んで

お昼にお散歩していた。

以前の記事で、雑用に見えるものも、効率的に且つ丁寧に行うことを考えれば、主用になる、ということを書いた。

じゃあ、お散歩はというと、健康を維持するために歩く人にとっては、めんどくさいと思うことがある。ある意味、雑用に見えるわけだ。

そこで、効率的に歩くとはどういうことか、丁寧に歩くとはどういうことか、について考えてみたくなった。それがわかれば、きっと歩くこと・お散歩への見方が変わっているだろうから。

 

そう考えて、図書館へ行った。すると、記事のタイトルの本が見つかった。

歩行障害ハンドブック | 三木 隆己, 嶋田 裕之 |本 | 通販 | Amazon

歩行とは何かを考えたいときに、歩行がダメになっているとはどういうことかが解れば、歩行とは何かがわかるかもしれない。

そう思ってざっくり読んでみる。

ここまでが動機。長い泣

 

始めましょうか。

第一章 歩行障害総論

  • はじめに
    • 歩き方の多様性
      • 速度、様相、杖
  • 頻度
    • 因子
      • 高齢
      • 他の疾患
      • 性別
      • 地域
  • 原因
    • 随意的に始め、停止出来る。
      • 中脳が開始や停止をする
    • 一旦歩き始めると、自動的に継続される
    • 足を動かす時、大脳運動野→脊髄→末梢運動神経→神経筋接合部→筋肉・関節。
      • どこを障害されても、歩行障害が起こる。
    • フィードバック
      • スムーズに歩くため
      • 関節の位置(末梢感覚神経→脊髄→延髄→大脳感覚皮質→運動関連野
      • 大脳皮質→橋→小脳→視床→大脳皮質
      • 大脳基底核
      • どれが障害されてもスムーズな歩行が出来なくなる。
  • 歩行障害の型
    • ※歩き方は、動画や画像を見た方が解りやすいかもしれない。
      • 筆者はよく見た。 
    • 動揺性歩行
      • 体幹を左右に振りながら歩く
      • お腹を前に出して、上体が後ろに沿っている
        • 殿筋などの近位筋が筋力低下していることなど
          • 自分の考え:太ももを前に上げられない状況で、前に足を持っていきたい時、片足を軸とした回転運動を使って、他方の足を前に持っていく。これが、左右に揺れるということの本質なのでは無いか?
      • 原因疾患:多発筋炎、進行性筋ジストロフィー、ミオパチー
    • 鶏歩
      • 原因
        • 下腿腓骨筋群(前脛骨筋など)に筋力低下
        • 第4腰髄~第1仙髄レベルの障害
        • 遺伝性運動感覚性末梢神経障害
        • 腓骨神経麻痺
        • 遠位型筋ジストロフィー
      • 自分で考えたこと
        • 下垂足で、足が常にだらりと伸びた状態なので、躓きやすい。
        • なので、太ももを上げることで、躓くリスクを落とす、ということか。
    • 失調性歩行
      • 常に足元を見ながら歩行する。
      • 原因
        • 脊髄後索や末梢神経の障害
          • 梅毒による脊髄後索障害
          • 脊髄癆
          • 後脊髄動脈症候群
          • 多発性硬化症
          • Friedreich失調症
          • 抗Hu抗体陽性の傍腫瘍症候群
          • 糖尿病性末梢神経障害
      • 後索障害により、関節の位置感覚の情報が入らないため、目で見た情報に頼るしかない。だから、足元を見る歩き方になる
      • 特徴
        • 一歩ごとに膝を高く上げ、足を地面に投げ出すようにパタパタと歩く。
    • 小脳性歩行
    • 痙性歩行
      • 特徴
        • 歩行時の自然な屈伸が減少
        • 膝関節のトーヌスが高い(張力)ため、伸展
        • 足関節は尖足位 
      • 原因
        • 上位運動ニューロンの障害
        • 痙直型脳性小児麻痺、胸髄レベルの障害、内包、大脳運動野を含む脳血管障害、脳外傷、痙性対麻痺
      • 自分で考えたこと
        • これもまた、回転運動を利用したものであろう。しかし、動揺性歩行とは違って近位筋を動かして回転させられていることなのかもしれない。
    • パーキンソン歩行
      • 体幹を前傾・前屈
      • 上肢は肘で屈曲
      • 両足をするように小刻みに歩く
      • 小走り・前方突出
      • 原因
      • 自分の考え:体が前傾姿勢になっているため、膝の角度を固定した状態では、足を前に出す際にすぐに地面に接触する。これが、小刻みの歩行に繋がっている。
    • 前頭葉性歩行障害
      • 小刻み歩行 
      • 特徴
        • 高血圧の合併に多い
        • L-dopa財に反応しにくい
    • 心因性歩行障害
      • 特徴
        • 片麻痺対麻痺
        • 麻痺側の足を引きずり歩くことが多い
        • 奇妙で不定な歩き方
        • 急に始まる歩行
        • スピードはゆるやか
        • しんどそう
    • 神経変性疾患以外の歩行障害
      • 原因
        • 関節の変形症、炎症、靱帯損傷、間欠性跛行心不全、呼吸不全、不整脈、起立性低血圧
        • 間欠性跛行について
          • 歩いていると足がしびれたり痛くなった歩けなくなる
          • 少し休むとまた歩けるようになる。
          • 原因
            • 腰部脊柱管狭窄症
              • 腰椎が変形→脊柱管の中で神経が圧迫→神経の栄養動脈が閉塞気味になる
            • 閉塞性動脈硬化症 
              • 腹部から下肢の動脈が狭くOR詰まったために、下肢への酸素供給が行かない

第二章 ベッドサイドで出来る歩行障害診療

第三章 症状からみた歩行障害と専門医への紹介のタイミング

第四章 鑑別に必要な検査の種類、検査の適用、臨床での利用

第五章 診療科から見た歩行障害

第六章 歩行障害の治療

 

1章を読んだ。

チェックポイント

  1. 歩行の表現型の多様性と、それにかかわる因子(年齢、性別、疾患、地域など)
  2. 歩行は、神経から筋肉・骨へのカスケードと、持続的なフィードバックによって駆動されている。
  3. これらの一部の機能が変わる(大概悪くなる)と、歩き方に障害が出る(歩きにくくなる)

近いうちにモデリングしたい。

バイバイ!

雑用を雑用にしないために

今日以降に書く記事は2022文字以上とする。

目的

雑用に対する捉え方を変えたい。

導入

春になり、色んな仕事が回ってきた。資料作成、ホームページ運営、企画提案、活動報告、広報活動、定期検査、料理、洗濯、皿洗いなど、列挙すると止まらない。そして、これらの物事について、雑用だと感じることがある。すると、やる気が無くなり、後回しにする。というのがお決まりのパターンだ。

しかし、これではいけないことは自分でもよくわかっている。

この状況を変えるため、雑用とは何か、そして、雑用と感じるとはどういう現象かを解釈することが出来れば、何かしら仕事に対する見方が変わるのではないかと考えた。

調べ物

そもそも雑用とは何かについて調べる。何を雑用と考えるかは、個人個人に差があると考えられるが、いくつかのサンプルを集めると、全体的な傾向・共通する性質や、用の作る空間上に定義された雑用分布、なるものを考えることが出来るかもしれない。

いくつか文献に当たってみる。

雑用とは?意味や仕事内容の解説と人手がない時の対策法 | ブログ|フジ子さん (fujiko-san.com)

言及していることについて、自分なりの考えを踏まえてまとめる。

 

  • 雑用とは、誰でも出来る簡単な仕事。
    • 幅広い仕事がある。
    • 地味。ノンコア業務
    • 何かの役に立っている。(そうでないものは、淘汰されるということでは?)
    • 具体例:
      • 書類のコピー、お茶出し、掃除、水やり、電球の交換など
  • 雑用の重要性
    • 初心者によく任せられる。
    • 高い対応力や管理能力が必要。
    • 仕事に取り組む姿勢や能力がわかる。
    • 先の具体例について、一つ一つ対応させてみる。
      • 書類のコピー
        • 効率的に行うには、
          • コピーする枚数と、一枚をコピーするのにかかる時間の積を少なくする
          • 違う種類の書類を印刷する時の紙を入れ替える作業をどうしたら短く出来るか。
        • 丁寧に行うには、
          • 紙の端をそろえること。
          • どのインク・紙・コピー機を使うと、色移りが良いか
      • お茶出し
        • 効率的に行うには、
          • お茶を沸かすのにかかる時間を短くする。
            • 良いやかん
          • お茶を淹れるのにかかる時間を短くする。
            • 複数の茶碗に入れる作業を同時にする
          • お茶を出すのにかかる時間を短くする。
        • 丁寧に行うには、
          • 記載されている手法
            • 茶碗を熱湯で温めてから淹れる
            • 茶碗の絵柄を正面に、木製茶托の木目が横向きになるように出す
      • 掃除
        • 効率的に行うには、
          • 掃除にかかる時間を短くする
            • 普段から綺麗に使う
            • 掃除機の動かす経路を工夫する。
            • 掃除機をかけないで済むような場所を作る。
        • 丁寧に行うには、
          • 雑巾がけなら、雑巾の湿り気がどれくらいなら良いか
            • びしょ濡れではだめだが、乾きすぎも良くない
          • 角の部分をどうしたら綺麗に出来るか。
      • 水やり
        • 効率的に行うには、
          • バケツを置いて、いちいち水をくまなくても良いようにする
        • 丁寧に行うには、
          • その日の湿度、植物の生え方に応じて、水のまき方を変えてみる。
          • 水に肥料を混ぜてみる。
  • 雑用をする人手不足の場合の対処法
    • 内部の人で雑用を分配すること。
      • 一人では雑用が終わらない場合でも、複数人でやればすぐに終わる場合はある。
      • 特に、自分一人で一度に取り掛かれる作業量に限界がある時、複数人であるとその限界の上限値が高くなる。その結果、作業が短い時間で終わることがある。
        • 例えば、ネギを100kg切ろうとしている時、自分一人では、せいぜい1分に1kg切ることしか出来ない場合、一人でやると最短でも100分かかるが、同じ能力を持った9人と一緒にやると最短10分で終わる。
    • 雑用の量を減らすこと。
      • そもそもの雑用を減らす工夫をする。
      • 手間を減らしたり動線を考えたり、することで、作業量を減らすことが出来る。
    • 外部から人を増やすこと。
      • アウトソーシングという。
      • 無償でやってくれる場合はほとんどない。
      • そのため、大半は金銭的な損失が発生する。

他の文献も見てみる。

雑用ばかり押し付けられる!仕事の意味を考えると取り組み方も変わる? (hataractive.jp)

  • 雑用には特別な能力は要らないが、業務の間の潤滑剤、業務を快適にするための大事な業務。
  • 雑用を通じて、自分なりに考え工夫する姿勢や、周囲との意思疎通能力を培う練習となる。
    • 効率良く、丁寧に仕事を行う姿勢を貫くことが、雑用に意味を見出す鍵
    • 雑用は、決して「雑な」用ではない。
  • 雑用が溜まっている場合の対処法
    • 自分の働き方や捉え方を変える。
      • どれだけ時間がかかったかを定量化する
      • ポジティブに捉えて、率先して行うことで、人間的な成長を見込める。
    • 優先順位をつける。
      • 貯めこまないで済むために

もう1つ別の文献を見る。

この世に〝雑用〟という用はない。用を雑にしたときに、雑用が生まれるのだ | 株式会社コンパス・ポイント(広告・フーガブックス・Chinoma) (compass-point.jp)

  • 雑用という名の用はない。
    • 単純作業、したくないこと、有り難くない物事を、つまらなくない仕事に変えると、喜びに満ちた仕事となる。
  • 雑にしているのは、自分の心。

 

理解したことのまとめ

  • 雑用とは、難しい能力を必要としない仕事を意味することが多い。
    • 仕事が単純・単調に見えるために、飽きたり、やる気を失う傾向にある。
    • そのため、雑に済ませてしまいがちである。
  • しかし、雑用を雑にしているのは自分のこころ(脳)である。
    • 丁寧にするには、効率的にするには、自分は何を学べるかと言った風に、常に良い方向を探る姿勢で、雑用に臨むと、やりがいのある仕事に変わっていく。
  • 捉え方を変える以外に、優先順位をつけたり、人的資源を補充することも、雑用の解消のためのアプローチとして有効である。

Critical Thinkingとグロリオサ

2本立て

Critical thinkingについて

  • Critical thinkingが大事であることは知っている。
  • しかし、その思考パターンにはどのようなものがあるか、ということについては全くわからない。
  • "pattern of critical thinking"で検索 → こちらの文献がヒットした。
  • 折角なのでIntroぐらいまで読み進める。
    • (why?) - 導入部分には、研究内容についての前提知識や、その研究をしたい動機が書いているので、研究分野についての概観を掴むための資料として使える場合があるから。

始めましょうか。

  • rationale
    • Critical thinkingの重要性は、あらゆる分野において理解されている。
    • しかし、その適用の仕方を、知っている学生は少ない。
    • 実はこのことについて、アリストテレス(Aristotles)が、 以下の7つの言葉を、その解決策(パターン)として説明した。
      • what
      • when
      • why
      • where
      • who
      • how
      • what for
    • これは理解しやすいので、教育現場において、批判的思考のやり方を説明する時に、使えるのではないだろうか、と思ったらしい。
  • Educational practice of teaching critical thinking
    • 3CA modelというものがある
      • (what?) - 以下の4つからなるCritical thinkingの学習に役立つモデル
      • (以下、構成要素のそれぞれについて説明しているが、実際何やっているかは、文献のFigure 2を見た方が良いかもしれない(視覚的理解の方が容易いことかもしれない) 
        • Concept Maps
          • 情報を点とそれを結ぶ線で表したもの(地図)
          • 点には、知っている情報(言葉)を書き込む
        • Critical Thinking
          • 辺に、批判的思考をした疑問を書き込む。
            • 例えば、(apple is sweet)という点があるとする。そして、あなたが(why?)と思ったら、(apple is sweet)の点から線を延ばし、その線(辺)の上に(why?)と書き込む。
        • Collaboration
          • 個人個人で作りあげたconcept map(地図)を組み合わせて、新しい地図を作りあげる。
        • Assessment
          • 人とcollaborateすると、自分とは違う理由を考えていることがある。
          • その時に、複数の理由があるものについて、(理由の妥当性、重複が無いか等?を)評価する。
    • どうやらこの文献は、子供にこのConcept mapを書いて貰って、統合して貰い、そこに出てくる批判的思考の跡(what, why, where, ....)から、どういう時にどのような思考パターンになりやすいのかを調べたいようだ。

なるほど。言いたい(やりたい)ことは解った。

しかし、Concept mapの書き方について、やり方は解るが、実際体験してみないと、解った気になっただけかもしれない。

という訳で、書いてみる。

 

グロリオサについて

何について書くか考えたが、昨日グロリオサを食べて、食中毒で死亡した、というニュース(こちら。)を聞いたので、そのことをテーマに、concept mapを書いてみる。

 

f:id:medical-science:20220415110828p:plain

自分の理解が深まったと同時に、疑問を作り方が、身をもってわかった気がする。

批判的思考を日常生活から取り入れて生きたいものである。

血圧を下げたい!(220414)

健康診断で高血圧疑いで引っかかった。だから、なんとしても、血圧を下げたい。

この血圧を下げたいシリーズでは、血圧を下げるとは何か、そして、どうやったら血圧が下がるか、ということについて考えてみることにする。

あわよくば、数学的、物理的に血圧を下げる、とはどういうことか、がわかると面白いだろう。

記念すべき第1回。

始めましょうか。

まず、高血圧とは何か、ついて調べる。

  • こちら
  • What is hypertension?
    • 血圧は、血液を循環させる時に、血管壁の抵抗を乗り越えるための圧力である。
      • 高血圧とは、その圧力が高すぎる状態のこと。
      • これは正常となる区間があることを想定している。
    • 血圧は、2種類の特徴的な数がある。
      • 収縮期血圧(Systolic BP)
        • 心臓が収縮あるいは拍動したときの血管における圧力
      • 拡張期血圧(Diastolic BP)
        • 心臓が拍動の間に休んでいる時の血管における圧力
    • 高血圧は、相異なる2つの日に、収縮期血圧が140以上、拡張期血圧が90以上であると、診断される。
  • リスク因子
  • よくある症状(Common Symptom)
    • 早朝の頭痛
    • 鼻水
    • 不規則な心拍
    • 視界の変化
    • 耳鳴り
    • 深刻なものだと
      • 倦怠感、吐き気、嘔吐、錯乱、不安、胸痛、筋肉の震え
  • 合併症
    • 心臓への血液供給を減らす事になる。
    • 脳梗塞、腎不全なども
  • 予防法は、原因の裏返し
    • 野菜と果物を食べる
    • 運動する
    • 塩、飽和・トランス脂肪酸、アルコールを取らない

取りあえず大まかには理解出来た。

しかし、野菜や果物と高血圧の関係性が解らないので、まだその論理に納得出来ていない。

だから、野菜・果物を抽象化して、栄養と高血圧について調べる。

すると、以下の文献が出てきた。こちら

折角なのでFigure 4の数理モデルでも作ろうか。

  • よくよく観察してみる。
  • すると、Angiotensin 2が鍵となる因子みたいだ。
  • どうやら、Olive Oil内の物質が、ACEの発現量を下げたりするみたいだ。
    • 他にもいろいろあるが、今回は考えない。
    • パラメータは、勝手に(直感で)決めたので、結果は信用しがたい。

 

f:id:medical-science:20220414092925p:plain

#%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import math

#initial settings
N=3000;dt=0.01;T=N*dt
a=0.1;b=0.1;c=0.2;d=0.3
k_p=50
beta_a=10;K_a=0.5#ace
k_d=1;h=2.5;K_i=10

"""
angiotensin 1 : x
angiotensin 2 : y
olive oil : i
"""
#funcion settings
def f(s,t,i):
    return k_p-beta_a*(s/K_a)**h/(1+(s/K_a)**h)*(1/(1+(i/K_i)**h))-k_d*s
def g(s,t,i):
    return beta_a*(s/K_a)**h/(1+(s/K_a)**h)*(1/(1+(i/K_i)**h))-k_d*t

def main(o,c):
    x=[0]*N;y=[0]*N;z=[j*dt for j in range(N)]
    x[0]=10;y[0]=10
    for i in range(N-1):
        xk1=f(x[i],y[i],o)*dt
        yk1=g(x[i],y[i],o)*dt
        xk2=f(x[i]+xk1/2,y[i]+yk1/2,o)*dt
        yk2=g(x[i]+xk1/2,y[i]+yk1/2,o)*dt
        xk3=f(x[i]+xk2/2,y[i]+yk2/2,o)*dt
        yk3=g(x[i]+xk2/2,y[i]+yk2/2,o)*dt
        xk4=f(x[i]+xk3,y[i]+yk3,o)*dt
        yk4=g(x[i]+xk3,y[i]+yk3,o)*dt
        x[i+1]=x[i]+(xk1+2*xk2+2*xk3+xk4)/6
        y[i+1]=y[i]+(yk1+2*yk2+2*yk3+yk4)/6

    plt.plot(z,y,color=c)

main(0,"blue")
main(0.1,"red")
main(0.5,"green")
main(2,"cyan")
main(10,"orange")
main(30,"purple")

plt.xlabel("x")
plt.ylabel("y")
plt.title("Example 414")

plt.show()

 

オリーブオイルを買って来よう。

バイバイ!

”What is algebraic biology?"を読む

代数的に生物学を考えると、どうなるかが気になる。

こちらを一息で読む。

始めましょうか。

  • 代数が生物と関わるとはどういうことか
    • 数理生物学では、たいてい、ODE(時折PDE)でモデルを作る
      • 例えば、感染症におけるSIRモデル
    • 代数と言えば、こういう難しそうなものを思い浮かべる。
      • 例えば、蛇の補題こちら。)
      • とうてい生物と関係しているように見えない
    • 線形代数なら、数理生物と繋がりがある。
      • さらに、線形の形に持って行くことで、使える場合がある。
        • ロトカ・ボルテラの方程式は非線形な式だが、平衡点周りでテイラー展開して、二次以上の項を無視すれば、線形に出来る。
      • 線形多項式は便利
    • 非線形多項式
    • 代数生物学は、新しい数学の卵となる。
  • 線形代数非線形代数の比較
  • 生化学反応ネットワーク
  • 分子ネットワークのブーリアンモデル
    • 多項式代数を使うと、ODEの力学系での性質はどうなる???
      • 平衡点、リミットサイクル、安定性など
  • 系統学(Phylogenetics)と代数統計学
    • 進化的関係性と共通の祖先
    • 2分木で、葉がn個の時、辺は2n-2個
      • 一個の葉は1つの種における、一塩基
    • 塩基の変異の入り方を写像と考える
    •  \phi^{2n-2} \rightarrow \phi^{4^n}となる。
    •  4^n -1 次元の単体 \Delta_d と、 Im (\phi )の共通部分
      • 系統学モデル
        •  M_T \subset \mathbb{R}^{4^n}
        • 単体にしているのは、全体の総和を1に保つため
          • 全確率は1
        • その内、像と重なる部分こそが、今回の系統学的なモデルで扱う集合。
    • 系統学的不変量のイデアル
      • MT上で0をとる多項式関数の集合のこと
      •  I_T = \{f \in \mathbb{R} [ x1, \cdots , x_{4^n} ] | f(p) = 0, \forall p \in M_T \}  
    • 系統学的多様体
    • 系統樹に確率を持たせ、それを多項式の塊として、代数の手法を絡める、ということか
  • ニューロサイエンスにおける場所
    • 場所細胞
      • 動き回ると、場所に応じて、違う部分集合の細胞を発火する。
      • 特定の神経細胞の発火を起こすような場所を、Place fieldという。
    • Pseudomonomialなる道具を使う
      •  \mathbb{F}_2 [ x_1, x_2, x_3, x_4, x_5 \におけるPseudomonomial 
        • [tex: X_c(x) =x_1(x_2 -1)x_3 (x_4-1)(x_5-1)
      • 単体的複体
    • 1つの変数を神経細胞とすると、その配列が、全体での神経細胞集団の発火パターンとなる。
    • それが、特定の場所を示すか、という時にPseudomonomialが1か0か、という情報に変換する。
    • 神経のコード(配列、発火パターンの集合)は、イデアルと対応する。
      • その変数配列を代入すると、0を返すような関数の集合
    • Neural Ideal
    • Receptive Field
      • あるコードにおいて、両方1なら、その細胞1つずつのしめす領域がオーバーラップする
      • もし、片方が1であることが、他方が1であることを示すなら、領域同士に包含関係がある。
      • これを多項式イデアルに含まれているか、という話で言い換えが出来る。
    • Canonical Form of Jc
      • Jcの最小Pseudomonomialの集合
    • 代数が、どのように、Place fieldsの幾何、位相的性質を明らかにするか。
  • 最後に、Pseudomonomialについて補足があった。
    • Pseudomonomialとは、以下の形式の多項式
      •  \prod (x_i-r_ij)^{a_ij} , r_{ij} \in \mathbb{F} , a_{ij} \in \mathbb{Z}_{\geq 0}^n
    • 0か1の時、活性と抑制と言い換えると、神経の繋がり(Wiring)の図(Diagram)となる。
  • Signed mini set
    • 何がしたいかがつかめなかった。

全体的には、代数生物学が生物学を代数的に考えようとしていること。例えば、反応、分子ネットワーク、遺伝、神経などについて扱っていること。

それが解ったので、今は良しとする。

バイバイ!

p進数を学ぶ

素数の様なものが生物に現れていたら面白いだろうと思う。

例えば、素数ゼミがある。(詳しくはこちら。)

始めましょうか。

  • ようこそ新しい数の世界へ
  • 2進世界をのぞいてみる
  • 実数の世界
  • 再び2進世界へ
  • p進世界
    • 遠近感、 p, p^2, \cdots, p^n, \cdotsが0に近づいていく感じ
  • p進法
    • 全ての自然数は次の形に表せる。
    •  r = a_m p^m + \cdots a_1 p + a_0
  • p進法と小数
    • 全てのp進数は次の形に表せる。
      •  r = \cdots + a_m p^m + \cdots a_1 p + a_0 + a_{-1}/p + \cdots + a_{-n}/p^n
      • 左側に無限に続いているのが特徴
      • 実数の場合は、右側に無限に続いていた。
  • 5進世界の算術
  • 有理数平方根
  • 有理数平方根とp進数
    •  \sqrt{-2}が3進数で(2つ)存在
      • ±に対応している。
    • しかし、 \sqrt{2}は存在しない。
    •  \sqrt{-2}無理数であること。
      • 実数でないから、
    •  \sqrt{2}無理数であること。
      • 3進数でないから、
  • 世界の違いを超えて
    • 実数の世界で議論するより、p進数の世界で議論する方が楽なことがある。
    • 局所大域原理(ハッセの定理)(こちら。)
      •  a,b \in \mathbb{Q} , ax^2+by^2=1に対して、
        • 上の方程式を満たす有理数 x,yが存在することと、
        • それを満たす実数 x,yが存在し、さらにそれを満たすp進数 x,yが存在することが、
        • 同値
      • 三次式だとなりたつとは言えない。
  • 付録:等比数列の和
    • 高校数学のやつ
    •  (1-r)(1+r+\cdots + r^n)=1-r^{n+1}

 

p進数を考えると、嬉しいことがある、ということは分かった。

 

折角なので、お絵かきしてみる。

目的は、 \sqrt{-2}を求めてみることにする。

実数なら、数で表せないものが、p進数だと(無限列だが)表せるのはうれしいことだ。

p=3
n=11

def check(x):
  global n,p
  if (x**2+2)%(3**n)==0:
    return 1
  else:
    return -1

def change(x):
  global p
  ans=0;bit=0#10進法っぽく表す
  while x>0:
    ans+=(10**bit)*(x%p)
    x//=p
    bit+=1
  return ans

def main():
  memo=[]
  for x in range(1,10**7):
    px=check(x)
    if px>0:
      memo.append(x)
  else:
    print(len(memo))
    for y in memo:
      print(change(y))

main()
 
"""
10200211 22212022012 100010200211 122212022012 200010200211 222212022012 1000010200211 1022212022012 1100010200211 1122212022012 1200010200211 1222212022012 2000010200211 2022212022012 2100010200211 2122212022012 2200010200211 2222212022012 10000010200211 10022212022012 10100010200211 10122212022012 10200010200211 10222212022012 11000010200211 11022212022012 11100010200211 11122212022012 11200010200211 11222212022012 12000010200211 12022212022012 12100010200211 12122212022012 12200010200211 12222212022012 20000010200211 20022212022012 20100010200211 20122212022012 20200010200211 20222212022012 21000010200211 21022212022012 21100010200211 21122212022012 21200010200211 21222212022012 22000010200211 22022212022012 22100010200211 22122212022012 22200010200211 22222212022012 100000010200211 100022212022012 100100010200211 100122212022012 100200010200211 100222212022012 101000010200211 101022212022012 101100010200211 101122212022012 101200010200211 101222212022012 102000010200211 102022212022012 102100010200211 102122212022012 102200010200211 102222212022012 110000010200211 110022212022012 110100010200211 110122212022012 110200010200211 110222212022012 111000010200211 111022212022012 111100010200211 111122212022012 111200010200211 111222212022012 112000010200211 112022212022012 112100010200211 112122212022012 112200010200211 112222212022012 120000010200211 120022212022012 120100010200211 120122212022012 120200010200211 120222212022012 121000010200211 121022212022012 121100010200211 121122212022012 121200010200211 121222212022012 122000010200211 122022212022012 122100010200211 122122212022012 122200010200211 122222212022012 200000010200211 200022212022012 200100010200211 200122212022012 200200010200211
"""

山の様に候補が出てくる。

ここで、下6桁を見てみると、丁度、文書にあったように、200211と、022012が並んでいる。

今日はこの当たりで、バイバイ!

"Kan拡張”について学ぶ

以前より、圏論、関手について学んだ。

それの復習をしつつ、そこから先に踏み込んでみよう。

今回の目標は”Kan拡張”を理解することである。

こちら

始めましょうか。

  • 前提知識について
  • 自然変換
    • 圏2つと、その間の関手2つ、を用意。
    • 関手から関手への自然変換
      • イメージとしては、射の族で、射について、平行四辺形則のようなものを満たす。
    • 自然変換を2つ考えると、その合成則を考えられる。
      • 垂直合成
    • 関手圏
      • 関手を対象とし、自然変換を射とする。垂直合成を射の合成とし、自然変換FからFに写す射を恒等変換とする。
    • 関手 F,G: A \rightarrow B, H: B \rightarrow Cとし、自然変換 \theta : F \rightarrow Gとすると、新たな自然変換 H \theta : A \rightarrow Cが作れる。
    • その延長上に、水平合成がある。
    • (まとめる)自然変換は関手から関手に入れ換える感じ。垂直合成が入れ換えてさらに入れ換える感じ。水平合成は、圏から圏に写して、さらに別の圏に写す時に、1段階目の関手間の自然変換と、2段階目の自然変換を合成するもの。
  • 米田
    • Hom関手
      • 2種類
        •  Hom_C (a,-): C \rightarrow Set, Hom_C (-,b) : C^{op} \rightarrow Set
        • 対象を射の塊に写し、射を射の塊間の写像に写す。そんな関手。
    • 米田埋め込み
      • 関手 y: C \rightarrow Set^{C^{op}}
      • 圏から、圏の射の向きを入れ換えた圏から射の塊の圏に写す関手に、写す写像
        • 圏からHom関手の集合に写す。
    • 米田の補題
      • Cを圏、 a \in Cを対象、 P: C^{op} \rightarrow Setを関手とする。
      • 全単射 \phi_{a,P} : Hom_{\hat{C}}(y(a), P) \rightarrow P(a)が存在。
      • なんとなく分かったような、、、。
        • Hom関手を対象とする圏において、そのあるaに対応するHom関手と別のHom関手の間の射の集合と、Hom関手によって写されるaに対応づけられた射の集合を対象とする圏
        • つまり、圏の対象とHom関手との間に一対一関係がある
    • 圏の対象が同型
      • Hom(a,x)とHom(b,x)に対応があると、aとbにも対応が取れる。(同型)
      • 双対性
    • つまり、圏の対象が同型かが、射の集合と密接に関わっている。
      • 対象を見ることと、関係性を見ること。
  • コンマ圏
    • C0、C1、Dを圏とし、 K: C_0 \rightarrow D, L: C_1 \rightarrow Dを関手とする。
    • C0の対象とC1の対象と圏D内での射をひとかたまりの「対象」とする
    • C0の射とC1の射で、さっきの「対象」とべつの「対象」を対応づけるものを、ひとかたまりの「射」とする。
    • この圏をコンマ圏 K \downarrow Lという。
    • ふんわり説明すると、圏を3つくっつくけたものを圏と見なした物。
  • 余極限
    • 図式
      • 関手 F : I \rightarrow C
        • Iは添え字圏
          • 添え字のついた圏なんだろうか(?)
    • 図式の余極限 <colim F, \{ \mu_i \}_{i \in I }>
      • colim FはCの対象
      • 各μiは、Cの射で、 \mu_i : Fi \rightarrow colim F
      • Iの射 f: i \rightarrow jについて、 \mu_j \circ Ff= \mu_i
      • ここまで、同じ条件を満たす、Cの対象と射の組があったら、Cの射が一意に存在して(colim Fからその対象に写す、射が存在して)、合成則を満たす。
        • 要はベクトルを2つ足したらでかいベクトルになる、みたいなイメージがある。
  • 随伴
  • Kan拡張
    • C, D, Uを圏、F, EをCからそれぞれD, Uに写す関手とする。
    • Fに沿ったEの左Kan拡張
      • 関手と自然変換の組
    • こういうことかな、と思ったので、書く
      • 先程、出てきた余極限では、対象と射(正確には射の集合)の組を考えた。
        • そして、似たような性質を持つ対象と射の組との間に、一意な、合成則を満たす射があった。
      • 一方で左Kan拡張では、関手と自然変換の組を考えた。(自然変換は、関手を対象と見なした時の射のようなもの)
        • そして、似たような性質を持つ関手と自然変換との間に、一意な、合成則を満たす自然変換があった。
    • 右Kan拡張は、左Kan拡張の自然変換の向きを逆にしたもの
  • 普遍随伴
    • わからない。というより、時間がないので、今は飛ばす。

考え方を掴めた気がするので、今後圏論的な考え方を応用していきたい。

バイバイ!

信号機の見え方

車を運転している時に、信号機がどのように見えるかが気になる。

想定:車は60km/hで動いているものとする。信号の手前70mの位置に時刻0にいるものとする。時刻1に信号機の色が青から黄に、時刻4に黄から赤に変わる。信号機の高さは5m、信号機の大きさは25cm、各色同士の距離は10cmとする。運転席に座った時の高さは1.4mとする。

黄色になった瞬間に0.1gの加速度で、赤色になった瞬間に0.3gの加速度で減速する。

ここで、信号機がどう見えるかが気になる。

お絵かきしてみる。

 

#%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import math

#initial settings
N=450;dt=0.01;T=N*dt
l=70;v0=60/3.6;H=5.0;h=1.4;tc=1.0;te=4.0
R=0.25;d=0.5;hu=H-h+R/2;hl=H-h-R/2
g=9.8
#variable
yC=0;a1=0.1*g;a2=0.3*g


def project(x,y,z):
    r=math.sqrt(y**2+z**2)
    theta=math.atan2(r,abs(x))
    phi=math.atan2(z,y)
    return (theta*math.cos(phi),theta*math.sin(phi))



def eye():
    global N,dt,T,l,v0,H,h,tc
    t=0;v=v0;x=l;y=yC
    for i in range(N):
        if t<tc:
            x1,y1=project(x,y,hu)
            x2,y2=project(x,y,hl)
            plt.scatter((x1+x2)/2,(y1+y2)/2,color="green",s=100000*abs(y1-y2)/2,alpha=0.1)
            #plt.Circle(((x1+x2)/2,(y1+y1)/2),(abs(x1-x2)/2+abs(y1-y2)/2)/2,color="green",alpha=0.1)
            x=x-v*dt;
            t=t+dt
        elif t<te:
            x1,y1=project(x,y+d,hu)
            x2,y2=project(x,y+d,hl)
            plt.scatter((x1+x2)/2,(y1+y2)/2,color="orange",s=100000*abs(y1-y2)/2,alpha=0.1)
            #plt.Circle(((x1+x2)/2,(y1+y1)/2),(abs(x1-x2)/2+abs(y1-y2)/2)/2,color="orange",alpha=0.1)
            x=x-v*dt;
            v=v-a1*dt
            t=t+dt
        elif t>te:
            x1,y1=project(x,y+2*d,hu)
            x2,y2=project(x,y+2*d,hl)
            plt.scatter((x1+x2)/2,(y1+y2)/2,color="red",s=100000*abs(y1-y2)/2,alpha=0.1)
            #plt.Circle(((x1+x2)/2,(y1+y1)/2),(abs(x1-x2)/2+abs(y1-y2)/2)/2,color="orange",alpha=0.1)
            x=x-v*dt;
            v=v-a2*dt
            t=t+dt
#plt.scatter(x1,y1,color="red")

eye()

plt.xlabel("x")
plt.ylabel("y")
plt.title("Drive 409")
plt.xlim(-1.0,1.0)
plt.ylim(0,1.4)
plt.show()

 

f:id:medical-science:20220410154706p:plain



 

意外と黄色の時間は短いので、ちゃんと減速しきらないと、赤信号で交差点に突っ込むことになって危ない。

気をつけようね。

この記事もこれくらいでParking。

バイバイ!