Приближение с помощью кривых

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Приближение кривой, имеющей шум (случайные отклонения), с помощью модели асимметричного пика с итеративным процессом (алгоритм Гаусса — Ньютона с переменным коэффициентом затухания α).
Сверху: исходные данные и модель.
Снизу: изменение нормализованной суммы квадратов отклонений.

Приближение с помощью кривых [1][2] — это процесс построения кривой или математической функции, которая наилучшим образом приближается к заданным точкам [3] с возможными ограничениями на кривую [4]. Для построения такого приближения может использоваться либо интерполяция [5], где требуется точное прохождение кривой через точки, либо сглаживание[en][6][7], когда «сглаживающая» функция проходит через точки приближённо. Связанный раздел — регрессионный анализ[8][9], который фокусируется, главным образом, на вопросах статистического вывода, таких как, какая неопределённость заключена в кривой, которая приближает данные с некоторыми случайными ошибками. Построенные кривые могут быть использованы для визуализации данных [10][11], для вычисления значений функции в точках, в которых значение не задано [12] и для определения связи между двумя и более переменными[13]. Экстраполяция означает использование полученной кривой за пределами данных, полученных из наблюдения [14], и порождает некоторую неопределённость[15], поскольку может зависеть от метода построения кривой.

Различные типы приближения с помощью кривых[править | править код]

Приближение заданных точек функциями [править | править код]

Чаще всего ищется приближение в виде y=f(x).

Приближение заданных точек линейными и полиномиальными функциями [править | править код]

Приближение синуса полиномиальными функциями
Приближение точек, сгенерированных функцией синуса, полиномиальными функциями.
Красная прямая — многочлен первой степени, зелёная линия — второй степени, оранжевая линия — третьей степени , а синяя — четвёртой степени

Начнём приближения с многочлена первой степени:

Это прямая с угловым коэффициентом a. Через любые две точки можно провести прямую, так что многочлен первой степени проходит через любые две точки с различными абсциссами.

Если порядок уравнения увеличить до многочленов второй степени, получим:

Эта функция описывает параболу. Параболу можно провести через любые три точки.

Если увеличить порядок многочлена до третьей степени, получим:

Такую кривую можно построить для любых четырёх заданных точек. Более того, как правило, можно построить такую кривую, если заданы в точности четыре ограничения. Каждое ограничение может быть точкой, углом, или кривизной (которая является обратной величиной от радиуса соприкасающейся окружности). Ограничения в виде угла и кривизны чаще всего добавляется к концам кривой, и такие ограничения часто называются граничными условиями. Одинаковые граничные условия часто используются для обеспечения гладкого перехода между полиномиальными кривыми внутри сплайна. Ограничения более высокого порядка, такие как скорость изменения кривизны, также могут быть заданы. Это, например, может использоваться в строительстве автострадных развязок для расчёта скорости изменения сил, действующих на автомобиль (см. рывок) во время прохождения развязки и расчёта максимальной допустимой скорости.

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

Если задано более чем n + 1 условий (где n — степень многочлена), можно всё равно попытаться построить полиномиальную кривую, удовлетворяющую этим условиям. Однако в общем случае такую кривую построить не удастся (например, многочлен первой степени по трём точкам можно построить, только если эти точки коллинеарны). Поэтому нужны некоторые методы осуществления приближения. Метод наименьших квадратов является одним из них.

Имеется несколько причин для получения приближённого решения, когда просто увеличение степени многочлена дало бы точное прохождение через точки:

  • Даже если точное решение существует, из этого не следует, что его легко найти. В некоторых алгоритмах можем получить расходящуюся последовательность и точное решение может оказаться невычислимым, в других случаях может потребоваться слишком много компьютерного времени для нахождения точного решения. В этих ситуациях может оказаться более приемлемым приближённое решение.
  • Эффект усреднения ненадёжных данных в выборке, может быть предпочтителен точному следованию точкам выборки, при котором может возникнуть выгибание кривой.
  • Феномен Рунге: при интерполяции полиномами высоких степеней может возникнуть эффект нежелательных осцилляций. Если кривая проходит через точки A и B, от кривой ожидается, что она пройдёт где-то близко к середине отрезка AB. Это может оказаться неверным в случае многочленов высокой степени — отклонение может быть очень велико. Для многочленов малой степени кривая, скорее всего, пройдёт рядом с серединой отрезка (а в случае многочлена первой степени обязательно пройдёт через середину).
  • Многочлены низкой степени обычно «гладкие», а многочлены высокой степени, как правило, «волнистые». Говоря точнее, максимальное число точек перегиба полиномиальной кривой равно n-2, где n — порядок многочлена. Точка перегиба — это точка, где кривизна кривой меняет знак. Заметим, что многочлены высокой степени не обязательно «волнистые», они также могут быть и «гладкими», но нет никаких гарантий «гладкости», в отличие от многочленов малого порядка. Многочлен десятой степени может иметь до восьми точек перегиба, но может иметь и меньше, или вообще не иметь.

Степень многочлена, более высокая, чем необходимо для точного прохождения кривой через точки, нежелательна по всем перечисленным выше причинам, но, кроме того, приводит к бесконечному числу решений. Например, многочлен первой степени (прямая) с ограничением одной точкой вместо обычных двух приводит к бесконечному числу решений. Отсюда вырастает проблема — как сравнивать и выбрать только одно решение, и это может стать проблемой как для программ, так и для людей. По этой причине лучший выбор — как можно меньшая степень для точного выполнения всех ограничений, и, может быть, даже меньшая степень, если приближённое решение допустимо.

Приближение заданных точек другими функциями[править | править код]

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

В спектроскопии данные могут быть приближены нормальным распределением, распределением Коши, контуром Фойгта[en] и связанными функциями.

Алгебраическое приближение и геометрическое приближение кривыми[править | править код]

Для алгебраического анализа данных, «приближение» обычно означает поиск кривой, минимизирующей вертикальное (по оси y) отклонение точки от кривой (к примеру, метод наименьших квадратов). Для графических приложений и при работе с изображениями геометрическое приближение ищет наилучшее визуальное приближение, что, обычно, означает попытку минимизировать расстояние до кривой (к примеру, метод наименьших полных квадратов) или минимизируются отклонения по обеим координатам. Геометрическое приближение непопулярно, поскольку, обычно, вовлекает нелинейные и/или рекуррентные вычисления, хотя оно и даёт эстетически более приемлемый и геометрически более аккуратный результат [16][17][18].

Приближение заданных точек плоскими кривыми [править | править код]

Если функция не может быть задана в виде , можно попытаться приблизить с помощью плоской кривой.

В некоторых случаях могут быть использованы и другие типы кривых, такие как конические сечения (дуги окружности, эллипса, параболы и гиперболы) или тригонометрические функции (такие как синус и косинус). Например, траектории объектов под воздействием силы тяжести являются параболами (если не принимать во внимание сопротивление воздуха). Таким образом, привязка (экспериментальных) точек траектории к параболической кривой будет иметь смысл. Приливы соответствуют синусоидальной модели, так что данные о приливах следует сопоставлять с синусом или суммой двух синусов различных периодов, если принимать во внимание влияние как луны, так и солнца.

В случае параметрической кривой эффективно рассматривать каждую координату как отдельную функцию от длины кривой. Если исходные данные можно упорядочить, можно использовать длину хорды[19].

Геометрическое приближение заданных точек окружностью[править | править код]

Приближение окружностью по методу Куупа (Coope). Точки соответствуют дуге окружности с центром в (1, 1) и радиусом 4.
Различные модели приближения эллипсом
Приближение эллипсом с минимизацией алгебраического расстояния (метод Фитцгиббона).

Куп[20] попытался решить задачу поиска наилучшего визуального приближения окружностью точек на плоскости. Метод элегантно преобразует нелинейную задачу в линейную, которую уже можно решить, не прибегая к рекурретным методам, а потому результат получается быстрее, чем при использовании предыдущих подходов.

Геометрическое приближение эллипсом [править | править код]

Вышеупомянутая техника была распространена на эллипсы общего вида[21] путём добавления нелинейного шага, в результате чего получен быстрый метод, находящий, однако, визуально привлекательные эллипсы произвольной ориентации и расположения.

Приложение к поверхностям[править | править код]

Заметим, что хотя до сих пор обсуждение относилось к плоским кривым, большинство результатов распространяется на поверхности в трёхмерном пространстве, каждый кусочек которых определяется сеткой кривых в двух параметрических направлениях. Поверхность может состоять из одного и более кусков в обоих направлениях.

Программы[править | править код]

Множество пакетов обработки статистических данных[en], таких как R, и пакетов программ численного анализа[en], таких как GNU Scientific Library, MLAB, DataMelt, Maple, MATLAB, SciPy и OpenOpt, включают средства приближения кривыми в различных сценариях. Существуют также программы, специально написанные для приближения кривыми. Их можно найти в статьях «Пакеты обработки статистических данных[en]» и «Пакеты программ численного анализа[en]».

См. также[править | править код]

Примечания[править | править код]

  1. Arlinghaus, 1994.
  2. Kolb, 1984.
  3. Halli, Rao, 1992, с. 165.
  4. Silver, 2012.
  5. Kiusalaas, 2005, с. 21.
  6. Guest, 2012, с. 349.
  7. См. также: Сглаживающий оператор
  8. Пакет Prism[en]кампании. Документация: «Fitting Models to Biological Data Using Linear and Nonlinear Regression» (Harvey Motulsky, Arthur Christopoulos).
  9. Freund, Wilson, Sa, 2006, с. 269.
  10. Daud, Sagayan, Yahya, Najwati, 2009, с. 689.
  11. Hauser, 2009, с. 227.
  12. Williams, 1976, с. 150.
  13. Salkind, 2010, с. 266.
  14. Klosterman, 1990, с. 1.
  15. Yoe, 1996, с. 69.
  16. Ahn, 2008.
  17. Chernov, Ma, 2011, с. 285–302.
  18. Liu, Wang, 2008, с. 384–397.
  19. Ahlberg, Nilson, Walsh, 1967, с. 51.
  20. Coope, 1993, с. 381.
  21. Sheer, 1997.

Литература[править | править код]

  • Sandra Lach Arlinghaus. Practical Handbook of Curve Fitting. — CRC Press, 1994. — ISBN 0849301434.
  • William M. Kolb. Curve Fitting for Programmable Calculators. — 3. — Syntec, Incorporated, 1984. — ISBN 0943494028.
  • John R. Hauser. Numerical Methods for Nonlinear Engineering Models. — Springer, 2009. — ISBN 978-1-4020-9919-9.
  • I.D. Coope. Circle fitting by linear and nonlinear least squares // Journal of Optimization Theory and Applications. — 1993. — Т. 76, вып. 2. — С. 381. — doi:10.1007/BF00939613.
  • Encyclopedia of Research Design / Neil J. Salkind. — SAGE Publications, 2010. — Т. 1. — ISBN 978-1-4129-6127-1.
  • Rudolf J. Freund, William J. Wilson, Ping Sa. Regression Analysis / Statistical Modeling of a Response Variable. — 2. — Elsevier, 2006. — ISBN 0-12-088597-2.
  • Jaan Kiusalaas. Numerical Methods in Engineering with MATLAB®. — Cambridge University Press, 2005. — ISBN 0-521-85288-9.
  • Richard E. Klosterman. Community Analysis and Planning Techniques. — Rowman & Littlefield Pub Inc, 1990. — ISBN 084767651X.
  • Hanita Daud, Vijanth Sagayan, Noorhana Yahya, Wan Najwati. Visual Informatics: Bridging Research and Practice (IVIC 2009) / Halimah Badioze Zaman, Peter Robinson, Maria Petrou, Patrick Olivier, Heiko Schröder, Timothy K. Shih. — Berlin, Heidelberg, NewYork: Sprintger, 2009. — Т. 5857. — (Lecture Notes in Computer Science). — ISBN 3-642-05035-2.
  • An Introduction to Risk and Uncertainty in the Evaluation of Environmental Investments / Charles E. Yoe. — West Chester, Pensylvania: The Greeley-Polhemus Group, Inc., 1996.
  • P. G. Guest. Numerical Methods of Curve Fitting. — Cambridge Academ, 2012. — ISBN 978-1-107646-5-7.
  • S.S. Halli, K.V. Rao. Advanced Techniques of Population Analysis. — 1992. — С. 165. — ISBN 0306439972.
  • Sung-Joon Ahn. Geometric Fitting of Parametric Curves and Surfaces // Journal of Information Processing Systems. — 2008. — Декабрь (vol. 4 (вып. 4). — doi:10.3745/JIPS.2008.4.4.153. Архивировано 13 марта 2014 года.
  • J. H. Ahlberg, E. N. Nilson, J. L. Walsh. The theory of splines and their applications. — New York, London: Academic Press, 1967.
  • N. Chernov, H. Ma. Computer Vision / Sota R. Yoshida. — Nova Science Publishers, 2011. — С. 285–302. — ISBN 9781612093994.
  • Nate Silver. The Signal and the Noise: Why So Many Predictions Fail-but Some Don't. — Penguin Group, 2012. — ISBN 978-1-59-420411-1.
  • Dudley Williams. Spectroscopy / Claire Marton.. — Academic Press, 1976. — Т. 13, Part 1. — (Methods of Experimental Physics). — ISBN 0124759130.
  • Yang Liu, Wenping Wang. Advances in Geometric Modeling and Processing / F. Chen, B. Juttler. — 2008. — Т. 4975. — С. 384–397. — ISBN 978-3-540-79245-1. — doi:10.1007/978-3-540-79246-8_29.
  • P. Sheer. A Software Assistantfor Manual Stereo Photometrology. — University of the Witwater-srand, 1997.

Литература для дальнейшего чтения[править | править код]

  • N. Chernov (2010), Circular and linear regression: Fitting circles and lines by least squares, Chapman & Hall/CRC, Monographs on Statistics and Applied Probability, Volume 117 (256 pp.). [1] Архивная копия от 22 октября 2020 на Wayback Machine