Как оптимизировать два диапазона для определения точки пересечения между двумя кривыми - PullRequest
0 голосов
/ 13 февраля 2019

Я начинаю эту тему, прося вашей помощи в Excel.Основная цель - определить координаты точки пересечения P = (x, y) между двумя кривыми (кривая A, кривая B), моделируемыми точками.Кривые являются нелинейными, и каждая определяющая точка определяется с помощью сложных уравнений (уравнения зависят от множества параметров, выбранных пользователем, а также пользователь выберет количество точек, которые будут определять точность кривых).То есть каждая кривая (кривая A и кривая B) всегда изменяется в плоскости XY (координата Z всегда равна нулю, мы работаем в плоскости XY) в соответствии с входными параметрами, а количество определяющих точек такжев зависимости от выбора пользователя.

Моя первая попытка состояла в том, чтобы определить точку пересечения через уравнения тренда каждой кривой (я использовал функцию ЛИНЕЙН для определения коэффициентов полиномиального уравнения) и путем решения, поставив ихв систему.Проблема в том, что Excel не очень хорошо интерполирует кривые, потому что они слишком широкие, тогда точка пересечения (решение системы) очень далека от реального решения.Затем я хочу укоротить диапазоны точек, чтобы найти два определяющих уравнения тренда для кривых, обрезая часть кривых, где не может существовать пересечение.

Сегодня, чтобыЧтобы найти решение, я строю кривые на Siemens NX cad с использованием многосегментных сплайнов с порядком 3, а затем легко могу найти координаты точки пересечения.Обратите внимание, что я использую многосегментные сплайны, чтобы быть более точным с приближением функций кривой A и кривой B.

Поскольку я хочу отказаться от инструмента CAD и всегда оставаться в Excel, есть лиспособ выбора более короткого диапазона определяющих точек, близких к точке пересечения, чтобы лучше аппроксимировать кривую A и кривую B уравнениями тренда (функция Линеста с 4 точками и сплайн 3-го порядка), а затем найти решение?

Я прилагаю картинку, чтобы дать вам пример кривой А и кривой В на плоскости: https://postimg.cc/MfnKYqtk

По следующей ссылке вы можете найти файл Excel с точками координат и графиком кривой: https://www.mediafire.com/file/jqph8jrnin0i7g1/intersection.xlsx/file

Надеюсь решить эту проблему с вашей помощью, заранее спасибо!kalo86

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

решение,

Большое спасибо за ответ, вы отлично отцентрировали мою цель.Ваше решение (для сглаженных линий) очень близко к тому, что я определил в Siemens NX.Я собираюсь прочитать документацию по предоставленной ссылке https://pomax.github.io/bezierinfo/, чтобы лучше понять математику этого аргумента.

Затем, чтобы возобновить мой запрос, вы смогли найти координаты(x, y) точки пересечения двух кривых без прохождения через усовершенствованную систему САПР с очень хорошей точностью.

Я начинаю учиться сейчас, с наилучшими пожеланиями!

kalo86

0 голосов
/ 22 февраля 2019

Ваш вопрос дал мне несколько дней на размышления и исследования.С помощью https://pomax.github.io/bezierinfo/

§ 27 - Пересечения (пересечения линия-линия)

и

§ 28- Кривая / пересечение кривой

Ваша проблема может быть решена в Excel.О тайне сглаженных линий Excel вы можете узнать подробности здесь: https://blog.splitwise.com/2012/01/31/mystery-solved-the-secret-of-excel-curved-line-interpolation/

Автор этой подборки - доктор Брайан Т. Мерфи, доктор философии, PE из www.xlrotor.com.Вы найдете детали здесь:https://www.xlrotor.com/index.php/our-company/about-dr-murphy
https://www.xlrotor.com/index.php/knowledge-center/files
=> см. Smooth_curve_bezier_example_file.xlshttps://www.xlrotor.com/smooth_curve_bezier_example_file.zip

Эти трикотажные вместе вы получите следующие результаты для пересечения данных кривых:

for the straight line intersection:
(x = -1,02914127711195 / y = 23,2340949174492)

for the smooth line intersection:
(x = -1,02947493047196 / y = 23,2370611219553)

Для полной автоматизации вашей задачи вам нужно будет добавить больше деталей относительно необходимой точности и деталей, которые вам понадобятся для дальнейшей обработки (и это на самом деле не входит в сферу применения этого сайта ;-). Пересечение прямых:

enter image description here Пересечение сглаженных линий: enter image description here сравнительные таблицы: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...