Высота орбиты спутника
Рассмотрим задачу определения высоты орбиты спутника над поверхностью Земли, если известны масса \(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; }