目的を偽り猫を譲り受け、それを虐待殺傷したことについて、詐欺罪と愛護動物殺傷罪の成立が認められた事例

こんにちは!寝起きです。

これはョョョねこAdvent Calender2020の24日目の記事です。
adventar.org

気付けばこれがョョョAdC3本目の記事となっております。執筆がたてこみ課題もたてこみ、この記事が上がるころには死んだ目をしていることと思います(AdCの枠をとったのはほかでもないお前自身だろ定期)

今回は今までの2記事と(そしてほかのョョョAdC記事の多くと)異なり、社会科学ネタを書くことにします(お前専門何だっけ?)。具体的には、横浜地方裁判所川崎支部判決平成24年5月23日判時2156号144頁の判例評釈もどきみたいなことをしていこうと思います。

ョョョねこ要素というかねこ要素はあります。

事案の概要

背景

被告人は平成23年5月ごろより野良猫保護団体等から「里親」として猫を引取るようになったものの、次第に自身のストレス発散のために猫を虐待・殺傷するようになり、同年7月ごろからは専ら虐待する目的で猫を譲り受け、それを虐待・殺傷するようになった。

被疑事実

①被告人は平成23年10月27日から同年11月6日にわたって、合計3回・計5匹の猫に関して、猫の里親を探していた者らから、実際はそれを飼養するのではなく虐待・殺傷する意図であるのに、猫を飼養する旨同人らに述べ、内2件では飼養に責任を負う旨の誓約書に署名するなどして、猫を飼養するつもりであると装いまたそうであると同人らに誤信させ、猫を譲り受けた。②また、そうして譲り受けた猫らを同月1日から7日に渡り、諸々の方法で虐待・殺傷した。

裁判所の判断

①・②ともに有罪(確定)。なお、犯罪の成否についての議論はなく、量刑判断について述べたにとどまる。

問題と検討

本件は虐待・殺傷の意図を秘して、それによる誤信を基礎とし猫を譲り受けた点について詐欺罪の成立を、またそれにより譲り受けた猫を虐待・殺傷した点についていわゆる愛護動物殺傷罪(動物愛護法44条1項)の成立を認めた事例である。

本件について、少なくとも被疑事実②が愛護動物殺傷罪の構成要件に該当することについては争いはないが、しかし被疑事実①について詐欺罪が成立するかどうかについては検討を要すると思われる。以下、個別の問題点について議論していく。

詐欺罪の成否-客体は保護の対象か

まず第一に、刑法246条には「人を欺いて財物を交付させた者」とあるが、本件の猫が保護対象である「財物」にあたるか。

246条にいう「財物」は交付元の人物の存在を前提とすること、また246条を対象とする251条は242条を準用していることから、「財物」は他人の財物であることを要求する。つまり、無主物は詐欺罪の客体たりえない。

本件に関する判例評釈の一つはこの点について、野良猫は無主物であり、ゆえに「所有者のない動産」(民法239条)である以上、保護した者が「所有の意思をもって占有」(同条)しない限り所有権の取得はなく、そのため本件について野良猫は詐欺罪の客体となりえない*1という。

財産犯による法益保護というのは財産に関する権利利益の実質化に根拠づけられる。それは、財産犯の「財物」に対して、被害者が所有者である必要があるのか、占有者で足りるのかについて議論が交わされる状況から明らかで、ゆえに少なくとも所有権(本権)の対象となっている物であれば当然に刑法上の保護対象となっているものと考えられる。

翻って本件を検討すれば、野良猫ははじめ無主物であろうが、保護者(本件の被害者あるいは被害者より以前に野良猫を拾い、それを被害者に譲渡した第三者)によって拾われた時点で所有権は発生しているであろう。

前述した批判的な評釈はこの保護者に「所有の意思」を認めることはできないという。しかし、判例*2はその「所有の意思」(民法186条1項)について「占有における所有の意思の有無は、占有取得の原因たる事実によって外形的客観的に定められるべき」とし、これが否定される場合について「占有者がその性質上所有の意思のないものとされる権原に基づき占有を取得した事実が証明されるか、又は占有者が占有中、真の所有者であれば通常はとらない態度を示し、若しくは所有者であれば当然とるべき行動に出なかつたなど、外形的客観的にみて占有者が他人の所有権を排斥して占有する意思を有していなかつたものと解される事情が証明されるときは、占有者の内心の意思のいかんを問わず、その所有の意思を否定し、時効による所有権取得の主張を排斥しなければならない」*3と述べるから、これを踏まえれば、保護者は猫をゆくゆくは譲渡する目的である程度の期間自身の元においていて、保護者はたとえばそれが何かの形で奪取されようものならそれを阻止しようとしただろうし、本件においても被告人が虐待目的で猫の譲渡の申込をしてきたことがわかっていたならそれを拒否しただろう(いわゆる重要事項性とも関連する。逆に、虐待目的での申込とわかっていながら拒否しないのであれば、重要事項性を欠き詐欺罪の成立は否定されるべきである。)ことは、被害者が誓約書の用意をしていることなどから推し量ることができるが、これは明らかに「他人の所有権を排斥」している様子であるといえるから、所有の意思を認め、それにより無主物先占による所有権の発生まで認めてよい。

詐欺罪の成否-財産的損害の有無

本件で被害者が被った「財産的損害」とは何だととらえるべきか。既出判例評釈の立場は論者により異なる。

まず、批判的論者*4は量刑理由中にある「精神的苦痛」、すなわち動物虐待に対する精神的苦痛こそが損害であり、それは②の事実、つまり動物愛護法の領域なので、詐欺罪による保護対象ではないという(「『動物虐待に対する精神的苦痛』である場合には」と述べるので、筆者自身は猫そのものを財産的損害と解することは否定していないと思われる)。このような「精神的苦痛」を損害と解する見解について他の判例評釈は概ね否定的*5*6であり、また私見としても支持できない。もっとも、筆者自身はその著書で詐欺罪の保護法益を「誤った情報を与えられて財産の処分をさせられない権利」*7とする説に立っており、その見解に立てばむしろ精神的苦痛を損害と解釈することについて親和的であるように思われる。

問題として浮上するのは、本件においては被告人から被害者に対する反対給付のない譲渡だが、これはたとえば猫を引き受けたのち、きちんと養育したとしても、財産の移動という意味では虐待・殺傷した場合となんらかわりなく、どの点について被害者に損害があったかといえるかである(なお、判例*8はこのような一方的給付の場合も詐欺罪の成立を認める。)。

まず、典型的な詐欺罪のケースと比較を試みる。典型的詐欺の場合、何かしらの欺罔(たとえば返済するつもりがないのに、3か月後の返済を約するとの申告をする)により被欺罔者に誤信(たとえば、申告通り3か月後に返済されるだろうという誤信)を生じさせ、被欺罔者による交付行為(たとえば、金500万円の貸付)が行われ、そこで財産的損害が生じていることを認める、といった流れを踏むことになる。ここでいう反対給付とは3か月後における500万円の弁済、ということになろう。

本件とこのフローチャートを比べたとき、「3か月後における500万円の弁済」は何に相当するかというと、猫を大切に養育する義務の履行、が相当するように思われる。しかし、この義務はかりに民事法上の拘束力があったとしても、それそのものを刑事的に保障するには、非物質的な権利義務関係を対象とする以上2項犯罪の適用を検討する必要があるだろう。つまり、本件においては、生じた財産的損害と反対給付が同質ではない。このような場合は詐欺罪の構成要件のうえでどう評価されるべきか。

財産的損害に関する諸学説についてはさまざまあるが、本件に関する判例評釈には実質的個別財産説*9、形式的個別財産説*10に立つものがあり、いずれも損害を肯定する。また実質的個別財産説からのアプローチを試みた論者からは「財物性においては物の価値とは主観的価値を含みうるし、およそ愛情価値しかないものであっても財物性はもとより、その喪失には財産的存在が肯定されうることは財産的損害を要求する論者からも確認されている」*11との重要な指摘がある。この「財産的損害を要求する論者」として筆者は林幹人氏をあげており、林氏は全体財産説論者*12*13*14であるから、筆者の主張の一貫性については注意を要するが、財産的損害に物質的なものではない、価値などを観念しえる可能性については議論の必要がある。

まず、詐欺罪は財産犯として何を保護しているか。先述した「誤った情報を与えられて財産の処分をさせられない権利」とする見解もあるが、大多数は他の財産犯と同様に物そのもの*15あるいは物の所有・占有*16と解するし、私見もこれを支持する*17。詐欺罪が具体的な物の所有等を保護する以上、それにより防御が試みられる損害はそれと同質である必要があろう。ゆえに、財産的損害として、価値そのものを評価対象とする見解は支持できない。必ず、損害として評価されるものは1項犯罪においては物であるべきである。

もっとも、この制限は反対給付に及ぶわけではない。財産的損害の議論は、詐欺罪が何を目指して置かれた規定かを解釈したに過ぎない。そして、詐欺罪において他の財産犯と異なる本質的な点は、被欺罔者が本来意図していた物の授受ではなかった、というポイントにある。何も考えずに物を交付しているのであれば、詐欺罪を観念する必要はない。なぜなら、欺罔行為によって誤信に陥る対象がないからである。「こんなやつには交付しない」という条件付けが交付者の中でできてはじめて、交付行為に対して詐欺罪の検討余地が生じることになる。逆に言えば、詐欺罪を検討しうるような取引においては「交付相手は~~である」という条件がはたらき、交付を受ける側はそれに従う(あるいは、そうである)ことが要求され、それが反対給付類似の性格を帯びることになる。別にこれは違和感のある議論ではない。先述した500万円の消費貸借に関しては、借りた側が500万円の返済義務を負ってそれを反故にしたということになる(500万円の債権そのものではないことに注意せよ)が、この事例を詐欺の典型例として認めた段階で、詐欺罪が想定する反対給付に物質的ではない、義務を観念し得ることも認めていることになる。本件との違いは、その反対給付の義務が金銭の債権債務関係だったかでしかない。本件はただの交付行為をしているように見えて、(民事法上はそうでなくとも)実際は猫を大切に養育する義務を反対給付として刑事法上は解釈されるべきである。そして、反対給付が正しく(=意図した通り)になされなかった、「反対給付の瑕疵」*18*19があるのであれば、その給付(反対給付に対する、交付者側からの給付)そのものが財産的損害と解釈されるべき*20*21*22である。本見解のメリットは、詐欺罪が多くの場合に経済取引の外形を持つ*23ことから、その外形を例外的に持たないものについても必ず反対給付を観念し、典型的類型に引き付けて考えることで、画一的な基準を導入できる点にある(類似の見解にいわゆる目的不達成論・法益関係的錯誤説*24がある。本見解と目的不達成論との違いは財産の保護理由が交換経済に求められるか否かであるが、本件判決と本質的に同じである寄付金詐欺について目的不達成論からも詐欺罪の成立を認める*25ので、結論は変わらない。目的不達成論を支持している可能性のある裁判例として、規定では一部を地方自治体が負担することになっていたがそれを私人が負担し、その事実を秘して残余部分について国庫より補助金を受け取ったことについて詐欺罪の成立を否定した事例がある*26。)。

以上のことをまとめれば、本件においては、猫を大切に養育する義務を反故にしたことをもって反対給付の瑕疵を認め、そこからただちに、猫を財産的損害とする構成をみとめてよいであろう。

なお、この点についていくつかの論考は、愛情価値そのものや、猫の養育等に関する期待価値を財産的損害と評価してよい*27*28、というが、これらが単体で財産的損害として評価され、肯定されるのではなく、本来は取引に供された物そのものが財産的損害を構成するが、その付加価値として(たとえば、有名な芸術家の作品である、と同じレベルで)評価されるにすぎず*29、財産的損害の有無という点には影響しないというべきでである。

詐欺罪の成否-不法領得の意思

財産犯は、ただそのものの占有を侵すだけでなく、いわゆる不法領得の意思を要求するのが判例*30・通説である。その判例によれば不法領得の意思とは「權利者ヲ排除シテ他人ノ物ヲ自己ノ所有物トシテ其經濟的用方ニ從ヒ之ヲ利用若クハ處分スルノ意思」を指し、権利者排除意思と利用処分意思の2つからなる。不法領得の意思の有無は構成要件にない、いわゆる主観的超過要素であるが、権利者排除意思の有無は窃盗と一時使用、利用処分意思の有無は侵奪罪と毀棄・隠匿罪の区別を決定*31する、重要な要素と認識されている。

本件においては、被告人は猫を入手したのち、それをただ虐待・殺傷している。猫ではなく、もっと無生物が問題であれば、それをただ破壊したことになる。このような場合には毀棄罪と実質的には変わらず、侵奪罪に問擬することはできないのではないか。

この点については判例評釈の一つ*32が詳細に分析を試みている。まず、この分析を概観することにする。

本件の検討として、猫の虐待・殺傷によって被告人はストレス発散という効果を得たから、奪取した物の破壊によって何らかの効用を得ることを目的に、何らかの財産犯に及んだ事例を検討している。まず、その奪取物の利用目的について、判例は本来的利用*33、また経済的利用*34についていずれも成立を肯定しており、また下級審ではそれを離れた目的での利用意思についても不法領得の意思を認めたものがある*35。しかし、判例も無制約にそれを認めるわけではなく、名宛人が支払督促に対する異議申し立てなどを行う機会を奪いその財産を差し押さえる目的で、支払督促正本を名宛人に代わって受取りただちに破棄した事例*36において、「廃棄するだけで外に何らかの用途に利用,処分する意思がなかった場合には,支払督促正本等に対する不法領得の意思を認めることはできない」と、不法領得の意思を否定した。

そのほか下級審の裁判例を個別に分析し、筆者は結局、毀棄・隠匿によって物そのものの持つ効用を利用しようとする場合はおおむね不法領得の意思を肯定する傾向を認めつつ、しかしその場合、精神的効用を得るために毀棄罪に及ぶ場合を区別することができないとする。また、このような動物を虐待することで精神的効用を得るという目的は刑法が倫理的規範としての機能を持つ以上、不法領得の意思の基礎として認めることはできないと主張する。

以上の分析について検討すると、精神的効用を得る目的での毀棄行為は、侵奪罪のみならず毀棄罪でも生じうるという点については認められるが、筆者のいうような区別不能性については、解決可能であると考える。侵奪罪の共通・本質的特徴は、それが原占有者の意図しない占有移転が生じることであった。しかし、不法領得の意思の規定はそれに直接しぼりをかけ、より違法性の強い(あるいは強い非難に値する)ケースを選択的に選び出すものと考えられよう。そこで物の奪取目的が検討されるのは、物を何かしらの形で利用し、効用を得ることが本来の権利者のみが可能であるからこそ、それを客観的テストの1つとして検討しているにすぎない。本件にひきつけるわけではないが、たとえば物を破壊してストレス発散を試みる行為というのは、通常であれば持ち主でなければできない行為であろう。一方、そのほかに目的がなく、効用を得るつもりもなく、ただ破壊する行為というのは、そこから(まわりまわって利益があるとしても)物から何かの効用を得るわけではない以上、本来の権利者の「利用」として考えられる使用方法ではない(もちろん、通常の権利者であっても物を廃棄するために破壊することはあろうが、それは「利用」ではない)。検討する順番は、占有の有無が先で、使用目的が後に立つのだから、侵奪罪と毀棄隠匿罪の区別は問題なく行えるように思われる。先述の分析は、不法領得の意思の検討目的が本来の検討要請より前に出てしまっているように見える。

また、分析は刑法が動物の虐待をストレス発散の手段としてありえると認めることは許されないというが、刑法はたとえば物の奪取の目的で人を殺害することがありえると認めているのだから、妥当しない批判と思われる。

動物愛護法違反との関係

本来、侵奪罪で得た物の毀棄・隠匿行為は侵奪罪の不可罰的(共罰的)事後行為として評価されるが、本件においては詐欺罪と愛護動物殺傷罪との併合罪となっている。

愛護動物殺傷罪の保護法益については争いがある。これを「動物愛護の良俗」という社会的法益とする論者は動物愛護法1条の目的を根拠とし、動物の直接的保護はその社会的法益保護による反射効である*37と主張する。一方、動物の身体・生命そのものが法益主体であると解する論者は、たとえば殺人罪の規定の存在は社会倫理規範維持の機能をもつものの、殺人罪の保護法益は生命であり、社会倫理秩序そのものではないということ、目的で規定されている事項の実現は、保護規定をおいたことによる副次的効果にほかならない*38として、社会的法益説を批判する。

社会的法益説に立った場合、本罪は詐欺罪と全く別の保護法益を保護していることになるから、詐欺罪と別に愛護動物殺傷罪の成立を認め、両者を併合罪の関係として処理するのが妥当なのは当然であろう。では、愛護動物殺傷罪の保護法益が動物の身体・生命であった場合、被疑事実②については不可罰的(共罰的)事後行為と解釈される余地はないか。

財産侵奪罪による侵奪財物の破壊を器物損壊罪とせず不可罰的(共罰的)事後行為とするのは、それらがいずれも同じ財物に対する所有権等侵害であるから、同一法益の二重評価となることを避けるためである(裁判例をみると解釈にゆれがある。ここで述べた同一法益の二重評価か否かを基準とする見解*39のほか、先行する侵奪行為により所有権等が制限を受けた程度と後行する毀棄・隠匿行為により所有権等が制限を受けた程度を比較し、後者が前者を超えるときにはなお器物損壊罪の成立を認めた*40ものがある。ただし後者の裁判例は、先行行為について不法領得の意思を認めず窃盗罪の成立を否定した点に注意が必要である。)。本件においては、被疑事実①について詐欺罪にて評価された損害というのは猫5匹の所有であり、被疑事実②に愛護動物殺傷罪を適用する場合の保護法益である猫の生命・身体そのものとは全く異なる。保護法益を動物の身体・生命と解釈する論者も、併合罪として処理した本件判決を支持している。*41そのため、愛護動物殺傷罪の保護法益についていずれの立場に立とうと、結論は変わらない。

おわりに

以上の検討より、本件判決は処罰可能性について、判断こそ示していないものの、おおむね妥当な結論を導いているように思われる。もっとも、量刑の理由のみの判示にとどまっているため、処罰可能性が妥当かどうかの判断が裁判所の側で正しく行われたかどうかは判断し得ない。財産的損害の解釈によっては詐欺罪の成立を否定することも可能であるように思われるので、裁判所の立場にはなお一層の検討を要する。

*1:松宮孝明「判批」法学セミナー695号131頁

*2:最高裁判所第一小法廷判決昭和45年6月18日判時600号83頁

*3:最高裁判所第一小法廷判決昭和58年3月24日民集38巻2号375頁

*4:注釈1に同じ

*5:三上正隆「判批」愛知学院大学論叢法学研究54巻3=4号117頁以下

*6:冨川雅満「判批」法律新報120巻3=4号543頁以下

*7:松宮孝明『刑法各論講義』(2008年)233頁

*8:大審院判決昭和8年2月2日大刑集12巻11頁

*9:注釈6に同じ

*10:注釈5に同じ

*11:注釈6に同じ

*12:林幹人『刑法各論』[第2版](2007年)143頁

*13:他の全体財産説論者として、たとえば安里全勝「判批」斉藤靜敬古稀「刑事法学の現代的展開」(2005年)339頁以下

*14:全体財産説と個別財産説の違いがあいまいであるという主張につき田山聡美「詐欺罪における財産的損害」曽根威彦・田口守一古稀『曽根威彦先生田口守一先生古稀祝賀論文集[下巻]』(2014年)151頁以下。また林氏自身も注釈12著書143頁、および「欺罔行為について-最高裁平成26年3月28日決定を契機として」『西田典之先生献呈論文集』(2017年)347頁以下で実質的個別財産説との同一性を指摘する。

*15:たとえば大谷實『刑法講義各論』[新版第4版](2013年)258頁

*16:たとえば井田良『講義刑法学・各論』(2016年)256頁

*17:第一次的には財産や財産権を保護法益としつつ、第二次的、あるいは副次的な保護法益として取引の信義誠実を上げる論者もいる。佐久間修『刑法各論』[第2版](2012年)212 頁参照。

*18:注釈16に同じ 273頁

*19:井田良「詐欺罪における財産的損害について」法曹時報66巻11号2989頁以下

*20:注釈16に同じ 279頁

*21:注釈17に同じ

*22:伊藤渉「詐欺罪における財産的損害-その要否と限界」刑法雑誌42巻2号143頁以下

*23:藤木英雄『刑法講義 各論』(1976年)305頁

*24:山口厚『問題探究 刑法各論』(1999年)169頁

*25:山口厚『刑法各論』[第2版](2010年)269頁

*26:奈良地方裁判所判決昭和38年6月27日下刑5巻5=6号589頁

*27:注釈6に同じ

*28:齋野彦弥「詐欺罪における損害の意義-経済的損害概念の再評価」『西田典之先生献呈論文集』(2017年)383頁以下

*29:注釈12に同じ 143頁

*30:大審院判決大正4年5月21日刑録21輯663頁[教育勅語事件]

*31:高橋直哉「判批」別冊ジュリスト251号61頁[刑法判例百選(第8版)II-31事件]

*32:注釈6に同じ

*33:最高裁判所第一小法廷判決昭和33年4月17日刑集12巻6号1079頁

*34:最高裁判所第二小法廷判決昭和35年9月9日刑集14巻11号1457頁

*35:神戸地方裁判所判決平成15年等

*36:最高裁判所第二小法廷決定平成16年11月30日刑集58巻8号1005頁

*37:三上正隆「動物の愛護及び管理に関する法律44条2項にいう「虐待」の意義」國士舘法學41号71頁

*38:清水晴生「動物愛護法上の犯罪」白鷗法学27巻1号(通巻55号)211頁以下

*39:東京高等裁判所判決昭和63年3月31日高刑速(昭63)号42頁

*40:大阪高等裁判所判決平成13年3月14日判時1760号149頁

*41:注釈38に同じ

「卍関数」を書いてみる

こんにちは。寝起き(@teimon0)です。

これはョョョAdvent Calender 2020の16日目の記事です。
adventar.org

これが本来ョョョAdbentCalenderに書く予定だった記事です。AdCに空きがあったので、なにか書けることないかなーーと考えたんですが、新規性のあるネタを吐き出せないなあと思って諦めの舞を踊っていました。でも、なぜか突然「卍関数」を思い出したので、ここに吐き出すことにしました。本稿では私が1年半前くらいに考えたネタを再検討し、考察を加えていくことにします。

難しい話はあまりなくて、高校数学を前提にして(それも一部がっつり高校数学の焼き直し)書いたので、まあちゃららーーーと読んでください。

せぷねこニキ周辺の各位が関心を持つ分野やョョョAdCの想定分野(要するに技術系のさむしんぐ)とは大きく異なりますが、まあ適当に読んでいただけると嬉しいです。

ョョョねこ要素はかけらもないので、ョョョねこをお求めの方はご注意ください。

目標

卍関数とは?


卍関数といって、なんのことやねんと思った方がほとんどだと思います。別に学問的な呼び方というわけではなく、ただ「まじ卍~~~」が流行っている時期にふと思ってやっただけです。
ここで、卍関数とは、「それがとる点を座標平面上にプロットすると、全体の形が『卍』の形になる式」を指します。これを作成することが第一の目標です。

適切でない例 - 複数本の式

しかし、これはたとえば次のような式でもって簡単に実現できるでしょう。
\displaystyle{
\left\{ \begin{array}{ll}
x=-1 & (-1\leq y\leq 0) \\
x=0 & (-1\leq y\leq 1)) \\
x=1 &(0\leq y\leq 1) \\
y=-1 & (-1\leq y\leq 0) \\
y=0 & (-1\leq y\leq 1) \\
y=1 &(0\leq y\leq 1) \\
\end{array} \right.
}
これは要するに卍を縦3本横3本で合計6本の直線によって表現しています。
しかし、これは正直当然の結論です。複数本の線をばらばらに使ったら当然できるに決まっています。

適切でない例 - 関数と定義域

そこで、もっとスマートな形を考えてみましょう。
\displaystyle{
\lim_{c \to \infty} (x^c-y^c)=xy \;\; (-1\leq x\leq1,-1\leq y\leq1)
}

f:id:neoki_teimon0:20201216003202j:plain
図1


xyに範囲を与えずcを変化させて描画すると上図の通りです。c=2(紫),3(青),5(水),8(緑),10(黄),100(桃),500(赤)の7つの場合を示しています。c=2は当然として、cの値が小さい時は興味深い振る舞いをすることがわかりますが、それはともかくとして、x,yの絶対値がともに1以下の領域についてみれば、cが大きいほどより卍の字に近づいていくことを見て取ることができます。

恣意的な定義域

しかし、これらは正直つまらないと思うのです。というのも、定義域を課している時点でその式のいわば「おいしいところ」だけつまみ食いしているようなものです。定義域はたしかに式の一部ですが、式そのものというよりは式を拘束しているというべきで、そのように拘束をかける根拠ガ「たまたま卍になるから」というのは非常につまらないものです(しかし、上に示したグラフを見る限り、範囲内の格子点、すなわち(-1,-1),(-1,0),(-1,1), (0,-1),(0,0),(0,1), (1,-1),(1,0),(1,1)の9点が明らかに特徴的なので、なにか面白い性質があるのかもしれません。)。

関数とは

また、卍関数が「関数」を名乗る以上、完全にそうではなくとも、可能な限り関数の要件を備えておきたいものです。
ここで、関数の定義を示します。つまり、定義域内の変数xに対して、f(x)がただ一つの値yを返すとき、f(x)xの関数である、とします。定義域内で必ずf(x)が値を返す必要があるので、定義不可能な点(発散してしまう点やゼロ除算となる点)があれば、そこは定義域から排除する必要があります。たとえば中学生でやる反比例の式\displaystyle{y=\frac{a}{x}}x=0で定義できませんから、定義域から排除する要請が式からあらわれることになります。

関数の定義を踏まえた上で、先に示した\displaystyle{\lim_{c \to \infty} (x^c-y^c)=xy}を見てみましょう。これは関数といえるでしょうか(極限が入っているとまずいので、極限をとるまえの十分に大きいが有限の値であるcをとっていると考えてみましょう。今回の場合であれば、グラフを見る限りc>8くらいでは卍の表現に近づいていることがわかるので、たとえばグラフでは桃色の線で示したx^{100}-y^{100}=xy \;\; (-1\leq x\leq1,-1\leq y\leq1)でいいでしょう)。

f:id:neoki_teimon0:20201216003136j:plain
図2

これは、関数とはいえません。なぜなら、たとえば\displaystyle{\frac{1}{2}}を代入すればy\approx-9.93\times10^{-1}y\approx1.58\times10^{-30}という2つの値を返してしまいます。図に示すように、\displaystyle{x=\frac{1}{2}}と2つの交点を持ってしまいます。

陰関数と陽関数

ところで、先述の式はすべて左辺に移行してしまえば、次のように書くことができます。(面倒なので定義域は省略します)
\displaystyle{
x^{100}-y^{100}-xy=0
}


このように、f(x,y)=0の形で記述されるものを陰関数と呼びます。このほかにも、たとえば中心が原点で半径が$r]である円はx^2+y^2-r^2=0と書けますから、これは陰関数です。また、たとえば比例の式は-ax+y=0と書けますから、これも陰関数です。

一方、y=f(x)という式で記述されるものを陽関数と呼びます。先の比例の式はy=axと書けますから、これは陽関数です。
比例の式はうまく陰関数から陽関数への変形ができました。また、逆に陽関数から陰関数へ変形することもうまくできることは明らかにわかります。しかし、円の式は陽関数の形にしようとするとy=\pm \sqrt{r^2-x^2}となりますから、複数(今回の場合は2本)の陽関数へ変形されます。つまり、1本の陽関数は1本の陰関数に変形できますが、1本の陰関数が1本の陽関数に変形できるとは限りません。

関数の定義を思い出してください。xを与えればyがただ1つ定まるfが関数でしたから、陽関数表示されている式は(やばい特性を持っていない限り)関数の定義を満たしますが、陰関数表示されている式はかならずしも関数の定義を満たしません。たとえば半径$r]で中心を原点に持つ円の式はx=0に対してy=\pm rのように2つのyの値を返してしまいますから、これは明らかに関数の定義を満たしません。

このように、陰関数の形で示す式は必ずしも関数の性質を満たさないのですから、卍関数を名乗る以上はできるだけ陽関数で書きたいというモチベーションが現れます。

まとめ

以上をまとめると、卍関数をこれから書くにあたって、
1.1本の式で書ける
2.陽関数で書くことができる
3.式の中の要請によって定義域が出現する
ことを要求することにします。

直角の表現

まず、卍をどう表現するか考えます。この文字の中にある直角変化を陽関数でどう表現すべきでしょうか。

delta関数

ここで、Diracのdelta関数という便利なものがありますので、紹介します。

f:id:neoki_teimon0:20201216003121j:plain
図3

このように、0\leq x\leq1ではひょこっとy=1になっていて、それ以外の領域では0になっている連続関数D_1(x)(ここですでに「関数」性を持っていないという批判はもっともですが、とりあえず便宜的に関数と呼びます)を考えます。(矩形パルスというべきですかね)

ここで、ぴょこっと飛び出している部分は縦1横1の正方形ととらえられますから、この関数の全域積分は当然
\displaystyle{
\int_{-\infty}^{\infty} D_1(x)dx =1
}
となります。

この正方形のうち、x軸にくっついている辺の長さを考えましょう。小学校でいうところの「よこの長さ」です。ここの長さを今後lと呼ぶことにします。
ここで、先の関数D_lを思い出してください。あれは、「よこの長さ」lが1の長方形(つまり正方形)の部分をグラフに持っていました。この「よこの長さ」lに対してそれぞれDが決められそうです。

そこでD_l(x)を、x>0では0をとるが、x=0で瞬間的に\displaystyle{\frac{1}{l}}まで増加しx=lまでその値を維持し、x=lで同様に0まで急激に減少し、以後[texx>l]で0を取り続ける連続関数、としましょう。
定義から、D_lは0より大きいlに対して次のような性質を持っています。
\begin{align}\displaystyle{\int_{-\infty}^{\infty} D_l(x)dx=1}\end{align}
面積1を保ちつつ、l(と、向かい合う辺の長さ)を短くすればするほど「たての長さ」は長くなります。たとえばl=1,2,3,4,5で作図すると、長方形の形は図のようになります。

f:id:neoki_teimon0:20201216003125j:plain
図4

長方形の面積は1に保たれていることに注意してください。
図中で破線で示した曲線はxy=1です。長方形の頂点のうち1つ(右肩側の点)がかならずこの曲線の上にあることがわかりますね(当然といえば当然なのですが)。
これはdelta関数を議論するうえでたいへん重要な性質を示します。つまり、lが小さくなればなるほど、面積1の長方形の「たての長さ」はどんどん大きな値をとることになっていきます。そして、最終的には正の無限大に発散します。
このように極限までlが0に近づいているときのD_l(x)\delta (x)と定義しましょう。つまり、
\displaystyle{\delta(x)\equiv \lim_{l \to +0} D_l(x)}
と定義します。この\delta(x)こそがDiracのdelta関数です。(ここではdelta関数を定義しましたが、delta関数とはこういうようななりたちで理解できる関数である、といったほうが正確です。実際、delta関数の定義というのは
\displaystyle{\delta (x) \equiv \left\{ \begin{array}{ll}\infty & (x=0) \\0 & (x \neq 0) \\\end{array} \right.}
で記述されます。そのため、delta関数の導入までの議論がよくわからなかった、きれいではない、というのであれば別の関数を使っても構いません。たとえばD_l
\displaystyle{D_{l} (x) = \left\{ \begin{array}{ll}l\cos{l\theta} & (-\frac{\pi}{2l}\leq x \leq \frac{\pi}{2l}) \\0 & (\rm{otherwise}) \\\end{array} \right.}
と定義すれば、これは極限をとるまえから明らかに偶関数ですし、(いままでの適当な意味の、ではなく、定義をちゃんと満たした!)関数ですから、こちらの方が綺麗ではありますね。

f:id:neoki_teimon0:20201216015924j:plain
図5

参考までに、図5にこれでlを変化させた場合の非ゼロ部分のグラフの形を示しておきます。)

どれだけlが小さくても長方形の面積は1に保たれるのですから、lのゼロ極限をとってしまっても面積は1に保たれています。つまり、全域積分の結果も1のままです。

このdelta関数、面白い性質、便利な性質がありますし、だからこそDiracもこれを発明したのですが、今回はただ卍を書くことが目標なので、詳しく触れることはしません。

ここで、はじめにせっかく導入したにもかかわらずごまかしてきた、このdelta関数が関数といえるのか、という問題がありますが、まあ端的に言ってしまえば関数ではありません。なぜならx=0で値をとらず正の無限大に発散しているにもかかわらず、x=0は定義域から排除されていません。そのため、このdelta関数は関数(function)ではなく超関数(distribution)という括りに入ります。関数の拡張概念みたいなものらしいですが、詳しく知りません。物理学徒的には使えればどうでもいいです。

ステップ関数

このdelta関数を積分した関数H(x)を考えてみます(Heavisideのステップ関数と呼ばれます)。つまり、
\displaystyle{H(x)\equiv \int_{-\infty}^x \delta(\xi) d\xi}
と定義します。
ステップ関数は
\displaystyle{H(x) = \left\{ \begin{array}{ll}0 & (x<0) \\1 & (0 \leq x) \\\end{array} \right.}
とふるまいます。これをグラフに起こすと、図のとおりです。

f:id:neoki_teimon0:20201216003154j:plain
図6

delta関数の性質から、ステップ関数もx=0においてちゃんと連続しています。

これでまず、卍という形の中で特徴的な、直角にふるまう陽関数を手に入れることができました。

定義域の設定

次に必要なことは、定義域の獲得です。

先述した通り、定義域を「たまたま都合がいいので」という理由で決めるのは、別に物理的な要請とかがあるわけでもないので、不自然です(自然じゃないものを作ろうとしているのに不自然という理由を持ち出すのは整合性がないという批判は甘んじて受け止めます)。
そこで、使いたくない(つまり今回の場合は、卍の文字を表示するために必要ではない)エリアを排除することが、関数の定義から数学的に要請されるように、うまいこと係数をつけてやればよさそうです。

どういう係数をつけてやればよいか、ですが、使いたい領域(つまり、定義域内にしたい領域)では1を返して、定義域外のxを代入すると値が定義できない(つまり、無限大に発散してしまうなど)ようなものができれば嬉しいです。

では、定義域をどう決めましょう。これは簡単で、-1\leq x\leq1にしてしまいましょう。これは見てわかる通り、なんとなく都合がよさそうです。今後-1\leq x\leq1の領域を便宜的に領域\mathrm{A}と呼ぶことにします。

これから、なんとなく都合がよさそうな定義域、を、式から当然に要求される定義域、に変えることを試みます。

定義域外では値が定義できないと述べましたが、要するに、定義域外ではゼロ、定義域内では非ゼロの値が出るような\alpha(x)というものを考えつくことができれば、\displaystyle{\frac{1}{\alpha(x)}}は定義域内では有限の値を返しますが、定義域外ではゼロ除算となり定義できなくなります。\alpha(x)を探してみましょう。

床関数

高校数学で、「ガウス記号」というものを扱います。これは、実数aに対して、aを、aを超えない最大の整数として定義するものです(この四角カッコがガウス記号ですね)。このような関数を一般に「床関数」と呼び、
[x]\displaystyle{,\lfloor x \rfloor,\mathrm{floor}(x)\nonumber}
などと書き表します。

f:id:neoki_teimon0:20201216020218j:plain
図7

このグラフは図に示すようになります。

もっとゼロ付近だけ拡大してみましょう。

f:id:neoki_teimon0:20201216003149j:plain
図8

白い丸は、そこで値がとられていないことを示しています。たとえばx=1のとき、yは0ではなく1をとります。

基本構想

これをうまいこと使えないでしょうか。つまり、床関数は0\leq x<1でゼロを返すのですから、領域\mathrm{A}外のxに対してだけ0\leq \beta(x)<1となるうまい関数\beta(x)というものを考えてやれれば、\lfloor\beta(x)\ \rfloorは領域\mathrm{A}内でゼロを返すことになります。

方針としては、領域\mathrm{A}内のxに対して取りうる\beta(x)の値と、領域\mathrm{A}外のxに対してとりうる\beta(x)の値が一切違えばよさそうです。言い換えれば、領域\mathrm{A}内のxに対してとりうる\beta(x)の値の集合\beta_{\mathrm{in}}=\{\beta_{\mathrm{in}1},…,\beta_{\mathrm{in}m}\}(何個あるかわからないので、とりあえず要素m個としました。無限個ある可能性も否定できませんが、卍関数を書く上では問題ありません。)と、領域\mathrm{A}内のxに対してとりうる\beta(x)の値の集合\beta_{\mathrm{out}}=\{\beta_{\mathrm{out}1},\cdots,\beta_{\mathrm{out}n}\}(こちらも何個あるかわからないので、とりあえず要素n個としました。)が共通の要素を持たない、つまり、実数xに対しておよそ\beta(x)がとりうる値の集合\beta_{\mathrm{all}}\beta_{\mathrm{in}}\beta_{\mathrm{out}}の直和で表されるならば、次に示す関数\alpha_{\rm{proto}}(x)は選択的に領域\mathrm{A}内で非ゼロの値を返し、領域\mathrm{A}外ではゼロのみをとります。
\begin{align}\alpha_{\mathrm{proto}}(x)&=(\beta_{\mathrm{out}1}-\beta(x))(\beta_{\mathrm{out}2}-\beta(x))\cdots(\beta_{\mathrm{out}n}-\beta(x))\\&=\prod_{a=1}^{n}(\beta_{\mathrm{out}a}-\beta(x))\end{align}


(補足:ここで出てきた記号はギリシャ文字のパイの大文字ですが、総積をあらわします。たとえば、関数f(x)に3から6を代入して得られるすべての数f(3),f(4),f(5),f(6)を全てかけたもの、はこの総積の記号を使うと
\displaystyle{f(3)\times f(4)\times f(5)\times f(6) =\prod_{k=3}^{6}f(x)}
と書くことができます。)

しかし、ここで\beta(x)として\lfloor x \rfloorを使うのはあまり都合がよくありません。なぜなら領域\mathrm{A}内のxの1つであるx=1に対して\lfloor 1 \rfloor=1ですが、これは領域\mathrm{A}外の一部のx(たとえばx=\displaystyle{\frac{3}{2}})でも、\lfloor x \rfloorは同じように1を返してしまいます。領域\mathrm{A}の内外ではとりうる\beta(x)の値が一切重複してほしくないので、これは問題です。

かつての私はこれをどう解決しようとしたかというと、xの絶対値をとったうえで\lfloor |x| \rfloorを考え、

f:id:neoki_teimon0:20201216003134j:plain
図9

これがx=-1,1で0になるように、\lfloor |x| \rfloorの値が変化するポイントを少し(無限小)だけ右にずらす、ということをしました。つまり、
\displaystyle{\beta(x)=\lim_{c \to +0}\lfloor |x| -c\rfloor}
とおきました。しかしこれは、閉集合と開集合の違いを無視していて、ちゃんとx=-1,1でうまくふるまうか、領域\mathrm{A}の境界でもきっかり\beta(x)が違う値をとってくれるか、よくわかりません。(もっとも、ただ図形を描く、という意味ではこれでよいのかもしれません。)

ところで、xの絶対値をとるというアイデアを使えば、\beta(x)のふるまいは0\leq x\leq1x>1だけみればよくなります。いま、\beta(x)\lfloor x \rfloorは使えないねえ、\lfloor |x| \rfloorも使えないねえ、となったのは、この関数が領域\mathrm{A}の境界であるx=1での振る舞いが都合が悪いからでした。絶対値をとるというアイデアを使ったり、ずらしたり、ということを使うことで、床関数のおいしい部分を使うことができないでしょうか。

天井関数

床関数の0付近を見ると、-1\leq x\leq0は非常に使いやすそうです、これが0\leq x\leq1にあればよかったのに、と思ってしまいます。

そこで、\lfloor x \rfloor\lfloor-x\rfloorにして(左右反転)、図10のような振る舞いをする関数を得ます。

f:id:neoki_teimon0:20201216003146j:plain
図10

さらに、-\lfloor -x\rfloorにして(上下反転)、図11のような振る舞いをする関数を得ます。

f:id:neoki_teimon0:20201216003114j:plain
図11

この関数は床関数\lfloor x \rfloorと似た振る舞いをしていますが、見比べるとわかる通り、白丸の場所や線分の場所がかわっています。この関数はxに対して、xを下回らない最小の整数を返していることがわかります。この関数のことを天井関数といい、
\displaystyle{\lceil x \rceil,\mathrm{ceil}(x)\nonumber}
などと書き表します。

この天井関数について、xのかわりにxの絶対値を代入する(\lceil |x| \rceil)と、次のようなグラフが得られます。(白丸がそこで値をとらないという意味だったのに対して、塗りつぶされた丸はその点で値をとることを示します。)

f:id:neoki_teimon0:20201216003143j:plain
図12

グラフをみてわかる通り、これは領域\mathrm{A}についていままでの要請を満たしています。つまり、領域\mathrm{A}内のxに対しては0か1を返し、領域\mathrm{A}外のxについては1以外の自然数のどれかを返します。これは\beta(x)にうってつけでしょう。

よって、\alpha(x)
\displaystyle{\alpha(x)=\prod_{n=2}^{\infty}(\lceil |x| \rceil-n)}
と設定すれば、これは領域\mathrm{A}内で非ゼロ、領域\mathrm{A}外では常にゼロをとることになります。

以上から、係数
\displaystyle{\prod_{n=2}^{\infty}\frac{\lceil |x| \rceil-n}{\lceil |x| \rceil-n}}
をつけることで、領域\mathrm{A}内では1、領域\mathrm{A}外はゼロ除算で定義不能となるから定義域からの排除が要請されるようになりました。

若干の補足

なお、お気づきかもしれませんが、\lfloor-|x|\rfloor(=-\lceil |x| \rceil)は図13

f:id:neoki_teimon0:20201216003111j:plain
図13

のようにふるまいますから、これも領域\mathrm{A}内で-10、領域\mathrm{A}外で-2以下の整数のどれかをとることになり、\beta(x)に使うことができます。

特異点

もっとも、ここで「それって\displaystyle{\frac{x}{x}}だからどこでも1なんじゃないの?」という疑問が湧くことかと思います。しかし、たとえば\displaystyle{\frac{x^2-1}{x-1}}x+1と同じではありません。\displaystyle{\frac{x^2-1}{x-1}}はたしかにx+1とおなじような形になりますが、ただ1点x=1ではx+1と異なりゼロ除算で定義できません。このような点を(実数範囲の解析学は知りませんが)複素関数論では「除去可能な特異点」と呼びます。

結論として、\displaystyle{\prod_{n=2}^{\infty}\frac{\lceil |x| \rceil-n}{\lceil |x| \rceil-n}}は、間違いなく一部の領域で1と同じようにふるまいますが、分母がゼロとなる場合は1とことなる振る舞いをすることになります。

複数の曲線の同時表現

妥協

最後に、卍関数を議論するうえで避けて通れない、1つのxに対して少なくとも2個のyが対応している状態にする、という問題を議論します。冒頭から申し上げると、1つのxに対して少なくとも2個のyが対応している状態というのは1.3.2で述べた通り関数の定義に大きく反することになります。そのため、今回は「卍を描く」ことにフォーカスし、若干妥協せざるを得ません。しかし、delta関数がそうであったように、せめて少なくとも、極限をとるまえの段階では関数としてふるまうように仕向けます。

基本構想

2つの曲線を同時に表現するには、どのような手段をとればよいでしょうか。

ここに対する発想として、定期的に2つの曲線を行き来するように仕向ければよい、というものを思いつきました。つまり、xの関数p(x)q(x)を考え、これらはいずれも定期的に0と1を交互に取り続けます。そして、p(x)=1のときq(x)=0、またq(x)=1のときp(x)=0となるようにしましょう。p(x)q(x)]の間につねに、p(x)q(x)=0p(x)+q(x)=1がなりたっていることを要求します。

図に示すと、図14のようにふるまうようにします。たとえば青線がp(x)、赤線がq(x)]だったりするわけですね。

f:id:neoki_teimon0:20201216003139j:plain
図14

この1本の線の長さ(p(x)q(x)も同じ長さの線分がずらーーーーーーっと並んでいるわけですが、そのぶちぶちの線分の1つ当たりの長さ、という意味)は式の中で適当にいじくることができて、たとえば非常に長くしたり、非常に短くすることができることにしましょう。以降この長さを\lambdaと呼びます。

これが得られるとどういうことができるかというと、

f:id:neoki_teimon0:20201216003207j:plain
図15

このように互いに独立した関数f(x),g(x)(青がf(x)、赤がg(x))に対して、p(x),q(x)をそれぞれかけた、p(x)f(x),q(x)g(x)を考えると、例えばグラフは次のようになります。ただし以後、端点の白丸などは省略することにします。

f:id:neoki_teimon0:20201216003117j:plain
図15

そして、\lambdaを小さくすると

f:id:neoki_teimon0:20201216003138j:plain
図16

こうなって、、、

f:id:neoki_teimon0:20201216003130j:plain
図17

こうなります。

ところで、お気づきかもしれませんが、y=0のカラフルな線が出現したこと以外には、これはもとの何も掛かっていないf(x),g(x)のグラフとほぼ変わりません。

そして、\lambdaを図17のままにしたまま、これらの和、すなわちp(x)f(x)+q(x)g(x)のグラフは次の通りです。

f:id:neoki_teimon0:20201216003157j:plain
図18

もとのf(x),g(x)のグラフから全く逸脱していません。なぜなら、先述した条件「p(x)q(x)]の間につねに、p(x)q(x)=0p(x)+q(x)=1」によって、あるxを定めれば必ずp(x)q(x)はどちらかが0、どちらかが1をとりますから、p(x)f(x)+q(x)g(x)の値はつねにf(x)g(x)のどちらかしかとりません。そして、そのf(x)g(x)のいずれかをとるx区間はそれぞれに等間隔かつ交互にやってきますから、\lambdaが小さくなればなるほど、よりきれいに2曲線をいずれも表示することができます。

探索

では、このようなp(x),q(x)はどうやって見つければよいでしょうか。

まず条件から、q(x)=1-p(x)である(反対もおなじ)ことがわかります。これはそれぞれどちらかを見つけることは、もう一方を見つけることに等しいということです。

次に、定期的に2つの値をとり続けるという点から、先述した天井関数・床関数の利用が有効そうであることが推測できます。また、関数全体がつねに同じ動きを定期的に繰り返していますから、三角関数の利用も有効でしょう。

以上の発想から、適当に手を動かすと、条件を満たす関数として\displaystyle{p(x)=\cos\left(\pi\lfloor\frac{ x }{\lambda}\rfloor\right)}を見つけました。これで\lambdaのゼロ極限をとれば、2本の関数をばっちり同時に描写できるという算段です。

よって、\displaystyle{p(x)= \lim_{\lambda \to +0} \cos\left(\pi\lfloor\frac{ x }{\lambda}\rfloor\right))}が得られました。

実際に描いてみる

卍を書くためには、卍を先のf(x),g(x)に相当するように2つに分けなければいけません。そこでこのように分けることにします。青をm_1(x)、赤をm_2(x)ということにしましょう。

f:id:neoki_teimon0:20201216031632j:plain
図18

それぞれ、ステップ関数を使って次のように書くことができます。
m_1(x)=1-2H(x)
m_2(x)=-1+H(x+1)+H(x-1)

全部まとめて、卍関数(M(x)ということにしましょう)の全体像は
M(x)=\displaystyle{\prod_{n=2}^{\infty}\frac{\lceil |x| \rceil-n}{\lceil |x| \rceil-n}(p(x)m_1(x)+q(x)m_2(x))}
と書けそうだということがわかりました。終わりが近いぞ!!!!

ここで、こまったことが出てきます。卍関数はステップ関数を使いますから、全体的に適当な点がたくさん見えていればそれっぽく見えた先のf(x),g(x)と違い、ある1点の変化が見えなければ困ります。具体的には、m_1(x)についてはx=0m_2(x)についてはx=-1,1での変化が見えないと困ります。つまり、p(0)=q(-1)=q(1)=1を要求します。


このため先述のp(x)の式を改造し、\displaystyle{p(x)= \lim_{a \to \infty} \cos\left(\lfloor\left(2\lfloor a \rfloor+1\right)x \rfloor \pi\right)}とします。ただし、\displaystyle{\lambda=\frac{1}{2\lfloor a \rfloor+1}}です。床関数に入れてあるので、aが無限大に行く過程でどんな値をとっても、\lfloor a \rfloorは必ず整数になりますから、この\lambdaは奇数分の1の形になっています。

これですべて完成です。わたしの作った卍関数は以下の通りです。

\displaystyle{\begin{align}M(x)=\lim_{a \to \infty} \prod_{n=2}^{\infty}\frac{\lceil |x| \rceil-n}{\lceil |x| \rceil-n}\left(\cos\left(\lfloor\left(2\lfloor a \rfloor+1\right) x \rfloor \pi\right)\left(1-2H\left(x\right)\right)\\\;+\left(1-\cos\left(\left\lfloor(2\lfloor a \rfloor+1\right)x \rfloor \pi\right)\right)\left(-1+H\left(x+1\right)+H\left(x-1\right)\right)\right)\\
\left(-1\leqq x\leqq1\right)\end{align}}

おわりに

途中から見出しつけるの面倒になって大項目しか書いていないので読みにくいところもあるかと思います、、、ごめんなさい、、、、
あと、はてなブログLaTeXが中途半端なところがあって、不自然なところがあるかもしれません。申し訳ない、、、
TEXコードも含めて18000字を超える長文になってしまいましたが、ご容赦ください。
ここで書いた内容は修正・補足・追加検討などして、学科の友人らと一緒に本にしてコミックマーケット99で出したいと思っています。


当選したらTwitterでお知らせするのでぜひ!!!

感染症数理モデルで面白いものを見つけたので紹介します。

こんにちは。寝起き(@teimon0)です。

これはョョョAdvent Calender 2020の6日目の記事です。
adventar.org



もともとョョョAdCには卍関数しか書くつもりはなかったのですが、なんか空いているのが目に入ったので、とりあえず場繋ぎ的にこの記事を書いています。

22時45分に執筆を始め、慣れないはてなブログに悪戦苦闘しながら、もうすぐ3時にもなろうとしていますがやっと書き上げました。(なお明日は午前6時起きである。絶起の未来ィ、、、)(追記12/6 06:30|絶起回避です。)

ョョョねこ要素はありませんが、この新型コロナウイルス騒ぎと若干関係がある(ほぼない)ことを書きますので、まあ適当に読んでください。

 

1.数理モデリングってなーに

数理モデリングとは、現象を数理モデルを用いて記述することを指しますが、とくに時間変化を見る時に用いられます。言ってることは面倒くさそうですが、要するに物理法則みたいに時間の連立微分方程式を立てたら、現象を説明できるんじゃない???ということです。
たとえば、物理法則の中で、高校生でも習う式としていわゆる運動方程式ニュートンの第二法則)があります。
これは、さまざまな書き方がありますが、次のように書くことができます。
\displaystyle{\frac{d\overrightarrow{v(t)}}{dt}=\frac{\overrightarrow{F(t)}}{m}}

これは、当然ですが、ある瞬間の与えている力に比例して速度が変化する、ことを意味します。

たとえばある物体について見てみると、\displaystyle{ \overrightarrow{F(t)}=c \overrightarrow{v(t)}}となっていたとしましょう。ただし\displaystyle{c}は定数とします。すると、先述の運動方程式から、この物体の速度は、その瞬間の速度に比例して変化するんだなあ、ということがわかります。

これを、今回議論したい「数理モデル」に落とし込んでみましょう。たとえば\displaystyle{v(t)}のかわりに、単位時間あたりの分裂率\displaystyle{\alpha}である(つまり、ある瞬間に100個のバクテリアのうち、一定時間経過後に100\displaystyle{\alpha}個のバクテリアが分裂しているということ。)バクテリアの数\displaystyle{n(t)}とおけば、ある瞬間のバクテリアの個体数\displaystyle{n(t)}は次の式で書き表すことができます。

\displaystyle{\frac{dn(t)}{dt}=\alpha n(t)}

この式はいま運動の式から適当な代入によって導くことができましたが、これをもっと原理的に導くことも可能です。
微小時間\displaystyle{\Delta t}を考えます。単位時間あたりの増加率は\displaystyle{\alpha}でしたから、ある瞬間に\displaystyle{n(t)}個あったバクテリアから生み出されるバクテリアの数(新しい個体の数)は\displaystyle{\alpha n(t) \Delta t}です。ここで、\displaystyle{\Delta t}はごく短い時間ですから、この間に「分裂によってできた個体が再度分裂して個体が増える」数は無視できるほど少ないことに注意してください。

すると、\displaystyle{t+\Delta t}における個体数\displaystyle{n(t+\Delta t)}は以下のように書くことができます。
\displaystyle{ n(t+\Delta t)= n(t)+ \alpha n(t) \Delta t}
右辺第1項を移項し、全体を\displaystyle{\Delta t}で割れば、
\displaystyle{\frac{n(t+\Delta t)-n(t)}{\Delta t}=\alpha n(t)}
となり、高校で数学IIをやった方ならなんとなく見知った式が出てきます。

もう一歩進んでみましょう。\displaystyle{\Delta t}はごくごく短い微小時間を指していますから、\displaystyle{\Delta t\rightarrow 0}の極限をとれば、右辺は\displaystyle{\Delta t}を含まず、その影響を受けませんから
\displaystyle{\lim_{\Delta t \to 0} \frac{n(t+\Delta t)-n(t)}{\Delta t}=\alpha n(t)}
と書くことができます。

そう、これは微分の定義式にほかなりませんから、結局右辺を微分形式に書き換えることで
\displaystyle{\frac{dn(t)}{dt}=\alpha n(t)}
が得られることになります。

この式は解析的に解くことができます(\displaystyle{n(t)=n(0){\rm exp}(\alpha t)}になります。いわゆる指数関数的増加ってやつですね)が、必ずしも微分方程式は解析的に解くことはできません。しかし、それは厳密解を得られないというだけで、今の時代スパコンで殴れば、いい感じのシミュレーションができますから、ここに現実世界の現象を数理モデルで表現する旨味があるわけですね。

2.SIRモデルってなーに

生物学者のKermackとMcKendrickは1927年に感染症の流行を説明する数理モデルを発表しました*1。これは感染症の急速かつ短期的な流行をよく表すことが知られています。議論の対象となる人口をSusceptible(健常)、Infected(感染)、Recovered(回復)の3クラスに分けたことから、SIRモデルと呼ばれます。

この数理モデルは、以下の3式より成ります。
\displaystyle{\begin{align}
\frac{dS}{dt}=&-\beta SI\\
\frac{dI}{dt}=&\beta SI - \gamma I\\
\frac{dR}{dt}=&\gamma I
\end{align}}

それぞれの式を見ていきましょう。

まず、第1式は\displaystyle{S}の時間変化を表示します。どう時間変化するかというと、感染者\displaystyle{I}と遭遇したら、確率\displaystyle{\beta}で感染し、\displaystyle{I}へ移行します。感染者との遭遇の可能性を\displaystyle{SI}であらわしています。これはよくわからないかと思いますが、私見では伝染リスクのある遭遇の回数を示しています。

 

第2式は\displaystyle{I}の時間変化を表示します。第1項は\displaystyle{S}からの流入を表し、第2項では感染者\displaystyle{I}が確率\displaystyle{\gamma}で回復、または死亡などにより、感染症から隔離され、\displaystyle{R}に移行することを示します。単位時間当たり確率\displaystyle{\gamma}感染症から離脱するということは、感染継続期間が平均すると単位時間の\displaystyle{\frac{1}{\gamma}}倍であることがわかります。つまり、\displaystyle{\gamma}感染症の症例持続時間という意味も持っています。

第3式は\displaystyle{R}の時間変化を表示します。これは\displaystyle{I}からの流入を示しているにほかありません。

ここで、適当な代入によって、この数理モデルをもっと簡単にすることを試みます。

まず、人数を表す\displaystyle{S,I,R}をいずれも総人口\displaystyle{N}あたりの数\displaystyle{s=\frac{S}{N},i=\frac{I}{N},r=\frac{R}{N}}とします。ここで人口が系外に出たり、あるいは系外から入ってくることはなく、\displaystyle{N=S+I+R\;(={\rm const.})}です。時間もせっかく\displaystyle{\gamma}が感染継続期間の意味を持っているということがわかったので、これを基準に、\displaystyle{\tau=\gamma t}とおきましょう。

これらを第1式、第2式に代入してみると、次のような方程式が得られます。

\displaystyle{\begin{align}\frac{ds}{d\tau}=&-\frac{\beta N}{\gamma}si\\\frac{ds}{d\tau}=&\left(\frac{\beta N}{\gamma}s-1\right)i\end{align}}

第2式に注目してください。これは感染者の増減ペースをあらわしていますが、\displaystyle{i}はゼロを下回ることはありませんから、\displaystyle{\frac{\beta N}{\gamma}s-1}が正か負かで感染者が増加するのか減少するのかが決まります。

はじめは当然感染者が増加しますが、感染が進み、ある時点で

\displaystyle{\frac{\beta N}{\gamma}s-1=0}

となり、それ以降はこの項は負の値をとることになります。この境界点の条件を見てみれば、\displaystyle{s+i+r=1}を用いて

\displaystyle{i+r=1-\frac{\gamma}{\beta N}}

が得られます。

この式は、導出の経緯を鑑みれば、「総感染者数\displaystyle{i+r}\displaystyle{1-\frac{\gamma}{\beta N}}を超えると、感染者数は減少に転じる」ことを示します。これがいわゆる集団免疫です。つまり、感染拡大という観点では、\displaystyle{\frac{\beta N}{\gamma}}が1よりも大きいか、小さいかが非常に大きな影響をもっていることがわかります。

この\displaystyle{\frac{\beta N}{\gamma}}は表式からわかる通り、1人の感染者が感染期間中に\displaystyle{N}人の系内で伝染させる人数を表しています。このことから、\displaystyle{\frac{\beta N}{\gamma}}を「基本再生産数\displaystyle{(R_0)}」と呼びます。

3.ほかの感染症モデル

先述のSIRモデルは、系の内外での人口の出入りを無視できるような非常に短期間で、かつ急速に進行するような短期間のモデルとしては単純かつ優秀ですが、場合によってはこれを修正したモデルが必要になります。

そこで、たとえばいわゆる潜伏期間にある感染者を\displaystyle{E}(Exposed)とし、Infectedとは別に扱うSEIRモデルや、回復者が免疫を獲得しないとし、回復者はRecoveredではなくSusceptibleに戻るとするSISモデル、性感染症を扱うため男女それぞれのSuceptibleとInfectedが出現し、異性のSuceptibleにしか伝染させることのないとするSI並列モデル、そのほか死亡率が無視できない感染症についてDiedを導入することものや、季節による感染率の変化、当該地域の人口の年齢層などを加味するものなど、さまざまなものが考案されています。

4.2014年の西アフリカ地域におけるエボラ出血熱の流行と数理モデル

2014年に西アフリカ地域でエボラ出血熱が流行したというニュースは、6年も前とはいえある程度覚えている方もいらっしゃると思います。WHOが2014年8月11日に発表したデータ*2によれば、感染の疑いも含めて把握された1975件のうち、死亡例は実に1069件にのぼるという、大変なものでした。Wikipediaにも独立した記事がありますから、詳細はそちらをご確認ください。

さて、感染症の流行予測にあたって、途中のデータ(要するに、何月何日のデータ、とか)をうまく取り出すことができれば、それを根拠に数理モデルの計算の一助にしたり、あるいは現在検討している数理モデルの正当性をシミュレーション結果と実測値を重ねることで確かめることができます。

日本は先進国ですから、こういう感染症の問題が発生した場合、衛生当局もガンガン動いていますし、健康保険制度のおかげで病院に気軽に(気軽に?)かかることができます。そのため、現在の感染者数あるいは死亡者数として出てくる値の数え落としのリスクはある程度低く抑えられています。

しかし、本件のような西アフリカ地域ではどうでしょうか。公衆衛生は整っておらず、医療も普及していない地域が多く、教育も十分に提供されていない可能性があり、衛生当局どころか政情不安定のため内戦や無政府に陥っている地域もあるような状況です。

このような地域で発生した感染症について、たとえばこの感染症を発症した場合も、当局等に発見されない可能性があります。発見されないまま死に至った場合、それが当局等に発見されないまま、公表値に出現しない可能性があります。そのため、当局等が公開した感染者数や死亡者数を先述のSIRモデルやSEIRモデルにそのまま代入することはのぞましくなく、発見された発症者と発見されていない発症者、また確認された死亡者と認知外の死亡者は別の変数として扱うべきです。

これに対処するため、山本ら*3は次のようなモデルを提案しました。

\displaystyle{\begin{align}\frac{dS}{dt}&=-\beta S \frac{I_f}{S+E+I_f+R}\\\frac{dE}{dt}&=\beta S \frac{I_f}{S+E+I_f+R} -\kappa E\\\frac{dI_f}{dt}&=\kappa E- \gamma I_f-\tau I_f\\\frac{dI_h}{dt}&=\tau I_f-\gamma I_h\\\frac{dR}{dt}&=\gamma(1-\delta)I_f+\gamma(1-\mu\delta)I_f\\\frac{dD_d}{dt}&=\gamma\delta\nu I_f+\gamma\mu\delta I_h\\\frac{dD_n}{dt}&=\gamma\delta(1-\nu)I_f\end{align}}

 ここで、\displaystyle{S}はSusceptible(未感染)、\displaystyle{E}はExposed(潜伏)、\displaystyle{I_f}はInfected(発症)のうちfree(未隔離)、\displaystyle{I_h}はInfectedのうちhospitalized(隔離済)、\displaystyle{R}はRecovered(回復)、\displaystyle{D_d}はDied(死亡)のうちdetected(認知)、\displaystyle{D_n}はDiedのうちnon-detected(未認知)を指します。実際に当局等によって発表される数値は\displaystyle{I_h}\displaystyle{D_d}のみです。

また、係数については、\displaystyle{\beta}が伝達係数(\displaystyle{I_f}接触したときの感染確率)、\displaystyle{\kappa}\displaystyle{E}が発症し\displaystyle{I_f}へ変化する時間当たりの遷移率、\displaystyle{\gamma}\displaystyle{I_f}および\displaystyle{I_h}が最終的なステージ(\displaystyle{R,D_d,D_n}のいずれか)に変化する時間当たりの遷移率、\displaystyle{\tau}\displaystyle{I_f}が隔離され\displaystyle{I_h}に変化する時間当たりの遷移率(といっても当局等に発見されながら隔離されない発症者がいるとも思えないので、実質的には当局等によって発見される割合と解釈してよい)、\displaystyle{\delta}は発症者の時間当たり死亡率、、また隔離環境で医療機関や当局による治療を受けられる場合は死亡率がそうでない場合より下がると考えられるので\displaystyle{\mu}はその低減率、\displaystyle{\nu}は生前に当局等に発見されず死に至ったケースのうち死亡の届出などによって当局等に認知されるに至った割合をあらわします。

このモデルを用いて、適当な係数を設定しシミュレーションをした結果と、実際の発表データが論文内で比較されているので引用します。

f:id:neoki_teimon0:20201206023004j:plain
原論文:図4

非常によく実際値とシミュレーションが一致していることが確かめられます。

5.さいごに

なぜ4.でこれを取り上げたかというと、「見えない数字がある?見えないことにしちゃえ!!」という仮定が非常に面白いと感じたためです。数理モデリング、式立てるだけならたのしそうですが、、、

あと、数学は専門じゃないので、間違ったことを言っていたらごめんなさい。

ョョョAdCも1週間が経過しようとしていますが、毎日読んでは「うにゃーーーーわかんねーーー面白いこと書いてるんだろうなーーーすげーーー」と言っています。僕自身ももう一通書く予定ですので、その際はまた読んでいただけると非常にうれしいです。

あと、はてなブログで太字のベクトルをどうやったら書けるか教えてください、、、

ではでは。

*1:W. O. Kermack and A. G. McKendrick (1927). “A Contribution to the Mathematical Theory of Epidemics”. Proc. Roy. Soc. of London. Series A 115 (772): 700-721

*2:https://www.who.int/csr/don/2014_08_13_ebola/en/

*3:山本健久, 早山陽子, 筒井俊之「数理モデルを用いたエボラウイルス感染症の流行の解析」, 獣医疫学雑誌,19(1),p48-54(2015)

さいしょのきじ

septem47ニキ主催のョョョねこ Advent Calendar 2020に参加するためにこのブログを開設しました。なぜはてブかといわれると、\LaTeXが使えると小耳にはさんだからです。

 

現実に\LaTeXが使えていますね。便利だ。

 

多少習熟がいりそうなので、ョョョAdCまでに慣れておきたいですね。

 

タイトルの「1か月前の飲みかけペットボトル」は、まあ元々の「neoki-teimon0のブログ」って名前もなんか面白くないなあと思ったので適当につけただけです。意味はありません。お部屋によく転がってる人とはお友達になれるかもしれないですね。

 

Twitterやってます。

twitter.com