Высота орбиты спутника

Рассмотрим задачу определения высоты орбиты спутника над поверхностью Земли, если известны масса \(5.96\times 10^{24}\)кг и радиус Земли \(6.37\times 10^{6}\)м. Масса спутника в данном случае при рас­чете высоты орбиты не нужна, а период обращения вводится пользовате­лем. При решении этой задачи воспользуемся тем, что сила гравитационно­го притяжения между Землей и спутником равна
$$F=G\cdot M\cdot m/\left(R+h \right)^{2}$$
где \(G\approx 6.672\times 10^{-11}\) (Нм^2/кг^2) - универсальная гравитационная постоянная. С другой стороны, эту же силу по второму закону Ньютона можно записать как \(F=ma\), где \(a= \omega ^{2}\left(R+h \right)\) есть центростремительное ускорение, а частота \(\omega\) связана с периодом Т соотношением \(\omega=2\pi /T\). Исходя из этих соотношений окончательно получим:
$$h=\sqrt[3]{GmT^{2}/\left(4\pi ^{2} \right)}-R$$
Код для решения этой задачи представлен ниже:
#include
#include 
using namespace std;
int main(){
//Гравитационная постоянная:
const double G=6.672E-11;
//Масса Земли:
const double M=5.96E24;
//Радиус Земли:
const double R=6.37E6;
//Число pi:
const double pi=3.1415;
//Период и высота орбиты:
double T,h;
//Ввод периода (в часах):
cout<<"Enter T = ";
cin>>T;
//Перевод часов в секунды:
T=T*3600;
//Определение высоты:
h=pow(G*M*T*T/4/pi/pi,(double)1/3)-R;
//Перевод в километры:
h=h/1000;
cout << "Height h =" << h << " km\n";
return 0;
}
Онлайн всего: 1
Гостей: 1
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте