簡單一點的話, 避開 h=0 , 如下
-----------------------------
r=1;
n1=1;
n2=1.56;
for h=0.000001:0.1:2; // 避開 h=0 點
alpha=asin(h/r);
beta=asin(n1/n2*sin(alpha));
pro=sin(beta)/sin(alpha-beta);
length=r*(1+pro);
end
--------------------------
否則可以使用 微積分學到的 l'Hospital 法則 (羅畢達)得到在 h=0 點的極限值
r=1;
n1=1;
n2=1.56;
for h=0:0.1:2;
alpha=asin(h/r);
beta=asin(n1/n2*sin(alpha));
if(alpha==0) then
pro=(n1/n2)/(1-n1/n2); // 0 除以 0 時, 使用 l'Hospital 法則
else
pro=sin(beta)/sin(alpha-beta);
end
length=r*(1+pro);
end