文本内容:
#有风条件下lOm/simport numpyas npimportmath#生成随机数风速wind_U=10;#水体Nw=4/3##生成角度序列sita_Rd=listrange0,100,10;sita_R=np.zeros10;#生成实验光子数序列times=[100010000,20000];1Result=np.zeros10,3;Result2=np.zeros10,3;#对角度进行循环for din rangelensita_Rd:d入射角转化为弧度制sita_R[d]=sita_Rd[d]*math.pi/180;##算的平方sigma_2=0,003+
0.00512*wind_U;sigma#对不同光子总数进行循环for tin rangelentimes:#获取光子数a=times[t];#生成随机数和光子数序列相同arry_R=np.random.rand3,a;arry_SlopeAngle=np.zerosa#计算进入水体的光子数num=0;for iin rangel,a:arry_SlopeAngle[i]=np.arctan-2*sigma_2*math.logl-arry_R[0i]**
0.5;1#判断水波相对光线的正负角ifarry_R[l,i]
0.5:arry_SlopeAngle[i]*=-l;空气夹角撇sita_pie=sita_R[d]+arry_SlopeAngle[i];#sita水体夹角sita_T=np.arcsinnp.sinsita_pie/Nw;#sita_TDiff=sita_pie-sita_T;Sum=sita_pie+sita_T;ifSum0,000001:X=np.sinDiff/np.sinSum**2;Y=np.tanDiff/np.tanSum**2;#计算菲涅尔反射系数;P=X+Y/2;Pelse:#计算菲涅尔反射系数;P=Nw-l/Nw+l**2;Pifarry_R[2,i]P:num+=l;结果矩阵Result[d,tRnum/a;#Result2[d,t]=P;(有风条件下菲涅尔反射率)(“光子数分别是)print10m/s,print1OOO,10000,20000(())for iin rangelen Result:(角度为:,,:])print sita_Rd[i],Result。
个人认证
优秀文档
获得点赞 0