用MATLAB验证折射定律
<div>用MATLAB验证折射定律</div><div>折射定律,又称斯涅尔定律(Snell’s Law)。简单描述为:光线的入射角和折射角的正弦之比,为一常数。可写为:</div>
<div>sinθ1*n1=sinθ2*n2</div>
<div>式中,θ1/θ2分别是入射角和出射角,n1/n2分别是介质1和介质2的折射率。</div>
<div>要证明这个定律,有多种方法。本文采用费马原理,通过MATLAB进行计算。</div>
<div>费马原理提出:光线的传播路径,满足平稳时间原理。也就是时间变化最平稳的路径。光的传播速度V=C/n, 即:光线在不同介质中的传播速度不同。</div>
<div></div>
<div>图一</div>
<div>如图一,光线由P点经过Xi点,由介质n1进入介质n2,达到Q点。按照费马原理计算xi的位置,从而验证折射定律。P点到Q点的时间为:</div>
<div></div>
<div>可以通过MATLAB画出(T,x) 曲线,可以看出,该曲线中,T只有最小值。找出最小值对应的x值,便可以得出唯一入射点。</div>
<div>图二是计算得出的结果。</div>
<div>条件为:a=2; b=2; l=8; n1=1; n2=1.8;</div>
<div></div>
<div>图二</div>
<div>图三是连接光路的图。</div>
<div></div>
<div>图三</div>
<div>通过简单计算,可以验证折射定律: sinθ1*n1=sinθ2*n2。</div>
<table border="1">
<tbody>
<tr>
<td> </td>
<td><strong>x</strong></td>
<td><strong>y</strong></td>
<td><strong>R</strong><strong>=</strong><strong>sqrt</strong><strong>(x^2+y^2)</strong></td>
<td><strong>SINθ(=X/R)</strong></td>
<td><strong>n</strong></td>
<td><strong>SINθ*n</strong></td>
</tr>
<tr>
<td><strong>入射P</strong></td>
<td>6.75</td>
<td>2</td>
<td>7.040064</td>
<td>0.958798113</td>
<td>1</td>
<td>0.9587981</td>
</tr>
<tr>
<td><strong>折射Q</strong></td>
<td>1.25</td>
<td>2</td>
<td>2.358495</td>
<td>0.52999894</td>
<td>1.8</td>
<td>0.9539981</td>
</tr>
</tbody>
</table>
<p> </p>
<p> 直接通过T(x)函数对x求导,使T'(x)=0,也可以证明折射定律。</p>
页:
[1]