Как найти кривизну линии в Wolfram|Alpha

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


Источник картинки: suite101.com


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

Кривизна показывает, как быстро меняется направление движения на разных участках пути. Кривизна максимальна на самых крутых изгибах траектории. На прямолинейных участках дороги кривизна равна нулю. Также для приложений важно, как меняется сама кривизна при движении вдоль траектории (это изменение вызывает "рывок" (“jerk”), точно так же, как кривизна вызывает ускорение). И в том и в другом случае, нас интересует, насколько быстро происходят эти изменения, если движение происходит с постоянной скоростью. Таким образом, технически, обе эти характеристики вычисляются, как производные по длине дуги (arc length).

Вот пример подходящей кривой, которую можно использовать в американских горках:

curvature (sin(2x), cos(3x), x^2) at x=0




Обратите кроме, что кроме значения кривизны, построения кривой и заданной точки, Wolfram | Alpha также показывает то, что называют "соприкасающейся сферой", а также ее центр, радиус и уравнение. Соприкасающаяся сфера и ее двумерный аналог, соприкасающаяся окружность, помогают визуализировать кривизну кривой в конкретной точке.

Что такое соприкасающаяся окружность / сфера? Предположим, вы едете по изогнутой части дороги, так что вы держите руль своего автомобиля в состоянии поворота. Что произойдет, если вы будете продолжать удерживать руль в том же положении? Вы будете все время двигаться по точному кругу (конечно, если не врежетесь во что-нибудь!). Это и есть "соприкасающаяся" окружность, которая имеет ту же кривизну, что и та часть дороги, где вы находитесь. Чем больше кривизна дороги в этой точке, тем меньше будет радиус соприкасающейся окружности. Таким образом, кривизна - величина, обратная к радиусу соприкасающейся окружности.

Можно попросить непосредственно соприкасающейся окружности, для "радиус кривизны" (который является радиусом соприкасающейся окружности), или "центра кривизны" (центр соприкасающейся окружности). Например:

radius of curvature e^x/2 at x=1/2

center of curvature e^x/2 at x=1/2




Кроме исследования кривизны обычных функций действительных переменных, Wolfram | Alpha может находить и кривизну кривых, заданных в полярных координатах, плоских кривых, заданных неявными уравнениями, и кривых, заданных параметрическими уравнениями для любого числа измерений:

osculating circle x^2-5 at 0.1 polar coordinates




curvature x^3+y^2=2 at x=-0.6




В запрос на вычисление кривизны можно даже включать неопределенные параметры, и Wolfram | Alpha пытается учесть их в результаты. В данном случае, мы видим, что соприкасающейся окружностью для окружности является она сама:

curvature (a cost,a sint) at t=1



Для вычисления кривизны не обязательно указывать конкретную точку. Если этого не сделать, Wolfram | Alpha постарается представить кривизну и соприкасающуюся окружность, как функции независимой переменной, как алгебраически, так и графически:

curvature sin(5x)




Понятие кривизны можно обобщить на поверхности любой размерности, хотя тут существует несколько различных способов. Мы надеемся, что эта возможность будет реализована в Wolfram|Alpha в ближайшее время. А пока желаем вам удовольствия от изучения кривизны кривой!

По материалам: источник.