当前位置: 代码迷 >> C语言 >> [原创]关于“嫦娥一号”的运行轨道
  详细解决方案

[原创]关于“嫦娥一号”的运行轨道

热度:308   发布时间:2007-11-09 15:38:34.0
以下是引用死了都要C在2007-11-9 10:20:55的发言:

你很喜欢骂人啊??? 怎么用拼音```不敢用字骂```



斑竹也爱灌水?有本事来点干货。


----------------解决方案--------------------------------------------------------
不难的,大概就是高中的几个公式
----------------解决方案--------------------------------------------------------


----------------解决方案--------------------------------------------------------
估计和我一样是学物理的。
----------------解决方案--------------------------------------------------------
晕了,不好好学习就是不行
----------------解决方案--------------------------------------------------------
//楼主问题3的C语言程序公布如下
#include <stdio.h>
#include <math.h>
double GM=6.672e-11 * 5.976e+21; //如果把 5.976e+21 改成 7.35e+19,
double R=6371; //地球的平均半径 //并把6371改成1738,就可算月球卫星。
int main( )
{ double T=0; //秒数累加
double S=0; //里程累加
long i, Nmax=180*60L;
double dth=3.1415926535898/Nmax; //theta增量
double ds; //极坐标下的弧长元
double dt; //时间增量
double Hmax,Hmin,Have,Rmin;
double aa,ee,hh,rr,the,V,temp;
printf("绕地球飞行时的最大、最小高度(km):");
scanf("%lf%*c%lf",&Hmax,&Hmin);
Have = (Hmax+Hmin)/2; //平均高度
aa = R+Have; //椭圆轨道的半长径
ee = (Hmax-Hmin)/2/aa; //偏心率,也称离心率
Rmin = (R+Hmax)*(R+Hmin)/aa; //最小曲率半径
for(i=0; i<Nmax; i++)
{
the = (i+0.5)*dth; //确定theta值
temp=1+ee*cos(the); //中间变量
rr = Rmin/temp; //卫星与地心之间的距离(千米)
hh = rr-R; //卫星相对于地面的高度(千米)
V=sqrt(GM*(2/rr - 1/aa)); //卫星的瞬时速率(米/秒)
ds=dth*Rmin*sqrt(2*temp-1+ee*ee)/(temp*temp)*1000; //以米为单位
dt=ds/V;
T+=dt;
S+=ds; //以米为单位
}
S+=S;
printf("轨道长度的理论值是%0.1lf公里\n",S/1e3);
T+=T; //加上另外半圈所需要的绕行时间
T/=60; //以分钟为单位
if(T<180)
printf("卫星周期的理论值是%0.1lf分钟\n",T);
else
{
long Hour=(long)(T/60);
T-=60*Hour;
printf("卫星周期的理论值是%ld小时%.1lf分钟\n",Hour,T);
}
return 0;
}

[此贴子已经被作者于2007-11-10 21:46:21编辑过]


----------------解决方案--------------------------------------------------------
这么血腥~~~~
----------------解决方案--------------------------------------------------------

高中学文的 物理基本没学 现在看着都头大


----------------解决方案--------------------------------------------------------
  网络上看到北京网友一个帖子,大意说太阳对月球的引力大于地球对月球的引力,为什么
月球只围绕地球转圈子呢?所以近期我如有空闲将优先模拟日、月、地三天体的绕行模拟程序。
-----------------------------------------------------------------------------------
首先实地计算一下,月球受到的两种引力分别有多大?
已知太阳质量M=1.989×1030千克、地球质量M=5.976×1024千克、M=7.35×1022千克
月日平均距离 r=日地平均距离=1天文单位=1.496×1011
月地平均距离 r=3.844×108
引力常数G=6.672×10-11
根据万有引力定律:F=Gm1m2/r2
太阳对月球的引力: G×M×M/r24.358×1020牛顿
地球对月球的引力: G×M×M/r21.983×1020牛顿
可见太阳对月球的引力约为地月引力的2.2倍,北京网友所言非虚。然而北京这位网友却荒唐地
认为日、月之间万有引力定律失效。实际上当人们说月球的公转轨道是个近地点363300千米
远地点405500千米的椭圆时,参照系是地球,不是太阳如果站在太阳的立场上看月球运动,
则看到的是两种运动的叠加:⑴在陪着地球一块绕日旋转的基础上追加⑵相对于地球的旋转运动。

显然与太阳相比,地球算不上好的惯性参照系。推而广之,太阳与银心(银河系中心)相比,也算
不上好的惯性参照系呢:据天文观测太阳系每时每刻以每秒300公里的速度绕着银心作近似的匀速
圆周运动,周期约为两亿年!这表明
太阳系与银心之间的距离 r=300千米/秒×(3600秒×24)×365×2×108/2π=30×1016千米
哇噻,三十亿亿公里!一个天文数字。光线在真空中每秒走三十万公里,两者除一下,得到:
一万亿秒(人的寿命仅为20~30亿秒)约合三万二千年,故太阳系到银心的距离是3.2万光年
根据向心力与万有引力相等的物理学原理,可以求得
银心质量M=r2/G=40×1040千克,约合太阳质量的两千亿倍。
当然并不像太阳质量那样地高度聚集,这里的所谓银心质量分布在半径为3.2万光年的球内
所以天文学家有理由宣称银河系大约由两三千亿颗恒星组成。具有讽刺意味的是,银河系的
平均密度却小得可怜,不妨计算一下:M/[4π/3×(r)3]=3.5×10-21千克/米3
请注意:标准状况下空气密度为1.29千克/米3星空、星空,原来真的很“空”
------------------------------------------------------------------------------------
<下转23楼>

[此贴子已经被作者于2007-11-14 10:06:24编辑过]


----------------解决方案--------------------------------------------------------

比较有深度....


----------------解决方案--------------------------------------------------------
  相关解决方案