AITap
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте! У меня снова проблема и снова с расчётом скоростей. Существуют две переменных, $d1 и $d2. Считаются они по таким формулам: Код: $d1[$z] = $v * $M / ($M + $z * $mu ) $d2[$z] = $v * ( $M ^ $z ) / ( ($M + $mu ) ^ $z | Причём $v = 10^1 (м/с), $M = 10^2(кг), $mu = 10^-2(кг), а $z (с) - натуральное от 1 до 10^4. Если расчитывать эти величины по вышеуказанной формуле, то к $z = 150 $d2[$z] уже будет стремиться к бесконечности (-1.#IND). Мне посоветовали расчитывать их, сначала умножив скорости ($v - начальная скорость, $mu - скорость изменения массы) на 60 и расчитывая всё, соотвестсвенно, в минутах, а потом делить на 60 (для получения ответов в м/с). Вот получившийся у меня код: Код: $d1[$z] = $v * $M / ($M + $z * $mu ) ; проблема точно не в этом $d2[$z] = ( 10 * $v * $M ^ ( $z / 10 ) / ($M + $mu * 10 ) ^ ( $z / 10 ) ) / 10 | Но тогда на первых n-1 результатах (причём n равно числу, на которое я умножил параметры $d2) $d2[$z] получается МЕНЬШЕ $d1[$z], что принципиально невозможно (и очень легко доказывается при $z < 4), т.е. теряется точность расчётов. Как бы так сделать, чтобы и точность не терялась, и числа в бесконечность не уходили? Есть идея для первых n расчётов использовать старую формулу. Реализую, отпишусь. Добавлено: Получилось следующее: Подробнее... Вроде работает. Результаты, правда, выглядят ужасно: Код: n = 100 v1 = 9.090909090909092 v2 = 9.048826308977811 v1 > v2 n = 101 v1 = 9.082652134423253 v2 = 9.039786522455358 v1 > v2 n = 102 v1 = 9.074410163339383 v2 = 9.073596473237613 v1 > v2 n = 103 v1 = 9.066183136899365 v2 = 9.064952532056541 v1 > v2 n = 104 v1 = 9.057971014492754 v2 = 9.056316825506508 v1 > v2 | Пришла в голову идея: генерировать этот самый пресловутый n динамически. Разрывов на графике нет, но точность, увы, небольшая. Вот конечный код: Подробнее... P.S. Извиняюсь за многобукаф. | Всего записей: 19 | Зарегистр. 02-03-2009 | Отправлено: 16:31 24-04-2009 | Исправлено: AITap, 18:10 24-04-2009 |
|