2023年4月9日日曜日

アニメーション

GPT-4に次のようなプロンプトを与えた。
・プログラミング言語のprocessingを知っていますか?
・簡単なアニメーションで,マウスで操作できるカラフル(淡いパステルカラー)でかわいい見本プログラムのコードを書いてもらえますか。
・ありがとうございます。マウス操作は必要ないので,100個ぐらいの小さなボールが動きまわるような見本に修正してもらえますか。
・どうもありがとうございます,とてもすてきですね。ところでこのボールは領域の境界で反射してますが,ボール同士の衝突は考慮されておらずそのまま透過しているようです。衝突するボールが反射するようにできますか。ボールの円の境界で反射方向を決定するのが面倒ならば,ボールの中心座標で代替する近似を使うことも検討してください。

その結果,次のようなコードが生成された。パラメタを少し修正して,tifファイルに書き出した。これを使ってProcessingのツール/ムービーメーカーでアニメーションGIFに変換した。よくある例題だから,学習済みなのだろうけれど,なかなかのものだ。


図:GPT-4で生成したProcessingアニメーション

2023年4月8日土曜日

マインドマップ

へのへのもへじからの続き

画像生成AIは引き続き進化中だ。一方,GPT-4を用いて画像を生成する方法がいくつか考えられる。(1) アスキーアートの文字列を出力,(2) SVGのコードを出力,(3) 画像描画が簡単なプログラミング言語等のコードを出力(Processing,Javascript,Python,Mathematica,PlantUML,LaTeXのTikZ)するなどだ。

プロンプト工学を駆使せずに簡単にできる範囲で試してみた。左はうさぎのアスキーアート,右は,植物と鳥のイメージということだった。前者の入力は「アスキーアートを知っていますか。ひとつ例をかいてみてください」(中略)「その例は20-30文字程度ですね。100文字には到達していません。もう少し複雑なものを書いてください」。後者は,「植物の絵を表すsvgコードを出力し下さい」「なかなかいい感じですね。もっと複雑にするとともに,同じ程度複雑な動物を隣に描いてください」の結果だ。

図:GPT-4にかかせたアスキーアートとSVG

さて,ChatGPTにマインドマップを書かせるという例題があったので,自分でも試してみた。昨年の9月に,PlantUMLというツールをインストールしていた。すっかり忘れていた。このPlantUMLは,マインドマップを書かせる機能も備えている。

そこで,次のようなプロンプトを与えた。「スマホのアプリ開発を機種(OS)やクラスプラットホーム別に整理した(開発環境とブログラム言語)マインドマップを出力するPlantUMLコードを書いてください」その結果をUMLファイルとして保存し,PlantUMLにかけると次の画像ファイルができた。


図:GPT-4が生成したマインドマップ

2023年4月7日金曜日

フリクション

フリクションは,パイロットが出している消せる筆記具である。フリクソンではない。日本では2007年にフリクションボールが発売されたが,たぶん,そのころに買ってしばらく使っていた。まあまあ楽しいのだけれど,ある日,大学事務局の梶山さんが,ジェットストリームが書きやすいといってるのを聞いて,早速試してみたところ確かに書き心地がよかった。それ以来,三菱鉛筆のジェットストリーム3色ボールペン(0.7mm黒赤青)をずっと使い続けている。

フリクションボールの原理は,ボールペンの後ろにあるゴムでこすると摩擦熱でインクが変性して消えるというものだ。ウィキペディアによると「摩擦熱による消色温度が65 °Cに設計されていいて,これを上回る高温の環境では書いた内容が全部消える。逆に復色温度(-20 °C)を下回る環境では消した内容まで復活する」とのことだが先日まで知らなかった。

冷やすと消えたのが復活するといわれ,「本当かよ?」といって冷凍庫から保冷剤を出してきて挟んでみた。渦巻きを書いて消したのだがそれが復活する気配もない。違うんじゃないというと,-20°Cが必要だという。仕方がないので,メモ用紙を冷凍庫に突っ込んでそのまま忘れていた。

次の日,なんで冷凍庫にメモ用紙があるのというので,あわてて回収したところ,確かに消えたはずの渦巻きが復活していた。昔の日本の技術はすごかった。


写真:冷凍庫で一晩過ごして復活した渦巻き


2023年4月6日木曜日

2023年4月5日水曜日

2023年4月4日火曜日

2023年4月3日月曜日

2023年4月2日日曜日

(春休み 6)

 화장실이 있어요?(hwa jan sil-i iss-o yo)トイレはありますか

2023年4月1日土曜日

2023年3月31日金曜日

2023年3月30日木曜日

2023年3月29日水曜日

2023年3月28日火曜日

2023年3月27日月曜日

アインシュタインモノタイル

ある図形で平面を埋めるのが,平面充填問題tiling/tessellation)だ。

正三角形,正方形,正六角形で充填できることは簡単にわかる。平行四辺形や2つ組み合わせると平行四辺形になる任意の三角形も同様だ。任意の四角形を2つ組み合わせると。平行六辺形になって,これで敷き詰めることもできる。四角形の内角の和が360度なので一点の回りに各角が集まるようにすれば充填できそうな気もする。たぶん。

自明でないものとして,五角形がある。五角形による平面充填15のパターンに限られていることが証明されているらしい。ここまでの例はすべて並進対称性=周期性を持つ場合になっている。非周期的な充填の例としては,二種類の菱形から構成されるペンローズ・タイルが有名だ。磁石付きペンローズ・タイルの玩具をどこかの博物館でお土産で買ってきたことがある。

最近,1種類の多角形だけで非周期的な平面充填ができるものが見つかった。これはEinstein  Problem と呼ばれる未解決問題だった。なお,物理学者のアインシュタインではなく,ドイツ語のアイン(Ein)=1つの,シュタイン(Stein)=石からきている。まだ論文は査読中らしいが,1つの解が存在していることが分かる。

GPT-4を使ってPythonでこの図形を出力するプログラムを作成した。それらしい結果がでたが,間違っている。これに手を加えるのは面倒だったので,Mathematicaに翻訳してもらって背景のパターンを求めた。それに手を加えた結果が次の通りである。
(*ベクトルaとbを定義します。*)
w = 7; o = {0, 0}; 
a = {1, 0}; b = {1/2, Sqrt[3]/2}; 
c = {3/4, Sqrt[3]/4}; d = {0, Sqrt[3]/2};
e = {3/2, Sqrt[3]/2}; f = {0, Sqrt[3]};
gl0 = Table[
   Graphics[{Gray, Dotted, Line[{k*d - w*a, k*d + w*a}]}], {k, -w, w}];
gl1 = Table[
   Graphics[{Gray, Dotted, Line[{w*b + k*a, -w*b + k*a}]}], {k, -w, w}];
gl2 = Table[
   Graphics[{Gray, Dotted, Line[{-w*b + (w + k)*a, w*b + (k - w)*a }]}], {k, -w, w}];
gr0 = Table[
   Graphics[{Gray, Dotted, Line[{{k*3/4, -w}, {k*3/4, w}}]}], {k, -w, w}];
gr1 = Table[
   Graphics[{Gray, Dotted, Line[{w*(d - c) + k*d, -w*(d - c) + k*d}]}], {k, -w, w}];
gr2 = Table[
   Graphics[{Gray, Dotted, Line[{w*c + k*d, -w*c + k*d}]}], {k, -w, w}];

(*drawPoint関数を定義します。この関数は、整数m,nと色を引数に取り、
ベクトルv=m*a+n*bを計算して描画します。*)
drawPoint[x_, y_, c_, m_, n_] := 
 Graphics[{PointSize[0.01], c, Point[m*x + n*y]}]

(*乱数を使ってm,nの組を生成し、点を描画する例です。*)
drawRandomPoints[x_, y_, cl_, de_, np_] := 
 Module[{m, n, points},(*乱数でmとnの値を生成します。*)
  m = RandomInteger[{-de, de}, np];
  n = RandomInteger[{-de, de}, np];
  (*点を描画します。*)
  points = Table[drawPoint[x, y, cl, m[[i]], n[[i]]], {i, np}];
  (*プロットを表示します。*) 
  Show[points, Axes -> True, PlotRange -> {{-de, de}, {-de, de}}, 
   AspectRatio -> 1]]

(*例として、ランダムな点を描画します。*)
g1 = drawRandomPoints[a, b, Red, 7, 1000];
g2 = drawRandomPoints[c, d, Blue, 7, 1000];
g3 = drawRandomPoints[e, f, Green, 4, 400];
gp = Graphics[{LightRed, EdgeForm[Gray], 
    Polygon[{o, d, d + a/2, d + (a + b)/2, c + (a + b)/2, 
      c + (a + b)/2 - d, c + a + b/2 - d, c + 3 a/2 a - d, 3 a/2 - d, 
      3 a/2 - c, 3 a/2 - c - b/2, a/2 - c - b/2, -a/2 - b/2, o}]}];
Show[gp, gl0, gl1, gl2, gr0, gr1, gr2, g1, g2, g3, PlotRange -> {{-6, 6}, {-6, 6}}]


図:アインシュタイン図形とその背景格子

背景格子の作成で,無駄に沢山の点をランダムに打っているが,まあ気分の問題なので,気にする必要はない。

[1]An aperiodic monotile exists!(The Aperiodical)
[2]An Aperiodic Monotile(D. Smith, J. S. Myers, C. S. Kaplan, and C. Goodman-Smith)

2023年3月26日日曜日

へのへのもへじ

ネット上で誰かが,「へのへのもへじ」より「へめへめくつし」がいいねといった。ホウ,そんなものがあったのか,と一瞬思ったけれど,そういえば昔いろいろと試していたような気もする。それほどビックリする話題ではない。

むしろ,テレビで外国人の平熱が37度台であると知ったことの方が驚きだ。これは筋肉が多い人について成り立つらしく,日本のボディビルダーに体温がやはり37度台であることを検証していた。どこまで正しいかわからないけれど。

そこで,へのへのもへじ出力プログラムを作ってみた。最初は,TeXのTikZで書いた。こんな感じ。ベジェ曲線が手軽に使えるのがありがたい。

\begin{tikzpicture}
\draw[gray, step=1, dotted] (0,0) grid (6,6);
\draw (2,5) node[below]{\Huge \${〜}\$};
\draw (2,4) node[below]{\Huge \${め}\$};
\draw (4.2,5) node[below]{\Huge \${〜}\$};
\draw (4.2,4) node[below]{\Huge \${め}\$};
\draw (3,3) node[below]{\Huge \${く}\$};
\draw (3.3,1.9) node[below]{\Huge \${つ}\$};
\draw [ultra thick] (1,5.5) .. controls (0.5,2) and (1.25,0.75)  ..(2,0.5);
\draw [ultra thick] (2,0.5) .. controls (3,0) and (5,0)  ..(5.5,2);
\draw (5.5,3) node[below]{\Huge \${々}\$};
\end{tikzpicture}


図1:LaTeXのTikZで書いたへのへのもへ字

これだと,文字を入れ替えるたびにコードを書き換えることになる。そこで,pythonで作り直そうとしてGPT-4に聞いてみたら,ほぼ1発で正しいコードが得られた。macOSのフォントの場所だけを指定すれば良かった。さらに,コマンドラインからひらがなを入力して文字に分解するところもGPT-4に教えてもらった。これからのプログラミング教育はどうなるのだろう?

問題は,pythonのpillowライブラリにはベジェ曲線がないことだ。おまけに,最初の結果は顔の輪郭は直線4本で表され,顔に被ってしまっていた。GPT-4はそこまで賢いわけではない。仕方がないので,自力でもがいて作った折れ線グラフで代用している。プログラミング教育って絶対にこうなるから。論理的ではない部分が多すぎる。

#! ~/bin/python


from PIL import Image, ImageDraw, ImageFont

import sys


def generate_henohenomoheji(brow: str, eye: str, nose: str, mouth: str, file_name: str):

     

    # 背景画像を作成

    image = Image.new('RGB', (600,600), (255, 255, 255))

    draw = ImageDraw.Draw(image)


    # フォントの設定

    font_size = 80

    font = ImageFont.truetype("/Users/koshi/Library/Fonts/BIZUDGothic-Regular.ttf", font_size)


    # へのへのもへじの要素を描画

    draw.text((160, 120), brow, font=font, fill=(0, 0, 0))  # 眉毛

    draw.text((340, 120), brow, font=font, fill=(0, 0, 0))  # 眉毛

    draw.text((180, 200), eye, font=font, fill=(0, 0, 0))   # 目

    draw.text((330, 200), eye, font=font, fill=(0, 0, 0))   # 目

    draw.text((240, 290), nose, font=font, fill=(0, 0, 0))  # 鼻

    draw.text((250, 380), mouth, font=font, fill=(0, 0, 0)) # 口

    draw.text((480, 240), "〃", font=font, fill=(0, 0, 0))  # 濁点


    # 顔の輪郭(ベジェ曲線ではない)

    contour = [

        (100, 100), (110, 150), (110, 200), (100, 250), (100, 300),

        (110, 340), (120, 380), (140, 410), (160, 440), (180, 460),

        (200, 480), (220, 490), (240, 500), (260, 505), (280, 505),

        (300, 500), (320, 500), (340, 495), (360, 495), (370, 490),

        (390, 480), (410, 470), (430, 460), (450, 440), (470, 410),

        (480, 380), (480, 360), (475, 340), (470, 310), (470, 280),

    ]

    draw.line(contour, width=5, fill=(0, 0, 0), joint="curve")


    # 画像の表示と保存

    image.show()

    image.save(file_name, "PNG")


moji = list(sys.argv[1])

brow = moji[0]

eye = moji[1]

nose = moji[2]

mouth = moji[3]

print(brow,eye,nose,mouth)

generate_henohenomoheji(brow,eye,nose,mouth, "heno-mohe.png")

図2:PythonのPillowによるへのへのもへ字

2023年3月25日土曜日

教育データの利活用

3月22日に,文部科学省の教育データの利活用に関する有識者会議(2020.7-)が「教育データの利活用に係わる留意事項(第1版)」を公表した。

日経新聞では,「学習端末データ授業改善に活用/教師の経験頼み脱却」というタイトルの記事になっていた。BingChatに無理矢理要約させると次のようになった。
文部科学省が公表した指針によると、小中高校の児童生徒が学校で使うデジタル端末に蓄積された情報の活用について、初めての指針を公表したそうです。この指針により、教師が経験に頼ることなく、学習端末に蓄積されたデータを活用し、授業改善につなげることができるようになるそうです。また、ビッグデータの分析力を備えた外部機関との連携が求められるそうです。
日経の記事はかなりバイアスがかかったまとめ方をしていた。「留意事項」はもっと抽象的なものになっていて,(1) 個人情報の適切な取り扱い,(2) プライバシーの保護,(3) セキュリティ対策,について言及しながらシステムを外注する際のチェックポイントを整理したようなものだ。

10年前に,今後の大阪教育大学の方向性とからめて教育ビッグデータの重要性(と危険性)を話題にしていたころから進んでいない。スローガンに伴う具体的なイメージがはっきりしないのだ。いや自分が勉強していないだけかもしれない。

(1) 収集される学習データは非常に多様化し,複雑化するとおもわれる。従来型の成績+デジタルポートフォリオイメージでよいのか。
(2) 授業改善のための分析は結局外注することになるのではないか。あるいは分析ツールを買わされるのだろうか。教師が片手間でできる簡単な仕事ではない。
(3) 対話型AIをインターフェースとすれば,上記2つの課題は解決するのかもしれない。ビッグデータといいなわらしていたころとはかなり違うことになるが,問題解決のヒントくらいは見つかるかもしれない。
(4) この対話型AIシステムクラウドを日本国が自前で準備して無料で使わせるくらいのことをしてもバチはあたらないだろう(かなりこわい話だけれど,米国依存だとさらにマズイ)。

最初のコラムで,牽制するかのように「デジタル・シティズンシップ」を取り上げているのも唐突感が否めないがまあいいか。それにしても,この「留意事項」から感じる息苦しさはなんなのだろうか。個人情報保護法や著作権法にがんじがらめになっている上,自由な空気からほど遠い学校教育現場にこのようなシステムを導入すると,結局壮大な抑圧的管理網がかぶさるだけのような気もする。


P. S.  山本一郎いわく「統計量で教育データを扱うはずが,全量悉皆データをそのまま人工知能にぶち込んでしまい,自ら情報漏洩の危険を冒すお調子者教師」が散見されるそうだ。これはこれでピントがズレているような・・・



2023年3月24日金曜日

カフェインレス

カフェインレスの紅茶を飲んでいた人から,カフェインレスってどうやって作るの?という質問があったので早速調べてみた。

まず,デカフェ,カフェインレス,ノンカフェインの3つがあることまでは共通だ。とりあえず,「珈琲や紅茶でのデカフェ,カフェインレス,ノンカフェインの定義や製法の違いを説明してください」という質問を投げ掛けてみる。

(1) Bing Chatにきいてみると,最近はつれない返事しか返ってこないことが多い。回答を短く抑えせている雰囲気だ。GPT-4.0ベースとはいうものの,現時点のデータを検索して取り込んだ検索のためのチャットという仕様に特化しているからだろう。まあ,それなりの参照URLは返してくるが,それらをうまく評価しながらまとめることができているかというとそうでもない。最初からGoogleで検索した珈琲屋の答えと大差がなくなってしまった。

(2) GPT-4にきいてみると,結構詳しい答えが返ってきた。1.デカフェの説明,(a) 溶媒抽出法,(b) スイスウォータープロセス,(c) CO2抽出法。2.カフェインレスの説明,他の参考資料とは少し違うことが書かれている。3.ノンカフェインの説明,カフェインレスと同じだという主張だった。これらがどこまで正しいのかはよくわからない。

(3) Wikipediaのデカフェで調べてみると,さらに詳しい答えが載っていた。デカフェ≒(a)カフェインレスコーヒ,=(b)カフェインを除去する過程やその結果としての飲料のことを指す。たぶんこれが正しいのではないか。その上で,カフェインレスの製法についての詳しい説明,(a) 脱カフェイン法(有機溶媒抽出:ケミカル・メソッド,水抽出:ウォーター・メソッド,超臨界二酸化炭素抽出がある。),(b) カフェインレス・コーヒーノキを作る方法(遺伝子組み換えや育種によるが未到達)がある。

この中で最もよいと思われるのが,超臨界二酸化炭素を用いる方法である。
二酸化炭素は31.1℃以上かつ73.8気圧以上の状態で超臨界二酸化炭素になる。この条件は他の物質の場合より常温常圧に近く(例えば水では374℃以上かつ220気圧以上)その生成が比較的容易であることと、超臨界状態でも他の物質との化学反応を起こしにくい(超臨界水は極めて反応性が高い)という特性を持つ。また抽出後、常温常圧に戻せば二酸化炭素の除去は極めて容易であり、万一残留してもその毒性を考慮する必要がない点、廃液処理の必要がない点、有機溶媒のような燃焼性がなく火災の心配がいらない点など、さまざまな点において有機溶媒抽出法の欠点を補った、極めて優れた脱カフェイン法だとされている。(Wikipediaのデカフェより引用)
なお,ノンカフェインは,もともとカフェインを含んでいないソフトドリンク類を指す場合が多いようだ。各サイトでも定義がまちまちなのである。まあ世の中そんなものかもしれない。逆にいえば,対話型AIシステムの信頼度が高まれば,従来の検索システムは完全に凌駕されることになる。

補足:
○コーヒー市場のうちノンカフェインの占める割合は10%程度
○コーヒーに含まれるカフェインは約3%程度
○欧州では,コーヒーに含まれるカフェインが0.2%以下でデカフェを名乗れる
○日本には,カフェインを90%以上取り除けば(約0.3%以下)デカフェを名乗れる
○デカフェ市場は健康指向などから着実に拡大している


図:カフェイン(SUZUKI COFFEE から引用)


2023年3月23日木曜日

「これは個人的な意見ですが…」

金沢に一泊して用事をすませてきた。ChatGPTはやはり話題に登場した。帰ってきて,物理教育学会誌が届いたが,その編集後記もChatGPTの話題で持ちきりだった。新聞でもネットでも毎日のように生成型AIを巡るニュースが飛び交っていて,すべてをフォローするのは困難だ。

GPT-4に俳句について聞いてみた。GPT-3.5より多少マシだったが,これはまだ普通の水準に達していなかった。数学的な計算も同様で,プロンプト工学ではカバーできそうにない。それでも着実に能力は高まっている。以下は,わりとまともな答えが帰ってきた例である。
Q:組織における制度化された会議の場で,あるいは打ち合わせ等での意見交換の場で,「これは個人的な意見ですが・・・」と前置きされる発言がでることがしばしばあります。この表現は何を意味していて,どういう機能を果たしているのか,いくつかの類型に分けて整理しながらの説明をお願いします。

A:この「これは個人的な意見ですが・・・」という表現は、主に以下の機能を果たしていると考えられます。様々な類型に分けて整理してみました。

1.責任の回避
この表現を使うことで、発言者は自分の意見が組織やチームの意見として捉えられることを避けることができます。これにより、意見が受け入れられなかった場合や問題が生じた場合でも、発言者個人への責任を最小限に抑えることができるでしょう。

2.柔らかい意見の表現
この表現を使うことで、発言者は自分の意見を他者に押し付けることなく、柔らかく提案できます。これは、対立や摩擦を避けるために役立ちますし、他者が意見に対してオープンである可能性を高めるでしょう。

3.オープンな議論の促進
「これは個人的な意見ですが」は、発言者が自分の意見に対して完全に自信がないことを示唆する場合もあります。この表現を使うことで、他者に対して意見についてのフィードバックや異なる視点を提供する機会を与えることができます。

4.エキスパートでない立場からの意見提供
発言者がその分野の専門家ではない場合や、十分な情報を持っていない場合に、この表現を使うことがあります。この場合、発言者は意見を提供しつつも、自分がエキスパートでないことを明示し、他者からの補足や訂正を歓迎する態度を示すことができます。

5.異なる意見や視点の提示
組織内で既存の意見や方針に対して異なる視点を持っている場合、発言者は「これは個人的な意見ですが」と前置きすることで、新たなアイデアや視点を提案しやすくなります。これにより、組織全体の意見や方針の多様性を促進することができるでしょう。

総じて、「これは個人的な意見ですが」という表現は、意見交換の場において多様な意見を尊重し、

続けて

オープンな議論を促進するための有用な表現です。この表現を使用することで、以下のような効果も期待できます。

6.階層を超えた意見の提案
組織内で階層が存在する場合、「これは個人的な意見ですが」という表現を使うことで、上層部に対して意見を提案しやすくなることがあります。この表現は、自分の意見が組織全体に適用されるべきだと主張しているわけではないことを示しているため、上層部に対して敬意を払いつつ、意見の提案が可能になります。

7.時間をかけて意見を検討する余地の提供
「これは個人的な意見ですが」という表現を用いることで、他者に対して即座に意見を評価し、決定を下すことを求めない空気を醸成できます。これにより、意見がじっくりと検討される可能性が高まるでしょう。

8.チームのコミュニケーションを円滑にする
この表現は、チーム内での意見の対立を和らげ、より建設的なコミュニケーションを促す役割を果たします。相手に対して敬意を示し、意見の違いを受け入れやすくすることで、チーム全体の関係を強化する効果があります。

これらの類型に分けられる機能を通じて、「これは個人的な意見ですが」という表現は、組織内での意見交換や会議の場をより有意義で生産的なものにする助けとなります。発言者はこの表現を用いることで、自分の意見を適切な形で伝えることができ、他者とのコミュニケーションを円滑に進めることができるでしょう。
そこで,更問いしてみた。
Q:このような表現は日本以外の国でも見られるのでしょうか。

A:「これは個人的な意見ですが」という表現に相当するものは、日本以外の国でも見られます。異なる言語や文化においても、同様の表現が使われることがあります。以下にいくつかの例を挙げます。

英語圏:「In my opinion...」(私の意見では…)、「I personally think...」(個人的には思うんですが…)、「Just my two cents...」(たった2セントの価値しかないかもしれませんが…)などの表現が使われます。

スペイン語圏:「En mi opinión...」(私の意見では…)、「Personalmente pienso que...」(個人的には思いますが…)などの表現が使われます。

中国語圏:「我个人认为...」(私個人としては思いますが…)、「在我看来...」(私の見解では…)などの表現が使われます。

ドイツ語圏:「Meiner Meinung nach...」(私の意見では…)、「Ich persönlich denke, dass...」(個人的には思うんですが…)などの表現が使われます。

これらの表現は、日本語での「これは個人的な意見ですが」と同様に、意見交換や会議の場において、発言者が自分の意見を柔らかく提案し、他者との対立を避けることを目的として使用されます。ただし、国や文化によっては、このような表現が一般的であったり、逆にあまり使われなかったりすることもあるため、異文化間でのコミュニケーションの際には注意が必要です。

勉強になるわ。これがどこまで正しいか分からないけれど,普通に人間同士の会話でもこの程度のもっともらしいが正確かどうかわからない情報は飛び交っている。また,デマゴーグになれば,SNS上であるいは国会で出鱈目を言いまくっているので,まあ,なんともいえないところである。


2023年3月22日水曜日

教養強化合宿(5)

教養強化合宿(4)からの続き

2014年の夏に始まった外山恒一の教養強化合宿だが,ぼんやり見逃しているうちにこの3月に第27回になっていた。なかなか需要が多いのか,本人が「外山恒一主催「教養強化合宿」初日余興〝いまどきの意識高すぎる系学生の実態調査的教養チェック〟過去問一覧」をnoteに書いていた。

なんだか最近難しくなってきたと思っていたので,参加学生さんの平均点と自分の得点を時系列でまとめてみた。公表されている第15回(2021.8)から第27回(2023.3)までの13回のデータだ(特別編は除く)。


図:外山教養強化合宿の余興得点(第15-27回)

若干の例外はあるけれど,原則として登場人物の重複は避けているのために難易度が上がっている様子がうかがえる。それでも,若者よりは外山恒一の年齢に近いのでかろうじて6割くらいまでついていける。第27回でいえば,萩尾望都や古賀政男でさえ,3/14や1/14という認知度になっているので,若者達との文化的な断絶は大きい。

2023年3月21日火曜日

凹面鏡

軸対称な凹面鏡の断面の曲線が放物線ならば,鏡の対称軸=主軸に平行に入射する光線は反射して焦点に集まることが良く知られている。この曲線が一般の形の場合は主軸近傍では2次関数で近似できるので同様に焦点に光が集まる。近傍から外れた場合に生ずる焦点からのズレが収差となる。ところで,焦点を結ぶのは2次関数に限られるのだろうか?

$x$軸上の原点Oに凹面鏡の底を接地させ,$y$軸上にある焦点Fと原点Oの距離を$f$とする。原点近傍の凹面鏡の断面の曲線上の点P$(x, y(x))$について,直線FPの傾きは$-\frac{f}{x}$と近似できる。したがって,点Pにおける鏡面の傾きは,$\frac{x}{2f}$となる。つまり,$\frac{dy}{dx}= \frac{x}{2f}$という微分方程式が成り立つ。つまり,少なくとも原点近傍では $y(x) = \frac{x^2}{4f}$という2次関数でなければならない。

Mathematicaでのシミュレーションコードを書いてみた。

f2[a_] := a^2
t2[a_] := ArcTan[D[f2[x], x]] /. x -> a 
s2[a_] := Tan[Pi/2 + 2*t2[a]]
g2[y_, a_] := s2[a]*(y - a) + f2[a]
TrigExpand[f2[a] - a*s2[a]] // Simplify

Out[-]= 1/4

p0 = Plot[f2[x], {x, 0, 1}, PlotStyle -> {Red}]; 
p2 = Table[Plot[g2[y, 0.1*n], {y, 0, 0.1*n}], {n, 1, 8}];
q2 = Table[b = 0.1*n; 
   Graphics[ Line[{{b, 1}, {b, f2[b]}}, 
   VertexColors -> {Green, Blue}]],{n, 1, 8}];
Show[{p0, p2, q2}, PlotRange -> All, AspectRatio -> Automatic]


図:凹面鏡(放物面鏡)の断面図と焦点への結像


先ほどの議論を一般化する。凹面鏡の断面の曲線を$y(x)$とする。点P$(x,y(x))$における接線の傾きは,$y'(x)$であり,点Pにおける入射光線と法線のなす角度は,$\theta = \arctan{ y'(x)}$。そこで,点Pにおける反射光線の傾きは,$m = \tan(\frac{\pi}{2} +2 \theta) = -\frac{\cos 2 \theta}{\sin 2 \theta}  = \frac{y'(x)^2-1}{2 y'(x)}$となる。

さて,反射光線の方程式は,$Y-y(x)=m(X-x)$である。したがって,焦点の位置 を$(X,Y)=(0,f)$とすると,$f = y(x) - x \cdot  \frac{y'(x)^2-1}{2 y'(x)}$という微分方程式で定まる。先ほどの,$y(x)=\frac{x^2}{4f}$はこの方程式を満足している。