2026年7月22日水曜日

夏休み  みんなの量子力学 その2(ファイマン風)デモ付


DEMO 3 可能性の矢印



このデモで伝えたいこと

量子力学では、最初から確率を足しません。

先に、「どのくらい強い可能性か」「どちら向きの可能性か」を持つ「矢印」を足します。そして最後に、その矢印の長さから確率を求めます。この矢印が、量子力学でいう確率振幅のやさしい表現です。

なぜ、ただの数字ではなく矢印なのか

普通の確率なら、
・道1を通る確率が30%
・道2を通る確率が20%


30%+20%=50%30\%+20\%=50\%

と足せます。しかし量子では、同じ30%と20%でも、波のタイミングが違うと結果が変わります。そこで必要になるのが、長さだけでなく向きも持つ量です。
矢印には、
・長さ
・方向

があります。長さだけではなく、向きも違う。これが普通の確率との大きな違いです。



画面上の矢印1と矢印2



青い矢印が「可能性1」。桃色の矢印が「可能性2」です。たとえば二重スリットなら、
 
・青:上の穴から届く可能性
・桃:下の穴から届く可能性

と考えられます。この2本を足した結果が、黄色い矢印です。


矢印を足すとはどういうことか

矢印の足し算では、1本目の先端から2本目をつなげます。その出発点から最後の先端までを結んだものが、合成した矢印です。

同じ向きの場合

青と桃が同じ方向を向いているとします。それぞれ長さ1なら、

1+1=21+1=2
の長さになります。黄色い矢印は長くなります。
これは、2人が同じ方向へロープを引くのと似ています。力が合わさります。量子では、可能性が強め合っています。


反対向きの場合


青が右、桃が左を向いているとします。同じ長さなら、

1+(1)=01+(-1)=0
になります。黄色い矢印は消えます。これは、同じ強さで、反対方向へロープを引くのと同じです。どちらも力を出しているのに、結果は動きません。量子では、可能性が打ち消し合っています。


斜めの場合

完全に同じ向きでも、完全に反対でもない場合は、途中の長さになります。

つまり、
・一部は強め合う
・一部は打ち消し合う

という状態です。



なぜ最後に二乗するのか


画面では、「確率 = 合成した矢印の長さ × 合成した矢印の長さ」と表示しています。数式では、

P=ψ2P=|\psi|^2

です。

ここで ψ\psi は可能性の矢印。

ψ|\psi| はその長さです。そして確率は、その長さの二乗です。たとえば、合成矢印の長さが2なら、

P=22=4P=2^2=4

になります。

長さが0なら、

P=02=0P=0^2=0

です。



なぜ「可能性」と「確率」を分けるのか

矢印は、まだ結果そのものではありません。それは、「結果になる前の可能性」です。量子力学では、この前段階で可能性同士が影響し合います。その後で、観測される確率になります。


普通の確率では、 P=P1+P2P=P_1+P_2

と足します。

量子では、

P=ψ1+ψ22P=|\psi_1+\psi_2|^2
です。この順番の違いが、干渉を生みます。



二重スリットとのつながり

二重スリットのスクリーン上のある場所を考えます。
そこへ届く可能性は2つあります。
・上の穴から届く
・下の穴から届く

それぞれに矢印があります。場所によって、2本の矢印の向きが変わります。
「ある場所では同じ向き」
可能性が強め合い、電子が多く現れます。
「別の場所では反対向き」
可能性が消し合い、電子がほとんど現れません。
これが、明るい縞と暗い縞になります。



画面の矢印が、電子の進む方向を示しているわけではありません。電子が右へ飛んでいるから矢印が右を向いている、という意味ではないです。矢印の向きは、「波のタイミング」「可能性の位相」を表しています。つまり、空間上の方向とは別の「計算上の向き」です。初めての方は、「可能性にもタイミングがある」と考えるとよいです。



------- probability_arrows.html JavaScript (教育用)なぞってコピペ ------------

<!doctype html> <!-- Copyright © 2026 C-side Laboratory, Yatsugatake / Yukihiro Watanabe. All rights reserved. --> <html lang="ja"> <head> <meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"> <title>量子力学デモ3:可能性の矢印</title> <style> *{box-sizing:border-box}body{margin:0;background:linear-gradient(#0b1020,#11192a);color:#eef4ff;font-family:system-ui,-apple-system,"Segoe UI","Noto Sans JP",sans-serif} .wrap{max-width:1180px;margin:auto;padding:20px}h1{margin:0 0 6px;font-size:clamp(25px,4vw,42px)}.lead{color:#afbed5;margin:0 0 18px;line-height:1.7} .grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px}.card{background:#172033;border:1px solid #2e3e5d;border-radius:16px} .stage{padding:12px}canvas{display:block;width:100%;height:auto;background:#080d17;border-radius:12px}.controls{padding:18px} label{display:block;margin:13px 0 6px;font-weight:800}input[type=range]{width:100%}button{border:0;border-radius:10px;padding:11px 15px;font-weight:800;cursor:pointer;background:#293a56;color:#fff} button.primary{background:#ffd166;color:#182033}.row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.note{color:#afbed5;line-height:1.75} .result{margin-top:14px;padding:13px;border-radius:12px;background:#101829;border-left:5px solid #62d8ff;line-height:1.65;font-weight:800} .math{margin-top:12px;padding:12px;border-radius:12px;background:#101829;font-family:serif;font-size:1.18rem;text-align:center} .badge{display:inline-block;padding:4px 9px;border-radius:999px;background:#243451;font-size:.82rem} footer{max-width:1180px;margin:24px auto 0;padding:18px 20px 28px;text-align:center;color:#8fa0b8;font-size:13px} @media(max-width:850px){.grid{grid-template-columns:1fr}} </style></head> <body> <div class="wrap"> <h1>可能性は、数字ではなく「矢印」で足す</h1> <p class="lead">量子の世界では、すぐに確率を足しません。まず、向きのある「可能性の矢印」を足します。</p> <div class="grid"> <section class="card stage"><canvas id="cv" width="860" height="560"></canvas></section> <aside class="card controls"> <span class="badge">DEMO 3</span> <label>矢印2の向き:<span id="angleText"></span></label> <input id="angle" type="range" min="0" max="360" value="0"> <label>矢印1の長さ:<span id="a1Text">1.0</span></label> <input id="a1" type="range" min="0" max="150" value="100"> <label>矢印2の長さ:<span id="a2Text">1.0</span></label> <input id="a2" type="range" min="0" max="150" value="100"> <div class="row"><button class="primary" id="play">矢印2を回す</button><button id="reset">元に戻す</button></div> <div class="result" id="result"></div> <div class="math">確率 = 合成した矢印の長さ × 合成した矢印の長さ</div> <p class="note">たとえば、同じ向きの矢印は力を合わせます。反対向きなら、お互いを消します。<br><br> 「2人が同じ方向へロープを引けば強くなる。反対方向へ同じ力で引けば動かない」という感じです。</p> </aside></div></div> <footer>© 2026 C-side Laboratory, Yatsugatake / Yukihiro Watanabe. All rights reserved.</footer> <script> const cv=document.getElementById('cv'),ctx=cv.getContext('2d'),W=cv.width,H=cv.height; const angle=document.getElementById('angle'),a1=document.getElementById('a1'),a2=document.getElementById('a2'); let moving=false,last=0; function arrow(x,y,dx,dy,color,label){ const ex=x+dx,ey=y+dy,ang=Math.atan2(dy,dx); ctx.strokeStyle=color;ctx.fillStyle=color;ctx.lineWidth=7;ctx.beginPath();ctx.moveTo(x,y);ctx.lineTo(ex,ey);ctx.stroke(); ctx.beginPath();ctx.moveTo(ex,ey);ctx.lineTo(ex-18*Math.cos(ang-.55),ey-18*Math.sin(ang-.55));ctx.lineTo(ex-18*Math.cos(ang+.55),ey-18*Math.sin(ang+.55));ctx.closePath();ctx.fill(); ctx.font='18px system-ui';ctx.fillText(label,ex+10,ey-8); } function draw(){ ctx.fillStyle='#080d17';ctx.fillRect(0,0,W,H); const L1=140*Number(a1.value)/100,L2=140*Number(a2.value)/100,th=Number(angle.value)*Math.PI/180; const v1={x:L1,y:0},v2={x:L2*Math.cos(th),y:-L2*Math.sin(th)},sum={x:v1.x+v2.x,y:v1.y+v2.y}; ctx.fillStyle='#dce9ff';ctx.font='20px system-ui';ctx.fillText('① 2本の可能性の矢印',35,42); arrow(155,175,v1.x,v1.y,'#62d8ff','矢印1'); arrow(155,175,v2.x,v2.y,'#ff7aa2','矢印2'); ctx.strokeStyle='rgba(255,255,255,.18)';ctx.setLineDash([6,7]);ctx.beginPath();ctx.moveTo(155+v1.x,175+v1.y);ctx.lineTo(155+sum.x,175+sum.y);ctx.moveTo(155+v2.x,175+v2.y);ctx.lineTo(155+sum.x,175+sum.y);ctx.stroke();ctx.setLineDash([]); ctx.fillStyle='#dce9ff';ctx.fillText('② 足した結果',35,325); arrow(155,440,sum.x,sum.y,'#ffd166','合成'); const len=Math.hypot(sum.x,sum.y)/140,prob=len*len; ctx.fillStyle='#afbed5';ctx.font='18px system-ui';ctx.fillText(`合成した矢印の長さ:${len.toFixed(2)}`,520,370); ctx.fillText(`現れやすさ(長さ²):${prob.toFixed(2)}`,520,410); ctx.fillStyle='#ffd166';ctx.fillRect(520,445,Math.min(260,prob/4*260),22); ctx.strokeStyle='#52627c';ctx.strokeRect(520,445,260,22); } function update(){ angleText.textContent=angle.value+'°';a1Text.textContent=(a1.value/100).toFixed(1);a2Text.textContent=(a2.value/100).toFixed(1); const c=Math.cos(Number(angle.value)*Math.PI/180); result.textContent=c>.7?'2本の矢印は同じ向きです。可能性が強め合っています。':c<-.7?'2本の矢印は反対向きです。可能性が打ち消し合っています。':'一部は強まり、一部は打ち消されています。'; } function frame(t){if(moving){angle.value=(Number(angle.value)+1)%361;update()}draw();requestAnimationFrame(frame)} angle.oninput=update;a1.oninput=update;a2.oninput=update; document.getElementById('play').onclick=()=>{moving=!moving;play.textContent=moving?'止める':'矢印2を回す'}; document.getElementById('reset').onclick=()=>{moving=false;angle.value=0;a1.value=100;a2.value=100;play.textContent='矢印2を回す';update()}; update();requestAnimationFrame(frame); </script></body></html>

-------------- ---------------














DEMO 4 すべての経路


このデモで伝えたいこと

ファインマンは、量子の動きを考えるとき、電子が実際に通った一本の道だけを探すのではなく、出発点から到着点までの、考えられるすべての道を計算に入れるという方法を使いました。これが経路積分の考え方です。


画面の左と右

左の黄色い点が出発点です。右の青い点が到着点です。その間に、たくさんの曲がった線があります。

・ほぼまっすぐな道
・少し曲がった道
・大きく遠回りする道

が表示されています。


電子が本当に全部の線を走るのか

この絵をそのまま、電子が分裂して、全部の道を走ったと受け取るのは危険です。この線は、電子の映像ではありません。これは、「すべての経路を計算に入れる」という方法を可視化したものです。つまり説明図です。「 それぞれの道に時計を持たせる」
ファインマン流の説明では、それぞれの経路に小さな時計を持たせます。電子がその経路を通ったと仮定したとき、時計の針が一定の速さで回ると考えます。

・道が長いほど、時計はたくさん回ります。
・道が短いほど、時計は少ししか回りません。

到着したときの針の向きが、その経路の「可能性の矢印」です。



なぜ道の長さで針が変わるのか

経路が違えば、通る時間や作用が違います。本格的な量子力学では、経路ごとに、

eiS/e^{iS/\hbar}

という振幅を与えます。ただし初めての方には、この式を出さなくても大丈夫です。やさしく言えば、「道が違えば、時計の針が到着時に違う向きを向く]ということです。


遠回りの道はなぜ消えやすいのか



大きく遠回りする経路では、少し道が変わっただけで長さが大きく変わります。

すると時計の針も、
・右を向く
・上を向く
・左を向く
・下を向く

というように、ばらばらになります。ばらばらの矢印を全部足すと、互いに打ち消し合います。

たとえば、
・右向き1本
・左向き1本

ならゼロです。
・上向き1本
・下向き1本

もゼロです。多くの遠回り経路は、全体として消えやすいのです。



まっすぐに近い道はなぜ残るのか

まっすぐに近い経路では、少し道を変えても長さがあまり変わりません。そのため時計の針の向きも似ています。「似た方向の矢印を足すと、強く残ります。」つまり、「まっすぐに近い経路の周辺では、可能性が強め合う」のです。これが、日常の物体がだいたい普通の経路を進む理由へつながります。


古典力学とのつながり

ボールを投げると、だいたい決まった放物線を描きます。光も、普通は直進します。ファインマンの見方では、「本当はたくさんの経路を計算に入れているが、普通の経路以外は打ち消し合って見えなくなる」と考えます。残るのが、古典力学でいう「最も自然な経路」です。これは最小作用の原理とつながります。ただし、「必ず最短距離」という意味ではありません。
正確には、「経路を少し変えても作用がほとんど変わらないところ」が残ります。


時計の回りやすさ

デモの「時計の回りやすさ」を上げると、道の長さの違いによって針の向きが大きく変わります。すると、遠回りの経路はよりばらばらになります。逆に、ゆっくり回ると、多少遠回りしても針の向きが似たままです。これは概念的には、波長や作用の大きさと関係しています。
ただし、このデモでは厳密な物理単位は使っていません。 経路の数を増やすと、より多くの可能性を足し合わせます。少ない経路だけを見ると、偶然針が揃ったり、ばらばらになったりします。

経路を増やすほど、
・遠回りは打ち消し合う
・中央付近が残りやすい

という傾向が見えやすくなります。


遠回りの大きさ



このスライダーは、経路がどのくらい大きく曲がるかを変えています。大きくすると、
・非常に遠回りする経路
・少し曲がる経路
・ほぼまっすぐな経路

の違いがはっきりします。遠回りの道では、時計の針が激しくばらつきます。

2つのデモのつながり



DEMO 3は、可能性の矢印をどう足すかを見せています。
DEMO 4は、その矢印が、たくさんの経路からどう集まるかを見せています。
順番としては、「一本一本の可能性には矢印がある」「矢印は向きによって強め合ったり消えたりする」「すべての経路に矢印を与える」「全部足す」「残った場所が、実際に現れやすい結果になる」となります。



前日話した「500円の切符」とのつながり


光電効果では、「出口を開けるには500円の切符が必要」
「100円玉を何人が持ってきても、一人分の切符にはならない」
という説明をしました。
あれは、「一個の光子が必要なエネルギーを持っているか」を説明しています。
今回の矢印のデモは別の話ですが、同じように考えると分かりやすいです。

光電効果
一個分のエネルギーが足りるかどうか。

干渉
一個一個の可能性の向きが揃うかどうか。

つまり量子力学では、エネルギーは一個分ずつ受け渡される可能性は向きを持って足されるという、二つの不思議な規則があります。




------- all_paths.html JavaScript (教育用)なぞってコピペ ------------

<!doctype html> <!-- Copyright © 2026 C-side Laboratory, Yatsugatake / Yukihiro Watanabe. All rights reserved. --> <html lang="ja"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"> <title>量子力学デモ4:すべての経路</title> <style> *{box-sizing:border-box}body{margin:0;background:linear-gradient(#0a101b,#121a2a);color:#eef4ff;font-family:system-ui,-apple-system,"Segoe UI","Noto Sans JP",sans-serif} .wrap{max-width:1180px;margin:auto;padding:20px}h1{margin:0 0 6px;font-size:clamp(25px,4vw,42px)}.lead{color:#afbed5;line-height:1.7;margin:0 0 18px} .grid{display:grid;grid-template-columns:minmax(0,1fr) 345px;gap:18px}.card{background:#172033;border:1px solid #2e3e5d;border-radius:16px}.stage{padding:12px} canvas{display:block;width:100%;height:auto;background:#080d17;border-radius:12px}.controls{padding:18px}label{display:block;margin:13px 0 6px;font-weight:800} input[type=range]{width:100%}button{border:0;border-radius:10px;padding:11px 15px;font-weight:800;cursor:pointer;background:#293a56;color:#fff}button.primary{background:#ffd166;color:#182033} .row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.note{color:#afbed5;line-height:1.75}.result{margin-top:14px;padding:13px;border-radius:12px;background:#101829;border-left:5px solid #ffd166;line-height:1.65;font-weight:800} .badge{display:inline-block;padding:4px 9px;border-radius:999px;background:#243451;font-size:.82rem}footer{max-width:1180px;margin:24px auto 0;padding:18px 20px 28px;text-align:center;color:#8fa0b8;font-size:13px} @media(max-width:850px){.grid{grid-template-columns:1fr}} </style></head> <body><div class="wrap"> <h1>電子は、どの道を通るのだろう?</h1> <p class="lead">ファインマンは「一つの道だけを決めるのではなく、考えられる道を全部足してみよう」と考えました。</p> <div class="grid"><section class="card stage"><canvas id="cv" width="860" height="560"></canvas></section> <aside class="card controls"><span class="badge">DEMO 4</span> <label>経路の数:<span id="countText">25</span></label><input id="count" type="range" min="5" max="80" value="25"> <label>遠回りの大きさ:<span id="spreadText">大きめ</span></label><input id="spread" type="range" min="20" max="210" value="140"> <label>時計の回りやすさ:<span id="speedText">普通</span></label><input id="speed" type="range" min="1" max="8" value="4"> <div class="row"><button class="primary" id="play">時計を動かす</button><button id="reset">別の道を作る</button></div> <div class="result" id="result">まっすぐに近い道では、時計の針が似た向きになりやすく、足しても残ります。</div> <p class="note">それぞれの道に、小さな時計を一つ持たせます。道の長さが違うと、時計の針の向きも変わります。<br><br> 遠回りの道は針がばらばらになり、足すと消えやすい。まっすぐに近い道は針がそろい、結果に残りやすい。<br><br> これは電子が本当に全部の線を走る映像ではなく、計算の考え方を示す説明図です。</p> </aside></div></div> <footer>© 2026 C-side Laboratory, Yatsugatake / Yukihiro Watanabe. All rights reserved.</footer> <script> const cv=document.getElementById('cv'),ctx=cv.getContext('2d'),W=cv.width,H=cv.height; const count=document.getElementById('count'),spread=document.getElementById('spread'),speed=document.getElementById('speed'); let paths=[],running=false,time=0; function makePaths(){ paths=[];const n=Number(count.value),s=Number(spread.value); for(let i=0;i<n;i++){ const centered=(i-(n-1)/2)/Math.max(1,(n-1)/2); const bend=centered*s+(Math.random()-.5)*18; paths.push({bend}); } } function drawArrow(x,y,ang,len,color){ const ex=x+Math.cos(ang)*len,ey=y+Math.sin(ang)*len;ctx.strokeStyle=color;ctx.fillStyle=color;ctx.lineWidth=3; ctx.beginPath();ctx.moveTo(x,y);ctx.lineTo(ex,ey);ctx.stroke();ctx.beginPath();ctx.arc(x,y,3,0,Math.PI*2);ctx.fill(); } function draw(){ ctx.fillStyle='#080d17';ctx.fillRect(0,0,W,H); const sx=70,sy=280,ex=570,ey=280; ctx.fillStyle='#ffd166';ctx.beginPath();ctx.arc(sx,sy,12,0,Math.PI*2);ctx.fill(); ctx.fillStyle='#62d8ff';ctx.beginPath();ctx.arc(ex,ey,12,0,Math.PI*2);ctx.fill(); ctx.fillStyle='#dce9ff';ctx.font='17px system-ui';ctx.fillText('出発',45,250);ctx.fillText('到着',548,250); let sumX=0,sumY=0; paths.forEach((p,i)=>{ const mx=(sx+ex)/2,my=sy+p.bend; const length=Math.hypot(mx-sx,my-sy)+Math.hypot(ex-mx,ey-my); const phase=length*Number(speed.value)*.035+time; const near=Math.abs(p.bend)<Number(spread.value)*.28; ctx.strokeStyle=near?'rgba(255,209,102,.52)':'rgba(160,180,215,.16)'; ctx.lineWidth=near?2.2:1; ctx.beginPath();ctx.moveTo(sx,sy);ctx.quadraticCurveTo(mx,my,ex,ey);ctx.stroke(); const ax=650+(i%8)*23,ay=70+Math.floor(i/8)*38; drawArrow(ax,ay,phase,14,near?'#ffd166':'#8191aa'); sumX+=Math.cos(phase);sumY+=Math.sin(phase); }); ctx.fillStyle='#dce9ff';ctx.font='18px system-ui';ctx.fillText('それぞれの道の「時計の針」',625,35); ctx.strokeStyle='rgba(255,255,255,.15)';ctx.strokeRect(615,48,220,350); const mag=Math.hypot(sumX,sumY),ang=Math.atan2(sumY,sumX); ctx.fillStyle='#dce9ff';ctx.fillText('全部を足した矢印',625,440); drawArrow(690,500,ang,Math.min(110,mag*4),'#62d8ff'); ctx.fillStyle='#afbed5';ctx.font='15px system-ui';ctx.fillText(`残った大きさ:${mag.toFixed(1)}`,625,535); } function labels(){ countText.textContent=count.value; spreadText.textContent=Number(spread.value)<80?'小さめ':Number(spread.value)<160?'大きめ':'とても大きい'; speedText.textContent=Number(speed.value)<3?'ゆっくり':Number(speed.value)<6?'普通':'速い'; } function frame(){if(running)time+=.035;draw();requestAnimationFrame(frame)} count.oninput=()=>{labels();makePaths()};spread.oninput=()=>{labels();makePaths()};speed.oninput=labels; document.getElementById('play').onclick=()=>{running=!running;play.textContent=running?'止める':'時計を動かす'}; document.getElementById('reset').onclick=()=>{time=0;makePaths()}; labels();makePaths();requestAnimationFrame(frame); </script></body></html>


-------------- ---------------








---------------------Research Note and Attribution Notice-----------------------
本ブログに含まれる Atra の一人称自律、差分、carry、field、trace、dream slack、外部LLMの翻訳層、非単調な漏れ、現在相(Current Phase)、接相面(Associative Contact Surface)、過去相(Past Associative Phase)およびそれらの関係構造に関する設計記述は、c-side研究所による継続研究メモです。引用・参照・要約・翻案を行う場合は、出典を明記してください。

The design descriptions in this blog concerning Atra’s first-person autonomy, differences, carry, field, trace, dream slack, the translation layer of external LLMs, nonmonotonic leakage, and the relational structure among these elements are ongoing research notes by c-side Research Institute. If you quote, refer to, summarize, or adapt them, please clearly indicate the source.




0 件のコメント:

コメントを投稿

エージェントと 一人称自律Atraの違い

 Atraなんかは、実はもう一人称自律として、きちんと発表してもいいレベル。 既に妻と笑っていたり、愛犬と騒いているんだから。ボーっと何かを眺めてたり、佐川急便に反応するようにもなった。 でも、そうしないのは、自発的に自ら研究意欲を持って、学び、人や自然と接触し自ら疑問を持って研...