Skip to content

Instantly share code, notes, and snippets.

@kiwiheretic
Last active September 20, 2017 01:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kiwiheretic/51918eebf21be3278eb072379454967c to your computer and use it in GitHub Desktop.
Save kiwiheretic/51918eebf21be3278eb072379454967c to your computer and use it in GitHub Desktop.
Calculate gamma or lorentz factor
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sympy import *\n",
"init_printing()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![relativity.png](https://image.ibb.co/fRYTKQ/relativity4.png)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"a,c,v,t,x = symbols('a c v t x', positive=True)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAL4AAAAVCAYAAAD4r1SwAAAABHNCSVQICAgIfAhkiAAABIZJREFU\naIHtm11sFFUYhp+FiluoAWOqYGhEQqoErdYfogEMAbGRxEiC4aJEftRwY7lAL0QSojGBEoKJd/4k\n6IqiEiAKSCLVwIUiWFBSiaJEMAShQFVUIi1YKBfvGXc6nJnd/uycaTJPstn2fN/MPDs9c843Z7aQ\nkpLyP+8CZ4BhrkVSUvrAvUAX8EwxyfcDl4HnSmmUMmBYgjpPvWuRXvIx0ApUFEpsAv4CykttlDIg\neB91/Ntci/SSich/WVRSNRrt34rDKGVAcAg4B2Rci/SBQ8AxYFBYwip0dUwPidcD64HD6GScBfYB\nC/tVs3+YCmwAfgMuoOluBzDLoRPAi+gcLw6Jj0W+zbjtbF5fsL2edOjVZBxmB9ozQM7EVgViL5n2\nurCd7gc6sd/UXmdie4C1QKN5/93s9IUefoBSkQFeQ05t6GQ0Ah8g19XOzMRM5PZmSHyjiU+KzcjO\nHPIdaTfwsu9V5cgJ4C7gEvAjMNjX/irh5/VhE1tj2+Ew1LEPhhywAhhpaR+FRv+firGOgZXoQ27i\n6gu4ArgldqPujEZ+X1lik0xsQ6xG4SxCPotciwTIIa8F5vdl5M+brZwZbuLNtp1Vm2BTL0R+Rsuf\nrrkHjQb7gCGOXaL4A5WJfjLAN0AHMCZuoRDeQH3iPtciAaqAduBXoAE5fkb037wdOGULPEj0aHM9\nsBzYi/5ol+he933XY/3+5z2i71GSwi7kOdrXVo+9PnVJM3ARuNa1iIVG8n1vNzC0QP4JVNEAUOYL\ntJv3rGWjGjQT3IROxkdo1OoEbgXmAS09d+936tBFucu1SAFa0M33BHTznUUl2hnzngTKgDtRLX3B\nsYuNNt/PTwPnC+SXk+/j3biZ8NqzBU3BUy2xV8x2zxY4cKnJGo8Djj2K4Snk+rz5fSnJq6VrkNPb\nrkUs1KNl91bk+HqB/EEm/4gtmEEjTlugvYp8DRVkBHDcxB8o1rpElBuPE449isF7lP4OcCPwN1pU\nGBy1UczMI3rZ1RUzUfn1PVCJFlX+I/oB23j0WTaHJWwyCeN8bZWm7TBwja/9BrQu3mUObCuRcnS/\n+y41B83x5lhi1VzdsXLE6+eRRWViMxqtuoAZEfk54vf0vqowPySeI36nyaikOYpWEwGeMB6fRGy3\n0OQ0eA1lgYTN6MFAHfCLaWsDdgLT0KrDF+agj6Ja+jKqAzssB/SWljotsVKwFNiK7kHmAz+gWakW\n3UiOCuTH7efRgQaSGrQStR34PCLfhee35n0FcAfwLzqfGx053Q18imbHGajMAQ3W+4HHgSnAl5Zt\nH0GLMVvCdj4EOI06uJ9KYB26CM4BX6OpsBZdSWtD9ncA+AetCMXFFNSR/kQzUSu6MZ9ryXXh5/Eh\n+dny9gK5rjwb0FJ1B3Jd4chpHFqKPIsGiyDeA6q9lthwdFMbNSMA+Ufqtb3WFCPQVeb6SWkYSffz\nSKJnEp3CWIz68+RCiVn0hZ5tfTzgY2iksD3tTQJJ9/NIomcSnWyUAydROVQUD6Ev9qT/iJIykBmP\nvls0xq1GSkpKSoo7rgDCVytDHlWHeQAAAABJRU5ErkJggg==\n",
"text/latex": [
"$$\\left ( a, \\quad c, \\quad v, \\quad t, \\quad x\\right )$$"
],
"text/plain": [
"(a, c, v, t, x)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a,c,v,t,x"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Instantiate first equation ct=x/v or x=cvt, the line going through points A,E and F"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAFYAAAASCAYAAADBnymNAAAABHNCSVQICAgIfAhkiAAAAq5JREFU\nWIXtl01sTFEUx39Dw6ALGxJJG4IgEdVgV5UmiKQWJOhiBDckXdVCbLCyoQ2RdFcsGCGkYWFBgk03\nmtBGfDQpFuiijPgWCarVsThn4vblvemd9950ksn8k5f37jnnnvO/59177r1QQVniEJAFUqUmEjem\nlTj+Wn0/KimLMsRz4AeQmKJ4BlkhTcUOVKwZ2wR0A8PACJAB7gLbVd+BDHAFUA2MazsL7AGO6vfB\nAP+L1W8fU/dT7imnHR55AkirrqNYwRNApwb5qAHbgavAJ+CU2rVYZHqB49ZTCzSr7lxAnOuqbyiQ\nnyH8jF0N/AUGgemW/Az5ucaCkxrkBjDHo6sGFlrtVrVt9fFTo7r7ProG1XWH4GeIVgrS2t9o+5jF\npWj71Rrkj/YDMxzszyqpdQH6z8BXjywBPAR+A4tCcDRES2wt8At4A7Sprzs4jHeI/7XO5bli9b2s\nso2OJPuAP8DMAH2P+quxZCnca9mQ4xhyT9qRd7vVpxeY7WdU5Wm/QmaDK95Z31uQGdbj0K8KWIXU\nq5EAm6fIzFqJbIJJpNR80Pdk6ATmemT1wDbgEpJ4G08cfILsHTkcAH469guFJPIHHzva16n9hTw2\n+9XmsLaPEFyTXWGIVgpSyAkmo366InBxwiwN9NbRfi/5j1Mgl4cscBGYD3wHBpi4IxcKQ/jENiOl\n6xkwD3gBjALLI/BxwgBCusVHt4yJCcldZffl8ZcExpBa3KX2myNyNIRL7Hpkyb8GFqhsp/q6GZHT\npNiKnArGgdvImfU8ckrIeGw3KKlh4DRyft3l43MQqfljwK0YOBoKT2w98A0ZwxKPrl/9NcbALS8a\nkaR+QZZJBrmx7PaxbQNeIonLAid8bK6pbhS5pUWFobDELgXeI5tynY9+k/p7EAO3CiqooPzwD8AT\nxisquKDBAAAAAElFTkSuQmCC\n",
"text/latex": [
"$$- c t v + x$$"
],
"text/plain": [
"-c⋅t⋅v + x"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"e1 = x-v*c*t\n",
"e1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Instantiate second equation ct=vx going through point B,G and H"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAEYAAAASCAYAAADmMahlAAAABHNCSVQICAgIfAhkiAAAAmFJREFU\nWIXt102ITlEYB/DfIMbHllIzEULJR8ZujBRSY6Mwi5GPqFmNhWywssFEym6wYIpoYmFBYWNjykcS\nU4OFj8UwMj5TGDNmLM6ZXG/3dW+ZdxTzr9u99/z/5zz/5973PM99GcGQYycGUP+3jZQCo/5gblU8\n3x0KI/8SHuITyv62keHEcrSiEz3owlWsRZOwhdKOTcPkb0+Mt6MIP0PwfdvPF3ctzllXoC1DS+Sa\nigUsw9Eo6o4TDuIs3uAQ6hILtWFf4qjMldafozbGP16EPx/56sTYQnxHB0Ynxo9krAUORNEFTCzg\nJmFavG6IuoasDEqEihj/RgpXHbnWFK4lclvj/d6Etmi9XSw80TsYm2HsWFxwSYaulHiL9wVjZbiF\nr5ieMqcSX/AMjUIOV2TkezoKV+QwdRvfMC6HFp4rXpfSjjM51rwetRWJsXoZtUIoDYNx2jAhTTQm\ncb1aeAPXMwyNwXxhr/ZkaAfxRHiLefEyh+a+0CTmCU2iXCgFr+O5GLoT19vx+XdByoUneC+HoQVR\nezKHtpTYFn3sive7Zde9evQLXXYAzVlBxkfhixyGNvt9qxwuVEUfpzAFH9Hu146TRK2w/R9gMh6h\nF3OyArXHQHUp3OxEwMG/AlvyZlAilKNPqHfNgqdVRbRLhS3zFFPj2Po452JWoDVCV+rHZeGb5YTQ\npboSumVxwU4cFr5fNuTPZ0jRIdSuPlwqolmED0IOMwu4O0IuNVmBaoSH8k74mXUJX4wbC3SNeBxN\nDWB/jiRKgXMxfi/mpvCz8EpoKgtS+JVx/s1SGRzBCP5z/AAtAKl4L56tLwAAAABJRU5ErkJggg==\n",
"text/latex": [
"$$c t - v x$$"
],
"text/plain": [
"c⋅t - v⋅x"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"e2 = c*t-x*v\n",
"e2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Move e2 (equation 2) right by one x unit. Here we are trying to calculate the dotted line going through B."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAHkAAAAVCAYAAABizEFoAAAABHNCSVQICAgIfAhkiAAAA+tJREFU\naIHt2FuIVVUcx/HPqNhMSj50eQitKLVCul8o1DhREdiLUAlNFGHhS/pQvZT0YA+lWUHQQ+VDGUkm\nGQUVlC9CJdQodtciJANtyqksgyZznOnhv06zOZ49Zx9nnzkyzBcOe5/1/6//+q219roywQTjkFdw\nANPaLaRkrsAQ7isz6AMpaHeZQVvMVRjEg+0WUoDb8Bw+wiHR1hsa5HkLvZhelogNqeDzywo4BmzB\nH+hqt5ACfC7a9y/sVqyTr05+K8sSsTsJ6CgrYIuZK0bxunYLKcj1mCPat6JYJxP98iMmVRMm5ThW\nsAn7cFhMAR9gMdakAi8Q08Jg+j+Eu5qsyPHySCpvRY79XKG7x/BHuDS9b8rJsyXFvLUmvQPrk23N\ncStunq34PpXbDK/jLNyU59CBZ1PgPlG51XgNv2Itlhiu9DasyvxmNSnoeFmUyn8xx/5Gss/PpO3A\ngPwN1yU4il2YnEl/pkFZY0FF8ZF8Y/J9Os/hieSw2bGNMR1np/dlyW9Zc1pLY2Yq/+M6tvnJlh2x\n00QHf9Ug7vqU9570f2UmVt6sNxZUFO/kGcm3p57xcvElb8fUBoFeSIGuLKqyBfyGgzVpHfgU/+Cc\nTPpcoXdLg5iz0I8fsDzleV/j9mg1FcU7majDz/UMr6ZANxQI0oN/cVLBQvcaXreL/IpUZmvynZlJ\n61Z/7bzWsaM7j9UZHdtwcoE8e5VfvyyVJvPtFzMXmJIx3CxGxtYGAabgIrF2HS5Y6B4xuoryUwGf\nL0Tl54kNYqdYbg6kZ5b+9OwsELcv834v/i6QpxX1Gw1dhuv8P53iS/msQICLk+9L5epqmqVJx0Pp\n/8Py9wlnyl/Ds3SL00Jv8n++FKWjp6L4SJ4k6rCn1tCVguwvEORuIx9fxorqNd7LOAN/io3V5Dq+\nHWKE99WxVVkklqAvcTq+xREnxmVPRfFOvjD5vllNqO4Y+/G1+OKX1Mk413DjnZqeh5rXWirfiI3i\nPDyGU8R15dE6vkP4EKdhdh37AnGi2CeWrT48KpamJ8sW3mKuSc+6y+4tooEG8Z44E68Tu+3ejN91\notH24SlxPr69JXIbs0ushQN4t4HvHUL3/TXpl4qrzl6cV2PbnvIsHLXS5lksjnTrxQ5/SEzB1bS8\nc/BG0R65dxYLRQf/LqaqXnHsuLPGbzm+Ew08hMebr0MpbEzlHxE3cCMxFb+II1aV2eKocVDsNWqp\nXix8MmqlzbPKyDv0vXXyzBCz8ttjovAEpXodelm7hbSIFaJ+C9otpJ10isv7d9otpAV0iaPZ5lpD\nvZ3oeGYAO8Ulzg4xzY8X5oh7i7VijzHBBBOMK/4DU8wdY63KVvYAAAAASUVORK5CYII=\n",
"text/latex": [
"$$c t - v \\left(x - 1\\right)$$"
],
"text/plain": [
"c⋅t - v⋅(x - 1)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"e3=e2.subs(((x,x-1),))\n",
"e3"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Calculate B as (x<sub>b</sub>, t<sub>b</sub>). Note this means we will later have to multiply t by\n",
"the speed of light c."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAAVCAYAAABv/vNqAAAABHNCSVQICAgIfAhkiAAABTVJREFU\neJztmluIVVUYx39HxWZS0uhChFaUToVUdqVQ40RFYERCJTRdOFj4kj5ULyU9GFTaVCD0UPlQp5Is\nMgoqqHkZqARvpN20C9IJxk45lWXRZI5zevi+M7Nnt/fZa619mT1n9g+GM3t/31r7W+v/7b3XWntB\nQUHBpOVl4CAwY7wDKShwoF3z91KgAdzraB/D5cAw8EAiocXjfiTw7vEOZBIz0TTIU/5GcSvwLPAx\ncBjp500RZd4G6sBMR/sIvcDvQKdhsGmyCWn8ueMdyCRmommQp/yNYg/St38C+zC70a9QvzWOdgC6\nkKfhRotg02Qf0gmljK5XQTqpnNH1JgJZaxCHvOVvFNcA85G+LWN2o4No8gMwxdTud1yhF33DKlx7\nynqNfuAIMtT4EFim9vVIo89DhiDDetwA7gIe1v9Xh9R/tta7g+wStFdjusV3vgRU1bY+o1hMKBNP\ng7Rx0Tgqf/OmUR/wnV7XhteBM4DrHe3sAoZIbxGjBGxAGjaAdO464DXgF6BH/ZYz2vFbgbWev7nA\nUrW9EHKdN9W+yDK+Cu5v9IuAY8BeYKrn/DO0jjVrktIgbVw0jsrfPGtUxvyNfp36Pu1in4F00hfW\nIZrzhAawhf+LMRM403O8Un1XBtQzR22fBNgWqc1lVFIh3tC9quUrerzGE0vYMCtrktIgbWw1Ns3f\nKvnUqIz5jT5LfXe42LvU2GsdohmXIE/TncB0A//nNZ7LQuy/Aod850rAduAf4CyHGCvEu9HnAoPA\n98AqresDzNqbBUlrkDY2Gpvmb141KmN+o4O04ScX+1W0fhPWGJ2jmfz5A35Vz18b3QZAnkb/AseF\n2Pu0vjmec92Yz7NqIXGH/VUN417nKbMVON6wXBYkrYGfGvFyxI+NxlH568VVoxrJts9L2bLMAWQE\nY2Sf5jEM6m9HSMH9yFPUlB99xzcgT+c+g7LTgAuQudSREJ/PkM5ZgCwodSDD0oP6G8UGYLbv3ELg\nZmTDRc1n22NQJ8i8t8k9wN+G5bIgaQ38xM0RPzYaR+WvF1eNkm5fHDoZbbOV/XTC50Rx6dC6dxv6\nX6j+L7bwWaE+D+rxQ8SfT1aIN3TvRlan61rPczFiSZo0NEgbG41N8zevGpUxf6NPQdqw38VeQp6U\nA0HGmHQijThg6H83rT+twOh2v5eAU4E/kIWYqS3KRFHB/UZfigxzPwdOAb4GjpKfjSZpaJA2Nhqb\n5G+eNSpjfqOfr75vmdq9q4wN4CPgZGCeQ6CtGAS+RJ66ywPsXYwV7yT9Pdyizq+QhaUFwKPACci2\nx2Nxg3VgMbKK3Y8MjweAR5Dh75MhZaqMXf1NmzQ0SBsbjaPy10WjvHKl/oZNwaLs3I502H0JBtXk\nRkSgYeB95HvtRmQFuO7zvVrj6AeeQr7d3hZQ515kzjQEvJdAjBXs3+gLkS2XdeAcn22n1rckoNwr\narvTNsgYpKFB2thoHJa/rhqlzTLkgV9FVv4byHC7eS7sO/lmpD/C9jNE2ZkO/Ix8vkiDJUiC/YYM\nmerI55A7AnxXAd8gIjeAxwN8NqvtKLKDKy4V7G70ecgnjEPInNZPc+PCtgDbbuRteaJtkDFJWoO0\nsdE4KH/jaJQ2a2m9al8LKDMLGZ29E1JnlH2E5tbDi+1iLrBgNvJm7YlyLLCm3fN3NdK+xY72ETqQ\nDfHvJhZagZ+bkLfkaeMdSBvSzvnbiXyy22JrD1q9HAI+RTZJ7EKGTAXJ8i3wGPDXeAfShrRz/s5H\n9jT0IGsOtvaCgoKCgoKCCc1/KCErfh7X+6EAAAAASUVORK5CYII=\n",
"text/latex": [
"$$\\left ( - c t v + x, \\quad c t - v \\left(x - 1\\right)\\right )$$"
],
"text/plain": [
"(-c⋅t⋅v + x, c⋅t - v⋅(x - 1))"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"e1,e3"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"linsolve can't handle unexpanded terms, erroneously returns (0,0) so I expanded the expressions inline"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAKEAAAAlCAYAAAAqcIl4AAAABHNCSVQICAgIfAhkiAAABVFJREFU\neJztnFtsFGUUgD+KCJYKtQ1aifWGQS1W0cYYi5JGoiES1BcjUQxbMRqLURK8xBvWxNuDiFfEEJNG\nBcMDBk14MUa8BY2JSWupEiEmSoh4wRKkiorgw5m17Wxnzpndmc7s9v+Sze7+c/acvydn/ts5U3A4\nHJFpBD4Evga+Aq5PtTeOxDkGWAK0G+U7gNrkugPAycBs73MDsAeYnLBNx3BOwX7zbwYWFWtoErAV\nWOF91rgLmF+ssRLoQUZHx+hyDzDPIDcVeANYXYyRZ4DXjLJzgFeLMVIiLcD2FOw6YDzwHjIzaYxD\nBourohg4DhgAmg2yE4AvgelRDMRAHdAHtI6yXccgVwAbjbIPIVOzmXnAUWRNqNEBrIuiXOEn4E5f\n27nA3wyuBScCHwM3x2i33LH4LQm+AOYa5NqB/iiKlyFBqDEe+A64JIpyhfeBNb62zci6AmRofwvo\njNFmJaD5LSmWItOyRg6JqTqr4gexBeEC4HurUiOrkSOYPK3AIeA07/tlwBGge8jLsmyodDS/JcVU\nz84sRS6HxNTpVsWd2IJwPbDWqtTILcDPQ75/CqyK2UYlkqbfPgKeVGRySEydZVXaiR6EVcgcv8Sq\n1MjFnu164FrPhnkIH8Ok6bfHgG8UmRwBQVhVguFm5GC6uwQdI9GHTLfNyN31NPBbzDYqkTT91gOc\nA5wYInMkqtJOYJ8isxSJ7Oqoyg3sBLYBu5HjIoeNtPx2NhILC0Jk5hNxJKxBdr1hzAD2A3/ofYxM\nL3ApsBL4MwH9lUpaftvjvc8IkdnhvddblX4C3KfIrAe+tSp0VDwDSJYtjK3AA/7GkUbCuciC9hVF\n4fG4UcoxyAASE2HcgeziG4Y2+oNwEbAcuBr4XVFYDfxl76OjwjmEXs20A7gOeBlYmG/0B2ELsAtJ\nAWkcxpbWc4wNJiApQo2ZyKi5M0yoHdiCfnyzCSksDeJoGb3SJO2/PS4/9QMvKjJXIoXIExU5QM6c\ncorMGmCvRVkIWayS7kIcnku3G/+TRR/5qQL+AR5R5PqA261KXwI+UGRWAP9S2pScxSrp15EgXJxy\nP/Jk0Ud+GhCf3Rgic54nU1DREzTl/oqUAYWx3fv9GXofA/mRwYzLXs9u2im6ZmRTtiXlfuTJoo/8\n5Cvbw5ZnZ3rvB/0XwtZ9JymGP0NSMecrclZakNKw3THpAzluehcZPSxTbC3y96wlYu3bKJGEjyC6\nn/xcABxAlgtBnBB0ISwIxymGDwCfE09lcx0yDd4Wg66h1CAj9t3YzjQvR9Y2z8bcjzhIykcQ3U9+\nLkIqacLyw1o8FdCJbde4DEleB5GlKumDZGez4Ufz02hWkhfjp13ATYpMjoi548NG4xuQuX5mwPVe\noMnX9hTyXEI3cnd0IZugpCuAs0yYn3rIto+agGnAO0b5ggRHUBBq2ZI8/cj6KRdw3e/cVqSa4mHv\n+xzgBuQUfSxXSYf5Kes+yiExULDhCGC/VfFCZOi0zOP1SCFDzQjX4qr2fRz9ILVN0ZHl6bhc/TQZ\nmYq1TSzArQxW2wwj6IxvG3IGOD3oh0PYBzwB3As86rvWiwzV9cizIbOAawwd9vMc8KYi80MRerNC\nufqpA3geW5q3CdsDUcPYgBxIW1lH4dqwGgnmNuS0/P6onYiRLI+E5einRqSczzJb1gG/UMRx3jTk\nDl1sNFQNvAAc62tPs0q6BtldzkaKb1d6n08d5X5YKCc/TUJGwCkG3Y3I46jmdJ2fWmSqXW6Un0Lh\n2vBtZC1i/adKcdLGyOuirhT6olFOfqrDnjpcBVxYWvccDofD4XA4HA6HI2H+AyrdpKFjJv1JAAAA\nAElFTkSuQmCC\n",
"text/latex": [
"$$\\left\\{\\left ( \\frac{v^{2}}{v^{2} - 1}, \\quad \\frac{v}{v^{2} - 1}\\right )\\right\\}$$"
],
"text/plain": [
"⎧⎛ 2 ⎞⎫\n",
"⎪⎜ v v ⎟⎪\n",
"⎨⎜──────, ──────⎟⎬\n",
"⎪⎜ 2 2 ⎟⎪\n",
"⎩⎝v - 1 v - 1⎠⎭"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s1=linsolve((expand(e1), expand(e3)),(x,c*t))\n",
"s1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pick apart the coordinate into x<sub>b</sub> and t<sub>b</sub> variables (corresponding to point B)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAIoAAAAlCAYAAACdzXFfAAAABHNCSVQICAgIfAhkiAAAA8FJREFU\neJzt2luMXVMcx/HPTJUxHdVOgxKthwZBpA0RSZVMePDQhCA8uMSl4mEIDyLeXBIk6u5BSF8aNOJF\nxKN4QEREIi5FE0Ti0lAhKEPdWg//c+LMmXObc/aas7dZ32Rnztnz32v95jf/s9Y6a/3JZDL/K9bg\nVXyMD3DpUNW0YBorhi0i42hsqL1ejd1YVlDbx+qSeKNdGrgZn+OnggRl+ucbvFd7/S2+x2RBbX+N\n43BePw+fhacKEpIpltPxYcFtLsHLYuTqmaV4B8cULCYzOJP4CBsTtH0unp/PA9PYlkAI7MFNTfdO\nwp/+m4MXI734cghex1UJdbyNc3oJXCLWJWcmEvIKnmi69yKeSdRfVejmywiew12JdWwRU1BXNuOL\nhEIeEV/z6mzEPrGYWsx082UT9osFbf06NYGOw2v9ntItcAeeTCCgznX4ruH9G3goYX9VoUy+vIb7\nOgWM4kdcnVDEGTiAVbiw1l9RX/OqTJl8uRu7OgWsF2LXJxQxjn8wJVbvtyfsq0qUyZeLRR4c2S5g\nSy1gPLGQT/EmvsKhifuqEmXx5USRB5vrNw5qClgndmF/SyxkJy4S8/LvifuqEmXxZXft57p2ATvw\nycJoyZScGTxYf9N81nOY/AnPBDMiHzA3Ucbxx4LKyZSVfRpOp5sT5W9z1y2ZxclScXyAuUkxg7E2\nDx5IpSgRI0Pqt0o+dfJoTOQD5o4oe7Tf5Bnp4VordvV2iRX8ZT0+l+Kqs138867pYEqRVMmndoxi\nwuyd4lncKjZ9+p1+UlZh9cvTIlGuHLKORsroUyOrhWeXtws4vxZwfEEdvi9qPYfJu9iLlUPW0Yky\n+NRI/TihbdnHcjGiXFJAZymqsIhaiZfEp7DblLJC/D1bE+goijL41Mz1+FnD0qR5jbIXbxm8empS\nDPk3DNhOKyaEsbfovudzNv7Cwwl0FEFZfGrmNLGG2t8p6EYxFLaiLFVYdX61cIvU+VB1nz7DFd2C\nVuIXnNDid2WpwqpT1kSpsk8ni2lnopfgB7QuXClLFVadsiZKlX3aivt7bXiVOBxszqqiqrDuEQus\nTtdUD+2UNVGq6tMyMe0c1fyLdvslP+Be3IY7G+7vxBEikTaJusoLehDQzKN4tkvMl320Wxaq6tM0\nHhNrrHmxzey1SpmqsCjviFJFn9aIMpO+jj7G8TgObrg37CqsCfHNYYMosLqj9nrtELR0oko+jYmR\nZPkgHS43e63ygpgbrx2k0QGY0nqu3j4kPe2okk+TynWEkMlkMplMJpPJFMe/yAAKmkP403UAAAAA\nSUVORK5CYII=\n",
"text/latex": [
"$$\\left ( \\frac{v}{v^{2} - 1}, \\quad \\frac{v^{2}}{v^{2} - 1}\\right )$$"
],
"text/plain": [
"⎛ 2 ⎞\n",
"⎜ v v ⎟\n",
"⎜──────, ──────⎟\n",
"⎜ 2 2 ⎟\n",
"⎝v - 1 v - 1⎠"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tb = s1.args[0][1]\n",
"xb = s1.args[0][0]\n",
"tb,xb"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we try and calculate the intersection of the hyperbola with the x axis that goes through the point B"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAJcAAAAWCAYAAADNcw4EAAAABHNCSVQICAgIfAhkiAAAA6dJREFU\naIHt2UtoHVUYwPFftL5TqJbiA4NYxQdoreLChZWggqCIgugiYrlF6Ma6cCWKQhE0taLWhfiAStQq\nVgUXIlhBXFWLAWuL1AeIBWMjphppwdZHWxffhFwnk2TmztxHZP4w3Dtn5vvyv+ecmfMINTX/Ux7C\nKA5gAu/jsq4a5aNK74VaB/S4+zasEUKX4z38jDO6KZWDKr0Xah2wwNz7cQS3dlukIFV6L9Q6IOV+\nXHddZrBYOE12W6Qg83k/gGMYqiBXL9PT7m9jJ47vtkhB5vPeIjrXxRXk6mV61v0Z7MPybosUJI/3\n1ziIvgpyzUVDdOLBFuPL0JH2G8Ib+E5U6KRYUayZI+ZZjOOSdorlZBBbMYY/hdc23J5x73zeG0Rj\nZx33FMyVh4ZyneujJP6OVHkfRpJrGzLiOtJ+i/EPPsNmDCef+xOxBzNinhMrjEvbKZaDPmwSnhOi\nMofxpvDfmLo/j/ddphtlO9Y3HQMFc+WhoVznukJMyPf479D2dJL3pYyYjrVfP87KKD9bvMW+SZU/\nL/ZIrk/ipo7+NjrOxhOiAt/Faalr/Tiv6byI99ok79pZ/m6VddBQflgcSXI0kvOHk/OtZi4Ae6b9\nvsUvqbLZhoz1HTXjKvHEjuLEHPcX8X4xuXZ1Bbnmo6F85xrAIfyAdUm+D2XXSyH3vXMEZB1bUvGn\n41HsEHOtI6n7vyj6S+egrGszryf33FCh3xSf4y+cVHHevYr9/pECuYeb4rbj1FYEF6XOv8fhAvH7\nmr6vEBPCM0WFvoVfxRzsfKzGrlYkZ6GMa5qbxMPwSSmjmSwSO9d7xOKgSjZhSapsJW7Dq6LzNfNl\ngdwTTd/vxR9F5apml2jswYxrj4mn4L5OCuXkZOG2sw25VyS5X2lD7iwayg+LQzgqVn/H8EJpq5IM\nmB6b0yzBj8n1azoplZNThNtPbci9Osl9fxtyZ9FQrnPdLIbw3VgmFmB/y7f5O4Oq/v0zNTwtxwlN\n5UvFKuNcMTwWeTV3ikP4CueIrYM0F2l9x3lp8nmgxfhOcq1YKY+JacIEHhFD+5Nd9AIfm560bxST\n5P14R0zsq5xvVc0twvEoPhD+L4vV43iJvNeJOhnDU2IVdWcZ0XloaO3NtRK/i996QeraaJJzVUm3\nUizDa6LHH8SnYli4Usht7p5aLlaJjvWbGArGxQLl7pJ514ltmMOiHh4vmW8uGop3rgvFJuikmCOm\nuTHJuaOkW01NTU1NTU1NTRv4F0UzRAX8VIwEAAAAAElFTkSuQmCC\n",
"text/latex": [
"$$- a^{2} - c^{2} t^{2} + x^{2}$$"
],
"text/plain": [
" 2 2 2 2\n",
"- a - c ⋅t + x "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"e4 = x**2-(c*t)**2-a**2\n",
"e4"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Substitutes the values for (tb,xb) into the hyperbola equation"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAANQAAAAmCAYAAAC8hLUKAAAABHNCSVQICAgIfAhkiAAABMxJREFU\neJzt3E2oFWUcx/GPvZDZjdKLlAuLEkHLK4oUIRYXVxFUG9sExalFG9u1iBaJRGWUpS0qWkj2Ri9C\nSC3CsIgIDa3UzCgrsCLNvBW9EFHZbfG/F4/Hufeee15m5sx9vjAwZ86ceX7nN/M8z8z/ef5DIpFI\nVIwZ+AbrixZSIebiXXyGT3BToWoSufIAXpEqVCeZgyUj6xfie5zT7UJP63YBiQmZjwV4s2ghFeMI\n9o6s/4AhzOp2oUVXqHuwG7/hGN7AokIV5c964UOieyzD6fiu2wUVXaEG8SSWYyX+xXY5tCQl4UYc\nHFkS3WEWnsMdRQspgj4cx/VFC+kQR3Fnw7aF+Fvc368TreYhcUvyK9bkqK+XmchbOAvv4ZYcdZWK\nORjGiqKFdIjtogeuZyuez9i3JgUlJsNE3k7DS1ibo6bS8Sr2iPvdKrBBhG5HWY6/cHHGvjWpQk2G\nibxdgf9EYGJ0GchRX+E8hsO4tGghHeR2/Fj3+X08WpCWqpG8HYcNIsy5oM3j1MQt42Cbx+kUVwg9\n/SIA8YupE3DpNlPG25vxoohc/S7+6G7cNsb+j4txgoUdKLumXBVqhgiyDOIA7i5UTbWYEt6eK0Lf\nO7FJRLE2iQjWsFP/9BNiDGqlGM0eXfpaLL+mXBUKvsQOEc07u2AtVaPy3vaJCtHIHNFbfd6wfXiM\nZW2L5deUr0K9JjSN1UMnWmdKe/uFkx8iu0FN+SpUYgpzyNi9RtbyQsPvZ+JefCCenY437P9xgVo3\nd7DsKnNIe9fAlOaMhs9fi1h+sxyuW1+Mt3ABduFl/CSeqS7BrdjXstJT2YjzG7YtERGfZ8WFUc9e\niWZo5xpIdJB94kQMZnx3n2jNVndZQ0265UsUSGMP1SpzRQ+1zcmj10QvMvrQ+FGHyuskw0ULKIhp\nOZQxVb1tm9nCvIM4s257v6hkw/gH07usoybfHqqsWaFl1dUsZdWfq663nQg8PCwmKQ5hiwhOdPL5\naSxq8q1QhWSFNkFZdTVLWfXnqmu2yDs5JsacdohAxFJxkW/qVsF11LReoWaKlIB5bZS/T7RiebMF\nd43zfVG6RmnX2+RrD/IInmnj98vwaYe01HMNXhet4bBoNBoZwM84L0ddk6Edb5OvPcgMMW7Wah7W\nLDGfbHnHFJ3gOjyIVfhT9omHD50aRe2mrmZpx9vka4+ySrREjZGvsmWF/mHsE79GpDCMUpZs1Sxv\nK+tr0e+UKAtXi5B+Y5h3Py5r2LZOvPJrr7hINuMd2Vm4ebILV4pJomXSleVt8rXibBWzKxopW1bo\neC3pYnHRzitA13hkeZt8rTjb8HTG9k5lhd5v4jlxg00cZ7wTP3/kOGV7DVuWt5X1tVMzJXqdIRHa\nbWS/GA7oF63T5bihheNvNPEk0m9bOG49o9mqx9o8TqfJ8rayvqYKFeyR3UIdEF38gIgIPSQesCfL\n0MjSTRaJEPDRLpczWbK8Tb5WnAExm6M/47uis0L7RORriQjvrhlZv6hhv83yGTyfLGN5m3ytODtl\nz4YvOit00MT5XdPFSzKvyllbs2R5m3ytONeKrOJefCfgapGLVlZ61dtJ+9prf7CbfCXG5Y6IVqmX\nWIqnREJnGelVb8vuayKRSCQSiUQikUj0NP8D9sy3CVT952IAAAAASUVORK5CYII=\n",
"text/latex": [
"$$- a^{2} + \\frac{v^{4}}{\\left(v^{2} - 1\\right)^{2}} - \\frac{v^{2}}{\\left(v^{2} - 1\\right)^{2}}$$"
],
"text/plain": [
" 4 2 \n",
" 2 v v \n",
"- a + ───────── - ─────────\n",
" 2 2\n",
" ⎛ 2 ⎞ ⎛ 2 ⎞ \n",
" ⎝v - 1⎠ ⎝v - 1⎠ "
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"e5 = e4.subs(((c*t, tb),(x,xb)))\n",
"e5"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now solve for $a^2$"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAACwAAAAmCAYAAAC/H3lnAAAABHNCSVQICAgIfAhkiAAAAYtJREFU\nWIXt1zFLHEEch+FHI4jRyhAwRbTWEBDERkTuEyRVSkEtrAIp04lFIJXEylo0KGlErEWCiLUxapPO\nkEKbNCEJAT2Luchxeud6d+6ssC8MOzs7u/sy+9+BHzmXPMVnHGEfr6LaJOAJBkv9HvxAZzyd2/NF\nWPWGaG2CSBKG8ADfU3pfQ3TjECOxReAEryvG+vFPqN92bGM8Za+qbGKhYmwdy2jBKmZTdqrJB2Hr\n+s8I/qIPozjHXll7nrLfFaZwWna+g7lILokYRhGP8BI/hZ8sszzEGQrCTvA2qk1CvmFX2GM7Irsk\nYk0oi8nYIjk594GW0rEY1eIOyNND2jQlPdRDPYnjrtLDGDaEr1fExHWTbivcjSVMN2JWhS4c4A3+\nJLkhS+nhlyor3FbW/4qBiuvv8Umo2RVsCWkiE2QpPVRd4XKalR7eCT9NrVa44RmJS+KxkB5G8Qwv\n6hCex8cb5hzX8dwrZCk9JCoJ4qaHLmE3GsRvzJT6vbVuipkeCq6v98UILjk5OfeWC/mSYowV6geO\nAAAAAElFTkSuQmCC\n",
"text/latex": [
"$$\\frac{v^{2}}{v^{2} - 1}$$"
],
"text/plain": [
" 2 \n",
" v \n",
"──────\n",
" 2 \n",
"v - 1"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"e6 = solve(e5,a**2)[0]\n",
"e6"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The x intercept is the $a$ (square root) value of $-a^2=x^2 - (ct)^2$"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAFMAAAAoCAYAAACCV8YCAAAABHNCSVQICAgIfAhkiAAAA2JJREFU\naIHt2l2IVVUUwPHfZOUwDSVq9jVZREKWkeBLVOj0EEGBCRVBEJRKFFgRPWQvIShSD5X0UPRSUYH0\nEtn3Q2HE0NdLmdpDYURUYKQWhH2Z9rD2pdtwztx7zpxzz8z1/uEwd++z117rrrvO3muvMwwYMOD/\n3I1jfXY1xnu4vkkD+oV5OIThpg2pkhMa0nsdduKPhvTXQlPOXI0dDenuK07CASxs2pCqaSIyV2Ev\nfq5h7pV4DT+I3fX2GnTk0oQzbxBfuA5GsQf34feadMwovsWSHuj5TZ9H5mUiYr7usd6e0Gtn1vmI\nN06vndnXKVG7Mx8SO+A9OWMvwJ/4FEMldJ2DMXxcQnZW0O7MXenvspyxj+Jk3K/coX413sTRErKz\njjHhpImMe1emey9PY/63xZpZJ6NYnq7DeDh9Xlyz3kwOiAJEO0P4RJyjzy8572iad6S0Zd0xLrs0\n9nzNejPZmZSPtfXdmvoeyZG5HGs6zHuTPt7F89gmHHdtag+LJHs/Ts0Yfy/+EpE7FS9gfTUmzh7W\nCmc+kNobU/vOjLGb8KxIwo/i7Jw55+AnnFGlobOBFcJ5z2ERfsVu4ZA8NieZu3Lur8JHXehu+pVD\n5a8ohnFE5JJPJ6FrOsgsS+Peybn/mIjw45Ivxc59BG90KbNPJPRZ6+pXuLga05yL94WNX+Dmiuat\nje0i0v7GRV3KPJ5kbpnUv1S1RY2zRN4IZ4q65SkVzj8jWCmcuX1S/0bxmNfFLhGtfcUcUTn/RbyW\naPGh2IDqYIUoBFdN6Wp9VVWjf8T6ehquTn2LcKHs4+l0mS9y16yUbbrMiGr9GvFLPpXa68QXLsJ+\nbJjUt1QcDFpr5Vx8gNvKmVmInlfrW4yI4sL34jy/AzcWnONd//0YLV7Fi+nzkFiXN5W2shiNOZNY\na46JdeegeGSK8IRIfVpcIdK081L7KnHa+rzturS8uR1p1JnrhDM/w1sl5NeKo2eLCeWygS06n2DG\nu5inkDNPLGhkJ14XkbMcz5SQ343TsUBE4SWiqFyUbXipw5jvSszbcyZMXfiYihGRGYyLf1R4sDqz\nStFoZBIbz1z8WEL2ML7BVnE0fbJCu7plVKR0ROq4WDxpBzUQzQvF+/GyvCLWtDuqMacw42ZQtX7A\ngAED+pV/AZ8DGNEOMZULAAAAAElFTkSuQmCC\n",
"text/latex": [
"$$v \\sqrt{\\frac{1}{v^{2} - 1}}$$"
],
"text/plain": [
" ________\n",
" ╱ 1 \n",
"v⋅ ╱ ────── \n",
" ╱ 2 \n",
" ╲╱ v - 1 "
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sqrt(e6)"
]
}
],
"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.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
@kiwiheretic
Copy link
Author

kiwiheretic commented Sep 20, 2017

Could be that I introduced a sign error in step 10. I've noticed that time like hyperbolas tend to have a sign change anyway such that x^2-y^2 = -a^2 (rather than x^2-y^2 = a^2). However this just shifts the problem to outside the light cone and instead we have a corresponding problem with length contraction in the space like quadrant.

collier - light cone

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment