{ "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# Matrices" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Le module numpy n'est pas présent dans toutes les distributions de Python." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1 2]\n", " [3 5]] = A\n" ] } ], "source": [ "A = np.array([[1, 2],[3, 5]])\n", "print(A,\" = A\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Matrice unité ou identité :" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 1. 0.]\n", " [ 0. 1.]]\n" ] } ], "source": [ "I=np.eye(2)\n", "print(I)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 5. 4.]\n", " [ 6. 13.]] = 2A+3*I\n" ] } ], "source": [ "print( 2*A + 3*I, \" = 2A+3*I\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Remarque :" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 5 7]\n", " [ 9 13]]\n" ] } ], "source": [ " print(2*A + 3)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0. 0. 0.]\n", " [ 0. 0. 0.]] [[1 0 0]\n", " [0 2 0]\n", " [0 0 3]] [[ 1. 1. 1. 1.]] [ 0.75964575 0.25981134 0.61308799 0.25851246 0.96780174]\n" ] } ], "source": [ "print(np.zeros((2,3)) , np.diag(np.array([1,2,3])),np.ones((1,4)), np.random.rand(5) )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Addition de matrices" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1 2]\n", " [3 5]] + [[ 0 5]\n", " [ 2 -1]] = [[1 7]\n", " [5 4]]\n" ] } ], "source": [ "B=np.array([[0,5],[2,-1]])\n", "print(A,\" + \", B , \" = \" , A+B)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Produit de matrices" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 4 3]\n", " [10 10]]\n" ] } ], "source": [ "print(np.dot(A,B))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Comparer avec :" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0 10]\n", " [ 6 -5]]\n" ] } ], "source": [ "print(A*B)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Produit scalaire de vecteurs :" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "30" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "V1=np.array([3,2])\n", "V2=np.array([4,9])\n", "np.vdot(V1,V2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Transposée" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1, 3],\n", " [2, 5]])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A.transpose()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Inverse" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[-5., 2.],\n", " [ 3., -1.]])" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from numpy import linalg\n", "linalg.inv(A)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Puissance de matrice" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 43, 74],\n", " [111, 191]])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "linalg.matrix_power(A,3)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Valeurs propres et vecteurs propres" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 5.82842712e+00 1.71572875e-01 3.22904205e-14 -2.59045551e-16]\n", "[[-0.54003331 -0.23856181 -0.21018944 -0.2015738 ]\n", " [-0.42818875 -0.52653139 -0.53655579 0.15429856]\n", " [-0.65187788 0.04940777 0.04700627 0.37950998]\n", " [-0.31634419 -0.81450097 -0.81591586 0.88968091]]\n" ] } ], "source": [ "A = np.array([[2,1,3,-1],[3,-1,2,0],[1,3,4,-2],[4,-3,1,1]])\n", "valeursPropres , vecteursPropres = linalg.eig(A)\n", "print(valeursPropres)\n", "print(vecteursPropres)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "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.1" } }, "nbformat": 4, "nbformat_minor": 2 }