|
Модераторы: mihanik |
|
A32 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 3.1.2013 Репутация: нет Всего: нет |
Не хватает 15 значащих цифр переменной Double. Считаю в макросе орбиту Сатурна - первый з-н Кеплера не выполняется. Не сильно - но до трёх последних значащих цифр доходит. Если считать орбиту спутника Земли - ошибка меньше, но есть - одна цифра. В макросе много операций умножения и ошибка нарастает.
В калькуляторе Windows значащих цифр 32, мне подходит. Можно ли из VBA обратиться к калькулятору или есть другой способ? |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 453 |
Можно. Но при большом количестве операций замаешься ждать результата. Используй внешние библиотеки длинной арифметики (скажем, LongNum http://www.cyberforum.ru/vba/thread1780318.html#post9432563 или там BigRational https://archive.codeplex.com/?p=bcl), или BigInteger из .Net. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Romikgy |
|
|||
Любитель-программер Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: нет Всего: 146 |
может алгоритм подкрутить ? можно на него взглянуть ?
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
A32 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 3.1.2013 Репутация: нет Всего: нет |
Там нечего подкручивать, он простой, как пять копеек. Задаются начальные координаты и начальные скорости, интервал времени dt. Считается сила, действующая на спутник и новые координаты через время dt. Для взглянуть файл прилагается, но без расчётов, т.к. с расчётами он весит 1,5 М и я не хочу грузить сервер форума ненужными данными. Там один макрос - он всё и считает, там всё закомментировано. Расчётов задано 10 тыс., это примерно один оборот спутника при заданных условиях. Кеплеровские площади на Листе2 (там есть 10 расчётов для примера, но всё норм - ошибка появляется где-то после 1000 расчётов), исходные данные на Листе1. Неприятность в том и заключается, что каждый расчёт содержит ошибку, а следующий расчёт исходит из предыдущего и ошибка накапливается. А сервер не дал мне загрузить файл exel. Загрузил текстовой с макросом. Это сообщение отредактировал(а) A32 - 15.3.2018, 01:17 Присоединённый файл ( Кол-во скачиваний: 7 ) Terra.txt 2,09 Kb |
|||
|
||||
A32 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 3.1.2013 Репутация: нет Всего: нет |
Посмотрел и не понял, надо разбираться. Правильно я понял, что длинное число сохраняется As Object ? |
|||
|
||||
Romikgy |
|
||||
Любитель-программер Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: нет Всего: 146 |
A32, это
Sub TR6() вызывается 1000 раз?
эти данные можно увидеть ? и как узнать какие должны быть цифры после 1000 расчетов? что архиваторами не? религия не позволяет? Добавлено через 11 минут и 58 секунд попробуйте заменить его на тип
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
||||
|
|||||
A32 |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 3.1.2013 Репутация: нет Всего: нет |
Они должны быть одинаковыми
Туплю иногда
Запускается один раз вручную RUNом Это сообщение отредактировал(а) A32 - 15.3.2018, 11:11 Присоединённый файл ( Кол-во скачиваний: 3 ) Terra.rar 21,54 Kb |
||||||
|
|||||||
Romikgy |
|
|||
Любитель-программер Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: нет Всего: 146 |
у меня всегда цифры одни и теже
на что смотреть? Добавлено через 2 минуты и 26 секунд или имеется ввиду что на лист 2 5 строка -2,860560000000E+10 а 10000 -2,860560000006E+10 это имелось ввиду? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
A32 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 3.1.2013 Репутация: нет Всего: нет |
Да ну, как это? Уже в 87 строке последние значащие цифры ...9,9988 (Лист2, первый столбец), а дальше есть гораздо больше. Ошибка не нарастает монотонно, а гуляет вокруг среднего значения. Вот я и хочу понять - что это: ошибка вычисления или метода?
Добавлено @ 11:52
Да, конечно. Но это ..0,0565 и вопрос в принципе - где косяк? Это сообщение отредактировал(а) A32 - 15.3.2018, 11:59 |
|||
|
||||
Romikgy |
|
|||
Любитель-программер Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: нет Всего: 146 |
что это за формула
DS1 = (Y11 * (X11 - X10) - X11 * (Y11 - Y10)) / 2 ? что она выражает? по какой причине у вас кусочные данные по х перемножаются с кусочными данными по у ?? Добавлено через 5 минут и 46 секунд
отсюда выводится DS1 = (Y11 * (VX1 * DT) - X11 * (VY1 * DT)) / 2 для какой цели перемножается скорость по оси х со смещением по у ??? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
Romikgy |
|
|||
Любитель-программер Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: нет Всего: 146 |
Я так понимаю, это аналог симуляции , выстрела 1 кг телом с полюса для вывода его на орбиту....
так вот радиус ваш с каждой итерацией уменьшается... соотв. увеличивается гравитация , что видно из листа 5 Вы через землю стреляете? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
A32 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 3.1.2013 Репутация: нет Всего: нет |
Макрос считает орбиту тела (координаты), начиная с заданных, это лист4. Проверкой корректности расчёта является соответствие результатов второму закону Кеплера. DS1 - это площадь треугольника с вершинами в (0,0),(X10,Y10),(X11,Y11), X11 и Y11 считаются так, будто бы на тело НЕ действует центральная сила, второй расчёт DS1 (надо было бы обозвать его DS2) считается с учётом действия центральной силы. Эти площади должны быть равны между собой и равны рассчитанным на предыдущем шаге. И на следующем шаге то же должны быть равны. Любое отклонение является признаком ошибки расчёта. Если бы я стрелял с полюса в Луну - я бы удовлетворился такой точностью. Но у меня другая мысль, которую я хотел бы проверить расчётом. Ещё не проверил, застрял здесь, но, допустим, расчёты её (мысль) подтвердят и я на форуме астрономов говорю (к примеру): "Устройство нашей планетной системы описано неправильно, вот расчёты". Что я услышу в ответ? - А32, ты с начала разберись со своими расчётами - у тебя законы Кеплера не соблюдаются. То, что радиус уменьшается - это нормально, Земля в расчётах предполагается точечной массой и встреча тела с поверхностью не предусмотрена. И начальные скорости заданы произвольно, орбита - эллипс, т.е. и первый закон Кеплера выполняется. Но если задать первую космическую скорость - тело улетает по параболе. Законы Кеплера и в этом случае соблюдаются, а расчёт неправильный, надо искать ошибку. И, возможно, ошибка метода проявляется именно в этом неравенстве площадей. Но это неравенство незначительно, оно, возможно, следствие машинной ошибки. Отсюда и тема - как увеличить точность вычислений для того, что бы понять, откуда растут ноги у этой ошибки. Это сообщение отредактировал(а) A32 - 15.3.2018, 23:52 |
|||
|
||||
Romikgy |
|
||||||
Любитель-программер Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: нет Всего: 146 |
уже интересно , меня смущает формула расчета этого треугольника...
странно ...
в офисе думаю вряд ли получится без сторонних приблуд... я бы посоветовал переписать алгоритм на более инженерной платформе, допустим питон .... ЗЫ а можно линк на этот закон Кеплера и эти площади треугольников, а то кроме математики и физики мало чего знаю... -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
||||||
|
|||||||
Romikgy |
|
|||
Любитель-программер Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: нет Всего: 146 |
Кеплер нигде такого не нашел.... но если учесть что все верно , в ваших формулах, то есть один недочет со стороны математики... если первый вариант еще можно принять как треугольник, то с учетом ускорения треугольника не получится! одна сторона будет кривой... и расчет будет с ошибкой... скорости движения у вас тысячи м\с , т.е. уход за секунду будет очень большим... и разность площадей будет увеличиваться. Если дельту по времени уменьшать , возможно до миллисекунд, а может и до микро , то сторона не будет успевать изгибаться , и разница площадей будет стремится к нулю.... Добавлено через 1 минуту и 39 секунд а что докажет , если площади совпадут ? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
A32 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 3.1.2013 Репутация: нет Всего: нет |
Вы, видимо, не там искали - история вопроса древняя, 17 век. Да и не надо было искать, всё доказывается на школьном уровне, здесь всё на самом деле просто. Но, если интересно, в Математических началах натурфилософии Ньютона (прилагаются) з-н Кеплера доказывается именно так, как у меня считается. Никто, вроде бы, метод не оспорил. Вы первый. Вы всерьёз полагаете, что интеграл криволинейной функции нельзя рассчитать на компьютере потому, что в расчётах используются прямоугольные отрезки? У Ньютона об этом то же есть.
Что расчёт корректен хотя бы в принципе. Это сообщение отредактировал(а) A32 - 16.3.2018, 01:29 Присоединённый файл ( Кол-во скачиваний: 2 ) Newton.jpg 243,72 Kb |
||||
|
|||||
Правила форума "Программирование, связанное с MS Office" | |
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |