{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "7a7ba72f",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "# Sistemi z več prostostnimi stopnjami\n",
    "\n",
    "Prevod izbranih vsebin iz Mathematica zvezka `04_sistemi_vec_ps.nb` (J. Slavič)\n",
    "v Python. Obravnavamo:\n",
    "\n",
    "1. reševanje sistema z več prostostnimi stopnjami (PS) v fizikalnih\n",
    "   koordinatah na zgledu treh sklopljenih rotirajočih teles (izpeljava\n",
    "   gibalnih enačb, lastne frekvence in lastni vektorji, odziv na začetne\n",
    "   pogoje kot vsota (superpozicija) odzivov posameznih nihajnih oblik),\n",
    "2. glavne (modalne) koordinate: ortogonalnost lastnih vektorjev ter\n",
    "   modalna masa in modalna togost,\n",
    "3. zgled \"Skakalec\" (2 PS): karakteristična determinanta, lastne\n",
    "   vrednosti in generalizirana (modalna) masa in togost."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "34bbe387",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:26.428798Z",
     "iopub.status.busy": "2026-09-25T06:49:26.428416Z",
     "iopub.status.idle": "2026-09-25T06:49:26.961668Z",
     "shell.execute_reply": "2026-09-25T06:49:26.961235Z"
    }
   },
   "outputs": [],
   "source": [
    "\n",
    "import numpy as np\n",
    "import sympy as sp\n",
    "import matplotlib.pyplot as plt\n",
    "from scipy import linalg\n",
    "\n",
    "sp.init_printing()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3c605f30",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "## Uporaba fizikalnih koordinat - primer\n",
    "\n",
    "Sistem sestavljajo tri rotirajoča telesa z masnimi vztrajnostnimi momenti\n",
    "$6J$, $J$ in $J$, povezana s torzijskima vzmetema togosti $3k$ in $k$.\n",
    "Posplošene koordinate so zasuki $\\alpha(t)$, $\\beta(t)$ in $\\gamma(t)$,\n",
    "relativna zasuka vzmeti pa $\\varphi_1 = \\alpha-\\beta$ in\n",
    "$\\varphi_2=\\beta-\\gamma$. Kinetično in potencialno energijo ter\n",
    "Lagrangevo funkcijo $L=E_k-E_p$ zapišemo simbolno."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "b4b1cc59",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:26.962989Z",
     "iopub.status.busy": "2026-09-25T06:49:26.962800Z",
     "iopub.status.idle": "2026-09-25T06:49:27.235446Z",
     "shell.execute_reply": "2026-09-25T06:49:27.234944Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/latex": [
       "$\\displaystyle 3 J \\left(\\frac{d}{d t} \\alpha{\\left(t \\right)}\\right)^{2} + \\frac{J \\left(\\frac{d}{d t} \\beta{\\left(t \\right)}\\right)^{2}}{2} + \\frac{J \\left(\\frac{d}{d t} \\gamma{\\left(t \\right)}\\right)^{2}}{2} - \\frac{3 k \\left(\\alpha{\\left(t \\right)} - \\beta{\\left(t \\right)}\\right)^{2}}{2} - \\frac{k \\left(\\beta{\\left(t \\right)} - \\gamma{\\left(t \\right)}\\right)^{2}}{2}$"
      ],
      "text/plain": [
       "                              2               2                                ↪\n",
       "                    ⎛d       ⎞      ⎛d       ⎞                                 ↪\n",
       "              2   J⋅⎜──(β(t))⎟    J⋅⎜──(γ(t))⎟                     2           ↪\n",
       "    ⎛d       ⎞      ⎝dt      ⎠      ⎝dt      ⎠    3⋅k⋅(α(t) - β(t))    k⋅(β(t) ↪\n",
       "3⋅J⋅⎜──(α(t))⎟  + ───────────── + ───────────── - ────────────────── - ─────── ↪\n",
       "    ⎝dt      ⎠          2               2                 2                    ↪\n",
       "\n",
       "↪          \n",
       "↪          \n",
       "↪         2\n",
       "↪  - γ(t)) \n",
       "↪ ─────────\n",
       "↪ 2        "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "t = sp.symbols(\"t\", real=True)\n",
    "J, k = sp.symbols(\"J k\", positive=True)\n",
    "\n",
    "alpha = sp.Function(\"alpha\")(t)\n",
    "beta = sp.Function(\"beta\")(t)\n",
    "gamma = sp.Function(\"gamma\")(t)\n",
    "\n",
    "phi1 = alpha - beta\n",
    "phi2 = beta - gamma\n",
    "\n",
    "Ek = (sp.Rational(1, 2) * 6 * J * sp.diff(alpha, t) ** 2\n",
    "      + sp.Rational(1, 2) * J * sp.diff(beta, t) ** 2\n",
    "      + sp.Rational(1, 2) * J * sp.diff(gamma, t) ** 2)\n",
    "Ep = sp.Rational(1, 2) * 3 * k * phi1**2 + sp.Rational(1, 2) * k * phi2**2\n",
    "L = Ek - Ep\n",
    "L"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8fab2d49",
   "metadata": {
    "lines_to_next_cell": 2
   },
   "source": [
    "\n",
    "\n",
    "## Uporaba fizikalnih koordinat - gibalne enačbe\n",
    "\n",
    "Namesto ročnega odvajanja Lagrangevih enačb (kot v Mathematici) v Pythonu\n",
    "to naredimo s pomočjo splošne funkcije, ki iz $L$ in posplošene koordinate\n",
    "$q(t)$ sestavi Euler-Lagrangevo enačbo\n",
    "$\\frac{d}{dt}\\frac{\\partial L}{\\partial \\dot q}-\\frac{\\partial L}{\\partial q}=0$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "15e84d5a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:27.236661Z",
     "iopub.status.busy": "2026-09-25T06:49:27.236552Z",
     "iopub.status.idle": "2026-09-25T06:49:27.507432Z",
     "shell.execute_reply": "2026-09-25T06:49:27.506980Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/latex": [
       "$\\displaystyle \\left( 6 J \\frac{d^{2}}{d t^{2}} \\alpha{\\left(t \\right)} + 3 k \\left(\\alpha{\\left(t \\right)} - \\beta{\\left(t \\right)}\\right), \\  J \\frac{d^{2}}{d t^{2}} \\beta{\\left(t \\right)} - 3 k \\left(\\alpha{\\left(t \\right)} - \\beta{\\left(t \\right)}\\right) + k \\left(\\beta{\\left(t \\right)} - \\gamma{\\left(t \\right)}\\right), \\  J \\frac{d^{2}}{d t^{2}} \\gamma{\\left(t \\right)} - k \\left(\\beta{\\left(t \\right)} - \\gamma{\\left(t \\right)}\\right)\\right)$"
      ],
      "text/plain": [
       "⎛     2                                2                                       ↪\n",
       "⎜    d                                d                                        ↪\n",
       "⎜6⋅J⋅───(α(t)) + 3⋅k⋅(α(t) - β(t)), J⋅───(β(t)) - 3⋅k⋅(α(t) - β(t)) + k⋅(β(t)  ↪\n",
       "⎜      2                                2                                      ↪\n",
       "⎝    dt                               dt                                       ↪\n",
       "\n",
       "↪             2                         ⎞\n",
       "↪            d                          ⎟\n",
       "↪ - γ(t)), J⋅───(γ(t)) - k⋅(β(t) - γ(t))⎟\n",
       "↪              2                        ⎟\n",
       "↪            dt                         ⎠"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "def euler_lagrange(L, q):\n",
    "    \"\"\"Sestavi Euler-Lagrangevo enačbo za posplošeno koordinato q(t).\n",
    "\n",
    "    Parameters\n",
    "    ----------\n",
    "    L : sympy.Expr\n",
    "        Lagrangeva funkcija, izražena z q(t) in njenimi odvodi.\n",
    "    q : sympy.Function\n",
    "        Posplošena koordinata (funkcija časa t).\n",
    "\n",
    "    Returns\n",
    "    -------\n",
    "    sympy.Expr\n",
    "        Poenostavljena leva stran gibalne enačbe (izraz = 0).\n",
    "    \"\"\"\n",
    "    dq = sp.diff(q, t)\n",
    "    return sp.simplify(sp.diff(sp.diff(L, dq), t) - sp.diff(L, q))\n",
    "\n",
    "\n",
    "ge1 = euler_lagrange(L, alpha)\n",
    "ge2 = euler_lagrange(L, beta)\n",
    "ge3 = euler_lagrange(L, gamma)\n",
    "ge1, ge2, ge3"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "09b723bd",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "## Uporaba fizikalnih koordinat - harmonski odziv\n",
    "\n",
    "Predpostavimo sinhrono harmonsko nihanje $\\alpha=A_0\\sin(\\omega t)$,\n",
    "$\\beta=B_0\\sin(\\omega t)$, $\\gamma=C_0\\sin(\\omega t)$. Po vstavitvi v\n",
    "gibalne enačbe je $\\sin(\\omega t)$ skupen faktor vseh členov, zato ga\n",
    "lahko okrajšamo. Koeficiente pri $A_0$, $B_0$ in $C_0$ nato izluščimo z\n",
    "`sp.linear_eq_to_matrix` (analogno `CoefficientArrays` v Mathematici) in\n",
    "dobimo matriko $\\boldsymbol A(\\omega) = \\boldsymbol K - \\omega^2\\boldsymbol M$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "ac7ff24a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:27.508485Z",
     "iopub.status.busy": "2026-09-25T06:49:27.508373Z",
     "iopub.status.idle": "2026-09-25T06:49:27.760869Z",
     "shell.execute_reply": "2026-09-25T06:49:27.760330Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWUAAABLCAYAAACoVJZJAAAACXBIWXMAAA7EAAAOxAGVKw4bAAASF0lEQVR4Ae2dW5IcNRaGqzv6eaKxI2YBZgdgVoDZAZcV2OzABE/NmwPvALwCY+8AvAIMO4B5nwhfYlYw/yfrCGWWMjuvVXk5ilDpmkrpl/Tr6GSm6uLm5uaTw+Hwh2zJvPzhhx++KiVsIU5tu1Y7vo9tuRfdh4p/v4X2eRscAUdgeQiIX/5SrYxvKhVU2sVVFvNUfjLn5u88sEH/jwLhW2uX/D/JzwL1scW56wg4Ao7AxAj8WCjvC8V9SXxOyj+JlLZOwnUsHqnNL2R/iwmARdwnsn/WM3vYEXAEHIGxCIhbfq6XoTiijki5nm+WsG5eXyWe30aA8RrEfVQtuCwefyp+rGoFKfm17NmN2kK7TGpHrUIYSd4WjFBHhUl7IXtf9q3CLtUHZLr9OM7dcFp6LvWj8cgb1ZU5wFzZhFCZS8qz9kOcDJDJd/IHopFLGNtKLMr3HZWTS0c8lv1K/tGSrMqor1iQ4t9TlK1yOhvdD6IFFyPlg/ysmr/Kpa0vrTD50Xd/IRc1yyIWFKvb0l1h5jgvvZM61C+O/Sdyw7yI/fqHXObF6on5sgMGU2WBfJGKc8mPSdIHxAfK/15ljCbkeqNUJlI4RPhpPa1LWNc/kH3UJW8hD9ehNgnbl5huONmDyPpl1PfXeqSHWxFwnFvhWX5inGPXcuuCCmGeCa3enISUI9lAIhXJVPGsbCi4uxrKMLLqes2t+VSHoCpQxk/lRxIdYlhgsEMMiwz3Tfduq4fSWJwwk2PxodjN/jrO6+9aVJYloex3xSMYDZ2Di0HmVOoLtuVIuIl0+iKQEdGk0qHKhZBRHYTFIYYPcvtI8H2bU8mve0GuH+WRijOpubT6U9dReOb32ovfcd5ETyOQVIS72Cqbr6QnKXqNLT4VKd8XOOhqkXS/kTXlfP7mw2342UO9X0oZVTZvjySdbD2P0iBfCD3po2McpAcpUzcMZQQddgid4Ud1YWChP/9W/tIAJD1JycoDgX8mi5RAWwYvfrp+N8ZxXldXq7+6SMF31tWq49qeipQNzPsCNhGe/O9kH8p2WdkgIoj9iHAUByl1kaAhZsqx7Q8Py6gbbjIqr5HcU6YZPLovCwP1g2Cp42vZilEe6ku+IEHHtpOHMO3Alohc0W5AwHFe7Tgwwj3igKxFzI9Vm9lJOZIIIPHub50skHqfKf432UagYxkQav16ysWgm24lUqVD6Hwgk+6jcEVlEEo644/qAxGHBUN+FhqeKFfevlAcpI0Bs+CXy5eXEDVbuCRBk8nNMQLCynE+hmUrMXfX3pBOpKxBzOrzSrbPKpTUBBEk0/nkmCHV8UQc9UYbmXwdL+INjopR3SCmSnysL6qR+kNEvlhsu0+l7FJAZSKRGjHmWcIqrvTS4tD7nWqVA9GygNCOj6Kf+wV9slzq8FrxoT1yIZpBb47oulUYtXGKcVhpq8p0nCuILDrwtqV2JkW/acmziqSupAw5DJrwGvQ8kAIMymgySMFtxh7ClQgVKTmpRGIhkHzpfh8rb5O03Xb/lKbrS6R7UDyS7T25SOO9jK5ByqWMICVnF6O+gHyxpuLBzwJHf/C2CLr0+nVK2p5ROwePQ9DQ9Y7ziocF/S9LC64LzbC4kvBXyL7cqMsTVQ0yNdBKtwxACnBIDT2zfa1jeSGiJuIpETqT77ldjEvZeXhh/qALVh3bMKINpNMOXpxncWCHgIojkI38btoRcJzb8VlDKlxSmst3YuVLgtsa2pXqeJl883rY8peARNpj9TMgkTYhnrQFUZrF1aVhZQvmOiel6IfUk+pCcZQJgYWHY+GqZf28V3VsG53XDIkfY/iYGsfC9iAwYKt28rWjm2YEHOdmbNaSwjy2eZHXGS5BTUgfr9qchJQFFFtvHkwlCVh+iBKSeZghiDTMK11BBRDzPFPcU/mNiLLswcs1r5TOt+90GLpvOuiRwnymDBH/R3bJBy6x4FTeHlG9bTHitTgbaCw0pYFnW7a7SnfTjIDj3IzNKlI0F1A/cuYL8yMY+UtcYsmrc69OVWMBh+4X4jRple3G5wontYT8EDcqDJP4eDWMB4ZNhEz1n8iyfecaykLPypsWbO9ZBFhV2e6P0iWrjNkMdZN9IGvYcC+kXzDL287go73BKI1dBkQDcfMQM6V9yOG/OQLCyHHOAVmvH6ELLoEf2FXjVrhE4dWai+yQex6CmcS12gadq+LCjpV70IO+c9XZ7+sIOALLQED8wVto7OYvTqK+WEazZ68FKgZTM8x+M7+BI+AIbBOBk6kvtgnfP63SCperGf5JcJ8j4Ag4Aj0QcEm5B1ie1RFwBByBuRFwUp4bYS/fEXAEHIEeCDgp9wDLszoCjoAjMDcCTspzI+zlOwKOgCPQAwEn5R5geVZHwBFwBOZGwN++mBthL/9sCOiNGD62+T5W4F50HyreX108W6/4jW9DwEn5NoQ8fc0I8NUXX3YGIz9fTHIoUeu/p3/I7b+OwHkQcPXFeXD3u54GAc4/eZDdis/u+erST9XLQHHvshDYraSsicl21qQotrmEkawqH4EoTJqdTMVBKC5lCZCpjXANhKlyIUz6gk/+OXzpK7lDDf1rJ+kNLWO269Q22sq5JTYOw70U9jE3EPUtYLdLUo4dx2l0aTLIz9kVnCpX+fslhdE/cjAQ297FTvCBY3gxlwnfcDSrXMiZw6Xq/1zTu64qq34IFf3NYVXpEKzehU57AYv9UV1UPx9zA3HeAnZ7VV9w+Adb23T8n8ImIduDofqwQKqpHK9Zz+DhSRBA3cDpd0dkNaZ0lUf/0d+cMDbIqAxO8mPsjDYqx05CbCvLx1wbOu1pq8Vur6TMhEcawQajSZL8FmcukzH6jbgtyd3pEWAyTYqz+g91CBI4x7o29nOHplwrD3aUUR1oI/VorIuPueEQrx27vaovmPSVf7JWR5rUnJ9pbCODw+WR3honkWV0dzgC2WSabEeiMiFkVFXhn2hi+CD3nMfUfqP7V9RnBdR8zBVA6Ri1aux2Scr1jtUEQRJGkuKhS10PSXbSk/SmPBA4B2sjNTG5nKwFxATGHur9Ui9LGHPWbHoGUEiHfCHzpItWfuJYZOkjpFMMZQT9dQid+Ef1QG1RWvjrNfExV0eke3jV2F11b+f2csaJSgdCsKg0jh7kKQ/Ey4QOE0nhXKLm4R+2ROSKdtMTAfqCB3GVRS5i3kV6hoQpw/TR9A39h5uMymsk95RpBo/uS/3YcbVK6Ur3MTcQ/y1gt3dSZvKGCazOhGz5Z+jK2xeKY5Jj+Kuq4JfLn5xC1EyuJEGTyc0wBIQnRARplRY43n5pJVKlQ+b8t2MidIUrKqphNZv0KnZiXaR0H3PDYV89dlfD236+KzWwmcD8QSpuV5O2taULVKb9m/QLJrOsTe6gn9I1dPZrxQcSlguZD36SX6rDGuLU7smxj+3+Orq8JpaM7gfu9TjqQD8FPXHKfDjwP4WjF0mVy67IJndW/OEOAaWXFojWd6p1Tfi7n7ywFv8ux5wwmmJsrR47SPlfcXCY2zJWlpGkzoMwBxOirg/6RblBSs5ahfqCyYh9GePxIxFzP57eo9usXxezbt9R20dh34JQIFiVXydVpOS6dHlf5VCPuuF/JkuSdj1fa1hllEj3oHh2U73/h1HXsQO4ltuqtsgqtcsxJ3ymGFtrxe7f1v+X8vwvBsy1tC27QResQXDd1siYzoR6Ij8TFYkNFUcg9bZrPa2MgLCD1N7J8mA1N0ym0mIH/nUD/s/zSMrNwwvzU7fPVEek+2QVRzt495m4gIdcxiT5fcwJhD5m5dj919p6ZZ6duazI6Ihxc4MEhjFpzbbUFrYHgUwatquPZdFjuumOANImxPPGLhGGFleXiMmChPmJbCBs/IqDwJCIw25GcZTHgmlvb8i7HKP6MX5sDKWKKf4d8XLzevuYSwj19mwCu72S8tHk18QwYuBhjJE1W2rI18I2Smwbetci3O2MAOTKK2phMZMLoT6TfSr/EXEpnvyvlAYJsxgiUaNKYsdCmL5gMlKm9YuCqzC0HZsbH3M5Gv38m8Dusl+bt5E7TnCe1qMfDlYtQz2B/jLXSTJhnlirlfZefggd4n6cp1ked9sREG4QL6+FscsAQwiZh7BHC2UsCfzZoZAXEkavD1HTX+xsIGS2+nm/KWq5RnVlzNkrfqa+oH0YH3MfcBjyuwnsLm5ubtgOomPlIcnaJI0hHefXOAKDEND8YDfV+0HfoJv5RbtCQGMrvJ0j92KXkvKuetsbOyUC7JSwbhyB2RDYq055NkC94O0iICmmpPPeboO9ZWdBwCXls8DuN3UEHAFHoIyAk3IZF491BBwBR+AsCDgpnwV2v6kj4Ag4AmUEnJTLuHisI+AIOAJnQcBJ+Syw+00dAUfAESgj4G9flHHxWEfAEVgBAnojhg9Gvo9VvRfdh4pf7auLTsorGHheRUfAEWhE4EcRMF93BiM/x66Gj+Fi1OocV1+srsu8wo6AI5Ah8EhEzHkoZjisiq8u+VJ5lWaXkrI6LByTqB7jpLKPZVlt/RPzVQ7h8ZVW37MF5pQ5ztJ4qzBjws2ECMQ5h3oBssRlvrX+MYDSuxikZDu9sUv+2fJMNY52R8oCjq0NB9jkxz5y4hiHETkxzzZkl1uw+h39I/3P2FjEBF8uWsNqJmzDgVNyEYg4fKn1n4C63kXl1Q+igqQ5bCwc9dq1nCny6Z6TjKNdqS8EGod+cD5vIGQ6IgJJOPwxKnFudosAUpyd3rZbEGZuOKoGTgmcnDRVJv3HoVFj/pWIU/vgiTFm1DjaFSkLZQ4TLw2G3xVPZ7CNdbNDBNT3ppf08y3m7X8Ia3KM1X+oRJDCOdoViXWogQMG88AU42hv6gsmXn27Q+eZ2oL0JEWT4GY3CHBAOhLcmAm9G7CGNDQjrEl3IyoXQuZPDujDQwzj2rweUt2h14weR7shZXVQl9XvztCe8OtWjwALcpLgNF7YBn8my7hhwjtZC4iRxv726pdSOcKYw//T6231PEqDfCH0pI+Ocage6SOkcAxlNP1pQsgw48/ocXQ5Y+WWVrQRbtvk6kLcS2uX12ckAprM9DsTOkhwCkPIGCY7/2yCdTMeAQiLh3BHczBi3kWChpgpxwwPZwnjmn1UuoddMJere04yjq7mquBKy/X/3Ftpx42stk1y/sQ0+OW+lIWo2QInCXrkfXZ7eSQsCLWkPgQX3n5plJLJoHQInf92TKSu8EekLcRMMo72RMpvWzrOpOg3LXk8aYEIaFIinbySxe1q0vY3XhD0gPIzqV6rzEDCcnkoPPhJfix7Vc5EeJbabLsN3gevGN0T3CvxsR4v5AY9cXbBX/KPXiRVLrsgI9Gs+EPgAqWXFojb3queZBzthpQFMg9xAL80eS3uHA8G8gHh/p4I0K+6ZCxxMjnpe8rh6T26zdJbOkretpkIzxJIgVxVfolQkZLrOmA+5KFv64b/Em2Stut5G8Mqo0S6B8Wjuhr6P4yTjKM96ZTpIAYEW6i6MUm5NGDqeT28IQQ0CVmQGRN8UMRERWLjYyJUF256IiDcILR3svbVrJUAYTUtdKU5Cf7P7WJcys7DS/KrbpONo8slNewEdWHCsQLXDRISW5PSylzP6+FtIWDbaluQ7Yu+QAAaE4+31dzZW4OkCUElVaAwtLi6NGyV4YOutAhGP6SeVBeKo0zm71I/8ppsHF0ZKntw1bE/y/LqzJey4X1kuXQ2gH6+Bwy8jUcIMPFLC7Kpsu4eXeERbQggDTPHeCB3iPPrmbxP5beFj6TccM0rpaOWYDFEqkZQYsdCmL5gjlKu9YuCizKTjaO9Scr0Ip2NDotDiJCCGDCfy9+0tVKymw0jwKL8xNqncfBefiS6b+P4SGmWx91mBIQZxMvzm8cRP+YXD1abpGQKA2N2KMxHSBi9PvMRdRI7WwgZ9dJoXbLKmctMNo4ubm5u2Dbwfh8K9KWuQnMB6eU6Ao6AI5AQEAeiahn6oC+V09ej+3LeBg+YL/YoKffFy/M7Ao7AfhBgp4Q9m9mVTvlsKPuNHQFHYBUISFJt0nufrP4uKZ8Mar+RI+AIOAK3I+CkfDtGnsMRcAQcgZMh4KR8Mqj9Ro6AI+AI3I5ArlP+S/qU+hUcymLH7dXTPOwIOAKOgCPQEwFxKud33Gu6DFLmNTjeBywZf0WuhIrHOQKOgCMwHIH6J+iVkv4PexXofDYjuPUAAAAASUVORK5CYII=",
      "text/latex": [
       "$\\displaystyle \\left[\\begin{matrix}- 6 J \\omega^{2} + 3 k & - 3 k & 0\\\\- 3 k & - J \\omega^{2} + 4 k & - k\\\\0 & - k & - J \\omega^{2} + k\\end{matrix}\\right]$"
      ],
      "text/plain": [
       "⎡       2                                ⎤\n",
       "⎢- 6⋅J⋅ω  + 3⋅k      -3⋅k          0     ⎥\n",
       "⎢                                        ⎥\n",
       "⎢                     2                  ⎥\n",
       "⎢     -3⋅k       - J⋅ω  + 4⋅k      -k    ⎥\n",
       "⎢                                        ⎥\n",
       "⎢                                   2    ⎥\n",
       "⎣      0              -k       - J⋅ω  + k⎦"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "omega = sp.symbols(\"omega\", positive=True)\n",
    "A0, B0, C0 = sp.symbols(\"A0 B0 C0\", real=True)\n",
    "\n",
    "nastavek = {\n",
    "    sp.Derivative(alpha, (t, 2)): sp.diff(A0 * sp.sin(omega * t), t, 2),\n",
    "    sp.Derivative(beta, (t, 2)): sp.diff(B0 * sp.sin(omega * t), t, 2),\n",
    "    sp.Derivative(gamma, (t, 2)): sp.diff(C0 * sp.sin(omega * t), t, 2),\n",
    "    alpha: A0 * sp.sin(omega * t),\n",
    "    beta: B0 * sp.sin(omega * t),\n",
    "    gamma: C0 * sp.sin(omega * t),\n",
    "}\n",
    "\n",
    "ge1h = sp.simplify(ge1.subs(nastavek) / sp.sin(omega * t))\n",
    "ge2h = sp.simplify(ge2.subs(nastavek) / sp.sin(omega * t))\n",
    "ge3h = sp.simplify(ge3.subs(nastavek) / sp.sin(omega * t))\n",
    "\n",
    "A_mat, desna_stran = sp.linear_eq_to_matrix([ge1h, ge2h, ge3h], [A0, B0, C0])\n",
    "sp.Matrix(A_mat)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "560e9a0d",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "Lastne (krožne) frekvence dobimo iz pogoja $\\det\\boldsymbol A(\\omega)=0$.\n",
    "Ker se $\\omega$ v matriki pojavlja samo v obliki $\\omega^2$, karakteristično\n",
    "enačbo rešimo v novi spremenljivki $W=\\omega^2$ (kubična enačba, ena\n",
    "ničla je $W=0$ - toga oblika)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "fe5b888f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:27.762004Z",
     "iopub.status.busy": "2026-09-25T06:49:27.761892Z",
     "iopub.status.idle": "2026-09-25T06:49:27.969136Z",
     "shell.execute_reply": "2026-09-25T06:49:27.968681Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/latex": [
       "$\\displaystyle \\left[ 0, \\  \\frac{\\sqrt{k} \\sqrt{\\frac{11}{4} - \\frac{\\sqrt{57}}{4}}}{\\sqrt{J}}, \\  \\frac{\\sqrt{k} \\sqrt{\\frac{\\sqrt{57}}{4} + \\frac{11}{4}}}{\\sqrt{J}}\\right]$"
      ],
      "text/plain": [
       "⎡          __________         __________⎤\n",
       "⎢         ╱ 11   √57         ╱ √57   11 ⎥\n",
       "⎢   √k⋅  ╱  ── - ───   √k⋅  ╱  ─── + ── ⎥\n",
       "⎢      ╲╱   4     4       ╲╱    4    4  ⎥\n",
       "⎢0, ─────────────────, ─────────────────⎥\n",
       "⎣          √J                 √J        ⎦"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "W = sp.symbols(\"W\", nonnegative=True)\n",
    "karak_enacba = sp.expand((A_mat.subs(omega**2, W)).det())\n",
    "koreni_W = sp.solve(sp.Eq(karak_enacba, 0), W)\n",
    "koreni_W = sorted(koreni_W, key=lambda r: float(r.subs({J: 1, k: 1})))\n",
    "\n",
    "omega01, omega02, omega03 = [sp.sqrt(r) for r in koreni_W]\n",
    "[sp.nsimplify(w) for w in (omega01, omega02, omega03)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "979d11f6",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:27.970185Z",
     "iopub.status.busy": "2026-09-25T06:49:27.970073Z",
     "iopub.status.idle": "2026-09-25T06:49:27.972985Z",
     "shell.execute_reply": "2026-09-25T06:49:27.972637Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "lastne frekvence (J = k = 1): [0.0, 0.9287310650464495, 2.1534759364380385]\n"
     ]
    }
   ],
   "source": [
    "\n",
    "print(\"lastne frekvence (J = k = 1):\",\n",
    "      [float(w.subs({J: 1, k: 1})) for w in (omega01, omega02, omega03)])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f5e25a5a",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "## Uporaba fizikalnih koordinat - lastni vektorji\n",
    "\n",
    "Za vsako lastno frekvenco $\\omega_{0i}$ poiščemo lastni vektor kot rešitev\n",
    "homogenega sistema $\\boldsymbol A(\\omega_{0i})\\,\\boldsymbol v_i=\\boldsymbol 0$,\n",
    "pri čemer eno komponento (tu $B_0$) fiksiramo na 1."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "e22a8d98",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:27.974091Z",
     "iopub.status.busy": "2026-09-25T06:49:27.973990Z",
     "iopub.status.idle": "2026-09-25T06:49:28.262319Z",
     "shell.execute_reply": "2026-09-25T06:49:28.261902Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/latex": [
       "$\\displaystyle \\left( \\left[\\begin{matrix}1 & 1 & 1\\end{matrix}\\right], \\  \\left[\\begin{matrix}- \\frac{3}{4} - \\frac{\\sqrt{57}}{12} & 1 & \\frac{7}{2} + \\frac{\\sqrt{57}}{2}\\end{matrix}\\right], \\  \\left[\\begin{matrix}- \\frac{3}{4} + \\frac{\\sqrt{57}}{12} & 1 & \\frac{7}{2} - \\frac{\\sqrt{57}}{2}\\end{matrix}\\right]\\right)$"
      ],
      "text/plain": [
       "⎛           ⎡  3   √57     7   √57⎤  ⎡  3   √57     7   √57⎤⎞\n",
       "⎜[1  1  1], ⎢- ─ - ───  1  ─ + ───⎥, ⎢- ─ + ───  1  ─ - ───⎥⎟\n",
       "⎝           ⎣  4   12      2    2 ⎦  ⎣  4   12      2    2 ⎦⎠"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "lastni_vektorji = []\n",
    "for w0i in (omega01, omega02, omega03):\n",
    "    Ai = A_mat.subs(omega**2, w0i**2)\n",
    "    enacbe = list(Ai * sp.Matrix([A0, 1, C0]))\n",
    "    resitev = sp.solve(enacbe, [A0, C0], dict=True)[0]\n",
    "    v = sp.simplify(sp.Matrix([resitev[A0], 1, resitev[C0]]))\n",
    "    lastni_vektorji.append(v)\n",
    "\n",
    "v1, v2, v3 = lastni_vektorji\n",
    "v1.T, v2.T, v3.T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "2a79ea64",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:28.263511Z",
     "iopub.status.busy": "2026-09-25T06:49:28.263404Z",
     "iopub.status.idle": "2026-09-25T06:49:28.267487Z",
     "shell.execute_reply": "2026-09-25T06:49:28.267087Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "v1 = [1. 1. 1.]\n",
      "v2 = [-1.37915287  1.          7.27491722]\n",
      "v3 = [-0.12084713  1.         -0.27491722]\n"
     ]
    }
   ],
   "source": [
    "\n",
    "v1n, v2n, v3n = (np.array(v.subs({J: 1, k: 1}), dtype=float).flatten()\n",
    "                 for v in (v1, v2, v3))\n",
    "print(\"v1 =\", v1n)\n",
    "print(\"v2 =\", v2n)\n",
    "print(\"v3 =\", v3n)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "752a2cf9",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:28.268400Z",
     "iopub.status.busy": "2026-09-25T06:49:28.268292Z",
     "iopub.status.idle": "2026-09-25T06:49:28.402105Z",
     "shell.execute_reply": "2026-09-25T06:49:28.401546Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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MGfOHKPWRkRERNIRQuDL2C/xxp43UKwqRv169bF22Fr0a9xP6tIeGYNpdSgUQO/egBAQSqVRuu8floWFBZYsWYI+ffpArVbjzTffhJubGwAgLCwMZ86cQUFBAXx9ffHzzz+ja9euEldMRERED+tW4S28sP0F/HbpNwDAwKYDsWrIKnjW85S4MsNgMK0FBg8ejMGDB5fZ/ueff0pQDRERERnDnwl/Yuy2sbiRfwPWCmss7rsYkztNNsuxpBVhMCUiIiIyYSWqEry37z0sPrQYABDsHowfR/yIkPohEldmeAymRERERCbqUuYljNo6CidunAAAvNL+FSx5cgnsLPVbI91cMJgSERERmRghBFafXo0pu6agoLQArrau+H7w9xjafKjUpRkVgykRERGRCckuysYrO17BT3//BADoHdAb64atg6+jr8SVGR+DKREREZGJ+OvaXxgdMRpXc67CQm6BD/t8iFndZpnUbUONicGUiIiISGJKtRIL9i/A/P3zoRZqNHJphE3DN6GTTyepS6tRDKZEREREErqafRXPbXsOB68dBACMbTMWnw/4HI7WjhJXVvMYTImIiIgksvnvzXjpt5eQU5wDBysHfP3U1xjVepTUZUmGwZSIiIiohuWX5GParmn44fQPAIDOPp2xcfhGNHJpJHFl0mIwJSIiIqpBJ2+cxMitI3Ep8xJkkOHdnu/i/dD3YamwlLo0yTGYVoNKrcKBaweQmpcKT1tP9A7sDQsFv3VERERUfWqhxtLDS/FO5DsoVZfC19EX64etR2hAqNSlmQymqypEXIzAtD+mITk3WbvN19EXy/svR3hwuFHf+9VXX8W5c+dw8ODBMvt8fX0xefJkvP3220atgYiIiB7djbwbGPfLOOxN2AsACA8Ox8qnV8LV1lXiykwLg2klIi5GYMTmERAQOttTclMwYvMIbHl2i9HC6d9//41vv/0WBw4cKHd/cHAwTp8+bZT3JiIiIsP5/dLveH7787hVeAu2FrZY3n85JrabCJlMJnVpJkcudQE1SQiBgpKCaj1yi3IxddfUMqEUgHbbtF3TkFuUW+W5hCh7jqosXrwYHTt2RLdu3crd7+rqirS0NADAjh07EBQUhKZNm+K7774DAFy/fh29e/dGixYtEBISgp9//lnvGoiIiOjhFSmLMHXXVDy16SncKryFtg3a4uTLJ/Fi+xcZ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xeWiqiE6Ohp9+vQps33cuHFYvXp1zRdERLWOTCYrd/uqVavw/PPP12wxRFQrTZgwAZGRkbhx4wacnJwQEhKCt956C3379pW6NC0GUyIiIiIyCbzzExERERGZBAZTIiIiIjIJDKZEREREZBIYTImIiIjIJDCYEhEREZFJYDAlIiIiIpPAYEpEREREJoHBlIiIjO6DDz5A27ZtpS6DiEwcgykR0b969+6N6dOnG/Sczz//PIYOHWrQcz6M6OhoyGQyZGdnS/L+b7zxBiIjIyV5byIyHxZSF0BEZAglJSWwsrKSugyqgL29Pezt7aUug4hMHFtMicjk9O7dG5MnT8bkyZPh5OQEd3d3zJkzB/ffQTkgIAAffvghxo4dC0dHR7z00ksAgK1bt6Jly5awtrZGQEAAlixZonPur776Ck2bNoWNjQ3q16+PESNGANC0bMbExGD58uWQyWSQyWRISkoCAMTExKBTp06wtraGl5cX3n77bSiVSu05t2zZgtatW8PW1hZubm4ICwtDQUEBPvjgA6xZswbbt2/XnjM6OhpJSUmQyWSIiIhAnz59YGdnhzZt2uDw4cPac2ZmZmLkyJHw8fGBnZ0dWrdujU2bNlX6fbt69SqefvppuLi4oF69emjZsiV27tyJpKQk9OnTBwDg4uICmUyG559/HgBQXFyMqVOnwtPTEzY2NujRowdiY2O157zb0vr7778jJCQENjY26NKlC86fP689ZvXq1XB2dsbu3bsRHBwMe3t79O/fHzdu3NAe82BXfmxsLPr27Qt3d3c4OTkhNDQUJ0+erPTzEVEdIIiITExoaKiwt7cX06ZNE//8849Yv369sLOzE99++632GH9/f+Ho6Cg++eQTceXKFXHlyhVx/PhxIZfLxfz580VcXJxYtWqVsLW1FatWrRJCCBEbGysUCoXYuHGjSEpKEidPnhTLly8XQgiRnZ0tunbtKl588UVx48YNcePGDaFUKkVycrKws7MTr732mrh48aLYtm2bcHd3F3PnzhVCCJGamiosLCzE0qVLRWJiojh79qz48ssvRV5ensjLyxPPPvus6N+/v/acxcXFIjExUQAQzZs3Fzt27BBxcXFixIgRwt/fX5SWlgohhEhOThaLFy8Wp06dEvHx8eKzzz4TCoVCHD16tMLv26BBg0Tfvn3F2bNnRXx8vPjtt99ETEyMUCqV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",
      "text/plain": [
       "<Figure size 800x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "fig, ax = plt.subplots(figsize=(8, 4))\n",
    "koordinate = [1, 2, 3]\n",
    "for v, barva, oznaka in zip((v1n, v2n, v3n), (\"r\", \"g\", \"b\"),\n",
    "                             (r\"$\\omega_{01}$\", r\"$\\omega_{02}$\", r\"$\\omega_{03}$\")):\n",
    "    ax.plot(koordinate, v, \"-o\", color=barva, linewidth=1.5, label=oznaka)\n",
    "ax.set_xlabel(\"prostostna stopnja\")\n",
    "ax.set_ylabel(\"amplituda lastne oblike\")\n",
    "ax.set_xticks(koordinate)\n",
    "ax.grid(True, alpha=0.3)\n",
    "ax.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "727ed2e5",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "## Uporaba fizikalnih koordinat - odziv posamezne lastne oblike\n",
    "\n",
    "Odziv posamezne nihajne oblike je produkt lastnega vektorja in časovne\n",
    "harmonske funkcije s pripadajočo lastno frekvenco:\n",
    "$\\{q\\}_i(t) = \\{v\\}_i\\left(C_{i1}\\cos(\\omega_{0i}t)+C_{i2}\\sin(\\omega_{0i}t)\\right)$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "9412d396",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:28.403275Z",
     "iopub.status.busy": "2026-09-25T06:49:28.403164Z",
     "iopub.status.idle": "2026-09-25T06:49:28.633722Z",
     "shell.execute_reply": "2026-09-25T06:49:28.633347Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/latex": [
       "$\\displaystyle \\left( \\left[\\begin{matrix}C_{11} & C_{11} & C_{11}\\end{matrix}\\right], \\  \\left[\\begin{matrix}\\left(- \\frac{3}{4} - \\frac{\\sqrt{57}}{12}\\right) \\left(C_{21} \\cos{\\left(\\frac{\\sqrt{k} t \\sqrt{\\frac{11}{4} - \\frac{\\sqrt{57}}{4}}}{\\sqrt{J}} \\right)} + C_{22} \\sin{\\left(\\frac{\\sqrt{k} t \\sqrt{\\frac{11}{4} - \\frac{\\sqrt{57}}{4}}}{\\sqrt{J}} \\right)}\\right) & C_{21} \\cos{\\left(\\frac{\\sqrt{k} t \\sqrt{\\frac{11}{4} - \\frac{\\sqrt{57}}{4}}}{\\sqrt{J}} \\right)} + C_{22} \\sin{\\left(\\frac{\\sqrt{k} t \\sqrt{\\frac{11}{4} - \\frac{\\sqrt{57}}{4}}}{\\sqrt{J}} \\right)} & \\left(\\frac{7}{2} + \\frac{\\sqrt{57}}{2}\\right) \\left(C_{21} \\cos{\\left(\\frac{\\sqrt{k} t \\sqrt{\\frac{11}{4} - \\frac{\\sqrt{57}}{4}}}{\\sqrt{J}} \\right)} + C_{22} \\sin{\\left(\\frac{\\sqrt{k} t \\sqrt{\\frac{11}{4} - \\frac{\\sqrt{57}}{4}}}{\\sqrt{J}} \\right)}\\right)\\end{matrix}\\right], \\  \\left[\\begin{matrix}\\left(- \\frac{3}{4} + \\frac{\\sqrt{57}}{12}\\right) \\left(C_{31} \\cos{\\left(\\frac{\\sqrt{k} t \\sqrt{\\frac{\\sqrt{57}}{4} + \\frac{11}{4}}}{\\sqrt{J}} \\right)} + C_{32} \\sin{\\left(\\frac{\\sqrt{k} t \\sqrt{\\frac{\\sqrt{57}}{4} + \\frac{11}{4}}}{\\sqrt{J}} \\right)}\\right) & C_{31} \\cos{\\left(\\frac{\\sqrt{k} t \\sqrt{\\frac{\\sqrt{57}}{4} + \\frac{11}{4}}}{\\sqrt{J}} \\right)} + C_{32} \\sin{\\left(\\frac{\\sqrt{k} t \\sqrt{\\frac{\\sqrt{57}}{4} + \\frac{11}{4}}}{\\sqrt{J}} \\right)} & \\left(\\frac{7}{2} - \\frac{\\sqrt{57}}{2}\\right) \\left(C_{31} \\cos{\\left(\\frac{\\sqrt{k} t \\sqrt{\\frac{\\sqrt{57}}{4} + \\frac{11}{4}}}{\\sqrt{J}} \\right)} + C_{32} \\sin{\\left(\\frac{\\sqrt{k} t \\sqrt{\\frac{\\sqrt{57}}{4} + \\frac{11}{4}}}{\\sqrt{J}} \\right)}\\right)\\end{matrix}\\right]\\right)$"
      ],
      "text/plain": [
       "⎛                 ⎡            ⎛       ⎛         __________⎞          ⎛        ↪\n",
       "⎜                 ⎢            ⎜       ⎜        ╱ 11   √57 ⎟          ⎜        ↪\n",
       "⎜                 ⎢            ⎜       ⎜√k⋅t⋅  ╱  ── - ─── ⎟          ⎜√k⋅t⋅   ↪\n",
       "⎜[C₁₁  C₁₁  C₁₁], ⎢⎛  3   √57⎞ ⎜       ⎜     ╲╱   4     4  ⎟          ⎜     ╲╱ ↪\n",
       "⎜                 ⎢⎜- ─ - ───⎟⋅⎜C₂₁⋅cos⎜───────────────────⎟ + C₂₂⋅sin⎜─────── ↪\n",
       "⎝                 ⎣⎝  4   12 ⎠ ⎝       ⎝        √J         ⎠          ⎝        ↪\n",
       "\n",
       "↪   __________⎞⎞         ⎛         __________⎞          ⎛         __________⎞  ↪\n",
       "↪  ╱ 11   √57 ⎟⎟         ⎜        ╱ 11   √57 ⎟          ⎜        ╱ 11   √57 ⎟  ↪\n",
       "↪ ╱  ── - ─── ⎟⎟         ⎜√k⋅t⋅  ╱  ── - ─── ⎟          ⎜√k⋅t⋅  ╱  ── - ─── ⎟  ↪\n",
       "↪    4     4  ⎟⎟         ⎜     ╲╱   4     4  ⎟          ⎜     ╲╱   4     4  ⎟  ↪\n",
       "↪ ────────────⎟⎟  C₂₁⋅cos⎜───────────────────⎟ + C₂₂⋅sin⎜───────────────────⎟  ↪\n",
       "↪  √J         ⎠⎠         ⎝        √J         ⎠          ⎝        √J         ⎠  ↪\n",
       "\n",
       "↪            ⎛       ⎛         __________⎞          ⎛         __________⎞⎞⎤  ⎡ ↪\n",
       "↪            ⎜       ⎜        ╱ 11   √57 ⎟          ⎜        ╱ 11   √57 ⎟⎟⎥  ⎢ ↪\n",
       "↪            ⎜       ⎜√k⋅t⋅  ╱  ── - ─── ⎟          ⎜√k⋅t⋅  ╱  ── - ─── ⎟⎟⎥  ⎢ ↪\n",
       "↪  ⎛7   √57⎞ ⎜       ⎜     ╲╱   4     4  ⎟          ⎜     ╲╱   4     4  ⎟⎟⎥, ⎢ ↪\n",
       "↪  ⎜─ + ───⎟⋅⎜C₂₁⋅cos⎜───────────────────⎟ + C₂₂⋅sin⎜───────────────────⎟⎟⎥  ⎢ ↪\n",
       "↪  ⎝2    2 ⎠ ⎝       ⎝        √J         ⎠          ⎝        √J         ⎠⎠⎦  ⎣ ↪\n",
       "\n",
       "↪             ⎛       ⎛         __________⎞          ⎛         __________⎞⎞    ↪\n",
       "↪             ⎜       ⎜        ╱ √57   11 ⎟          ⎜        ╱ √57   11 ⎟⎟    ↪\n",
       "↪             ⎜       ⎜√k⋅t⋅  ╱  ─── + ── ⎟          ⎜√k⋅t⋅  ╱  ─── + ── ⎟⎟    ↪\n",
       "↪ ⎛  3   √57⎞ ⎜       ⎜     ╲╱    4    4  ⎟          ⎜     ╲╱    4    4  ⎟⎟    ↪\n",
       "↪ ⎜- ─ + ───⎟⋅⎜C₃₁⋅cos⎜───────────────────⎟ + C₃₂⋅sin⎜───────────────────⎟⎟  C ↪\n",
       "↪ ⎝  4   12 ⎠ ⎝       ⎝        √J         ⎠          ⎝        √J         ⎠⎠    ↪\n",
       "\n",
       "↪       ⎛         __________⎞          ⎛         __________⎞            ⎛      ↪\n",
       "↪       ⎜        ╱ √57   11 ⎟          ⎜        ╱ √57   11 ⎟            ⎜      ↪\n",
       "↪       ⎜√k⋅t⋅  ╱  ─── + ── ⎟          ⎜√k⋅t⋅  ╱  ─── + ── ⎟            ⎜      ↪\n",
       "↪       ⎜     ╲╱    4    4  ⎟          ⎜     ╲╱    4    4  ⎟  ⎛7   √57⎞ ⎜      ↪\n",
       "↪ ₃₁⋅cos⎜───────────────────⎟ + C₃₂⋅sin⎜───────────────────⎟  ⎜─ - ───⎟⋅⎜C₃₁⋅c ↪\n",
       "↪       ⎝        √J         ⎠          ⎝        √J         ⎠  ⎝2    2 ⎠ ⎝      ↪\n",
       "\n",
       "↪   ⎛         __________⎞          ⎛         __________⎞⎞⎤⎞\n",
       "↪   ⎜        ╱ √57   11 ⎟          ⎜        ╱ √57   11 ⎟⎟⎥⎟\n",
       "↪   ⎜√k⋅t⋅  ╱  ─── + ── ⎟          ⎜√k⋅t⋅  ╱  ─── + ── ⎟⎟⎥⎟\n",
       "↪   ⎜     ╲╱    4    4  ⎟          ⎜     ╲╱    4    4  ⎟⎟⎥⎟\n",
       "↪ os⎜───────────────────⎟ + C₃₂⋅sin⎜───────────────────⎟⎟⎥⎟\n",
       "↪   ⎝        √J         ⎠          ⎝        √J         ⎠⎠⎦⎠"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "C11, C12, C21, C22, C31, C32 = sp.symbols(\"C11 C12 C21 C22 C31 C32\", real=True)\n",
    "\n",
    "\n",
    "def odziv_oblike(v, w0, c1, c2):\n",
    "    \"\"\"Časovni odziv ene nihajne oblike v fizikalnih koordinatah.\"\"\"\n",
    "    return v * (c1 * sp.cos(w0 * t) + c2 * sp.sin(w0 * t))\n",
    "\n",
    "\n",
    "odziv1 = odziv_oblike(v1, omega01, C11, C12)\n",
    "odziv2 = odziv_oblike(v2, omega02, C21, C22)\n",
    "odziv3 = odziv_oblike(v3, omega03, C31, C32)\n",
    "odziv1.T, odziv2.T, odziv3.T"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c52636e4",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "## Uporaba fizikalnih koordinat - superpozicija odzivov\n",
    "\n",
    "Splošni odziv je vsota odzivov vseh treh nihajnih oblik. Konstante\n",
    "$C_{i1}$, $C_{i2}$ določimo iz začetnih pogojev: začetni zasuki\n",
    "$\\{\\alpha,\\beta,\\gamma\\}(0)=\\{1,1,-2\\}$, začetne kotne hitrosti so nič.\n",
    "Za togo obliko ($\\omega_{01}=0$) člen s $\\sin(\\omega_{01}t)$ ne prispeva,\n",
    "zato $C_{12}$ postavimo na 0."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "e8784865",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:28.634760Z",
     "iopub.status.busy": "2026-09-25T06:49:28.634633Z",
     "iopub.status.idle": "2026-09-25T06:49:28.901434Z",
     "shell.execute_reply": "2026-09-25T06:49:28.901035Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/latex": [
       "$\\displaystyle \\left\\{ C_{11} : \\frac{5}{8}, \\  C_{12} : 0, \\  C_{21} : \\frac{3}{16} - \\frac{21 \\sqrt{57}}{304}, \\  C_{22} : 0, \\  C_{31} : \\frac{3}{16} + \\frac{21 \\sqrt{57}}{304}, \\  C_{32} : 0\\right\\}$"
      ],
      "text/plain": [
       "⎧                       3    21⋅√57               3    21⋅√57        ⎫\n",
       "⎨C₁₁: 5/8, C₁₂: 0, C₂₁: ── - ──────, C₂₂: 0, C₃₁: ── + ──────, C₃₂: 0⎬\n",
       "⎩                       16    304                 16    304          ⎭"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "odziv = odziv1 + odziv2 + odziv3\n",
    "\n",
    "zasuk0 = sp.Matrix([1, 1, -2])\n",
    "enacbe_lega = list(odziv.subs(t, 0) - zasuk0)\n",
    "solC1 = sp.solve(enacbe_lega, [C11, C21, C31], dict=True)[0]\n",
    "\n",
    "hitrost0 = sp.Matrix([0, 0, 0])\n",
    "enacbe_hitrost = list(sp.diff(odziv, t).subs(t, 0).subs(C12, 0) - hitrost0)\n",
    "solC2 = sp.solve(enacbe_hitrost, [C22, C32], dict=True)[0]\n",
    "\n",
    "konstante = {**solC1, **solC2, C12: 0}\n",
    "konstante"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "40fe7e1a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:28.902593Z",
     "iopub.status.busy": "2026-09-25T06:49:28.902483Z",
     "iopub.status.idle": "2026-09-25T06:49:29.268759Z",
     "shell.execute_reply": "2026-09-25T06:49:29.268369Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 800x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "odziv_num = odziv.subs(konstante).subs({J: 1, k: 1})\n",
    "odziv_num = sp.simplify(odziv_num)\n",
    "\n",
    "odziv_fun = sp.lambdify(t, odziv_num, \"numpy\")\n",
    "casi = np.linspace(0, 10, 400)\n",
    "resitev = np.array([odziv_fun(ti) for ti in casi]).reshape(len(casi), 3)\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(8, 4))\n",
    "for i, (barva, oznaka) in enumerate(zip((\"r\", \"g\", \"b\"),\n",
    "                                         (r\"$\\alpha$\", r\"$\\beta$\", r\"$\\gamma$\"))):\n",
    "    ax.plot(casi, resitev[:, i], color=barva, linewidth=1.5, label=oznaka)\n",
    "ax.set_xlabel(\"$t$ [s]\")\n",
    "ax.set_ylabel(\"zasuk\")\n",
    "ax.grid(True, alpha=0.3)\n",
    "ax.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1423a74d",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "## Glavne ali modalne koordinate - ortogonalnost\n",
    "\n",
    "Masna in togostna matrika sistema v fizikalnih koordinatah\n",
    "$\\{\\alpha,\\beta,\\gamma\\}$ (te vstopata neposredno v Lagrangevo funkcijo,\n",
    "še preden delimo enačbe s skupnimi faktorji):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "bdee6146",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:29.270058Z",
     "iopub.status.busy": "2026-09-25T06:49:29.269941Z",
     "iopub.status.idle": "2026-09-25T06:49:29.453712Z",
     "shell.execute_reply": "2026-09-25T06:49:29.453368Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/latex": [
       "$\\displaystyle \\left( \\left[\\begin{matrix}6 J & 0 & 0\\\\0 & J & 0\\\\0 & 0 & J\\end{matrix}\\right], \\  \\left[\\begin{matrix}3 k & - 3 k & 0\\\\- 3 k & 4 k & - k\\\\0 & - k & k\\end{matrix}\\right]\\right)$"
      ],
      "text/plain": [
       "⎛⎡6⋅J  0  0⎤  ⎡3⋅k   -3⋅k  0 ⎤⎞\n",
       "⎜⎢         ⎥  ⎢              ⎥⎟\n",
       "⎜⎢ 0   J  0⎥, ⎢-3⋅k  4⋅k   -k⎥⎟\n",
       "⎜⎢         ⎥  ⎢              ⎥⎟\n",
       "⎝⎣ 0   0  J⎦  ⎣ 0     -k   k ⎦⎠"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "M = sp.diag(6 * J, J, J)\n",
    "K = k * sp.Matrix([[3, -3, 0], [-3, 4, -1], [0, -1, 1]])\n",
    "M, K"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ee384969",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "Lastni vektorji so med seboj ortogonalni glede na masno matriko,\n",
    "$\\{v\\}_i^{\\mathrm T}\\boldsymbol M\\{v\\}_j = 0$ za $i\\neq j$:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "61711ee0",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:29.454907Z",
     "iopub.status.busy": "2026-09-25T06:49:29.454779Z",
     "iopub.status.idle": "2026-09-25T06:49:29.475781Z",
     "shell.execute_reply": "2026-09-25T06:49:29.475372Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "v1^T M v2 = 0\n",
      "v1^T M v3 = 0\n",
      "v2^T M v3 = 0\n"
     ]
    }
   ],
   "source": [
    "\n",
    "for (i, vi), (j, vj) in [((1, v1), (2, v2)), ((1, v1), (3, v3)), ((2, v2), (3, v3))]:\n",
    "    vrednost = sp.simplify((vi.T * M * vj)[0, 0])\n",
    "    print(f\"v{i}^T M v{j} = {vrednost}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d517aec5",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "## Glavne ali modalne koordinate - modalna masa, modalna togost\n",
    "\n",
    "Modalna (generalizirana) masa in togost $i$-te oblike sta\n",
    "$m_{ii}=\\{v\\}_i^{\\mathrm T}\\boldsymbol M\\{v\\}_i$ in\n",
    "$k_{ii}=\\{v\\}_i^{\\mathrm T}\\boldsymbol K\\{v\\}_i$. Razmerje $k_{ii}/m_{ii}$\n",
    "mora ustrezati $\\omega_{0i}^2$ - to je hkrati kontrola izračuna."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "ef9d4bcf",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:29.477070Z",
     "iopub.status.busy": "2026-09-25T06:49:29.476969Z",
     "iopub.status.idle": "2026-09-25T06:49:29.549367Z",
     "shell.execute_reply": "2026-09-25T06:49:29.548945Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "m11 = 8.0000   k11 = 0.0000   k11/m11 = 0.0000\n",
      "m22 = 65.3368   k22 = 56.3557   k22/m22 = 0.8625\n",
      "m33 = 1.1632   k33 = 5.3943   k33/m33 = 4.6375\n"
     ]
    }
   ],
   "source": [
    "\n",
    "subsnum = {J: 1, k: 1}\n",
    "for i, vi in enumerate((v1, v2, v3), start=1):\n",
    "    mii = float(sp.simplify((vi.T * M * vi)[0, 0]).subs(subsnum))\n",
    "    kii = float(sp.simplify((vi.T * K * vi)[0, 0]).subs(subsnum))\n",
    "    print(f\"m{i}{i} = {mii:.4f}   k{i}{i} = {kii:.4f}\"\n",
    "          f\"   k{i}{i}/m{i}{i} = {kii / mii if mii else 0:.4f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b92a50af",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "## Skakalec - determinanta\n",
    "\n",
    "Zgled \"Skakalec\" ima 2 prostostni stopnji z masno in togostno matriko\n",
    "$\\boldsymbol M=\\mathrm{diag}(m,m)$ in\n",
    "$\\boldsymbol K=k\\begin{bmatrix}1&-1\\\\-1&2\\end{bmatrix}$.\n",
    "Karakteristično enačbo $\\det(\\boldsymbol K-\\omega^2\\boldsymbol M)=0$\n",
    "rešimo simbolno v $W=\\omega^2$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "d247222e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:29.550507Z",
     "iopub.status.busy": "2026-09-25T06:49:29.550352Z",
     "iopub.status.idle": "2026-09-25T06:49:29.754647Z",
     "shell.execute_reply": "2026-09-25T06:49:29.754243Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/latex": [
       "$\\displaystyle \\left[ \\frac{\\sqrt{2} \\sqrt{k} \\sqrt{3 - \\sqrt{5}}}{2 \\sqrt{m}}, \\  \\frac{\\sqrt{2} \\sqrt{k} \\sqrt{\\sqrt{5} + 3}}{2 \\sqrt{m}}\\right]$"
      ],
      "text/plain": [
       "⎡        ________          ________⎤\n",
       "⎢√2⋅√k⋅╲╱ 3 - √5   √2⋅√k⋅╲╱ √5 + 3 ⎥\n",
       "⎢────────────────, ────────────────⎥\n",
       "⎣      2⋅√m              2⋅√m      ⎦"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "m_sym = sp.symbols(\"m\", positive=True)\n",
    "Ms = sp.diag(m_sym, m_sym)\n",
    "Ks = sp.Matrix([[k, -k], [-k, 2 * k]])\n",
    "\n",
    "karak_skakalec = (Ks - W * Ms).det()\n",
    "koreni_skakalec = sp.solve(sp.Eq(karak_skakalec, 0), W)\n",
    "omega_skakalec_sym = [sp.sqrt(r) for r in koreni_skakalec]\n",
    "omega_skakalec_sym"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "8a07fde5",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:29.755895Z",
     "iopub.status.busy": "2026-09-25T06:49:29.755782Z",
     "iopub.status.idle": "2026-09-25T06:49:29.759840Z",
     "shell.execute_reply": "2026-09-25T06:49:29.759445Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "lastni krožni frekvenci [rad/s]: [61.80339887498949, 161.8033988749895]\n"
     ]
    }
   ],
   "source": [
    "\n",
    "skakalec_num = {k: 100e3, m_sym: 10}\n",
    "omega_skakalec = sorted(float(w.subs(skakalec_num)) for w in omega_skakalec_sym)\n",
    "print(\"lastni krožni frekvenci [rad/s]:\", omega_skakalec)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "374500cf",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "## Skakalec - lastne vrednosti\n",
    "\n",
    "Numerično rešimo posplošen problem lastnih vrednosti z\n",
    "`scipy.linalg.eigh(K, M)`. Za simetrični $\\boldsymbol K$ in\n",
    "pozitivno definitni $\\boldsymbol M$ ta vrne **urejene** lastne vrednosti\n",
    "$\\omega_i^2$ (naraščajoče) in **masno normirane** lastne vektorje, za\n",
    "katere velja $\\boldsymbol X^{\\mathrm T}\\boldsymbol M\\boldsymbol X=\\boldsymbol I$\n",
    "in $\\boldsymbol X^{\\mathrm T}\\boldsymbol K\\boldsymbol X=\\mathrm{diag}(\\omega_i^2)$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "f745a1ca",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:29.760739Z",
     "iopub.status.busy": "2026-09-25T06:49:29.760651Z",
     "iopub.status.idle": "2026-09-25T06:49:29.763159Z",
     "shell.execute_reply": "2026-09-25T06:49:29.762815Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "omega_i [rad/s]: [ 61.80339887 161.80339887]\n"
     ]
    }
   ],
   "source": [
    "\n",
    "Mn = np.diag([10.0, 10.0])\n",
    "Kn = np.array([[100e3, -100e3], [-100e3, 200e3]])\n",
    "\n",
    "lastne_vrednosti, X = linalg.eigh(Kn, Mn)\n",
    "lastne_frekvence = np.sqrt(lastne_vrednosti)\n",
    "print(\"omega_i [rad/s]:\", lastne_frekvence)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "a9c53cd1",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:29.764009Z",
     "iopub.status.busy": "2026-09-25T06:49:29.763863Z",
     "iopub.status.idle": "2026-09-25T06:49:29.766117Z",
     "shell.execute_reply": "2026-09-25T06:49:29.765760Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "X^T M X =\n",
      " [[ 1. -0.]\n",
      " [ 0.  1.]]\n",
      "X^T K X =\n",
      " [[ 3819.66    -0.  ]\n",
      " [   -0.   26180.34]]\n"
     ]
    }
   ],
   "source": [
    "\n",
    "print(\"X^T M X =\\n\", np.round(X.T @ Mn @ X, 6))\n",
    "print(\"X^T K X =\\n\", np.round(X.T @ Kn @ X, 3))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e6099222",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "Za primerjavo pokažimo tudi normalizacijo, kot jo privzeto vrne\n",
    "Mathematica funkcija `Eigensystem` (lastni vektorji enotske evklidske\n",
    "dolžine, ne masno normirani) - ker je $\\boldsymbol M=m\\boldsymbol I$\n",
    "skalarni večkratnik identitete, je $\\boldsymbol M^{-1}\\boldsymbol K$\n",
    "simetrična in ima iste lastne vektorje."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "8388d80d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:29.767086Z",
     "iopub.status.busy": "2026-09-25T06:49:29.766937Z",
     "iopub.status.idle": "2026-09-25T06:49:29.769233Z",
     "shell.execute_reply": "2026-09-25T06:49:29.768959Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "omega_i (evklidsko normirani vektorji): [161.80339887  61.80339887]\n"
     ]
    }
   ],
   "source": [
    "\n",
    "B = np.linalg.inv(Mn) @ Kn\n",
    "lastne_vrednosti_evklid, V = np.linalg.eigh(B)\n",
    "vrstni_red = np.argsort(-lastne_vrednosti_evklid)  # padajoče, kot Eigensystem\n",
    "lastne_vrednosti_evklid = lastne_vrednosti_evklid[vrstni_red]\n",
    "V = V[:, vrstni_red]\n",
    "print(\"omega_i (evklidsko normirani vektorji):\", np.sqrt(lastne_vrednosti_evklid))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c924915a",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "## Skakalec - generalizirana masa in togost\n",
    "\n",
    "Modalna masa in togost sta odvisni od normalizacije lastnih vektorjev.\n",
    "Za masno normirane vektorje `X` iz `eigh` je generalizirana masa enotska\n",
    "matrika, generalizirana togost pa $\\mathrm{diag}(\\omega_i^2)$ (izračunano\n",
    "že zgoraj). Za evklidsko normirane vektorje `V` (Mathematica privzeto)\n",
    "dobimo drugačni, a med seboj skladni vrednosti - razmerje\n",
    "$k_{ii}/m_{ii}=\\omega_i^2$ ostane enako."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "3675eef3",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-25T06:49:29.770275Z",
     "iopub.status.busy": "2026-09-25T06:49:29.770185Z",
     "iopub.status.idle": "2026-09-25T06:49:29.772464Z",
     "shell.execute_reply": "2026-09-25T06:49:29.772147Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "generalizirana masa (evklidska normalizacija):\n",
      " [[10.  0.]\n",
      " [-0. 10.]]\n",
      "generalizirana togost (evklidska normalizacija):\n",
      " [[261803.399      0.   ]\n",
      " [     0.     38196.601]]\n",
      "razmerje k_ii/m_ii: [26180.3398875  3819.6601125]\n"
     ]
    }
   ],
   "source": [
    "\n",
    "gM = V.T @ Mn @ V\n",
    "gK = V.T @ Kn @ V\n",
    "print(\"generalizirana masa (evklidska normalizacija):\\n\", np.round(gM, 4))\n",
    "print(\"generalizirana togost (evklidska normalizacija):\\n\", np.round(gK, 3))\n",
    "print(\"razmerje k_ii/m_ii:\", np.diag(gK) / np.diag(gM))"
   ]
  }
 ],
 "metadata": {
  "jupytext": {
   "formats": "ipynb,py:percent"
  },
  "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.13.15"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
