{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "%display latex\n", "axes = plot(vector([1,0,0]),color='black',thickness=\"2\")+plot(vector([0,1,0]),color='black',thickness=\"2\")+plot(vector([0,0,1]),color='black',thickness=\"2\")\n", "latex.matrix_delimiters('[',']')" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "# EXEMPLE 1\n", "Commencons avec deux points $P = (2,3,0)$ et $Q = (1,-2,1)$" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [ { "data": { "text/html": "\n\n" }, "execution_count": 2, "metadata": { }, "output_type": "execute_result" } ], "source": [ "OP = vector([2,3,0])\n", "OQ = vector([1,-2,1])\n", "X = plot(OP,thickness=\"5\") + plot(OQ,thickness=\"5\") + axes\n", "X" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On a vu que le vecteur direction $\\overrightarrow{D} = \\overrightarrow{OQ} - \\overrightarrow{OP}$ de $\\Delta_{PQ}$ est donné par $$[\\overrightarrow{D}]_B = \\begin{bmatrix}1-2\\\\-2-3\\\\1-0\\end{bmatrix} = \\begin{bmatrix}-1\\\\-5\\\\1\\end{bmatrix}$$\n", "\n", "Et que le ligne est crée comme:\n", "\n", "$$ x = 2 - t, \\qquad y=3-5t, \\qquad z = t$$\n", "\n", "Donc, on aura" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [ { "data": { "text/html": "\n\n" }, "execution_count": 6, "metadata": { }, "output_type": "execute_result" } ], "source": [ "droite = [OP[0] + (OQ[0]-OP[0])*x,OP[1] + (OQ[1]-OP[1])*x,OP[2] + (OQ[2]-OP[2])*x]\n", "X + parametric_plot3d(droite, (-2,1),thickness=\"5\",color=\"red\")" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "En utilisant ça, on peut voir si une pointe est sur la ligne ou pas. Prennons $R = (7,28,-5)$.\n", "\n", "Avec la première équation, on voit que $t = -5$. Si on substitut $t = -5$ partout, on voit que ça marche! Donc il faudra que $R$ est sur la droite." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [ { "data": { "text/html": "\n\n" }, "execution_count": 9, "metadata": { }, "output_type": "execute_result" } ], "source": [ "plot(point3d((7,28,-5),size=20,color=\"red\")) + X + parametric_plot3d(droite, (-5,1),thickness=\"5\",color=\"purple\")" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Essayons avec $S = (3,0,4)$. On peut voir que pour la première équation on aurais $t = -1$ mais pour la troisième, $t = 4$. Donc $S$ n'est pas sur notre droite!" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [ { "data": { "text/html": "\n\n" }, "execution_count": 11, "metadata": { }, "output_type": "execute_result" } ], "source": [ "plot(point3d((3,0,4),size=20,color=\"red\")) + X + parametric_plot3d(droite, (-2,1),thickness=\"5\",color=\"purple\")" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On peut décrire ces équations sans le $t$\n", "\n", "$$\\frac{x - x_1}{x_2 - x_1} = \\frac{y-y_1}{y_2 - y_1} = \\frac{z - z_1}{z_2 - z_1}$$\n", "\n", "Ça se donne une droite comme l'intersection de deux plans.\n", "Par exemple, si on prend celui d'avant, on aura\n", "\n", "$$ \\frac{x - 2}{-1} = \\frac{y-3}{-5} = \\frac{z}{1} $$\n", "\n", "ou encore\n", "\n", "$$ x-2 = -z \\qquad \\text{et} \\qquad \\frac{y-3}{5} = -z$$\n" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true, "scrolled": true }, "outputs": [ { "data": { "text/html": "\n\n" }, "execution_count": 12, "metadata": { }, "output_type": "execute_result" } ], "source": [ "t = var('t')\n", "parametric_plot3d([2-t,-5*t+3,t],(t,-2,1),color=\"blue\", thickness=\"11\")+ parametric_plot3d(droite, (-2,1),color=\"red\", thickness=\"10\")" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "# EXEMPLE 2\n", "\n", "Commencons avec trois points $P = (2,3,0)$, $Q = (1,-2,1)$, $R = (4,1,-1)$" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true, "scrolled": true }, "outputs": [ { "data": { "text/html": "\n\n" }, "execution_count": 13, "metadata": { }, "output_type": "execute_result" } ], "source": [ "OP = vector([2,3,0])\n", "OQ = vector([1,-2,1])\n", "OR = vector([4,1,-1])\n", "X = plot(OP,thickness=\"5\") + plot(OQ,thickness=\"5\") +plot(OR,thickness=\"5\") + axes\n", "X" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On a vu que les vecteurs directeurs $\\overrightarrow{D_1}$ et $\\overrightarrow{D_2}$ sont donné par\n", "\n", "$$\n", "[\\overrightarrow{D_1}]_B = \\begin{bmatrix}1-2\\\\-2 - 3\\\\ 1-0\\end{bmatrix} = \\begin{bmatrix}-1\\\\ -5\\\\ 1\\end{bmatrix}\n", "\\quad\n", "[\\overrightarrow{D_2}]_B = \\begin{bmatrix}4-2\\\\1 - 3\\\\-1 -0\\end{bmatrix} = \\begin{bmatrix}2\\\\ -2\\\\ -1\\end{bmatrix}\n", "$$\n", "\n", "Et que le plan est crée comme:\n", "\n", "$$ x = 2 - u + 2v, \\qquad y=3 -5u - 2v, \\qquad z = u - v$$\n", "\n", "Donc, on aura" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true, "scrolled": true }, "outputs": [ { "data": { "text/html": "\n\n" }, "execution_count": 14, "metadata": { }, "output_type": "execute_result" } ], "source": [ "u,v = var('u','v')\n", "droite = [OP[0] + (OQ[0]-OP[0])*u + (OR[0]-OP[0])*v,OP[1] + (OQ[1]-OP[1])*u+ (OR[1]-OP[1])*v,OP[2] + (OQ[2]-OP[2])*u+ (OR[2]-OP[2])*v]\n", "X + parametric_plot3d(droite, (u,-2,1), (v,-2,1))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "En utilisant ça, on peut voir si une pointe est sur la ligne ou pas. Prennons $S = (13,22,-8)$.\n", "\n", "On aura donc\n", "\n", "$$ 13 = 2 - u + 2v, \\qquad 22=3 -5u - 2v, \\qquad -8 = u - v$$\n", "\n", "C'est une sytéme d'équations linéaires!!! Donc on aura\n", "\n", "$$ \\begin{bmatrix}-1 & 2 \\\\ -5 & -2 \\\\ 1 & -1\\end{bmatrix} \\begin{bmatrix}u\\\\ v\\end{bmatrix} = \\begin{bmatrix}11 \\\\ 19 \\\\ -8\\end{bmatrix}$$" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 15, "metadata": { }, "output_type": "execute_result" } ], "source": [ "M = matrix([[-1,2,11],[-5,-2,19],[1,-1,-8]]);M" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 16, "metadata": { }, "output_type": "execute_result" } ], "source": [ "M.rref()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Donc il existe une suele solution : \n", "$$ u = -5 \\quad\\text{et}\\quad v = 3$$" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true }, "outputs": [ { "data": { "text/html": "\n\n" }, "execution_count": 18, "metadata": { }, "output_type": "execute_result" } ], "source": [ "plot(point3d((13,22,-8),size=20,color=\"red\")) + X + parametric_plot3d(droite, (-5,1), (-2,3))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Essayons avec $O = (0,0,0)$.\n", "\n", "On aura\n", "\n", "$$ 0 = 2 - u + 2v, \\qquad 0=3 - 5u - 2v, \\qquad 0 = u - v$$\n", "\n", "C'est une sytéme d'équations linéaires!!! Donc on aura\n", "\n", "$$ \\begin{bmatrix}-1 & 2 \\\\ -5 & -2 \\\\ 1 & -1\\end{bmatrix} \\begin{bmatrix}u\\\\ v\\end{bmatrix} = \\begin{bmatrix}-2 \\\\ -3 \\\\ 0\\end{bmatrix}$$" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 19, "metadata": { }, "output_type": "execute_result" } ], "source": [ "M = matrix([[-1,2],[-5,-2],[1,-1]]).augment(matrix([[-2,-3,0]]).transpose(), subdivide=True);M" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 20, "metadata": { }, "output_type": "execute_result" } ], "source": [ "M.rref()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Donc, il n'y a aucune solution! =D" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": "\n\n" }, "execution_count": 21, "metadata": { }, "output_type": "execute_result" } ], "source": [ "plot(point3d((0,0,0),size=20,color=\"red\")) + X + parametric_plot3d(droite, (-2,1), (-2,1))" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ ] } ], "metadata": { "kernelspec": { "display_name": "SageMath 8.0", "name": "sage-8.0" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 0 }