{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Curvatura de uma curva" ] }, { "cell_type": "code", "execution_count": 110, "metadata": {}, "outputs": [], "source": [ "import sympy as sp\n", "import numpy as np \n", "from scipy.integrate import solve_ivp\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Curvatura \n", "\n", "Seja $\\gamma$ uma curva parametrizada pelo comprimeto de arco. Definimos **curvatura** como a função $\\kappa(t) = ||\\ddot{\\gamma}(t)||$. Essa definição é consistente com o que esperávamos de uma reta (curvatura nula) e de um círculo (curvatura constante). Além disso se $\\gamma$ é uma curva regular qualquer, ela tem uma reparametrização pelo comprimento de arco. Portanto, podemos definir a sua curvatura como sendo a curvatura de sua reparametrização pelo comprimento de arco. Isto é, seja $\\hat{\\gamma}$ uma reparametrização pelo comprimento de arco de $\\gamma$ com curvatura $\\kappa$. Então a curvatura de $\\gamma$ será $\\kappa$. \n", "\n", "Uma questão que se levanta é: e se houver outra reparametrização pelo comprimento de arco para $\\gamma$? Para isso, precisamos mostrar que a curvatura é invariante (não muda) segundo a reparametrização. Isso não é dificíl de ver pois as tangentes das reparametrizações têm mesmo tamanho e, possivelmente, diferentes sinal.\n", "\n", "### Curvatura de uma curva regular\n", "\n", "Seja $\\gamma(t)$ uma curva em $\\mathbb{R}^3$, então sua curvatura é dada pela expressão\n", "\n", "$$\n", "\\kappa = \\frac{||\\ddot{\\gamma} \\times \\dot{\\gamma}||}{||\\dot{\\gamma}||^3}\n", "$$\n", "\n", "Observe que para curvas no plano essa expressão pode também ser utilizada, \n", "\n", "$$\n", "\\kappa = \\frac{|\\ddot{\\gamma}_1\\dot{\\gamma}_2 - \\ddot{\\gamma}_2\\dot{\\gamma}_1|}{||\\dot{\\gamma}||^3}\n", "$$\n", "\n", "### Curvatura com sinal \n", "\n", "Definimos a **normal unitária com sinal** $n(s)$ o vetor unitário que rotaciona o vetor tangente no sentido anti-horário em $\\pi/2$. Em particular, $\\ddot{\\gamma}(s)$ e $\\dot{\\gamma}(s)$ são perpendiculares (pois a curva é parametrizada pelo comprimento de arco) e, portanto, é paralelo a $n(s)$, e assim\n", "\n", "$$\n", "\\ddot{\\gamma}(s) = \\kappa_s(s) n(s)\n", "$$\n", "\n", "Chamamos $\\kappa_s$ de **curvatura com sinal**. Em particular, $\\kappa = |\\kappa_s|$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Função Ângulo \n", "\n", "Dada uma curva diferenciável $\\gamma: I \\to \\mathcal{S}^1$, onde $\\mathcal{S}^1$ é o círculo centrado na origem, dizemos que $\\theta : I \\to \\mathbb{R}$ é função ângulo de $\\gamma$ quando \n", "$$\n", "\\gamma(s) = (\\cos(\\theta(s)), \\sin(\\theta(s)), \\forall s \\in I\n", "$$\n", "\n", "*Observe que nessa definição, a imagem de $\\gamma$ é um subconjunto de $\\mathcal{S}^1$, como se fosse um arco. Por exemplo,*\n", "\n", "$\\gamma(s) = (\\cos(2s), \\sin(2s)) \\implies \\theta(s) = 2s$.\n", "\n", "Considere o operador que rotaciona no sentido anti-horário em 90° um vetor. Podemos descrevê-lo em forma matricial como \n", "\n", "$$\n", "J = \\begin{bmatrix}\n", "0 & -1 \\\\\n", "1 & 0\n", "\\end{bmatrix}\n", "$$\n", "\n", "Defina o **determinante** entre dois vetores como \n", "\n", "$$\n", "det(v,w) = \\langle Jv , w \\rangle\n", "$$\n", "\n", "que é o produto interno do vetor $v$ rotacionado e $w$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Diferenciabilidade\n", "\n", "Seja $\\gamma : I \\to \\mathcal{S}^1$ uma curva diferenciável. Então $\\gamma$ admite uma função ângulo $\\theta$ diferenciável. Além disso, se $\\hat{\\theta}$ é função ângulo diferenciável de $\\gamma$, ela difere de $\\theta$ por uma constante. \n", "\n", "> Note que supondo a existência dessa função diferenciável, temos que, por aplicação da Regra da Cadeia, \n", "$$\n", "\\gamma '(s) = \\theta '(s)(-\\sin(\\theta(s)), \\cos(\\theta(s))) = \\theta '(s) J\\gamma(s)\n", "$$\n", "Portanto, aplicando o produto interno em ambos os lados, observamos que \n", "$$\n", "\\theta '(s) = det(\\gamma(s), \\gamma '(s))\n", "$$\n", "Assim, a demonstração se dá defininido $\\theta$ com essa derivada (Teorema Fundamental do Cálculo). \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Agora seja $\\alpha$ uma curva regular, sem perda de generalidade, parametrizada pelo comprimento de arco. Seja $t(s) = \\alpha '(s)$. Como $||t(s)|| = 1$, pela proposição anterior, existe uma função ângulo diferenciável $\\theta$ de forma que definimos a curvatura de $\\alpha$ como\n", "\n", "$$\n", "k(s) = \\theta '(s) = det(t(s), t'(s)) = det(\\alpha'(s), \\alpha''(s))\n", "$$\n", "\n", "**Observação 1:** Se $\\alpha$ é regular, sua curvatura é \n", "$$\n", "\\kappa(s) = \\frac{det(\\alpha'(s), \\alpha''(s))}{||\\alpha '(s)||^3}\n", "$$\n", "\n", "**Observação 2:** Estamos rotacionando o vetor tangente, obtendo o que chamamos de *vetor normal unitário* e fazendo o produto interno com a aceleração da curva, o que coincide com a definição prévia! " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exemplo:** Considere a parametrização do círculo $\\alpha(s) = p + r(\\cos(s/r), \\sin(s/r)), s \\in \\mathbb{R}$. Assim\n", "\n", "$$\n", "\\alpha'(s) = (-\\sin(s/r), \\cos(s/r))\n", "$$\n", "\n", "$$\n", "\\alpha''(s) = -\\frac{1}{r}(\\cos(s/r), \\sin(s/r)) = \\frac{1}{r}J\\alpha '(s)\n", "$$\n", "\n", "$$\n", "\\kappa(s) = \\langle J\\alpha '(s), \\alpha ''(s) \\rangle = \\frac{1}{r}\n", "$$\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exemplo 2:** Vamos usar python para calcular a curvatura da espiral equiangular $z(t) = e^{(a + i)t}$ onde $a$ é uma constante e $i^2 = -1$. " ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [], "source": [ "# Definimos as variáveis \n", "t = sp.symbols('t', real = True)\n", "a = sp.symbols('a', real = True, constant = True)\n", "# Definimos a função z\n", "z = sp.exp((a + sp.I)*t)\n", "# Derivando \n", "zt = sp.diff(z, t)\n", "ztt = sp.diff(zt, t)\n", "# Rotaciona zt\n", "Jzt = zt*sp.exp(sp.I*sp.pi/2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Observe que nossa curva está definida no plano complexo (isomorfo ao plano real). Para calcular a curvatura de uma curva, rotacionamos o vetor e fazemos o produto `dot`entre esses números como produto escalar de dois vetores. Nesse caso, teremos que $\\langle z_1, z_2 \\rangle = Re(z_1\\cdot\\bar{z}_2)$." ] }, { "cell_type": "code", "execution_count": 95, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\frac{\\left(2 a^{2} e^{2 a t} - \\left(a^{2} - 1\\right) e^{2 a t}\\right) e^{- 3 a t}}{\\left(a^{2} + 1\\right)^{\\frac{3}{2}}}$" ], "text/plain": [ "(2*a**2*exp(2*a*t) - (a**2 - 1)*exp(2*a*t))*exp(-3*a*t)/(a**2 + 1)**(3/2)" ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" } ], "source": [ "k = sp.re(Jzt*sp.conjugate(ztt))/sp.Abs(zt)**3\n", "k" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Precisamos indicar para o programa que queremos uma resposta fatorizada" ] }, { "cell_type": "code", "execution_count": 97, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\frac{e^{- a t}}{\\sqrt{a^{2} + 1}}$" ], "text/plain": [ "exp(-a*t)/sqrt(a**2 + 1)" ] }, "execution_count": 97, "metadata": {}, "output_type": "execute_result" } ], "source": [ "k = sp.factor(k)\n", "k" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Assim, essa é a curvatura da espiral equiangular. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Movimento Rígido\n", "\n", "**Isometria:** Uma aplicação $F: \\mathbb{R}^n \\to \\mathbb{R}^n$ que preserva distância, isto é, $||x - y|| = ||F(x) - F(y)||, \\forall x, y \\in \\mathbb{R}^n$. Diremos uma **movimento rígido** é uma isometria (a rigidez em mudar distâncias).\n", "\n", "**Translação:** Uma aplicação $F: \\mathbb{R}^n \\to \\mathbb{R}^n$ do tipo $v \\mapsto F(v) := v + a$, para algum $a \\in \\mathbb{R}^n$ fixo. \n", "\n", "**Transformação Ortogonal:** Uma transformação **linear** que presetva o produto interno, isto é, $\\langle u, v \\rangle = \\langle T(u), T(v) \\rangle$. A matriz associada a essa transformação é ortogonal. \n", "\n", "Dizemos que o movimento é **direto** se $det(P) = 1$ e oposto ou inverso quando $det(P) = -1$. \n", "\n", "### Teorema \n", "\n", "Seja $P_{n\\times n}$ uma matriz ortogonal e $a \\in \\mathbb{R}^n$. Então $F: \\mathbb{R}^n \\to \\mathbb{R}^n$ definido como $F(v) = Pv + a$ é uma isometria. Reciprocamente, toda isometria pode ser escrito nessa forma. Esse teorema permite uma caracterização simples de um movimento rígido.\n", "\n", "### Invariância da curvatura\n", "\n", "Sejam $\\Phi = A + p_0$ um movimento rígido direto de $R^2$ e $\\alpha : I \\to \\mathbb{R}^2$ uma curva regular parametrizada por comprimento de arco. Então, $\\beta = \\Phi \\circ \\alpha : I \\to \\mathbb{R}^2$ é uma curva regular de $\\mathbb{R}^2$, parametrizada por comprimento de arco, cuja função curvatura coincide com a de $\\alpha$, isto é, $\\kappa_{\\alpha}(s) = \\kappa_{\\beta}(s) \\forall s \\in I$.\n", "\n", "> Observe que derivar $\\beta ' = \\Phi'(\\alpha) = A\\alpha '$ o que garante que $\\beta$ é parametrizada pelo comprimento de arco e que $\\beta '' = A\\alpha ''$. Portanto, como $det(A) = 1$, vale que as curvaturas são as mesmas. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Equações de Frenet \n", "\n", "Seja $\\alpha$ uma curva parametrizada pelo compimento de arco com vetor normal $n(s)$ e vetor tangente $t(s)$. Observe que para cada $s$, esses vetores formam um base ortonormal para $\\mathbb{R}^2$. Chamamos essa base de *diedro de Frenet*. Já definimos curvatura com sinal $\\kappa$ quando $t'(s) = \\kappa(s) n(s)$. Além disso, $||n(s)|| = 1 \\implies n(s) \\perp n'(s)$. Portanto $n'(s)$ é paralelo a $t(s)$. Logo $n'(s) = \\langle n'(s), t(s) \\rangle t(s)$ e: \n", "\n", "$$\n", "\\langle n'(s), t(s) \\rangle = \\langle Jt'(s), t(s) \\rangle = -\\langle t'(s), Jt(s) \\rangle = -det(t(s), t'(s)) = -\\kappa(s)\n", "$$\n", "\n", "Assim obtemos as *equações de Frenet*: \n", "\n", "$$\n", "t' = \\kappa \\cdot n\n", "$$\n", "$$\n", "n' = -\\kappa \\cdot t\n", "$$\n", "\n", "As equações de Frenet são, portanto, um sistema de equações diferenciais envolvendo a base ortonormal para cada $s$. \n", "\n", "## Teorema Fundamental das Curvas no Plano\n", "\n", "Sejam $I$ um intervalo aberto e $\\kappa : I \\to \\mathbb{R}$ uma função diferenciável. Então, existe\n", "uma curva diferenciável, $\\alpha : I \\to \\mathbb{R}^2$, parametrizada por comprimento de arco, cuja função curvatura $\\kappa_{\\alpha}$ coincide com $\\kappa$. Além disso, para toda curva $\\beta : I \\to \\mathbb{R}^2$, parametrizada por comprimento de arco, que cumpre $\\kappa_{\\beta} = \\kappa$, existe um movimento rígido $\\Phi : \\mathbb{R}^2 \\to \\mathbb{R}^2$, tal que $\\alpha = \\Phi \\circ \\beta$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exemplo:** (Reconstrução de uma curva plana) Suponha que nos é dado uma curvatura $\\kappa$. Como $\\kappa = \\theta '$ e $\\alpha' = (\\cos(\\theta), \\sin(\\theta))$. Vamos supor que o intervalo é do tipo $[0,l]$, onde $l$ é o comprimento da curva. " ] }, { "cell_type": "code", "execution_count": 184, "metadata": {}, "outputs": [], "source": [ "def get_curve_from_curvature(k, tf, x0, y0): \n", " # ângulo\n", " theta_ = solve_ivp(fun = k, \n", " t_span = (0,tf), \n", " y0 = [0], \n", " t_eval = np.arange(0,tf+1e-4,0.01)\n", " ).y[0]\n", " \n", " def theta(t): \n", " li = int(t*(len(theta_)-1)/tf)\n", " gi = min(int(t*(len(theta_)-1)/tf) + 1, len(theta_)-1)\n", " convex = t*len(theta_)/tf - li\n", " return (1-convex)*theta_[li] + convex*theta_[gi]\n", " \n", " # Componentes \n", " def f(t,x): \n", " return [np.cos(theta(t)), np.sin(theta(t))]\n", " \n", " # Curva\n", " alpha = solve_ivp(fun = f, \n", " t_span = (0,tf), \n", " y0 = [x0,y0], \n", " t_eval = np.arange(0,tf+1e-4,0.01)\n", " ).y\n", " \n", " return alpha" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Círculo" ] }, { "cell_type": "code", "execution_count": 188, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Curvatura\n", "k = lambda t,x: 1\n", "# Um ponto em que passa a curva \n", "x0 = 0\n", "y0 = 0\n", "# Comprimento da curva\n", "tf = 2*np.pi+0.1\n", "\n", "alpha = get_curve_from_curvature(k,tf,x0,y0)\n", "\n", "plt.figure(figsize = (6,6))\n", "plt.plot(alpha[0,:], alpha[1,:])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Reta" ] }, { "cell_type": "code", "execution_count": 189, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Curvatura\n", "k = lambda t,x: 0\n", "# Um ponto em que passa a curva \n", "x0 = 0\n", "y0 = 0\n", "# Comprimento da curva\n", "tf = 10*np.pi+0.1\n", "\n", "alpha = get_curve_from_curvature(k,tf,x0,y0)\n", "\n", "plt.figure(figsize = (6,6))\n", "plt.plot(alpha[0,:], alpha[1,:])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Clotoide" ] }, { "cell_type": "code", "execution_count": 185, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Curvatura\n", "k = lambda t,x: t\n", "# Um ponto em que passa a curva \n", "x0 = 0\n", "y0 = 0\n", "# Comprimento da curva\n", "tf = 10*np.pi+0.1\n", "\n", "alpha = get_curve_from_curvature(k,tf,x0,y0)\n", "\n", "plt.figure(figsize = (6,6))\n", "plt.plot(alpha[0,:], alpha[1,:])\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.7.3 64-bit ('base')", "language": "python", "name": "python37364bitbase6782713bed674ed7a26121bd52530782" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.1" } }, "nbformat": 4, "nbformat_minor": 4 }