Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти

Аппроксимация

Тема в разделе "Общие вопросы", создана пользователем Nikonte, 2 янв 2013.

  1. kub13

    Форумчанин

    Регистрация:
    3 сен 2009
    Сообщения:
    115
    Симпатии:
    141
    Адрес:
    Липецк
    #41
  2. Верещагин

    Верещагин Модератор
    Форумчанин

    Регистрация:
    6 мар 2008
    Сообщения:
    2.359
    Симпатии:
    239
    Адрес:
    Казахстан. Петропавловск.
    Если говорить о продуктах Кредо-Диалог, то стоит упомянуть, что задача аппроксимации окружности решается в Credo III (Топоплан, Линейные Изыскания, Генплан и т.д.) одной командой "Окружность - Аппроксимировать по точкам".

    Полагаю, что сходный метод есть и в программах, работающих на движке Автокада.

    Разумеется, обсуждение вопроса "Как это делается" гораздо полезнее и интереснее, чем просто совет "тыкай в эту кнопку". Но теперь, когда тема достигла определенного развития, стоит и указать на то, что практически такие задачи можно решать и не включая мозг. Спасибо программистам.
     
    #42
    Lex K-G нравится это.
  3. tsg

    tsg
    Форумчанин

    Регистрация:
    5 июн 2012
    Сообщения:
    71
    Симпатии:
    11
    да, точно. Извиняюсь, когда переписывал данные, округлил невнимательно. Проклятый аклоголь! Для себя выводил пять знаков после запятой, значение 1223,38991.

    Как решать подобные вещи для круга и эллипса, кому интересно и не страшат частные производные, могу объяснить. С т. з. математики это очень изящно получается.
     
    #43
  4. Lex K-G

    Форумчанин

    Регистрация:
    4 июл 2012
    Сообщения:
    1.610
    Симпатии:
    1.061
    Адрес:
    οἰκουμένη
    Да, расскажите!
     
    #44
  5. vadimart92

    Регистрация:
    23 окт 2012
    Сообщения:
    2
    Симпатии:
    3
    В російській локалізації excel - надстройка "Поиск решения" (http://goo.gl/9kJwi).
    Раскрыть Спойлер
    1.PNG

    Підбираємо параметри x0, y0,r так, щоб сума квадратів відхелень була мінімальною (пошук рішень в excel взагалі то не за МНК, але так як залежність між змінними не лінійна це найпростіший спосіб)
    Раскрыть Спойлер
    2.png

    Для еліпса - аналогічно, тільки поправки обчислюємо з рівняння еліпса і відповідно маємо ще одну змінну додадкову вісь еліпса:
    Раскрыть Спойлер
    3.PNG

    Раскрыть Спойлер
    4.png
     
    #45
    мирось, Lex K-G и Qvinto нравится это.
  6. В.Шуфотинский

    В.Шуфотинский Модератор
    Команда форума Форумчанин

    Регистрация:
    10 дек 2008
    Сообщения:
    17.296
    Симпатии:
    4.952
    vadimart92, будь ласка, якщо є така можливість, пишіть свої повідомлення російською мовою.
     
    #46
    мирось нравится это.
  7. A denial

    Регистрация:
    27 дек 2012
    Сообщения:
    6
    Симпатии:
    4
    Всем добрый вечер!Действительно интересно поразмыслить как это можно сделать без каких либо встроенных функций в каком-либо софте. Кстати такая задача была у нас в своё время (когда учился в универе), решали мы её в маткаде. А вообще функция апроксимации набора точек окружностью есть как в цивиле так и в лэнд десктоп, там ещё и веса можно отдельным точкам назначать, усреднение производится естественно по методу наименьших квадратов.
     
    #47
  8. tsg

    tsg
    Форумчанин

    Регистрация:
    5 июн 2012
    Сообщения:
    71
    Симпатии:
    11
    Итак, господа, постарался подробно все описать. Если есть вопросы задавайте. Мог сделать опечатку ибо писалось все под бокал рома с колой... Проклятый аклоголь! Файл прилагаю в zip-е, ибо docx грузить не хочет. Kub13 у вас прекрасный способ с комбинированием всевозможных уравнений, чтобы система была не переопределенной. Сам сходу не смог алгоритм придумать по комбинированию исходных данных в уравнения с последующим решением
     

    Вложения:

    • art.zip
      Размер файла:
      40,1 КБ
      Просмотров:
      39
    #48
    A denial и vadimart92 нравится это.
  9. A denial

    Регистрация:
    27 дек 2012
    Сообщения:
    6
    Симпатии:
    4
    Сразу извиняюсь если что-то подобное выкладывали выше. Это решение в маткаде методом итераций.
     

    Вложения:

    #49
  10. A denial

    Регистрация:
    27 дек 2012
    Сообщения:
    6
    Симпатии:
    4
    tsg, с окружностью действительно очень классно получилось!всё понятно,спасибо!а как быть с эллипсом?там же надо найти получается координаты центра,две полуоси и ориентирование одной из осей,так?
     
    #50
  11. tsg

    tsg
    Форумчанин

    Регистрация:
    5 июн 2012
    Сообщения:
    71
    Симпатии:
    11
    С эллипсом, если его оси параллельны осям прямоугольной системы координат, нужно вычислить 4 частных производных. Для определения уравнения надо 4 точки. Уравнение эллипса брать в виде
    b^2(x-xC)^2 + a^2(y - yC)^2 - (a*b)^2 = 0,
    где, a и b - полуоси, xC и yC - координаты центра эллипса, производные по a, b, xC, yC. Получается все почти в копейку как и с кругом.

    Но! Эллипс можно еще и поворачивать! Если угол поворота осей заранее известен, то он в качестве параметра минимизации не участвует (те же 4 параметра), а вот если учитывать и его... Тут сдаюсь. Надо брать учебник алгебры, например Куроша, смотреть приведение квадратичных форм к каноническому виду, смотреть производные. Далее пытаться линеаризовать производные. Но скорее всего такой красоты как с кругом/"просто эллипсом" не получиться и линеаризацию придется делать путем разложения в степенные ряды, ну а далее стандартный МНК для систем линейных уравнений. Тут проще Minimize Маткадовский использовать как у вас в примере приложенном
     
    #51
  12. X-Y-H

    X-Y-H Администратор
    Команда форума Форумчанин

    Регистрация:
    18 май 2007
    Сообщения:
    21.789
    Симпатии:
    7.068
    Адрес:
    Россия
    Линейные изыскания, графическим методом аппроксимации окружности из точек.
    окружность аппроксимирующая точки.PNG
     
    #52
    Самстон и Lex K-G нравится это.
  13. Lex K-G

    Форумчанин

    Регистрация:
    4 июл 2012
    Сообщения:
    1.610
    Симпатии:
    1.061
    Адрес:
    οἰκουμένη
    а результаты -координаты центра, радиус, отклонения от радиуса набора точек можно покрупнее? Или в TXT?
     
    #53
  14. X-Y-H

    X-Y-H Администратор
    Команда форума Форумчанин

    Регистрация:
    18 май 2007
    Сообщения:
    21.789
    Симпатии:
    7.068
    Адрес:
    Россия
  15. A denial

    Регистрация:
    27 дек 2012
    Сообщения:
    6
    Симпатии:
    4
    Кому интересно могу скинуть программку для обычного автокада с реализованным алгоритмом tsg.
     
    #55
    Lex K-G нравится это.
  16. tsg

    tsg
    Форумчанин

    Регистрация:
    5 июн 2012
    Сообщения:
    71
    Симпатии:
    11
    Вы мне льстите :). Это не я придумал, чье авторство не знаю. Я только постарался понятно и доступным языком описать "как это работает".
     
    #56
  17. Lex K-G

    Форумчанин

    Регистрация:
    4 июл 2012
    Сообщения:
    1.610
    Симпатии:
    1.061
    Адрес:
    οἰκουμένη
    Естесссственно, интересно! Можете разместить здесь?
     
    #57
  18. A denial

    Регистрация:
    27 дек 2012
    Сообщения:
    6
    Симпатии:
    4
    Всем доброго дня!Выкладываю лисп файл. Сразу прошу не судить строго, так как программист из меня никакой, развлекаюсь так...можно сказать для души=)поэтому знающим людям код конечно же покажется корявым и вообще ужасным, но для меня главное что работает=)
    1. Сохраняем файл на компьютере (например просто на диске С).

    2.Далее, запускаем Автокад и выбираем Сервис >> Автолисп >> Загрузить (Tools >> AutoLISP >> Load) или набираем в командной строке _appload.
    а. Перейдите к папке, куда Вы сохранили lisp файл.
    б. Выберите файл, который Вы хотите загрузить из списка.
    в. Нажмите кнопку Загрузить.
    (Если все прошло удачно, Вы должны увидеть надпись "апроксимация точек окружностью.lsp успешно загружено")
    г. Нажмите кнопку Закрыть для завершения команды.

    Есть много других спопособ запустить файл, кто хочет может найти в инете, можно сделать чтобы он по кнопочке вызывался.
    В программу можно добавить какой-нибудь алгоритм отбраковки выбросов или оценку точности при желании.
     

    Вложения:

    #58
    Земледел, Alex_Shaton и Lex K-G нравится это.
  19. ThomasHinkse

    Регистрация:
    27 мар 2018
    Сообщения:
    3
    Симпатии:
    0
    Здравствуйте, может ли кто-то подсказать, существуют ли программные методы аппроксимации N-ного колличества точек плоскостью?[​IMG]
     
    #59
  20. MaxKal

    Форумчанин

    Регистрация:
    17 окт 2014
    Сообщения:
    172
    Симпатии:
    206
    Адрес:
    Краснодар
    есть простой алгоритм http://www.janssenprecisionengineering.com/downloads/Fit-plane-through-data-points.pdf правда обратную матрицу нужно считать, но это можно реализовать в автокаде, в пространстве имён Autodesk.AutoCAD.Geometry есть метод Inverse()
    --- Сообщения объединены, 12 мар 2019, Оригинальное время сообщения: 12 мар 2019 ---
    или нужна готовая реализация?
    --- Сообщения объединены, 12 мар 2019 ---
    Кстати о строгости МНК, на весах вся его строгость заканчивается, да и с вылетами что делать?
     
    #60

Поделиться этой страницей

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление