Брякнуло мне в голову вычислить длинну дуги нашей планеты. Лезу в Википедию. Параметры эллипса орбиты есть. Смотрю вычисление длинны дуги сводится к неберущемуся интегралу.
Ну думаю не проблема. Интеграл - площадь между функцией и Ox( простите за столь вульгарное упрощение. Как выразиться более грамотно - я не знаю).
Составил программу на Си
alex@alex-Lenovo-B570 /media/Files/Programming/Cpp/C $ cat length.c
#include "math.h"
#include <stdio.h>
int main(){
double a = 149597887.5;
double e = 0.016710219;
double b =a*sqrt(1-pow(e,2));
double t;
double dt = 0.0005;
double Summ =0;
for(t = 0;t<360;t+=dt){
Summ = Summ+dt*sqrt(1-pow(e,2)*pow(cos(t*M_PI/180),2));
//Summ = Summ+dt*sqrt(a*a*sin(t*M_PI/180)*sin(t*M_PI/180)
// +b*b*cos(t*M_PI/180)*cos(t*M_PI/180));
}
Summ = Summ*a;
printf("%f \n",Summ);
double L= 4*(M_PI*a*a+ pow(a-b,2))/(a+b);
printf("%f \n",L);
}
alex@alex-Lenovo-B570 /media/Files/Programming/Cpp/C $ ./a.out
53851554572.905037
940016879.701284
Считает полный бред. Скажите, где я ошибся?
И это ещё не всё. Я решил сам выразить длинну эллипса по этой формуле
Для этого я выразил y из канонического уравнения эллипса.
Продифиринцировал его и возвёл в квадрат. Получился простой интеграл. Который в ответе даёт полный бред. Снова, где я ошибся?
Я понимаю, что после взятия интегралла от выраженного Y. Нужно будет умножить на 2, но и это не помогает. Да и Я попенцией чую, что я сделал что-то не так. Потому, что мой получившийся интеграл проще палёной репы, а в ВИКИ написано, что длинна эллипса не выражается в элементарных функциях.