遊び tokidoki 仕事

数学と音楽と教育と遊び

Top | おしごと | ゼミ | がくせい | すうがく | かがく | きょういく | おんがく | おきにー | Tips | Photo | イベント | ものもう | あれこれ | About

九平次とブルックナーと,そして卒論添削

今年の暮れも,例年の如くゼミ生の卒論添削で年を越す.
f:id:okiraku894:20171221114638j:plain
こうして手直しをする中,結構面白い発見をする.
例えばピタゴラス数を生成する行列の話は,
ピタゴラス数を2パラメータで表示するとき,そのパラメータが動く空間と
原始ピタゴラス数全体のなす空間の関係は,
パラメータ(2,1)を始対象とし,射を(1,1)(2,0)とする圏と
原始ピタゴラス数を含む圏との関手\Phi_2を観察してるに他ならないことだとか,
f:id:okiraku894:20171231202503p:plain
カードマジックで有名なGergonneトリックは一度論文にしたけれど,
Generalized Gergonne's Trick and its Continuous Approximation
いま一度卒論ネタにしてまとめ直すと綺麗に書き直せることとか.
f:id:okiraku894:20171231203127p:plain

まぁ,何にしても年末,
すき焼きとネットでわざわざ注文して手に入れた九平次(雄町!)の取り合わせを楽しんでから,
f:id:okiraku894:20171231175422j:plain:w500
昨年同様,遥か遠く高校時代に衝撃を受けた
マタチッチ指揮のN響によるブルックナー8番を聴きながら,卒論の添削で年を越すのだ.
[asin:B004G8AT9E:detail]
悪くは無い.むしろ誰の為でもなくある種の芸術活動として没頭できるこの時間は
おそらく誰にも理解されないであろう,私だけの幸福のひと時である.

sin波による疑似フォルマントシミュレーション

今年の4年ゼミ生の一人は音声分析・合成をテーマにしている.
EXCEL上でちまちま作業してもらっているが,
線形予測によるフォルマント抽出がうまくいかないのか,
なかなか母音「あいうえお」すら \sin波から合成できないでいる.

手軽にBASICで母音の合成ぐらいできないものかと探したら,
高々6つ程度の倍音の重ね合わせで「あいうえお」らしい音を作っているページを見つけた.
qiita.com
本当に手軽にできそうだったので,10進BASICでサウンド生成する方法を探して作ってみた.
十進BASIC−外部プログラムの利用

でもって,音程も適当に定めて実行したのが↓

う~ん,そう思って聞けば聞こえなくもない程度.

AquesTalkつかえば,簡単なんだけどね↓

https://www.a-quest.com/index.html


以下,BASICソースと使い方.
実行すると,母音と音程の列を入力するよう聞いてくるので,
母音[aiueo]と音程[0~9]の組合せをinput.
上掲の音源では
   a3i7u9e0o2
とinputしてある.
するとソースのある場所に test.wav が生成されダイレクトにそれが再生される.
いや,その予定だったのだけど,やっているうちにダイレクト再生できなくなった.あれれ.
まぁ,生成された test.wav をクリックすれば再生できるようなので.

REM [疑似母音フォルマント シミュレータ]
REM Ver. 2017/12/23
REM 参考:
REM BASIC 元ネタ:http://hp.vector.co.jp/authors/VA008683/ExtProg.htm
REM               testwave.bas  十進BASICによる音声ファイル生成プログラム 
REM               chr$関数の引数として全ての1バイト整数が許される様に、オプションメニューの
REM               「互換性」「動作」で「文字列処理の単位」を「バイト」に設定して実行すること
REM フォルマント:https://qiita.com/rild/items/339c5c36f4c1ad8d4325

OPTION CHARACTER BYTE
DECLARE FUNCTION formant

INPUT  PROMPT "母音とその高さの列をどうぞ.(「あい↑う↑↑え↓お」は a3i7u9e0o2 など)":vw$
LET vwlen=LEN(vw$)
LET d=0.3  !継続時間(秒)
LET f0=220 !正弦波周波数(Hz)
LET db=-10 !生成波形の最大値(±32767を0dBとする)
LET fs=44100 !標本化周波数(Hz)
LET bps=fs*4 !1秒当りのデータ量(ステレオ16ビット量子化)
LET dsize=d*vwlen*fs*4 !オーディオデータサイズ
LET fsize=dsize+36 !ファイルサイズ(先頭8Bを除く)
LET fmtsize=16 !フォーマットサイズ
LET channel=2^17+1 !ステレオPCMデータの指定
LET reso=2^20+4 !16ビットの指定
LET a=10^(db/20)
OPEN #6 : NAME "test.wav" !ファイルを開き、この名前のファイルが
ERASE #6 !既に存在していた場合には上書きを指定
LET t0=TIME
PRINT #6 : "RIFF"; !以下、wavファイルのヘッダーを作成
CALL out4(fsize) !
PRINT #6 : "WAVEfmt "; !
CALL out4(fmtsize) !
CALL out4(channel) !
CALL out4(fs) !
CALL out4(bps) !
CALL out4(reso) !
PRINT #6 : "data"; !
CALL out4(dsize) !ここまでがヘッダー用の出力
LET al=a*32767 !左チャネル係数
LET ar=a*65535 !右チャネル係数
LET k0=f0/fs*PI*2 !引数の刻み
LET audio$="" !オーディオデータバッファを初期化
FOR vw=0 TO vwlen/2-1
   LET count=0 !カウンタをリセット
   LET vow$=vw$(vw*2+1:vw*2+1)
   LET ht=VAL(vw$(vw*2+2:vw*2+2))
   PRINT vow$,ht
   FOR i=1 TO d*fs
      LET vsin=formant(vow$,k0*(1+ht/20))
      LET lch=INT(vsin*al+0.5)
      IF lch<0 THEN LET lch=lch+65536 !負の数は補数表現
      LET rch=INT(vsin*ar+0.5)
      IF rch<0 THEN LET rch=rch+65536 !負の数は補数表現
      LET audio$=audio$&CHR$(MOD(lch,256))&CHR$(INT(lch/256))&CHR$(MOD(rch,256))&CHR$(INT(rch/256))
      LET count=count+1
      IF count=64 THEN !バッファデータが所定の長さ(64サンプル256Bがほぼ最適)に達したら
         PRINT #6 : audio$; !データをファイルに出力して
         LET audio$="" !バッファを初期化し
         LET count=0 !カウンタをリセット
      END IF 
   NEXT i
   PRINT #6 : audio$; !バッファに残ったデータを出力して
NEXT vw
CLOSE #6 !ファイルを閉じる
PRINT "elapsed time = ";TIME-t0;"seconds"

PLAYSOUND "test.wav"

SUB out4(i4) !4バイト整数の出力(little endian)
   LET j4=i4
   FOR m=0 TO 3
      PRINT #6 : CHR$(MOD(j4,256));
      LET j4=INT(j4/256)
   NEXT m
END SUB

FUNCTION formant(v$,k)
   SELECT CASE v$
   CASE "a"
      LET formant=0.19*SIN(i*k*4)+0.09*SIN(i*k*2)+0.08*SIN(i*k*3)+0.08*SIN(i*k*5)+0.07*SIN(i*k*1)+0.07*SIN(i*k*6)
   CASE "i"
      LET formant=0.19*SIN(i*k)+0.09*SIN(i*k*2)+0.08*SIN(i*k*11)+0.08*SIN(i*k*13)+0.07*SIN(i*k*12)
   CASE "u"
      LET formant=0.19*SIN(i*k)+0.09*SIN(i*k*6)+0.08*SIN(i*k*2)+0.08*SIN(i*k*5)+0.08*SIN(i*k*4)
   CASE "e"
      LET formant=0.19*SIN(i*k)+0.09*SIN(i*k*2)+0.08*SIN(i*k*3)+0.08*SIN(i*k*11)+0.07*SIN(i*k*4)
   CASE "o"
      LET formant=0.19*SIN(i*k*4)+0.09*SIN(i*k*2)+0.08*SIN(i*k)+0.08*SIN(i*k*3)
   CASE ELSE
      LET formant=SIN(i*k)
   END SELECT
END FUNCTION
END 

文化の日だし,ジャコメッティ展@豊田市美術館

せっかくの晴れだし,文化の日だし,朝一でジャコメッティ展へ.
f:id:okiraku894:20171103112537j:plain

ジャコメッティ.枝の様にひょろっとした人物彫刻や
肉を削ぎ落としたような犬の彫刻なんかが美術の教科書にも載っているレベル.

若いころはキュビズムに基く作品も作っていたようだ.
彫刻でキュビズムって,改めて考えると絵画から逆輸入したような感じだ.
というのも彫刻はもともと三次元なのだから.

抽象化によってモノの本質を抉り出そうとする初期の作品群.
中でも「みつめる頭部」(1929)はシュールレアリズムにいたころの作品だそうだが,
思わず引き込まれてしまった.
極度の抽象化によって本質を捕まえようとする哲学的な行為が,
(それは数学をやっている者にとって日常的な行為でもある)
静かにこの黒い塊で今も進行している,見る人の頭を通して.
Paul Kleeや元永定正の作品にも似た,どこかユーモラスですらあるこの彫刻に
暫しの時間浸った.

ところでこういう歴史的な人の作品展は撮影不可だろうと思ってたら,
一室だけ撮影可となっていた.おぉ,粋な計らいだ.

というわけで早速撮影開始.


大きな女性立像II(1960).
3メートル近くある像.
f:id:okiraku894:20171103103246j:plain:w400
美術館では上のほうに顔があったのであまり見えなかったが写真を拡大してこうしてみると,
デッサンのように幾重もの描き直しの線から次第に存在が浮かび上がってくるのと同じことを
彫刻の上で行っていたのだというのがよく分かる.
f:id:okiraku894:20171103103140j:plain:w500

大きな頭部(1960).
彫刻のアクションペインティング.
f:id:okiraku894:20171103103437j:plain:w500

歩く男I(1960).
地面からひょろりと生えたような,儚い存在なのだろうか,人は.
f:id:okiraku894:20171103104726j:plain:w500
どういうわけだかPascalのパンセの一節がふと浮かぶ.

人間はひとくきの葦にすぎない.自然の中で 最も弱いものである.
だが,それは考える葦である.
Man is but a reed, the weakest in nature, but he is a thinking reed.
(パスカル「パンセ」)

f:id:okiraku894:20171103104814j:plain:w500

おお,そしてそして!犬!美術の教科書に載ってる「犬」!!

犬(1951)
f:id:okiraku894:20171103103617j:plain
調べると人体にこだわったジャコメッティ,動物は息抜きで作っていたそうだ.
けれどなかなかどうして,すごい存在感なんだ.
f:id:okiraku894:20171103103721j:plain
f:id:okiraku894:20171103104244j:plain

あれ知らなかった,「猫」もあるんだ!

猫(1951)
f:id:okiraku894:20171103103853j:plain
やせ細って腹ペコで土砂降りの雨の中をとぼとぼと歩いてるようにも見える「犬」にたいして,
「猫」はなんだか颯爽と歩いている.この違いは何?
f:id:okiraku894:20171103103913j:plain


あっというまに90分.ついでに高橋節郎館へも.
豊田市美術館に来るとほぼ必ず寄るのだけど,今回初めて見る作品がいくつかあった.
土偶,自然,星,月,夜,そこにJoan Miro的な要素を加えた漆器作品群.
いつも暗めの部屋で人もあまり来ない静かな空間.
時間のある時はつい腰かけてボーっと過ごすことの多い記念館だ.
漆黒と鮮やかな金箔に彩られた星々なんか見ていると,
プラネタリウムを見ているような感覚になって心地良い.
公益財団法人 高橋記念美術文化振興財団

さて,引き上げよう.
f:id:okiraku894:20171103112232j:plain

残念な国(10-c)―それは地球市民のための憲法だった

日本会議的改憲へのアリバイ作りのための選挙が終わった.
案の定の結果は平成版大政翼賛会発足の前夜祭でもあろう.
早速,野党勢力の発言力を抑え込む動きが始まった.
与党と政府が一体であるような仕組みにおいてこそ,
意見を違える人たちへのより丁寧な対話(断じて「丁寧な説明」ではない!)が必要だというのに.
www.asahi.com

麻生君など,勝てたのは北朝鮮のおかげだ,などと仰っておられるそうで.
まぁ安倍君とその仲間たち同様,調子に乗ってつい本音を語ってしまうイイヤツなのかもしれない.

「明らかに北朝鮮のおかげもありましょうし,
いろんな方々がいろんな意識をお持ちになられたんだろう.
特に日本海側で遊説をしていると,つくづくそう思った.」
2017/10/26 議員パーティー

www.sankei.com

しかしこれでまた,聞かれたことに答えず,聞かれてないことを滔々と喋る御スガタが拝めますね.
そうそう,「枯れ草の山に火を点けたかのようにぺらぺらと」って誰か書いてたっけ.
あ,野党の質問時間短くなるからそれも減ってしまうか.

 この数年間,安倍晋三という人の印象はただただ喋(しゃべ)るということだった.
枯れ草の山に火を点(つ)けたかのようにぺらぺらぺらと途切れなく軽い言葉が出てくる.
対話ではなく,議論でもなく,一方的な流出.機械工学で言えばバルブの開固着であり,
最近の言い回しを借りればダダ洩(も)れだ.
 安倍晋三は主題Aについて問われてもそれを無視して主題Bのことを延々と話す.
Bについての問いにはCを言う.弁証法になっていないからアウフヘーベンもない.

www.asahi.com

ダダ洩れ.あぁ,そうだったね.
あれから何度も漏れてたけど,"The situation is under control."と言いきってたもんね.
www.kantei.go.jp



選挙のとき決して安倍君は改憲話に決して触れなかったけど,実際は日本会議的改憲への布石.
もちろん改憲そのものはすべきところはすべきだろう,と改めて思っている.
実質的に立法と行政が一体となってしまっているこの国において,
枝野君の云う「解散権制約」はもっともな点だ.
www.sankei.com
しかし,何より日本会議的改憲だけは何としても避けたい.
実質的に日本会議改憲草案である自民党改憲草案では「個人」から「個」を奪う,
つまりは個人の尊厳を保障しない.
大日本帝国憲法を彷彿とさせるこの変更が何より恐ろしい.そんなことをちょっと前に書いた.
tokidoki.hatenablog.jp
そしてそれに呼応するように憲法前文が書き換えられる.実に軽い,稚拙な前文に.
tokidoki.hatenablog.jp
なぜなら,現行憲法の根幹である三原則を書き換えるからであり,
「個人」の「個」を取りたがるのは明治時代の家父長制を復活させたいからに他ならない.
それが日本人本来の姿なのだと信じて疑わない人たちによる案だから.

f:id:okiraku894:20160718174419j:plain:h400 f:id:okiraku894:20160718174420j:plain:h400
「あたらしい憲法草案の話」より

あたらしい憲法草案のはなし

あたらしい憲法草案のはなし

  • 作者: 自民党の憲法改正草案を爆発的にひろめる有志連合
  • 出版社/メーカー: 太郎次郎社エディタス
  • 発売日: 2016/07/02
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログ (6件) を見る


安倍君は現行憲法を「みっともない」と言い切る.
だからこそ,立て続けに「特定秘密保護法案」や「テロ等準備罪」が
憲法など無きが如き傍若無人なやり口で成立できてしまった.
www.asahi.com
安倍君は例の軽口で「押し付け憲法」と言い切る.
そして政治家が何かを言い切るときこそアヤシイことは"under control"発言を思い出せばいい.

GHQ草案には「平和」の文字は無かった.
戦力不保持という消極的原案に対し,先人たちの並々ならぬ尽力によって
「国際平和を誠実に希求」するという形での積極的平和主義へと漕ぎ着けたのだった.
他ならぬ日本人自身の手によって確かに作られた憲法なのであった.
www.nhk.or.jp
f:id:okiraku894:20160702170121p:plain

現行の憲法前文は理想論だ.しかしそれはとてつもなく偉大な理想論だ,と思う.
日本国民に対しての進むべき道が書いてある,というより
もっと全地球的な,地球市民が目指すべき道が書いてあるのだ.
そういった意味で現行憲法は世界でもなかなか特異なものだとも思う.
このゴツゴツとした,訥々とした,しかし誠実な前文は,
いつの日か世界が共有してしかるべきもののように思うのだ.
もう一度書くけれど,日本会議草案の「学級目標憲法」とは,
その広さと奥行と深さにおいて全く次元が違うのだ.
tokidoki.hatenablog.jp

だから安倍君の云う「ウツクシイ クニ」は「ニクイシ クツウ」,まっぴらごめんなんだよ.

新しい国へ 美しい国へ 完全版 (文春新書 903)

新しい国へ 美しい国へ 完全版 (文春新書 903)

日本国憲法 前文


日本国民は,正当に選挙された国会における代表者を通じて行動し,
われらとわれらの子孫のために,諸国民との協和による成果と,
わが国全土にわたつて自由のもたらす恵沢を確保し,
政府の行為によつて再び戦争の惨禍が起ることのないやうにすることを決意し,
ここに主権が国民に存することを宣言し,この憲法を確定する.
そもそも国政は,国民の厳粛な信託によるものであつて,その権威は国民に由来し,
その権力は国民の代表者がこれを行使し,その福利は国民がこれを享受する.
これは人類普遍の原理であり,この憲法は,かかる原理に基くものである.
われらは,これに反する一切の憲法,法令及び詔勅を排除する.
日本国民は,恒久の平和を念願し,
人間相互の関係を支配する崇高な理想を深く自覚するのであつて,
平和を愛する諸国民の公正と信義に信頼して,
われらの安全と生存を保持しようと決意した.
われらは,平和を維持し,専制と隷従,圧迫と偏狭を
地上から永遠に除去しようと努めてゐる国際社会において,名誉ある地位を占めたいと思ふ.
われらは,全世界の国民が,ひとしく恐怖と欠乏から免かれ,
平和のうちに生存する権利を有することを確認する.
われらは,いづれの国家も,自国のことのみに専念して他国を無視してはならないのであつて,
政治道徳の法則は,普遍的なものであり,
この法則に従ふことは,自国の主権を維持し,
他国と対等関係に立たうとする各国の責務であると信ずる.
日本国民は,国家の名誉にかけ,
全力をあげてこの崇高な理想と目的を達成することを誓ふ.

もう一度書いておこう.

 山は樹を以て茂り
 国は人を以て盛なり
       吉田 松陰

個人の存在根拠を国が認めないのなら,やがてその国は亡ぶと思う.

こんなところに Cayley-Hamilton

4年ゼミの話題の一つが,細矢氏が提案するトポロジカルインデックスなんだが,

トポロジカル・インデックス: フィボナッチ数からピタゴラスの三角形までをつなぐ新しい数学

トポロジカル・インデックス: フィボナッチ数からピタゴラスの三角形までをつなぐ新しい数学

その中にちょっと「おやっ」となった計算があったので,その紹介と種明かし.

ピタゴラス数を生成する行列にまつわる連立漸化式
\[
\begin{pmatrix}
a_{n+1}\\
b_{n+1}\\
c_{n+1}
\end{pmatrix}
=
A\begin{pmatrix}
a_n\\
b_n\\
c_n
\end{pmatrix}
=
\begin{pmatrix}
1 & 2 & 2\\
2 & 1 & 2\\
2 & 2 & 3
\end{pmatrix}
\begin{pmatrix}
a_n\\
b_n\\
c_n
\end{pmatrix}
\]から一種類の文字に関する漸化式
\[
a_{n+3}=5a_{n+2}+5a_{n+1}-a_n
\]等を導く件.本書では
\[
\sigma a_n=a_{n+1}
\]なる線形作用素を持ち出して
\[
\sigma\begin{pmatrix}
a_n\\
b_n\\
c_n
\end{pmatrix}
=A\begin{pmatrix}
a_n\\
b_n\\
c_n
\end{pmatrix},
\]すなわち
\[
(\sigma I-A)
\begin{pmatrix}
a_n\\
b_n\\
c_n
\end{pmatrix}
=\textbf{0}
\](Iは単位行列)がnontrivialな解をもつことから
\[
\det(\sigma I-A)=\sigma^3-5\sigma^2-5\sigma+1=0
\]が導かれるので
\[
(\sigma^3-5\sigma^2-5\sigma+1)a_n=a_{n+3}-5a_{n+2}-5a_{n+1}+a_n=0
\]なる漸化式が得られる,とある.
作用素\sigmaをあたかも数のように扱って議論しているわけだ.
はて,こんな扱いかた,妥当なんだろうか???



数日悩んだけど,何だか分かったので備忘録.
線形代数でいうところのCayley-Hamiltonの定理の証明を真似をすれば良い.
その証明は特性多項式を
\[
p(\lambda)=\det(\lambda I-A)
\]とし,(\lambda I-A)の余因子行列を\tilde{A}(\lambda)とおけば
\[
\tilde{A}(\lambda)(\lambda I-A)=p(\lambda)I
\]となるところから始まる.
さて,この両辺はともに\lambdaの多項式を成分とする行列なので,\lambdaへ作用素\sigmaを代入しても大丈夫.
すると
\[
p(\sigma)\begin{pmatrix}
a_n\\
b_n\\
c_n
\end{pmatrix}
=\tilde{A}(\sigma)(\sigma I-A)
\begin{pmatrix}
a_n\\
b_n\\
c_n
\end{pmatrix}
=\textbf{0}
\]となって,確かに作用素としての等式
\[
p(\sigma)=\det(\sigma I-A)=0
\]が得られる.なるほどね.
因みにa_n,b_nは役割が対称なので新たにd_n=a_n+b_nとおけば,
\[
\begin{pmatrix}
d_{n+1}\\
c_{n+1}
\end{pmatrix}
=
\begin{pmatrix}
3 & 4\\
2 & 3
\end{pmatrix}
\begin{pmatrix}
d_n\\
c_n
\end{pmatrix}
\]と書けるので,今度は
\[
\begin{vmatrix}
3-\sigma & 4\\
2 & 3-\sigma
\end{vmatrix}
=\sigma^2-6\sigma+1=0,
\]すなわち
\[
(\sigma^2-6\sigma+1)c_n=c_{n+2}-6c_{n+1}+c_n=0
\]なる漸化式が得られる.