DEMO 3 可能性の矢印
このデモで伝えたいこと
量子力学では、最初から確率を足しません。先に、「どのくらい強い可能性か」「どちら向きの可能性か」を持つ「矢印」を足します。そして最後に、その矢印の長さから確率を求めます。この矢印が、量子力学でいう確率振幅のやさしい表現です。
なぜ、ただの数字ではなく矢印なのか
普通の確率なら、・道1を通る確率が30%
・道2を通る確率が20%
と足せます。しかし量子では、同じ30%と20%でも、波のタイミングが違うと結果が変わります。そこで必要になるのが、長さだけでなく向きも持つ量です。
矢印には、
・長さ
・方向
があります。長さだけではなく、向きも違う。これが普通の確率との大きな違いです。
画面上の矢印1と矢印2
青い矢印が「可能性1」。桃色の矢印が「可能性2」です。たとえば二重スリットなら、
・青:上の穴から届く可能性
・桃:下の穴から届く可能性
と考えられます。この2本を足した結果が、黄色い矢印です。
矢印を足すとはどういうことか
矢印の足し算では、1本目の先端から2本目をつなげます。その出発点から最後の先端までを結んだものが、合成した矢印です。
同じ向きの場合
青と桃が同じ方向を向いているとします。それぞれ長さ1なら、の長さになります。黄色い矢印は長くなります。
これは、2人が同じ方向へロープを引くのと似ています。力が合わさります。量子では、可能性が強め合っています。
反対向きの場合
青が右、桃が左を向いているとします。同じ長さなら、
になります。黄色い矢印は消えます。これは、同じ強さで、反対方向へロープを引くのと同じです。どちらも力を出しているのに、結果は動きません。量子では、可能性が打ち消し合っています。
斜めの場合
完全に同じ向きでも、完全に反対でもない場合は、途中の長さになります。 つまり、
・一部は強め合う
・一部は打ち消し合う
という状態です。
なぜ最後に二乗するのか
画面では、「確率 = 合成した矢印の長さ × 合成した矢印の長さ」と表示しています。数式では、
です。
ここで は可能性の矢印。
はその長さです。そして確率は、その長さの二乗です。たとえば、合成矢印の長さが2なら、
になります。
長さが0なら、
です。
なぜ「可能性」と「確率」を分けるのか
矢印は、まだ結果そのものではありません。それは、「結果になる前の可能性」です。量子力学では、この前段階で可能性同士が影響し合います。その後で、観測される確率になります。
普通の確率では、
と足します。
量子では、
です。この順番の違いが、干渉を生みます。
二重スリットとのつながり
二重スリットのスクリーン上のある場所を考えます。 そこへ届く可能性は2つあります。
・上の穴から届く
・下の穴から届く
それぞれに矢印があります。場所によって、2本の矢印の向きが変わります。
「ある場所では同じ向き」
可能性が強め合い、電子が多く現れます。
「別の場所では反対向き」
可能性が消し合い、電子がほとんど現れません。
これが、明るい縞と暗い縞になります。
画面の矢印が、電子の進む方向を示しているわけではありません。電子が右へ飛んでいるから矢印が右を向いている、という意味ではないです。矢印の向きは、「波のタイミング」「可能性の位相」を表しています。つまり、空間上の方向とは別の「計算上の向き」です。初めての方は、「可能性にもタイミングがある」と考えるとよいです。
------- probability_arrows.html JavaScript (教育用)なぞってコピペ ------------
<!-- 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">0°</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 すべての経路
このデモで伝えたいこと
ファインマンは、量子の動きを考えるとき、電子が実際に通った一本の道だけを探すのではなく、出発点から到着点までの、考えられるすべての道を計算に入れるという方法を使いました。これが経路積分の考え方です。
画面の左と右
左の黄色い点が出発点です。右の青い点が到着点です。その間に、たくさんの曲がった線があります。 ・ほぼまっすぐな道
・少し曲がった道
・大きく遠回りする道
が表示されています。
電子が本当に全部の線を走るのか
この絵をそのまま、電子が分裂して、全部の道を走ったと受け取るのは危険です。この線は、電子の映像ではありません。これは、「すべての経路を計算に入れる」という方法を可視化したものです。つまり説明図です。「 それぞれの道に時計を持たせる」
ファインマン流の説明では、それぞれの経路に小さな時計を持たせます。電子がその経路を通ったと仮定したとき、時計の針が一定の速さで回ると考えます。
・道が長いほど、時計はたくさん回ります。
・道が短いほど、時計は少ししか回りません。
到着したときの針の向きが、その経路の「可能性の矢印」です。
ファインマン流の説明では、それぞれの経路に小さな時計を持たせます。電子がその経路を通ったと仮定したとき、時計の針が一定の速さで回ると考えます。
・道が長いほど、時計はたくさん回ります。
・道が短いほど、時計は少ししか回りません。
到着したときの針の向きが、その経路の「可能性の矢印」です。
なぜ道の長さで針が変わるのか
経路が違えば、通る時間や作用が違います。本格的な量子力学では、経路ごとに、という振幅を与えます。ただし初めての方には、この式を出さなくても大丈夫です。やさしく言えば、「道が違えば、時計の針が到着時に違う向きを向く]ということです。
遠回りの道はなぜ消えやすいのか
大きく遠回りする経路では、少し道が変わっただけで長さが大きく変わります。
すると時計の針も、
・右を向く
・上を向く
・左を向く
・下を向く
というように、ばらばらになります。ばらばらの矢印を全部足すと、互いに打ち消し合います。
たとえば、
・右向き1本
・左向き1本
ならゼロです。
・上向き1本
・下向き1本
もゼロです。多くの遠回り経路は、全体として消えやすいのです。
まっすぐに近い経路では、少し道を変えても長さがあまり変わりません。そのため時計の針の向きも似ています。「似た方向の矢印を足すと、強く残ります。」つまり、「まっすぐに近い経路の周辺では、可能性が強め合う」のです。これが、日常の物体がだいたい普通の経路を進む理由へつながります。
ボールを投げると、だいたい決まった放物線を描きます。光も、普通は直進します。ファインマンの見方では、「本当はたくさんの経路を計算に入れているが、普通の経路以外は打ち消し合って見えなくなる」と考えます。残るのが、古典力学でいう「最も自然な経路」です。これは最小作用の原理とつながります。ただし、「必ず最短距離」という意味ではありません。
正確には、「経路を少し変えても作用がほとんど変わらないところ」が残ります。
・左を向く
・下を向く
というように、ばらばらになります。ばらばらの矢印を全部足すと、互いに打ち消し合います。
たとえば、
・右向き1本
・左向き1本
ならゼロです。
・上向き1本
・下向き1本
もゼロです。多くの遠回り経路は、全体として消えやすいのです。
まっすぐに近い道はなぜ残るのか
まっすぐに近い経路では、少し道を変えても長さがあまり変わりません。そのため時計の針の向きも似ています。「似た方向の矢印を足すと、強く残ります。」つまり、「まっすぐに近い経路の周辺では、可能性が強め合う」のです。これが、日常の物体がだいたい普通の経路を進む理由へつながります。
古典力学とのつながり
ボールを投げると、だいたい決まった放物線を描きます。光も、普通は直進します。ファインマンの見方では、「本当はたくさんの経路を計算に入れているが、普通の経路以外は打ち消し合って見えなくなる」と考えます。残るのが、古典力学でいう「最も自然な経路」です。これは最小作用の原理とつながります。ただし、「必ず最短距離」という意味ではありません。 正確には、「経路を少し変えても作用がほとんど変わらないところ」が残ります。
時計の回りやすさ
デモの「時計の回りやすさ」を上げると、道の長さの違いによって針の向きが大きく変わります。すると、遠回りの経路はよりばらばらになります。逆に、ゆっくり回ると、多少遠回りしても針の向きが似たままです。これは概念的には、波長や作用の大きさと関係しています。ただし、このデモでは厳密な物理単位は使っていません。 経路の数を増やすと、より多くの可能性を足し合わせます。少ない経路だけを見ると、偶然針が揃ったり、ばらばらになったりします。
経路を増やすほど、
・遠回りは打ち消し合う
・中央付近が残りやすい
という傾向が見えやすくなります。
遠回りの大きさ
このスライダーは、経路がどのくらい大きく曲がるかを変えています。大きくすると、
・非常に遠回りする経路
・少し曲がる経路
・ほぼまっすぐな経路
の違いがはっきりします。遠回りの道では、時計の針が激しくばらつきます。
2つのデモのつながり
DEMO 3は、可能性の矢印をどう足すかを見せています。
DEMO 4は、その矢印が、たくさんの経路からどう集まるかを見せています。
順番としては、「一本一本の可能性には矢印がある」「矢印は向きによって強め合ったり消えたりする」「すべての経路に矢印を与える」「全部足す」「残った場所が、実際に現れやすい結果になる」となります。
前日話した「500円の切符」とのつながり
光電効果では、「出口を開けるには500円の切符が必要」
「100円玉を何人が持ってきても、一人分の切符にはならない」
という説明をしました。
あれは、「一個の光子が必要なエネルギーを持っているか」を説明しています。
今回の矢印のデモは別の話ですが、同じように考えると分かりやすいです。
光電効果
一個分のエネルギーが足りるかどうか。
干渉
一個一個の可能性の向きが揃うかどうか。
つまり量子力学では、エネルギーは一個分ずつ受け渡される可能性は向きを持って足されるという、二つの不思議な規則があります。
------- all_paths.html JavaScript (教育用)なぞってコピペ ------------
<!-- 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 件のコメント:
コメントを投稿