Created
December 31, 2018 23:26
-
-
Save t-makaro/0c42e1a54fd6bc4062e3837a67fe347d to your computer and use it in GitHub Desktop.
Solution to the eigenmodes of the 3D double pendulum
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Eigen Modes of the Spherical Pendulum" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import sympy\n", | |
"import sympy.vector\n", | |
"import sympy.physics.mechanics as mech\n", | |
"from sympy import sin, cos\n", | |
"from IPython.display import display\n", | |
"mech.mechanics_printing()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We start by creating all of the variables that we will use:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"C = sympy.vector.CoordSys3D('C')\n", | |
"l = sympy.symbols('l_:2')\n", | |
"m = sympy.symbols('m_:2')\n", | |
"t = sympy.symbols('t')\n", | |
"g = sympy.symbols('g')\n", | |
"theta = mech.dynamicsymbols(r'\\theta_:4')\n", | |
"theta_dot = mech.dynamicsymbols(r'\\theta_:4', 1)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We use the convention that $\\theta$ is defined from the negative veritcal. \n", | |
"\n", | |
"$\\theta_0$ and $\\theta_2$ are the angular displacement in the x direction for mass 1 and 2 respectively.\n", | |
"\n", | |
"$\\theta_1$ and $\\theta_3$ are the angular displacement in the y direction for mass 1 and 2 respectively." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/latex": [ | |
"$$(- l_{0} \\sin{\\left (\\theta_{0}{\\left (t \\right )} \\right )})\\mathbf{\\hat{i}_{C}} + (- l_{0} \\sin{\\left (\\theta_{1}{\\left (t \\right )} \\right )})\\mathbf{\\hat{j}_{C}} + (- l_{0} \\cos{\\left (\\theta_{0}{\\left (t \\right )} \\right )} \\cos{\\left (\\theta_{1}{\\left (t \\right )} \\right )})\\mathbf{\\hat{k}_{C}}$$" | |
], | |
"text/plain": [ | |
"(-l_0*sin(\\theta_0(t)))*C.i + (-l_0*sin(\\theta_1(t)))*C.j + (-l_0*cos(\\theta_0(t))*cos(\\theta_1(t)))*C.k" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"r1 = -l[0]*(sin(theta[0])*C.i+sin(theta[1])*C.j+cos(theta[0])*cos(theta[1])*C.k)\n", | |
"display(r1)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/latex": [ | |
"$$(- l_{0} \\sin{\\left (\\theta_{0}{\\left (t \\right )} \\right )} - l_{1} \\sin{\\left (\\theta_{2}{\\left (t \\right )} \\right )})\\mathbf{\\hat{i}_{C}} + (- l_{0} \\sin{\\left (\\theta_{1}{\\left (t \\right )} \\right )} - l_{1} \\sin{\\left (\\theta_{3}{\\left (t \\right )} \\right )})\\mathbf{\\hat{j}_{C}} + (- l_{0} \\cos{\\left (\\theta_{0}{\\left (t \\right )} \\right )} \\cos{\\left (\\theta_{1}{\\left (t \\right )} \\right )} - l_{1} \\cos{\\left (\\theta_{2}{\\left (t \\right )} \\right )} \\cos{\\left (\\theta_{3}{\\left (t \\right )} \\right )})\\mathbf{\\hat{k}_{C}}$$" | |
], | |
"text/plain": [ | |
"(-l_0*sin(\\theta_0(t)) - l_1*sin(\\theta_2(t)))*C.i + (-l_0*sin(\\theta_1(t)) - l_1*sin(\\theta_3(t)))*C.j + (-l_0*cos(\\theta_0(t))*cos(\\theta_1(t)) - l_1*cos(\\theta_2(t))*cos(\\theta_3(t)))*C.k" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"r2 = r1 - l[1]*(sin(theta[2])*C.i+sin(theta[3])*C.j+cos(theta[2])*cos(theta[3])*C.k)\n", | |
"display(r2)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can easily find the velocities using ```sympy.Derivative```" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/latex": [ | |
"$$(- l_{0} \\cos{\\left (\\theta_{0}{\\left (t \\right )} \\right )} \\frac{d}{d t} \\theta_{0}{\\left (t \\right )})\\mathbf{\\hat{i}_{C}} + (- l_{0} \\cos{\\left (\\theta_{1}{\\left (t \\right )} \\right )} \\frac{d}{d t} \\theta_{1}{\\left (t \\right )})\\mathbf{\\hat{j}_{C}} + (l_{0} \\sin{\\left (\\theta_{0}{\\left (t \\right )} \\right )} \\cos{\\left (\\theta_{1}{\\left (t \\right )} \\right )} \\frac{d}{d t} \\theta_{0}{\\left (t \\right )} + l_{0} \\sin{\\left (\\theta_{1}{\\left (t \\right )} \\right )} \\cos{\\left (\\theta_{0}{\\left (t \\right )} \\right )} \\frac{d}{d t} \\theta_{1}{\\left (t \\right )})\\mathbf{\\hat{k}_{C}}$$" | |
], | |
"text/plain": [ | |
"(-l_0*cos(\\theta_0(t))*Derivative(\\theta_0(t), t))*C.i + (-l_0*cos(\\theta_1(t))*Derivative(\\theta_1(t), t))*C.j + (l_0*sin(\\theta_0(t))*cos(\\theta_1(t))*Derivative(\\theta_0(t), t) + l_0*sin(\\theta_1(t))*cos(\\theta_0(t))*Derivative(\\theta_1(t), t))*C.k" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/latex": [ | |
"$$(- l_{0} \\cos{\\left (\\theta_{0}{\\left (t \\right )} \\right )} \\frac{d}{d t} \\theta_{0}{\\left (t \\right )} - l_{1} \\cos{\\left (\\theta_{2}{\\left (t \\right )} \\right )} \\frac{d}{d t} \\theta_{2}{\\left (t \\right )})\\mathbf{\\hat{i}_{C}} + (- l_{0} \\cos{\\left (\\theta_{1}{\\left (t \\right )} \\right )} \\frac{d}{d t} \\theta_{1}{\\left (t \\right )} - l_{1} \\cos{\\left (\\theta_{3}{\\left (t \\right )} \\right )} \\frac{d}{d t} \\theta_{3}{\\left (t \\right )})\\mathbf{\\hat{j}_{C}} + (l_{0} \\sin{\\left (\\theta_{0}{\\left (t \\right )} \\right )} \\cos{\\left (\\theta_{1}{\\left (t \\right )} \\right )} \\frac{d}{d t} \\theta_{0}{\\left (t \\right )} + l_{0} \\sin{\\left (\\theta_{1}{\\left (t \\right )} \\right )} \\cos{\\left (\\theta_{0}{\\left (t \\right )} \\right )} \\frac{d}{d t} \\theta_{1}{\\left (t \\right )} + l_{1} \\sin{\\left (\\theta_{2}{\\left (t \\right )} \\right )} \\cos{\\left (\\theta_{3}{\\left (t \\right )} \\right )} \\frac{d}{d t} \\theta_{2}{\\left (t \\right )} + l_{1} \\sin{\\left (\\theta_{3}{\\left (t \\right )} \\right )} \\cos{\\left (\\theta_{2}{\\left (t \\right )} \\right )} \\frac{d}{d t} \\theta_{3}{\\left (t \\right )})\\mathbf{\\hat{k}_{C}}$$" | |
], | |
"text/plain": [ | |
"(-l_0*cos(\\theta_0(t))*Derivative(\\theta_0(t), t) - l_1*cos(\\theta_2(t))*Derivative(\\theta_2(t), t))*C.i + (-l_0*cos(\\theta_1(t))*Derivative(\\theta_1(t), t) - l_1*cos(\\theta_3(t))*Derivative(\\theta_3(t), t))*C.j + (l_0*sin(\\theta_0(t))*cos(\\theta_1(t))*Derivative(\\theta_0(t), t) + l_0*sin(\\theta_1(t))*cos(\\theta_0(t))*Derivative(\\theta_1(t), t) + l_1*sin(\\theta_2(t))*cos(\\theta_3(t))*Derivative(\\theta_2(t), t) + l_1*sin(\\theta_3(t))*cos(\\theta_2(t))*Derivative(\\theta_3(t), t))*C.k" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"v1 = sympy.Derivative(r1, t).doit()\n", | |
"v2 = sympy.Derivative(r2, t).doit()\n", | |
"display(v1)\n", | |
"display(v2)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Thus the kinetic energy of mass 1 and mass 2 are:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/latex": [ | |
"$$\\frac{m_{0} \\left(l_{0}^{2} \\operatorname{cos}^{2}\\left(\\theta_{0}\\right) \\dot{\\theta}_{0}^{2} + l_{0}^{2} \\operatorname{cos}^{2}\\left(\\theta_{1}\\right) \\dot{\\theta}_{1}^{2} + \\left(l_{0} \\operatorname{sin}\\left(\\theta_{0}\\right) \\operatorname{cos}\\left(\\theta_{1}\\right) \\dot{\\theta}_{0} + l_{0} \\operatorname{sin}\\left(\\theta_{1}\\right) \\operatorname{cos}\\left(\\theta_{0}\\right) \\dot{\\theta}_{1}\\right)^{2}\\right)}{2} + \\frac{m_{1} \\left(\\left(- l_{0} \\operatorname{cos}\\left(\\theta_{0}\\right) \\dot{\\theta}_{0} - l_{1} \\operatorname{cos}\\left(\\theta_{2}\\right) \\dot{\\theta}_{2}\\right)^{2} + \\left(- l_{0} \\operatorname{cos}\\left(\\theta_{1}\\right) \\dot{\\theta}_{1} - l_{1} \\operatorname{cos}\\left(\\theta_{3}\\right) \\dot{\\theta}_{3}\\right)^{2} + \\left(l_{0} \\operatorname{sin}\\left(\\theta_{0}\\right) \\operatorname{cos}\\left(\\theta_{1}\\right) \\dot{\\theta}_{0} + l_{0} \\operatorname{sin}\\left(\\theta_{1}\\right) \\operatorname{cos}\\left(\\theta_{0}\\right) \\dot{\\theta}_{1} + l_{1} \\operatorname{sin}\\left(\\theta_{2}\\right) \\operatorname{cos}\\left(\\theta_{3}\\right) \\dot{\\theta}_{2} + l_{1} \\operatorname{sin}\\left(\\theta_{3}\\right) \\operatorname{cos}\\left(\\theta_{2}\\right) \\dot{\\theta}_{3}\\right)^{2}\\right)}{2}$$" | |
], | |
"text/plain": [ | |
" ⎛ 2 2 2 2 2 2 \n", | |
"m₀⋅⎝l₀ ⋅cos (\\theta₀)⋅\\thėta₀ + l₀ ⋅cos (\\theta₁)⋅\\thėta₁ + (l₀⋅sin(\\theta\n", | |
"──────────────────────────────────────────────────────────────────────────────\n", | |
" 2 \n", | |
"\n", | |
" 2⎞ ⎛ \n", | |
"₀)⋅cos(\\theta₁)⋅\\thėta₀ + l₀⋅sin(\\theta₁)⋅cos(\\theta₀)⋅\\thėta₁) ⎠ m₁⋅⎝(-l₀\n", | |
"─────────────────────────────────────────────────────────────────── + ────────\n", | |
" \n", | |
"\n", | |
" 2 \n", | |
"⋅cos(\\theta₀)⋅\\thėta₀ - l₁⋅cos(\\theta₂)⋅\\thėta₂) + (-l₀⋅cos(\\theta₁)⋅\\thėt\n", | |
"──────────────────────────────────────────────────────────────────────────────\n", | |
" \n", | |
"\n", | |
" 2 \n", | |
"a₁ - l₁⋅cos(\\theta₃)⋅\\thėta₃) + (l₀⋅sin(\\theta₀)⋅cos(\\theta₁)⋅\\thėta₀ + l₀⋅\n", | |
"──────────────────────────────────────────────────────────────────────────────\n", | |
" 2 \n", | |
"\n", | |
" \n", | |
"sin(\\theta₁)⋅cos(\\theta₀)⋅\\thėta₁ + l₁⋅sin(\\theta₂)⋅cos(\\theta₃)⋅\\thėta₂ + l\n", | |
"──────────────────────────────────────────────────────────────────────────────\n", | |
" \n", | |
"\n", | |
" 2⎞\n", | |
"₁⋅sin(\\theta₃)⋅cos(\\theta₂)⋅\\thėta₃) ⎠\n", | |
"───────────────────────────────────────\n", | |
" " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"T = m[0]*v1.magnitude()**2/2 + m[1]*v2.magnitude()**2/2\n", | |
"display(T)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Similarly, the potential energy is:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/latex": [ | |
"$$- g l_{0} m_{0} \\operatorname{cos}\\left(\\theta_{0}\\right) \\operatorname{cos}\\left(\\theta_{1}\\right) + g m_{1} \\left(- l_{0} \\operatorname{cos}\\left(\\theta_{0}\\right) \\operatorname{cos}\\left(\\theta_{1}\\right) - l_{1} \\operatorname{cos}\\left(\\theta_{2}\\right) \\operatorname{cos}\\left(\\theta_{3}\\right)\\right)$$" | |
], | |
"text/plain": [ | |
"-g⋅l₀⋅m₀⋅cos(\\theta₀)⋅cos(\\theta₁) + g⋅m₁⋅(-l₀⋅cos(\\theta₀)⋅cos(\\theta₁) - l₁⋅\n", | |
"cos(\\theta₂)⋅cos(\\theta₃))" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"V = m[0]*g*r1.dot(C.k) + m[1]*g*r2.dot(C.k)\n", | |
"display(V)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We now aim to linearize the system near the equilibrium point $(0,0,0,0)$ to find the eigen modes." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/latex": [ | |
"$$\\left[\\begin{matrix}g l_{0} \\left(m_{0} + m_{1}\\right) & 0 & 0 & 0\\\\0 & g l_{0} \\left(m_{0} + m_{1}\\right) & 0 & 0\\\\0 & 0 & g l_{1} m_{1} & 0\\\\0 & 0 & 0 & g l_{1} m_{1}\\end{matrix}\\right]$$" | |
], | |
"text/plain": [ | |
"⎡g⋅l₀⋅(m₀ + m₁) 0 0 0 ⎤\n", | |
"⎢ ⎥\n", | |
"⎢ 0 g⋅l₀⋅(m₀ + m₁) 0 0 ⎥\n", | |
"⎢ ⎥\n", | |
"⎢ 0 0 g⋅l₁⋅m₁ 0 ⎥\n", | |
"⎢ ⎥\n", | |
"⎣ 0 0 0 g⋅l₁⋅m₁⎦" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"def mixed_derivative(f, x):\n", | |
" return lambda i, j: sympy.Derivative(sympy.Derivative(f, x[i]), x[j])\n", | |
"V_mat = sympy.Matrix(4,4,mixed_derivative(V, theta))\n", | |
"V_tensor = V_mat.subs(list(zip(theta, [0]*4))).doit()\n", | |
"display(V_tensor)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/latex": [ | |
"$$\\left[\\begin{matrix}l_{0}^{2} \\left(m_{0} + m_{1}\\right) & 0 & l_{0} l_{1} m_{1} & 0\\\\0 & l_{0}^{2} \\left(m_{0} + m_{1}\\right) & 0 & l_{0} l_{1} m_{1}\\\\l_{0} l_{1} m_{1} & 0 & l_{1}^{2} m_{1} & 0\\\\0 & l_{0} l_{1} m_{1} & 0 & l_{1}^{2} m_{1}\\end{matrix}\\right]$$" | |
], | |
"text/plain": [ | |
"⎡ 2 ⎤\n", | |
"⎢l₀ ⋅(m₀ + m₁) 0 l₀⋅l₁⋅m₁ 0 ⎥\n", | |
"⎢ ⎥\n", | |
"⎢ 2 ⎥\n", | |
"⎢ 0 l₀ ⋅(m₀ + m₁) 0 l₀⋅l₁⋅m₁⎥\n", | |
"⎢ ⎥\n", | |
"⎢ 2 ⎥\n", | |
"⎢ l₀⋅l₁⋅m₁ 0 l₁ ⋅m₁ 0 ⎥\n", | |
"⎢ ⎥\n", | |
"⎢ 2 ⎥\n", | |
"⎣ 0 l₀⋅l₁⋅m₁ 0 l₁ ⋅m₁ ⎦" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"T_mat = sympy.Matrix(4,4,mixed_derivative(T, theta_dot))\n", | |
"T_tensor = T_mat.subs(list(zip(theta, [0]*4))).doit()\n", | |
"display(T_tensor)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"At this point, we have a linearized version of the lagrangian about the equilbrium point $(0,0,0,0)$:\n", | |
"\n", | |
"$L = \\frac{1}{2}(T_{ij}\\dot{\\theta_i}\\dot{\\theta_j}-V_{ij}\\theta_i\\theta_j)$\n", | |
"\n", | |
"Applying Euler-Lagrange's equations gives:\n", | |
"\n", | |
"$T_{ij}\\dot\\theta_i+V_{ij}\\theta_i=0$\n", | |
"\n", | |
"Assuming a solution of the form:\n", | |
"\n", | |
"$\\theta_i = C_i e^{i\\omega t}$\n", | |
"\n", | |
"gives:\n", | |
"\n", | |
"$(V_{ij}-\\omega^2T_{ij})C_i=0$" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/latex": [ | |
"$$\\left[\\begin{matrix}- \\omega^{2} l_{0}^{2} \\left(m_{0} + m_{1}\\right) + g l_{0} \\left(m_{0} + m_{1}\\right) & 0 & - \\omega^{2} l_{0} l_{1} m_{1} & 0\\\\0 & - \\omega^{2} l_{0}^{2} \\left(m_{0} + m_{1}\\right) + g l_{0} \\left(m_{0} + m_{1}\\right) & 0 & - \\omega^{2} l_{0} l_{1} m_{1}\\\\- \\omega^{2} l_{0} l_{1} m_{1} & 0 & - \\omega^{2} l_{1}^{2} m_{1} + g l_{1} m_{1} & 0\\\\0 & - \\omega^{2} l_{0} l_{1} m_{1} & 0 & - \\omega^{2} l_{1}^{2} m_{1} + g l_{1} m_{1}\\end{matrix}\\right]$$" | |
], | |
"text/plain": [ | |
"⎡ 2 2 \n", | |
"⎢- \\omega ⋅l₀ ⋅(m₀ + m₁) + g⋅l₀⋅(m₀ + m₁) 0 \n", | |
"⎢ \n", | |
"⎢ 2 2 \n", | |
"⎢ 0 - \\omega ⋅l₀ ⋅(m₀ + m₁) + g⋅l₀⋅(m₀ \n", | |
"⎢ \n", | |
"⎢ 2 \n", | |
"⎢ -\\omega ⋅l₀⋅l₁⋅m₁ 0 \n", | |
"⎢ \n", | |
"⎢ 2 \n", | |
"⎣ 0 -\\omega ⋅l₀⋅l₁⋅m₁ \n", | |
"\n", | |
" 2 ⎤\n", | |
" -\\omega ⋅l₀⋅l₁⋅m₁ 0 ⎥\n", | |
" ⎥\n", | |
" 2 ⎥\n", | |
"+ m₁) 0 -\\omega ⋅l₀⋅l₁⋅m₁ ⎥\n", | |
" ⎥\n", | |
" 2 2 ⎥\n", | |
" - \\omega ⋅l₁ ⋅m₁ + g⋅l₁⋅m₁ 0 ⎥\n", | |
" ⎥\n", | |
" 2 2 ⎥\n", | |
" 0 - \\omega ⋅l₁ ⋅m₁ + g⋅l₁⋅m₁⎦" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"omega = sympy.symbols('\\omega')\n", | |
"M = V_tensor-omega**2*(T_tensor)\n", | |
"display(M)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"In the case that $m_0=m_1$, and $l_0=l_1$, we get:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/latex": [ | |
"$$\\omega^{8} l_{1}^{4} - 8 \\omega^{6} g l_{1}^{3} + 20 \\omega^{4} g^{2} l_{1}^{2} - 16 \\omega^{2} g^{3} l_{1} + 4 g^{4} = 0$$" | |
], | |
"text/plain": [ | |
" 8 4 6 3 4 2 2 2 3 4 \n", | |
"\\omega ⋅l₁ - 8⋅\\omega ⋅g⋅l₁ + 20⋅\\omega ⋅g ⋅l₁ - 16⋅\\omega ⋅g ⋅l₁ + 4⋅g = \n", | |
"\n", | |
" \n", | |
"0" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAATUAAAAzBAMAAAAEH4KeAAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA74lUIhAy3bt2mc1Eq2Y7F2cNAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFgklEQVRYCa2ZT2gjVRzHf01m0iZp0ojgH3owdA8rutDgRe2lAauil85FdF20wZMsLM0K4kk6BxERxK4K4goaEHFdkI0HEQmyxYunZXsQZUFMrlWwpTau+6/x/X+/92amSeblHWa+7zvv93nfTF9mXgk8MNiHI1tmMGI7kmJfHIFagbtXntR1izqGMqeVSivSUP2VJypwD56xiTtCL8V441npqDkzmxfGTPp7jDeW5YUxw4dTrWzZzRhK3KeOGZZspaRa2QqN6Ayzrag3npOSamWLW/aFrfGSREenpFrZTjHw0iePoQniyOjyCJJRs19/GKKxI1CtbI/Q6kzo3USUM0ink4z6IKy2UPkIVCvbCVq9HMA/iHIM6XSSUrN9mKuh8hGoVrbvaPV9kOsjivPXFCh1KoT1YDyqla1NqnOHkEd5vBARuXyGvTz2In6SQanrPfgYXfdC1VllNNXVwszGHhflA5hp6RH5ntZCDX9sGiWMuluHd5GLqIk0M1u+Rsqze8bKKAYIyaRH78MYjVGXwVjEmppMM7PN0Bz+AXRRHv5YwVEKNdwbrhl1rV7Ci1hTk2lmNv7QufLBcTThDtJcPh9xjjYYdfbaQhMN09RkmplNPnTwyngLEbkkX/8XL7xt2v7Fdxqmo3uCihcxaOoxiNZyx8z2NwXmwL+twX5ba678JvjbsLhl+C9BBhUZl4BRG7CGKjSV0KK13DGz/UKhiwH+hNkq9XDL9KAQwFSFe4/z05cAd+FBWFNqpm98TTWV0HSt3LBwx8zGVsSVnS84uVwj51KDd/SRLJCpJpQOuCOy3QvQresxhqLU2T/OUxppFpXQdK3Mxh0jmxfSYtWubhMZfSd/BlDsQ+lfPk5kuxxAt6EqDeGFRteiEpquldm4Y2Qrb2KK91eFdNl7WtqzW0Q1WW9aPBFENuJtBOxC5JBIRTRRK7NxmpGt0MDgXIbeml+xda4NkN9kztUqv6CyzSb9t5ZI1TRZq7NRx8hm/f1yN8j0/C7xHN5J8l0Ug97kFqhs09vCsU9JVESTtTobdYxs+mHN+fNkDbeI9DusNcD/D2CHXStQHx7udM52Oj8y5yI7xhySqIjGajOdzvfznQ7/iNQxstG1NSf+Qd0juhuAtSG/VIfX2fTn2ZEc5H3Lt6Rjn5OpkqZq1X1jjsz2FCWesLDLNfkXlBdWW+Uq1dkWrHBPZlsCr84ddBxClTRVq7IxR2b7gRLbCEvl2jacMa1SfzqgzisAH/ErIluuCvk6d9BxCFXQdK3Mxh2RLXuHEu1sxQpYW+fcPvsn33tt4ZsmzyCyPb3w0G/g30K5iBxGFTRWyyplNu6IbC+fJdfYusd08hCx435L99dQJIvSzHZ5MLgO8EaAy2EoldN4La2U2bgjstUuESrbA2J4bt8LcZ/o5ZZliPvG3ayZbSjVpslsnCbX224NgO0BIb/RUNPP53tKczFTt4zncD+DO0QPo9o03/hsMttqVT1Vd/UE3VPGYH0hQZ20fDeqzDbXBvmdvKAnWP5U61FUzxrkRpXZZvYAyJaAtvv5iR7XbmidRrlRZTb6Xmc7S/DE5odmKYpNWppctMaNKrNlD+VrvUzuoGx58pd2aW5Umc2/A17IYpTI6VWmALyGEClPblSZjWyMxR5wahNOf5UyS6TMiaqydYNCg6HX6wA/RyZJaThRVbbPt6b5/OfIaWLZnKgq2/rmCzzbe/4EszlRVba5kO4BSTskL56J3TcnqspWrIid5W3y4plYNieqylY4EM+yP6sTzOZEVdnKh+g5O7H75kRV2bzrLbraeHtUCtezE1Vlg0FNBXl245rSjsKFSrKJ3yjfDxxjxJanp7LfKMVvu8dj2a5meir57bciZ/9Jiome3aj/Aze/6Gc9qBzzAAAAAElFTkSuQmCC\n", | |
"text/latex": [ | |
"$$\\left [ \\sqrt{\\frac{g}{l_{1}}} \\sqrt{- \\sqrt{2} + 2}, \\quad \\sqrt{\\frac{g}{l_{1}}} \\sqrt{\\sqrt{2} + 2}\\right ]$$" | |
], | |
"text/plain": [ | |
"⎡ ____ ____ ⎤\n", | |
"⎢ ╱ g _________ ╱ g ________⎥\n", | |
"⎢ ╱ ── ⋅╲╱ -√2 + 2 , ╱ ── ⋅╲╱ √2 + 2 ⎥\n", | |
"⎣╲╱ l₁ ╲╱ l₁ ⎦" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"M_simple = M.subs([(l[0],l[1]),(m[0],m[1])]).doit()\n", | |
"char_eqn = (M_simple.det()/(m[1]**4*l[1]**4)).simplify()\n", | |
"display(sympy.Eq(char_eqn,0))\n", | |
"eigen_freqs_simple = [sympy.sqrt(x) for x in sympy.solve(char_eqn, omega**2)]\n", | |
"display(eigen_freqs_simple)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"These are the eigen frequencies. Lets get the eigen frequencies in the general case:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/latex": [ | |
"$$\\left [ \\sqrt{- \\frac{g \\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)}}{2 l_{0} l_{1} m_{0}} + \\frac{g \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)}{2 l_{0} l_{1} m_{0}}}, \\quad \\sqrt{\\frac{g \\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)}}{2 l_{0} l_{1} m_{0}} + \\frac{g \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)}{2 l_{0} l_{1} m_{0}}}\\right ]$$" | |
], | |
"text/plain": [ | |
"⎡ _______________________________________________________________________\n", | |
"⎢ ╱ _______________________________________________________________\n", | |
"⎢ ╱ ╱ ⎛ 2 2 2 \n", | |
"⎢ ╱ g⋅╲╱ (m₀ + m₁)⋅⎝l₀ ⋅m₀ + l₀ ⋅m₁ - 2⋅l₀⋅l₁⋅m₀ + 2⋅l₀⋅l₁⋅m₁ + l₁ ⋅m₀ \n", | |
"⎢ ╱ - ────────────────────────────────────────────────────────────────────\n", | |
"⎣╲╱ 2⋅l₀⋅l₁⋅m₀ \n", | |
"\n", | |
"___________________________________ ___________________________________\n", | |
"__________ ╱ _____________________________\n", | |
" 2 ⎞ ╱ ╱ ⎛ 2 2 \n", | |
"+ l₁ ⋅m₁⎠ g⋅(l₀ + l₁)⋅(m₀ + m₁) ╱ g⋅╲╱ (m₀ + m₁)⋅⎝l₀ ⋅m₀ + l₀ ⋅m₁ -\n", | |
"────────── + ───────────────────── , ╱ ──────────────────────────────────\n", | |
" 2⋅l₀⋅l₁⋅m₀ ╲╱ \n", | |
"\n", | |
"_____________________________________________________________________⎤\n", | |
"____________________________________________ ⎥\n", | |
" 2 2 ⎞ ⎥\n", | |
" 2⋅l₀⋅l₁⋅m₀ + 2⋅l₀⋅l₁⋅m₁ + l₁ ⋅m₀ + l₁ ⋅m₁⎠ g⋅(l₀ + l₁)⋅(m₀ + m₁) ⎥\n", | |
"──────────────────────────────────────────── + ───────────────────── ⎥\n", | |
"2⋅l₀⋅l₁⋅m₀ 2⋅l₀⋅l₁⋅m₀ ⎦" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"eigen_freqs = sympy.solve(M.det(), omega)[1:4:2] # just grab the 2 positive solutions\n", | |
"display(eigen_freqs)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Sympy can't solve our matrix equation for us, but it can put the matrix in ```reduced row echlon form```.\n", | |
"In the case that $m_0=m_1$, and $l_0=l_1$, we get:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/latex": [ | |
"$$\\left [ \\left ( \\sqrt{\\frac{g}{l_{1}}} \\sqrt{- \\sqrt{2} + 2}, \\quad \\left[\\begin{matrix}1 & 0 & - \\frac{\\sqrt{2}}{2} & 0\\\\0 & 1 & 0 & - \\frac{\\sqrt{2}}{2}\\\\0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0\\end{matrix}\\right]\\right ), \\quad \\left ( \\sqrt{\\frac{g}{l_{1}}} \\sqrt{\\sqrt{2} + 2}, \\quad \\left[\\begin{matrix}1 & 0 & \\frac{\\sqrt{2}}{2} & 0\\\\0 & 1 & 0 & \\frac{\\sqrt{2}}{2}\\\\0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0\\end{matrix}\\right]\\right )\\right ]$$" | |
], | |
"text/plain": [ | |
"⎡⎛ ⎡ -√2 ⎤⎞ ⎛ ⎡ √2 \n", | |
"⎢⎜ ⎢1 0 ──── 0 ⎥⎟ ⎜ ⎢1 0 ── \n", | |
"⎢⎜ ⎢ 2 ⎥⎟ ⎜ ⎢ 2 \n", | |
"⎢⎜ ____ ⎢ ⎥⎟ ⎜ ____ ⎢ \n", | |
"⎢⎜ ╱ g _________ ⎢ -√2 ⎥⎟ ⎜ ╱ g ________ ⎢ \n", | |
"⎢⎜ ╱ ── ⋅╲╱ -√2 + 2 , ⎢0 1 0 ────⎥⎟, ⎜ ╱ ── ⋅╲╱ √2 + 2 , ⎢0 1 0 \n", | |
"⎢⎜╲╱ l₁ ⎢ 2 ⎥⎟ ⎜╲╱ l₁ ⎢ \n", | |
"⎢⎜ ⎢ ⎥⎟ ⎜ ⎢ \n", | |
"⎢⎜ ⎢0 0 0 0 ⎥⎟ ⎜ ⎢0 0 0 \n", | |
"⎢⎜ ⎢ ⎥⎟ ⎜ ⎢ \n", | |
"⎣⎝ ⎣0 0 0 0 ⎦⎠ ⎝ ⎣0 0 0 \n", | |
"\n", | |
" ⎤⎞⎤\n", | |
"0 ⎥⎟⎥\n", | |
" ⎥⎟⎥\n", | |
" ⎥⎟⎥\n", | |
"√2⎥⎟⎥\n", | |
"──⎥⎟⎥\n", | |
"2 ⎥⎟⎥\n", | |
" ⎥⎟⎥\n", | |
"0 ⎥⎟⎥\n", | |
" ⎥⎟⎥\n", | |
"0 ⎦⎠⎦" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"sols_simple = []\n", | |
"for freq in eigen_freqs_simple:\n", | |
" A, _ = M_simple.subs(omega, freq).rref()\n", | |
" A.simplify()\n", | |
" sols_simple.append((freq, A))\n", | |
"display(sols_simple)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can see that what we get is very similar to the 2D double pendulum.\n", | |
"\n", | |
"We can easily pick out the eigen modes. Let $\\theta_2=a$ and $\\theta_3=b$.\n", | |
"\n", | |
"Then the eigen modes corresponding to $\\sqrt{\\frac{g}{l}}\\sqrt{-\\sqrt{2}+2}$ are:\n", | |
"\n", | |
"$\\vec\\theta = (a\\begin{bmatrix}\\frac{1}{\\sqrt{2}}\\\\0\\\\1\\\\0\\end{bmatrix}+\n", | |
"b\\begin{bmatrix}0\\\\\\frac{1}{\\sqrt{2}}\\\\0\\\\1\\end{bmatrix}e^{i\\omega\\phi})e^{i\\omega t}$\n", | |
"\n", | |
"Then the eigen modes corresponding to $\\sqrt{\\frac{g}{l}}\\sqrt{\\sqrt{2}+2}$ are:\n", | |
"\n", | |
"$\\vec\\theta = (a\\begin{bmatrix}-\\frac{1}{\\sqrt{2}}\\\\0\\\\1\\\\0\\end{bmatrix}+\n", | |
"b\\begin{bmatrix}0\\\\-\\frac{1}{\\sqrt{2}}\\\\0\\\\1\\end{bmatrix}e^{i\\omega\\phi})e^{i\\omega t}$\n", | |
"\n", | |
"Notice that if one of $a$ or $b$ are 0, then we have exactly the 2D case.\n", | |
"\n", | |
"Now, back to the general case:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": { | |
"scrolled": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/latex": [ | |
"$$\\left [ \\left ( \\sqrt{- \\frac{g \\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)}}{2 l_{0} l_{1} m_{0}} + \\frac{g \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)}{2 l_{0} l_{1} m_{0}}}, \\quad \\left[\\begin{matrix}1 & 0 & \\frac{l_{1} m_{1} \\left(\\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)} - \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)\\right)}{l_{0} \\left(m_{0} + m_{1}\\right) \\left(2 l_{1} m_{0} + \\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)} - \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)\\right)} & 0\\\\0 & 1 & 0 & \\frac{l_{1} m_{1} \\left(\\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)} - \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)\\right)}{l_{0} \\left(m_{0} + m_{1}\\right) \\left(2 l_{1} m_{0} + \\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)} - \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)\\right)}\\\\0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0\\end{matrix}\\right]\\right ), \\quad \\left ( \\sqrt{\\frac{g \\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)}}{2 l_{0} l_{1} m_{0}} + \\frac{g \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)}{2 l_{0} l_{1} m_{0}}}, \\quad \\left[\\begin{matrix}1 & 0 & \\frac{l_{1} m_{1} \\left(\\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)} + \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)\\right)}{l_{0} \\left(m_{0} + m_{1}\\right) \\left(- 2 l_{1} m_{0} + \\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)} + \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)\\right)} & 0\\\\0 & 1 & 0 & \\frac{l_{1} m_{1} \\left(\\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)} + \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)\\right)}{l_{0} \\left(m_{0} + m_{1}\\right) \\left(- 2 l_{1} m_{0} + \\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)} + \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)\\right)}\\\\0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0\\end{matrix}\\right]\\right )\\right ]$$" | |
], | |
"text/plain": [ | |
"⎡⎛ \n", | |
"⎢⎜ \n", | |
"⎢⎜ \n", | |
"⎢⎜ \n", | |
"⎢⎜ \n", | |
"⎢⎜ ______________________________________________________________________\n", | |
"⎢⎜ ╱ ______________________________________________________________\n", | |
"⎢⎜ ╱ ╱ ⎛ 2 2 2 \n", | |
"⎢⎜ ╱ g⋅╲╱ (m₀ + m₁)⋅⎝l₀ ⋅m₀ + l₀ ⋅m₁ - 2⋅l₀⋅l₁⋅m₀ + 2⋅l₀⋅l₁⋅m₁ + l₁ ⋅m₀\n", | |
"⎢⎜ ╱ - ───────────────────────────────────────────────────────────────────\n", | |
"⎢⎜╲╱ 2⋅l₀⋅l₁⋅m₀ \n", | |
"⎢⎜ \n", | |
"⎢⎜ \n", | |
"⎢⎜ \n", | |
"⎢⎜ \n", | |
"⎢⎜ \n", | |
"⎢⎜ \n", | |
"⎢⎜ \n", | |
"⎣⎝ \n", | |
"\n", | |
" ⎡ ⎛ ______________\n", | |
" ⎢ ⎜ ╱ ⎛ \n", | |
" ⎢ l₁⋅m₁⋅⎝╲╱ (m₀ + m₁)⋅⎝l₀\n", | |
" ⎢1 0 ─────────────────────────────────\n", | |
" ⎢ ⎛ ______\n", | |
"____________________________________ ⎢ ⎜ ╱ \n", | |
"___________ ⎢ l₀⋅(m₀ + m₁)⋅⎝2⋅l₁⋅m₀ + ╲╱ (m₀ +\n", | |
" 2 ⎞ ⎢ \n", | |
" + l₁ ⋅m₁⎠ g⋅(l₀ + l₁)⋅(m₀ + m₁) ⎢ \n", | |
"─────────── + ───────────────────── , ⎢ \n", | |
" 2⋅l₀⋅l₁⋅m₀ ⎢ \n", | |
" ⎢0 1 \n", | |
" ⎢ \n", | |
" ⎢ \n", | |
" ⎢ \n", | |
" ⎢ \n", | |
" ⎢0 0 \n", | |
" ⎢ \n", | |
" ⎣0 0 \n", | |
"\n", | |
"___________________________________________________________ \n", | |
"2 2 2 2 ⎞ \n", | |
" ⋅m₀ + l₀ ⋅m₁ - 2⋅l₀⋅l₁⋅m₀ + 2⋅l₀⋅l₁⋅m₁ + l₁ ⋅m₀ + l₁ ⋅m₁⎠ - (l₀ + l₁)⋅(m₀ + \n", | |
"──────────────────────────────────────────────────────────────────────────────\n", | |
"___________________________________________________________________ \n", | |
" ⎛ 2 2 2 2 ⎞ \n", | |
" m₁)⋅⎝l₀ ⋅m₀ + l₀ ⋅m₁ - 2⋅l₀⋅l₁⋅m₀ + 2⋅l₀⋅l₁⋅m₁ + l₁ ⋅m₀ + l₁ ⋅m₁⎠ - (l₀ + l₁\n", | |
" \n", | |
" \n", | |
" \n", | |
" \n", | |
" 0 \n", | |
" \n", | |
" \n", | |
" \n", | |
" \n", | |
" 0 \n", | |
" \n", | |
" 0 \n", | |
"\n", | |
" ⎞ \n", | |
" ⎟ \n", | |
"m₁)⎠ \n", | |
"──────────── 0 \n", | |
" ⎞ \n", | |
" ⎟ \n", | |
")⋅(m₀ + m₁)⎠ \n", | |
" \n", | |
" ⎛ _____________________________________________\n", | |
" ⎜ ╱ ⎛ 2 2 \n", | |
" l₁⋅m₁⋅⎝╲╱ (m₀ + m₁)⋅⎝l₀ ⋅m₀ + l₀ ⋅m₁ - 2⋅l₀⋅l₁⋅m₀ + 2⋅\n", | |
" ────────────────────────────────────────────────────────────────\n", | |
" ⎛ _____________________________________\n", | |
" ⎜ ╱ ⎛ 2 2 \n", | |
" l₀⋅(m₀ + m₁)⋅⎝2⋅l₁⋅m₀ + ╲╱ (m₀ + m₁)⋅⎝l₀ ⋅m₀ + l₀ ⋅m₁ - 2⋅l₀⋅l₁\n", | |
" \n", | |
" 0 \n", | |
" \n", | |
" 0 \n", | |
"\n", | |
" ⎤⎞ ⎛ \n", | |
" ⎥⎟ ⎜ \n", | |
" ⎥⎟ ⎜ \n", | |
" ⎥⎟ ⎜ \n", | |
" ⎥⎟ ⎜ \n", | |
" ⎥⎟ ⎜ ________\n", | |
" ⎥⎟ ⎜ ╱ __\n", | |
" ⎥⎟ ⎜ ╱ ╱ \n", | |
"____________________________ ⎞ ⎥⎟ ⎜ ╱ g⋅╲╱ (\n", | |
" 2 2 ⎞ ⎟ ⎥⎟, ⎜ ╱ ───────\n", | |
"l₀⋅l₁⋅m₁ + l₁ ⋅m₀ + l₁ ⋅m₁⎠ - (l₀ + l₁)⋅(m₀ + m₁)⎠ ⎥⎟ ⎜╲╱ \n", | |
"───────────────────────────────────────────────────────────⎥⎟ ⎜ \n", | |
"____________________________________ ⎞⎥⎟ ⎜ \n", | |
" 2 2 ⎞ ⎟⎥⎟ ⎜ \n", | |
"⋅m₀ + 2⋅l₀⋅l₁⋅m₁ + l₁ ⋅m₀ + l₁ ⋅m₁⎠ - (l₀ + l₁)⋅(m₀ + m₁)⎠⎥⎟ ⎜ \n", | |
" ⎥⎟ ⎜ \n", | |
" ⎥⎟ ⎜ \n", | |
" ⎥⎟ ⎜ \n", | |
" ⎦⎠ ⎝ \n", | |
"\n", | |
" \n", | |
" \n", | |
" \n", | |
" \n", | |
" \n", | |
"______________________________________________________________________________\n", | |
"_______________________________________________________________________ \n", | |
" ⎛ 2 2 2 2 ⎞ \n", | |
"m₀ + m₁)⋅⎝l₀ ⋅m₀ + l₀ ⋅m₁ - 2⋅l₀⋅l₁⋅m₀ + 2⋅l₀⋅l₁⋅m₁ + l₁ ⋅m₀ + l₁ ⋅m₁⎠ g⋅(l\n", | |
"─────────────────────────────────────────────────────────────────────── + ────\n", | |
" 2⋅l₀⋅l₁⋅m₀ \n", | |
" \n", | |
" \n", | |
" \n", | |
" \n", | |
" \n", | |
" \n", | |
" \n", | |
" \n", | |
"\n", | |
" ⎡ ⎛ ________________________________\n", | |
" ⎢ ⎜ ╱ ⎛ 2 2 \n", | |
" ⎢ l₁⋅m₁⋅⎝╲╱ (m₀ + m₁)⋅⎝l₀ ⋅m₀ + l₀ ⋅m₁ - 2⋅\n", | |
" ⎢1 0 ───────────────────────────────────────────────────\n", | |
" ⎢ ⎛ _______________________\n", | |
"__________________ ⎢ ⎜ ╱ ⎛ 2 \n", | |
" ⎢ l₀⋅(m₀ + m₁)⋅⎝-2⋅l₁⋅m₀ + ╲╱ (m₀ + m₁)⋅⎝l₀ ⋅m₀ + l₀\n", | |
" ⎢ \n", | |
"₀ + l₁)⋅(m₀ + m₁) ⎢ \n", | |
"───────────────── , ⎢ \n", | |
" 2⋅l₀⋅l₁⋅m₀ ⎢ \n", | |
" ⎢0 1 \n", | |
" ⎢ \n", | |
" ⎢ \n", | |
" ⎢ \n", | |
" ⎢ \n", | |
" ⎢0 0 \n", | |
" ⎢ \n", | |
" ⎣0 0 \n", | |
"\n", | |
"_________________________________________ ⎞ \n", | |
" 2 2 ⎞ ⎟ \n", | |
"l₀⋅l₁⋅m₀ + 2⋅l₀⋅l₁⋅m₁ + l₁ ⋅m₀ + l₁ ⋅m₁⎠ + (l₀ + l₁)⋅(m₀ + m₁)⎠ \n", | |
"───────────────────────────────────────────────────────────────────────── \n", | |
"__________________________________________________ ⎞ \n", | |
"2 2 2 ⎞ ⎟ \n", | |
" ⋅m₁ - 2⋅l₀⋅l₁⋅m₀ + 2⋅l₀⋅l₁⋅m₁ + l₁ ⋅m₀ + l₁ ⋅m₁⎠ + (l₀ + l₁)⋅(m₀ + m₁)⎠ \n", | |
" \n", | |
" \n", | |
" \n", | |
" \n", | |
" 0 ───\n", | |
" \n", | |
" \n", | |
" l₀⋅\n", | |
" \n", | |
" 0 \n", | |
" \n", | |
" 0 \n", | |
"\n", | |
" \n", | |
" \n", | |
" \n", | |
" 0 \n", | |
" \n", | |
" \n", | |
" \n", | |
" \n", | |
" ⎛ ______________________________________________________________\n", | |
" ⎜ ╱ ⎛ 2 2 2 \n", | |
" l₁⋅m₁⋅⎝╲╱ (m₀ + m₁)⋅⎝l₀ ⋅m₀ + l₀ ⋅m₁ - 2⋅l₀⋅l₁⋅m₀ + 2⋅l₀⋅l₁⋅m₁ + l₁ ⋅m₀\n", | |
"──────────────────────────────────────────────────────────────────────────────\n", | |
" ⎛ _____________________________________________________\n", | |
" ⎜ ╱ ⎛ 2 2 \n", | |
"(m₀ + m₁)⋅⎝-2⋅l₁⋅m₀ + ╲╱ (m₀ + m₁)⋅⎝l₀ ⋅m₀ + l₀ ⋅m₁ - 2⋅l₀⋅l₁⋅m₀ + 2⋅l₀⋅l₁⋅m₁\n", | |
" \n", | |
" 0 \n", | |
" \n", | |
" 0 \n", | |
"\n", | |
" ⎤⎞⎤\n", | |
" ⎥⎟⎥\n", | |
" ⎥⎟⎥\n", | |
" ⎥⎟⎥\n", | |
" ⎥⎟⎥\n", | |
" ⎥⎟⎥\n", | |
" ⎥⎟⎥\n", | |
" ⎥⎟⎥\n", | |
"___________ ⎞ ⎥⎟⎥\n", | |
" 2 ⎞ ⎟ ⎥⎟⎥\n", | |
" + l₁ ⋅m₁⎠ + (l₀ + l₁)⋅(m₀ + m₁)⎠ ⎥⎟⎥\n", | |
"───────────────────────────────────────────⎥⎟⎥\n", | |
"____________________ ⎞⎥⎟⎥\n", | |
" 2 2 ⎞ ⎟⎥⎟⎥\n", | |
" + l₁ ⋅m₀ + l₁ ⋅m₁⎠ + (l₀ + l₁)⋅(m₀ + m₁)⎠⎥⎟⎥\n", | |
" ⎥⎟⎥\n", | |
" ⎥⎟⎥\n", | |
" ⎥⎟⎥\n", | |
" ⎦⎠⎦" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"sols = []\n", | |
"for freq in eigen_freqs:\n", | |
" A, _ = M.subs(omega, freq).rref()\n", | |
" A.simplify()\n", | |
" sols.append((freq, A))\n", | |
"display(sols)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Notice some similarities with the simpler case. We can pick out our eigen modes just as we did before." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": { | |
"scrolled": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/latex": [ | |
"$$\\sqrt{- \\frac{g \\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)}}{2 l_{0} l_{1} m_{0}} + \\frac{g \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)}{2 l_{0} l_{1} m_{0}}}$$" | |
], | |
"text/plain": [ | |
" ________________________________________________________________________\n", | |
" ╱ ________________________________________________________________\n", | |
" ╱ ╱ ⎛ 2 2 2 \n", | |
" ╱ g⋅╲╱ (m₀ + m₁)⋅⎝l₀ ⋅m₀ + l₀ ⋅m₁ - 2⋅l₀⋅l₁⋅m₀ + 2⋅l₀⋅l₁⋅m₁ + l₁ ⋅m₀ +\n", | |
" ╱ - ─────────────────────────────────────────────────────────────────────\n", | |
"╲╱ 2⋅l₀⋅l₁⋅m₀ \n", | |
"\n", | |
"__________________________________\n", | |
"_________ \n", | |
" 2 ⎞ \n", | |
" l₁ ⋅m₁⎠ g⋅(l₀ + l₁)⋅(m₀ + m₁) \n", | |
"───────── + ───────────────────── \n", | |
" 2⋅l₀⋅l₁⋅m₀ " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"corresponds to the modes:\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/latex": [ | |
"$$\\left[\\begin{matrix}- \\frac{l_{1} m_{1} \\left(\\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)} - \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)\\right)}{l_{0} \\left(m_{0} + m_{1}\\right) \\left(2 l_{1} m_{0} + \\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)} - \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)\\right)}\\\\0\\\\1\\\\0\\end{matrix}\\right]$$" | |
], | |
"text/plain": [ | |
"⎡ ⎛ __________________________________________________________\n", | |
"⎢ ⎜ ╱ ⎛ 2 2 \n", | |
"⎢ -l₁⋅m₁⋅⎝╲╱ (m₀ + m₁)⋅⎝l₀ ⋅m₀ + l₀ ⋅m₁ - 2⋅l₀⋅l₁⋅m₀ + 2⋅l₀⋅l₁⋅m₁ + l₁\n", | |
"⎢─────────────────────────────────────────────────────────────────────────────\n", | |
"⎢ ⎛ __________________________________________________\n", | |
"⎢ ⎜ ╱ ⎛ 2 2 \n", | |
"⎢l₀⋅(m₀ + m₁)⋅⎝2⋅l₁⋅m₀ + ╲╱ (m₀ + m₁)⋅⎝l₀ ⋅m₀ + l₀ ⋅m₁ - 2⋅l₀⋅l₁⋅m₀ + 2⋅l₀⋅l₁\n", | |
"⎢ \n", | |
"⎢ 0 \n", | |
"⎢ \n", | |
"⎢ 1 \n", | |
"⎢ \n", | |
"⎣ 0 \n", | |
"\n", | |
"_______________ ⎞ ⎤\n", | |
"2 2 ⎞ ⎟ ⎥\n", | |
" ⋅m₀ + l₁ ⋅m₁⎠ - (l₀ + l₁)⋅(m₀ + m₁)⎠ ⎥\n", | |
"──────────────────────────────────────────────⎥\n", | |
"_______________________ ⎞⎥\n", | |
" 2 2 ⎞ ⎟⎥\n", | |
"⋅m₁ + l₁ ⋅m₀ + l₁ ⋅m₁⎠ - (l₀ + l₁)⋅(m₀ + m₁)⎠⎥\n", | |
" ⎥\n", | |
" ⎥\n", | |
" ⎥\n", | |
" ⎥\n", | |
" ⎥\n", | |
" ⎦" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/latex": [ | |
"$$\\left[\\begin{matrix}0\\\\- \\frac{l_{1} m_{1} \\left(\\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)} - \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)\\right)}{l_{0} \\left(m_{0} + m_{1}\\right) \\left(2 l_{1} m_{0} + \\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)} - \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)\\right)}\\\\0\\\\1\\end{matrix}\\right]$$" | |
], | |
"text/plain": [ | |
"⎡ 0 \n", | |
"⎢ \n", | |
"⎢ ⎛ __________________________________________________________\n", | |
"⎢ ⎜ ╱ ⎛ 2 2 \n", | |
"⎢ -l₁⋅m₁⋅⎝╲╱ (m₀ + m₁)⋅⎝l₀ ⋅m₀ + l₀ ⋅m₁ - 2⋅l₀⋅l₁⋅m₀ + 2⋅l₀⋅l₁⋅m₁ + l₁\n", | |
"⎢─────────────────────────────────────────────────────────────────────────────\n", | |
"⎢ ⎛ __________________________________________________\n", | |
"⎢ ⎜ ╱ ⎛ 2 2 \n", | |
"⎢l₀⋅(m₀ + m₁)⋅⎝2⋅l₁⋅m₀ + ╲╱ (m₀ + m₁)⋅⎝l₀ ⋅m₀ + l₀ ⋅m₁ - 2⋅l₀⋅l₁⋅m₀ + 2⋅l₀⋅l₁\n", | |
"⎢ \n", | |
"⎢ 0 \n", | |
"⎢ \n", | |
"⎣ 1 \n", | |
"\n", | |
" ⎤\n", | |
" ⎥\n", | |
"_______________ ⎞ ⎥\n", | |
"2 2 ⎞ ⎟ ⎥\n", | |
" ⋅m₀ + l₁ ⋅m₁⎠ - (l₀ + l₁)⋅(m₀ + m₁)⎠ ⎥\n", | |
"──────────────────────────────────────────────⎥\n", | |
"_______________________ ⎞⎥\n", | |
" 2 2 ⎞ ⎟⎥\n", | |
"⋅m₁ + l₁ ⋅m₀ + l₁ ⋅m₁⎠ - (l₀ + l₁)⋅(m₀ + m₁)⎠⎥\n", | |
" ⎥\n", | |
" ⎥\n", | |
" ⎥\n", | |
" ⎦" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAzsAAAA/BAMAAAA1eMuXAAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAiRDdzTKZZiKrVHZEu+/iNt2wAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAL1UlEQVR4Ae1abYicVxU+8z07Ozs7AYlKqg6ailLqTkCw2tKMugUVIVuQ/hBkpzZGRENXkLX/MlCxrf7YBRUDUbISLFqp2VCI9sM4saj4K0vBjyLVLfrLFd1GY5Kasp5z7jn3/bh33pnJ7r7O0rkw7/04zznnOfdj3nfeOQBatsZl5GZgUxcHoBk0x63Rm4HW6FEaM7IzUGjb5rgxejNQWhg9TmNGdgaKc7Y5bozeDORHj9KYUTADuaA5bo3eDDw2epTGjIIZ+FHQlNbI/UgbBUKhH4rOhO3mwC1x4+W1+MjA/TfBN/tgM52JVh/I7or3AMXIBLwQ6WFnohsfGbh/B8x3ksG5TuFaMmKXpXuAYmQGmpEedr4SHxi8fxcsdZPRuW75RjJil6V7gGJ4BrLOV9kXAMoLYUhi+wdGqhpnG4loFFYu90PssvwmKEqQXmKPeEd1sNIxrWSUoqlWDTNWrYdl2M62AG7HesAy0WEgajx1BVt3JqlNHp4DyK0mQd55/LdiCVFsMQkNQ8KZwE1QlCB9VHB7s9W4TLmfZIF7COL4oG80pD+5Egi4lcGBj8TGErrZFgtRo7QJkGlzr9flBAr29xLSeHYZ3tZlS9Qji4llSDgAErgZitlWTxr5Dlt15Mr9IEsINWgxGoJ2NgZKS22vKfcRnGAH6EIaxTWAReo4paIH5nhP26JTbEBtnS3RAFn0F7E4JBwACfgpggbnp8hBeqmQOdSxRWNV7hmO3e9UsVaZG0ZDxpyXBm/E759OVEF6GkFU+B7qkkZtFar16lxUyj1LYwPgIvzSg9ChWhMmrpElLlqrNKjF4pBwgI1eFO3y+ClykIH7UOsObKOOLRqrcs+uk4hQblFsVGI0ZCwflfG/cw/Hx0zfvzz5LkpJY2kOPvHEkw1sxYvSKF+BwseecJ7kQ/D8ZZi4Qpa4aB0CSFMsDgkHJNCDoi5PD4ocpEsDH6Ka+KGbrhaN1XL/OEoI5SmKjYlIQ8t91Kh8/pk1GZhcADgPUH3zo8+eKhz4jsKoluW5ePLrT6/e+3RXRPxdjhr0vf7PrS2fptLA7+Pa1tYmxCyIIalyl8kSF6k9cLWI59aBe6grHAkQRR8BCa4HRc8Ny8zZZDt2i1RXGgPfawnVO4o44f0mer5+ma5vgaU29zBcrH+PN9CpP8LMc/BjgHPnRKLLU39pNfvfbmUd4FMkKbXwghrwXfxg8Wgq5QnZAzELRk+vl+pkib1iXUAVC588UBeUWgRw4QEBUuai8Ik4gcCiLI+DCAUpxqQycza1gL/j8eHNYSbcAb6EeEL1jiJOmDS0fAYb+FNkegUfm2jsWfx8AOCTuRYs1XEfl+qVZRrHYiIorLwXyq8AbrP7HqDRShMvqKHfwB7NyioB+e5EVdwCjQXl/WTJeN2AwrEmBPAvwg8FpxYBHHhAnZRNUbjcEHwWZXkcRChIMSYmzZzlVjgsl5nhjtgz+EGUz6fQsjMmhElDSwsbtTWYb0D5EI1RRH8HaMx04WwD93GuC/w78g2zs3fPzn4UFzF7g9ZzYg3geVIobBoNellDez6umZmd/fBfZ2eXETXf4W0WtwAHZ6ncQ9ag2Aa0xF7JYrUZcngXTDcQErLogQcESDkKRwJ0GgICYtEGxy+lIohQkGTMFjNnUOtyWA4z4Y7wefwgyvEZRGFnTAiThhaKYH4BngL49Z+wWarjBZcHzgLg4diAmTn4G3apyAarbEKxyU9XkeWZXJc972rq5r0AwNssZsFYlyvexdASe8WaCSs8ewVqKwamFuk2GYdb6hItaigcCfBp8FiU4OKI8B40ruVq5oyX5wK4zJS7XR7w+FRaOmPu8pRpV5/owO+wurSAx7CBDfqqOgpwCKrXsrjh3oddKhJBsQW5OlzqNMzGqtICo8bUcsOcNFdTabyYBd5mMQtsXC6VNjyKltgr1kxY4bfiqUKKVNSiD26pu8uDBJi0x6IEF0eEgzSu5SpzRl9uL2bpvEeZKXfjj1AenxrFUZlrIcy73rhhBK7eq9jN4UR/j4bpRv8y4JdYsfW1+YZ9USMR1OqA33xHyytmeUotozG9UJ/hk+ZqKo2rGbPNYhZQ35Z7AX6Kltgr1kxY4d+/bN8IqUUf3FJ3l+dqxkyXx6IEF0eEg7QkqSFzNoWrcjVTcJgp9+DRwONTo9AZE8KhR4NMF13NdCbo/jKJ75I/hDU9C+J7ZTyN+Xod9/EGjWGRCJbwrgTwQYkUinUUocb0L1Z5z3s0lcaN28w2i1lg4+ZSPrTvc01jaYMsMmGFo7L+2BOLXrgl4C7PjdvM8ngsSnBxhMGbIEM87Zxl2gAcVoyZcge4H9UI5fGpUehcC2HSkDLVwEb11D48OJC9DpU21nQq8CsLH9Yrn+3gidB/ACQClOI3/uMPCfP8nNEo3U/PF3f6NHV5Futmm8UskEspefxjtImW2CvWTFjhePSmuwYoFr1wS12iRY2AgCHtsSjBLeJmQyl9nCCNa7nKnKEzWKy7zJQ7wD2oQCi16GLjhElDSs7UU22qH+zkO1hFXuqY+wmN6unhNl8oDngHXcxroNBJozF55gtmBx/zggNAajwT3IhdrC4FZos8H2Ff51tEfri7PARn0qJnboXckeVxEAbPQaqS1GbOzOsaLzPmnuUADMooerFGFNIwA7dTNUc3EyxL9d9QFXklOtmuLPMgwNulttUZah2gS6lN15ngpGEv0Mw2SEoltHW4zxa4Fb1Y3Up4ec7b3z2BRdbzw81PMgKE4c+HPQUWQ8FFEPy7xQQZVrRztsijgZ2QK+buvhL1Yo3tkIYZuIhV5jI/uOHD1/ofzKhU3DmH9xV/+erhUxh5i4WsYTcxD4FPM9g6hGELBhy7im75geurgWRyXzvoRFpeeFRZ8ZHJ91qMIMJBogk9tsGcdciwz45xf5DEMNXhii8+rJGGNaBMY8/gp/rt8yvUhup1OSh8pnio70Ucs4bdxL21gq3TG7O7kjN9zbuIYHZ1eeyc9fujzez0fqgwJzkbtDJwMiwA+jeTSnnB1ANcHzIYo+E7L1EbvbdOFLdrvd4HVl16EBIkInR5FAzwSND0tEodM5iMCiuqxss02AxL4GeR3rjjzoC7PC5mR0ZKr5GZ1o7Yev0YSW957sZJLbRfPzO7I5GmtjwLp5FviW4y06OQJDvyHHCigpfMuzxntJN+js8BRfyMyxAzkNrpgbN4cvJDMBtDcQbSW56lNr54Gc/5cDOQ3vJMrwE8Nhy5MTq95cmve95yjhcgeQbSWx76j+eWZDJpSbPHXpqzqcrelOW0mPTzM+DyDJn77fNK/7694BOkP/ZuyCAZTQ3TOn0e/T1mG/0x+J54uFRxr8nq1fg7HS8sjcFPA/wjSFU+nobLXfVRbAyWKp5EIvsfKOPTwSiUvwCcDv403xgFStviUBswVTzRyb+hUk8EpCY80oDTc5qqrHVq3nfe0aC534mej0BmJRGQpvBwA/NOuWjtSUpOk9A2fQ2U+53o48FG8DdTIjAFYfUVmJBUZaw5sdmTlJwCkZ1ycclJFQ9SqYO09SRvJ7qj89Igt0xJUpxDijWlcvqSkpOiGTFZQu53KG09ifT8qvkjPAmTluxYkKqM+T6UHuMkJadFZUf8FJ1U8SD3O5aS0cvfzPKveonSHsecOtBU5QvoHJcHKpLLjdk9tRXs76mCSXI9c78xoUnT1pNiqrV+kiROU/Y4lDuaqhxPc741SGBOk9K2fFU8qeI29xu/HjRtPcnJ1Oa3ksQpygp1mOxoqnI8zTmUWp0ipe25Ssz95mTa/vYz11r9QakgHt63/xs2VTme5hzPLE2F0facJOd+4+kZ5Jd36dXm9ljsmPaRra1/2VTleJpzPLN0x7zunqHk3O9oMm1PFoXXlnvK/j8Cm0NKjwa22FE7slca9hmtGj4IdrRPGFurfQBpi20O6ZmwZzsaHtwTbZs2Wwkvjx3tE8Phbh9A2mLNIY0maupo2mx2wJ8399ubfO5x9ueGZ3A8NCoz8NZRITLm4ZuBJ32D47FRmYF3jQqRMY/4DPwPa0drB1x0vcEAAAAASUVORK5CYII=\n", | |
"text/latex": [ | |
"$$\\sqrt{\\frac{g \\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)}}{2 l_{0} l_{1} m_{0}} + \\frac{g \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)}{2 l_{0} l_{1} m_{0}}}$$" | |
], | |
"text/plain": [ | |
" ________________________________________________________________________\n", | |
" ╱ __________________________________________________________________\n", | |
" ╱ ╱ ⎛ 2 2 2 \n", | |
" ╱ g⋅╲╱ (m₀ + m₁)⋅⎝l₀ ⋅m₀ + l₀ ⋅m₁ - 2⋅l₀⋅l₁⋅m₀ + 2⋅l₀⋅l₁⋅m₁ + l₁ ⋅m₀ + l\n", | |
" ╱ ───────────────────────────────────────────────────────────────────────\n", | |
"╲╱ 2⋅l₀⋅l₁⋅m₀ \n", | |
"\n", | |
"________________________________\n", | |
"_______ \n", | |
" 2 ⎞ \n", | |
"₁ ⋅m₁⎠ g⋅(l₀ + l₁)⋅(m₀ + m₁) \n", | |
"─────── + ───────────────────── \n", | |
" 2⋅l₀⋅l₁⋅m₀ " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"corresponds to the modes:\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/latex": [ | |
"$$\\left[\\begin{matrix}- \\frac{l_{1} m_{1} \\left(\\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)} + \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)\\right)}{l_{0} \\left(m_{0} + m_{1}\\right) \\left(- 2 l_{1} m_{0} + \\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)} + \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)\\right)}\\\\0\\\\1\\\\0\\end{matrix}\\right]$$" | |
], | |
"text/plain": [ | |
"⎡ ⎛ __________________________________________________________\n", | |
"⎢ ⎜ ╱ ⎛ 2 2 \n", | |
"⎢ -l₁⋅m₁⋅⎝╲╱ (m₀ + m₁)⋅⎝l₀ ⋅m₀ + l₀ ⋅m₁ - 2⋅l₀⋅l₁⋅m₀ + 2⋅l₀⋅l₁⋅m₁ + l₁\n", | |
"⎢─────────────────────────────────────────────────────────────────────────────\n", | |
"⎢ ⎛ _________________________________________________\n", | |
"⎢ ⎜ ╱ ⎛ 2 2 \n", | |
"⎢l₀⋅(m₀ + m₁)⋅⎝-2⋅l₁⋅m₀ + ╲╱ (m₀ + m₁)⋅⎝l₀ ⋅m₀ + l₀ ⋅m₁ - 2⋅l₀⋅l₁⋅m₀ + 2⋅l₀⋅l\n", | |
"⎢ \n", | |
"⎢ 0 \n", | |
"⎢ \n", | |
"⎢ 1 \n", | |
"⎢ \n", | |
"⎣ 0 \n", | |
"\n", | |
"_______________ ⎞ ⎤\n", | |
"2 2 ⎞ ⎟ ⎥\n", | |
" ⋅m₀ + l₁ ⋅m₁⎠ + (l₀ + l₁)⋅(m₀ + m₁)⎠ ⎥\n", | |
"───────────────────────────────────────────────⎥\n", | |
"________________________ ⎞⎥\n", | |
" 2 2 ⎞ ⎟⎥\n", | |
"₁⋅m₁ + l₁ ⋅m₀ + l₁ ⋅m₁⎠ + (l₀ + l₁)⋅(m₀ + m₁)⎠⎥\n", | |
" ⎥\n", | |
" ⎥\n", | |
" ⎥\n", | |
" ⎥\n", | |
" ⎥\n", | |
" ⎦" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/latex": [ | |
"$$\\left[\\begin{matrix}0\\\\- \\frac{l_{1} m_{1} \\left(\\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)} + \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)\\right)}{l_{0} \\left(m_{0} + m_{1}\\right) \\left(- 2 l_{1} m_{0} + \\sqrt{\\left(m_{0} + m_{1}\\right) \\left(l_{0}^{2} m_{0} + l_{0}^{2} m_{1} - 2 l_{0} l_{1} m_{0} + 2 l_{0} l_{1} m_{1} + l_{1}^{2} m_{0} + l_{1}^{2} m_{1}\\right)} + \\left(l_{0} + l_{1}\\right) \\left(m_{0} + m_{1}\\right)\\right)}\\\\0\\\\1\\end{matrix}\\right]$$" | |
], | |
"text/plain": [ | |
"⎡ 0 \n", | |
"⎢ \n", | |
"⎢ ⎛ __________________________________________________________\n", | |
"⎢ ⎜ ╱ ⎛ 2 2 \n", | |
"⎢ -l₁⋅m₁⋅⎝╲╱ (m₀ + m₁)⋅⎝l₀ ⋅m₀ + l₀ ⋅m₁ - 2⋅l₀⋅l₁⋅m₀ + 2⋅l₀⋅l₁⋅m₁ + l₁\n", | |
"⎢─────────────────────────────────────────────────────────────────────────────\n", | |
"⎢ ⎛ _________________________________________________\n", | |
"⎢ ⎜ ╱ ⎛ 2 2 \n", | |
"⎢l₀⋅(m₀ + m₁)⋅⎝-2⋅l₁⋅m₀ + ╲╱ (m₀ + m₁)⋅⎝l₀ ⋅m₀ + l₀ ⋅m₁ - 2⋅l₀⋅l₁⋅m₀ + 2⋅l₀⋅l\n", | |
"⎢ \n", | |
"⎢ 0 \n", | |
"⎢ \n", | |
"⎣ 1 \n", | |
"\n", | |
" ⎤\n", | |
" ⎥\n", | |
"_______________ ⎞ ⎥\n", | |
"2 2 ⎞ ⎟ ⎥\n", | |
" ⋅m₀ + l₁ ⋅m₁⎠ + (l₀ + l₁)⋅(m₀ + m₁)⎠ ⎥\n", | |
"───────────────────────────────────────────────⎥\n", | |
"________________________ ⎞⎥\n", | |
" 2 2 ⎞ ⎟⎥\n", | |
"₁⋅m₁ + l₁ ⋅m₀ + l₁ ⋅m₁⎠ + (l₀ + l₁)⋅(m₀ + m₁)⎠⎥\n", | |
" ⎥\n", | |
" ⎥\n", | |
" ⎥\n", | |
" ⎦" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"freq1 = sols[0][0]\n", | |
"mode1 = sympy.Matrix([-sols[0][1][0,2], 0, 1, 0])\n", | |
"mode2 = sympy.Matrix([0, -sols[0][1][0,2], 0, 1])\n", | |
"freq2 = sols[1][0]\n", | |
"mode3 = sympy.Matrix([-sols[1][1][0,2], 0, 1, 0])\n", | |
"mode4 = sympy.Matrix([0, -sols[1][1][0,2], 0, 1])\n", | |
"\n", | |
"display(freq1)\n", | |
"print('corresponds to the modes:')\n", | |
"display(mode1, mode2)\n", | |
"\n", | |
"display(freq2)\n", | |
"print('corresponds to the modes:')\n", | |
"display(mode3, mode4)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Animation\n", | |
"Now we can attempt to animate these solutions." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"%matplotlib qt\n", | |
"from sympy import lambdify\n", | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"import mpl_toolkits.mplot3d.axes3d as p3\n", | |
"import matplotlib.animation as animation" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"omega1_func = lambdify([m[0],m[1],l[0],l[1],g], freq1, 'numpy')\n", | |
"omega2_func = lambdify([m[0],m[1],l[0],l[1],g], freq2, 'numpy')\n", | |
"mode_func1 = lambdify([m[0],m[1],l[0],l[1],g], sols[0][1][0,2], 'numpy')\n", | |
"mode_func2 = lambdify([m[0],m[1],l[0],l[1],g], sols[1][1][0,2], 'numpy')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"m0, m1 = 1, 2\n", | |
"l0, l1 = 2, 1\n", | |
"grav = 10\n", | |
"omega1 = omega1_func(m0, m1, l0, l1, grav)\n", | |
"omega2 = omega2_func(m0, m1, l0, l1, grav)\n", | |
"\n", | |
"def mode1f(a,t,phi=0):\n", | |
" v = np.array([-mode_func1(m0,m1,l0,l1,grav),0,1,0])\n", | |
" return v*a*np.cos(omega1*t+phi)\n", | |
"\n", | |
"def mode2f(a,t,phi=0):\n", | |
" v = np.array([0,-mode_func1(m0,m1,l0,l1,grav),0,1])\n", | |
" return v*a*np.cos(omega1*t+phi)\n", | |
"\n", | |
"def mode3f(a,t,phi=0):\n", | |
" v = np.array([-mode_func2(m0,m1,l0,l1,grav),0,1,0])\n", | |
" return v*a*np.cos(omega2*t+phi)\n", | |
"\n", | |
"def mode4f(a,t,phi=0):\n", | |
" v = np.array([0,-mode_func2(m0,m1,l0,l1,grav),0,1])\n", | |
" return v*a*np.cos(omega2*t+phi)\n", | |
"\n", | |
"def thetas_to_xyz(thetas):\n", | |
" x1 = l0*np.sin(thetas[0])\n", | |
" y1 = l0*np.sin(thetas[1])\n", | |
" z1 = -l0*np.cos(thetas[0])*np.cos(thetas[1])\n", | |
" x2 = x1 + l1*np.sin(thetas[2])\n", | |
" y2 = y1 + l1*np.sin(thetas[3])\n", | |
" z2 = z1 - l1*np.cos(thetas[2])*np.cos(thetas[3])\n", | |
" return [0, x1, x2], [0, y1, y2], [0, z1, z2]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"a, b, c, d = 0.1, 0, 0, 0.2\n", | |
"phi1, phi2, phi3, phi4 = 0, 0, 0, np.pi/4\n", | |
"\n", | |
"num = 100\n", | |
"T = np.linspace(0,2,num)\n", | |
"fig = plt.figure()\n", | |
"ax = p3.Axes3D(fig)\n", | |
"def animate(i):\n", | |
" ax.clear()\n", | |
" ax.set_xlim3d([-.5, .5])\n", | |
" ax.set_xlabel('X')\n", | |
"\n", | |
" ax.set_ylim3d([-.5, .5])\n", | |
" ax.set_ylabel('Y')\n", | |
"\n", | |
" ax.set_zlim3d([-(l0+l1), 0])\n", | |
" ax.set_zlabel('Z')\n", | |
"\n", | |
" t = T[i]\n", | |
" thetas = mode1f(a,t,phi1)+mode2f(b,t,phi2)+mode3f(c,t,phi3)+mode4f(d,t,phi4)\n", | |
" x, y, z = thetas_to_xyz(thetas)\n", | |
" line, = ax.plot(x, y, z)\n", | |
"\n", | |
"animate(0)\n", | |
"anim = animation.FuncAnimation(fig, animate, frames=num, interval=16)\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"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.6.5" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment