Цитата: GaLL от ноября 5, 2012, 16:27Да они везде сильно расходятся, это только отрывок вывода.
Это выводятся только те случаи, когда два варианта вычислений сильно расходятся?
Цитата: GaLL от ноября 5, 2012, 17:18Ну видимо поэтому они так и сделали, наверное.
Если требуется вычисление расстояния между всеми парами точек, то выгоднее сначала перевести координаты в декартовы, а потом уже считать все пары расстояний. Если каждая точка встречается в запросах на расстояние в среднем раз 10 и более, то, очевидно, тоже (если конечно они уже все известны заранее).
Цитата: GaLL от ноября 5, 2012, 14:08Действительно, спасибо. Я не перепроверял их алгоритм, а стоило.
Надо z = cosf(theta);
Цитироватьtheta: 1.000000, mytheta: 0.989693
theta: 0.999999, mytheta: 0.633222
theta: 0.999999, mytheta: 0.428785
theta: 0.999999, mytheta: 0.945083
theta: 0.999998, mytheta: 0.884490
theta: 0.999999, mytheta: 0.586955
theta: 0.999999, mytheta: 0.530499
theta: 0.999999, mytheta: 0.919175
theta: 0.999998, mytheta: 0.857468
theta: 1.000000, mytheta: 0.439090
theta: 1.000000, mytheta: 0.408172
theta: 1.000000, mytheta: 0.270013
theta: 1.000000, mytheta: 0.163122
theta: 1.000000, mytheta: 0.054385
theta: 1.000000, mytheta: 0.987898
Цитата: Квас от июля 22, 2011, 13:45Цитата: RawonaM от июля 22, 2011, 13:35Цитата: Квас от июля 22, 2011, 13:29В обосновании надо быть аккуратным, потому что ряды с общим членом, эквивалентным 1/n, расходятся. Как указано в вики, железобетонно будет через предел.Так я через предел и нашел. А как еще?
Да мало ли? Например,
ЦитироватьДостаточно записать в таком виде i-ую частичную сумму, там получится
Это решение не годится без серьёзных пояснений, потому что производится перегруппировка членов условно сходящегося ряда.
Цитата: RawonaM от ноября 5, 2012, 12:15Надо z = cosf(theta);
phi = ra * dpi/180.0;
theta = (90.0-dec)*dpi/180;
x = sinf(theta)*cosf(phi);
y = sinf(theta)*sinf(phi);
z = sinf(cosf(theta));
Цитата: GaLL от ноября 5, 2012, 13:38Поменял, вот результат:
Раз от полюса, то должно быть:
sinf(pra)*sinf(qra)*cosf(pdec-qdec)+cosf(pra)*cosf(qra)
Цитироватьtheta: 0.999560, mytheta: 0.989693
theta: 0.999563, mytheta: 0.633222
theta: 0.999563, mytheta: 0.428785
theta: 0.999564, mytheta: 0.945083
theta: 0.999563, mytheta: 0.884490
theta: 0.999563, mytheta: 0.586955
theta: 0.999563, mytheta: 0.530499
theta: 0.999564, mytheta: 0.919175
theta: 0.999563, mytheta: 0.857468
theta: 0.999567, mytheta: 0.439090
theta: 0.999569, mytheta: 0.408172
theta: 0.999569, mytheta: 0.270013
theta: 0.999568, mytheta: 0.163122
theta: 0.999568, mytheta: 0.054385
theta: 0.999569, mytheta: 0.987898
Цитата: GaLL от ноября 5, 2012, 13:31От полюса, они тут вычисляются:Цитата: RawonaM от ноября 5, 2012, 12:15printf("theta: %f, mytheta: %f\n", theta, cosf(pra)*cosf(qra)*cosf(pdec-qdec)+sinf(pra)*sinf(qra));pra и qra отсчитываются от полюса или от экватора?
phi = ra * dpi/180.0;
theta = (90.0-dec)*dpi/180;
x[i] = sinf(theta)*cosf(phi);
y[i] = sinf(theta)*sinf(phi);
z[i] = sinf(cosf(theta));
raa[i] = phi;
deca[i] = theta;
Цитата: RawonaM от ноября 5, 2012, 12:15pra и qra отсчитываются от полюса или от экватора?
printf("theta: %f, mytheta: %f\n", theta, cosf(pra)*cosf(qra)*cosf(pdec-qdec)+sinf(pra)*sinf(qra));
Страница создана за 0.084 сек. Запросов: 23.