登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 qinkong 于 2014-7-19 08:17 编辑
在气象学书上找到的昼长计算公式:
cost=-tgδ·tgφ(其中δ为太阳赤纬,φ为纬度)
昼长T=2t=2arccos(-tgδ*tgφ) 太阳赤纬δ=[0.006918-0.399912cos(b)+0.070257sin(b)-0.006758cos(2b)+0.000907sin(2b)-0.002697cos(3b)+0.00148sin(3b)](180/pi);其中b=2pi(N-1)/365;N为天数,1月1日为0.
相应的我写了个matlab函数:
function T=daylength(lat,day) %其中lat为站点纬度(单位为弧度),day为天数(1月1日为0) x=tan(lat);b=2*pi*(day-1)/365; %b单位为弧度 delta=(0.006918-0.399912*cos(b)+0.070257*sin(b)-0.006758*cos(2*b)+0.000907*sin(2*b)-0.002697*cos(3*b)+0.00148*sin(3*b))*(180/pi); %单位为度 y=tan(delta/180*pi); T=2*acos(-x*y);
但是结果一直不对啊,比如赤道处昼长为12小时。可计算出来的不对啊,如下。 >> daylength(0,100)
ans =
3.1416
其他的结果也不对啊,acos函数的值域为0-pi,那算出来的昼长最大也才2pi啊,这个不可能啊。迷惑了。。。求解!
|