{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "eaa5c617-eab9-46fe-b681-70758e02b349", "metadata": { "tags": [] }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 56, "id": "81126b39-6eeb-4c59-9f49-b5d2f7c65901", "metadata": {}, "outputs": [], "source": [ "def grnormal(A,b,x0,maxiter=10**3):\n", " x = x0\n", " iterations = np.zeros((maxiter+1, len(b)))\n", "\n", " for k in range(maxiter):\n", " d = -(A@x - b)\n", " step = -d.T@(A@x-b)/(d.T@A@d)\n", " \n", " iterations[k+1] = x = x + step*d\n", " \n", " return x, iterations" ] }, { "cell_type": "code", "execution_count": 57, "id": "f8e03c1b-437f-477c-b1d0-b5a18a2fdbbe", "metadata": { "tags": [] }, "outputs": [], "source": [ "def grconjug2(A,b,x0,maxiter=10**3):\n", " g = A@x0 - b\n", " d = -g\n", " x = x0\n", " \n", " iterations = np.zeros((maxiter+1, len(b)))\n", " \n", " iterations[0] = x0\n", " for k in range(maxiter):\n", " step = -(d.T@(A@x-b))/(d.T@A@d)\n", " \n", " iterations[k+1] = x = x + step*d\n", " \n", " gn = (A@x-b)\n", " d = -gn + (gn@gn)/(g@g) * d\n", " g = gn\n", " \n", " return x, iterations" ] }, { "cell_type": "code", "execution_count": 66, "id": "0bd3228a-40aa-42f8-8e80-c73f2106e855", "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi8AAAGdCAYAAADaPpOnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACT+ElEQVR4nO2deXhV5bX/PydzSEgCSYCEBAhhEAUEDoqAOItDHdErrQNinfjhhGjtpd5W6+2V2qrF1jpcJ7S1Vm8LVCtVqYKioMIJCCIzYU4IUxIIkHH//tjuZOfkDPucs6cD6/M85yHZ2Xu/K4eT9/3utda7lkdRFAVBEARBEIQ4IcFpAwRBEARBECJBxIsgCIIgCHGFiBdBEARBEOIKES+CIAiCIMQVIl4EQRAEQYgrRLwIgiAIghBXiHgRBEEQBCGuEPEiCIIgCEJckeS0AWbT0tLC7t276dy5Mx6Px2lzBEEQBEEwgKIoHDp0iMLCQhISQvtWjjvxsnv3boqLi502QxAEQRCEKNixYwdFRUUhzznuxEvnzp0B9ZfPyspy2BpBEARBEIxQW1tLcXFx6zoeiuNOvGihoqysLBEvgiAIghBnGEn5kIRdQRAEQRDiChEvgiAIgiDEFSJeBEEQBEGIK467nBcjKIpCU1MTzc3NTpsiCBGTmJhIUlKSlAIQBOGE5YQTLw0NDVRUVHDkyBGnTRGEqOnUqRMFBQWkpKQ4bYogCILtnFDipaWlhfLychITEyksLCQlJUWeXoW4QlEUGhoa2Lt3L+Xl5fTv3z9sMSdBEITjjRNKvDQ0NNDS0kJxcTGdOnVy2hxBiIr09HSSk5PZtm0bDQ0NpKWlOW2SIAiCrZyQj2zypCrEO/IZFgThROaE8rwIgiAIghA9SrNC9eJqGioaSClIIWdcDp5E+9MvLH18++yzz7j88sspLCzE4/Ewb968sNd8+umneL1e0tLS6Nu3Ly+88IKVJgqCIAiCYIC9c/byZZ8v+ebcb1h7/Vq+OfcbvuzzJXvn7LXdFkvFS11dHaeeeirPPvusofPLy8u59NJLGTduHCtWrOBnP/sZ9957L3//+9+tNFMIweTJk7nqqqtavz/nnHOYNm2aY/YIgiAI9rN3zl7WXLuG+p317Y7X76pnzbVrbBcwloaNLrnkEi655BLD57/wwgv06tWLWbNmATBo0CCWL1/Ok08+yTXXXGORlfFFZWUlM2fO5P3332fnzp1kZ2fTv39/brzxRiZNmmR5IvKcOXNITk429Z6TJ0+murrakGdOEARBsBelWWHTfZtACfRDwAObpm0i78o820JIrsp5Wbp0KePHj2937KKLLuKVV16hsbEx4KJZX19PfX2bEqytrbXcTqfYsmULY8eOJScnh8cff5whQ4bQ1NTEhg0bePXVVyksLOSKK67ocF2w9y4aunbtasp9BEEQhPigenF1B49LOxSo31FP9eJqupzTxRabXLVlobKyku7du7c71r17d5qamti3b1/Aa2bOnEl2dnbrq7i4OKIxFQXq6px5KYFUbAimTp1KUlISy5cv57rrrmPQoEEMGTKEa665hvfff5/LL78cUDtyvvDCC1x55ZVkZGTwq1/9iubmZm699VZKSkpIT09n4MCBPPPMM+3u39zczPTp08nJySE3N5eHHnoIxc9I/7BRQ0MDDz30ED179iQjI4NRo0axaNGi1p/Pnj2bnJwcPvzwQwYNGkRmZiYXX3wxFRUVADz66KO8/vrr/OMf/8Dj8eDxeNpdLwiCIDhLQ0WDqeeZgas8L9CxFba2eAYrJjdjxgymT5/e+n1tbW1EAubIEcjMjMJQEzh8GDIyjJ27f/9+PvroIx5//HEyglykf48eeeQRZs6cye9+9zsSExNpaWmhqKiId955h7y8PJYsWcIdd9xBQUEB1113HQBPPfUUr776Kq+88gonn3wyTz31FHPnzuW8884Latctt9zC1q1b+etf/0phYSFz587l4osvZvXq1fTv3x+AI0eO8OSTT/KnP/2JhIQEbrzxRh588EHefPNNHnzwQdauXUttbS2vvfYaIN4dQRAEN5FSYKySt9HzzMBV4qVHjx5UVla2O1ZVVUVSUhK5ubkBr0lNTSU1NdUO8xxl06ZNKIrCwIED2x3Py8vj2LFjANx111088cQTAFx//fX8+Mc/bnfuL3/5y9avS0pKWLJkCe+8806reJk1axYzZsxozS964YUX+PDDD4PatHnzZt566y127txJYWEhAA8++CAffPABr732Go8//jighq1eeOEFSktLAbj77rt57LHHAMjMzCQ9PZ36+np69OgR3ZsjCIIgWEbOuBxSi1Kp31UfOO/FA6lFqeSMy7HNJleJl9GjR/Pee++1O/bRRx8xcuRI05NENTp1Uj0gThBNbq2/B+rrr7+mpaWFG264oV3uz8iRIztc+8ILL/Dyyy+zbds2jh49SkNDA8OGDQOgpqaGiooKRo8e3Xp+UlISI0eO7BA60igrK0NRFAYMGNDueH19fTux2alTp1bhAlBQUEBVVZXxX1oQBEFwDE+ih37P9GPNtWsC/FD9p9+sfrbWe7FUvBw+fJhNmza1fl9eXs7KlSvp2rUrvXr1YsaMGezatYs33ngDgClTpvDss88yffp0br/9dpYuXcorr7zCW2+9ZZmNHo/x0I2T9OvXD4/Hw7p169od79u3L6CWjNfjH1p65513uP/++3nqqacYPXo0nTt35re//S1fffVV1Da1tLSQmJiIz+cjMTGx3c8ydbE4f+Hp8XiCCiJBEATBfeRPyOeUv53Cpju/pX5fm0hJLUql36x+5E/It9UeS8XL8uXLOffcc1u/13JTbr75ZmbPnk1FRQXbt29v/XlJSQnz58/n/vvv549//COFhYX8/ve/l23SQG5uLhdeeCHPPvss99xzT9C8l2AsXryYMWPGMHXq1NZjmzdvbv06OzubgoICvvzyS8466ywAmpqa8Pl8jBgxIuA9hw8fTnNzM1VVVYwbNy6K30olJSWF5ubmqK8XBEEQrCd/Qj55CYepvvrnNJSeTsrLTzhWYddS8XLOOeeEfMKePXt2h2Nnn302ZWVlFloVvzz33HOMHTuWkSNH8uijjzJ06FASEhJYtmwZ69atw+v1Br22X79+vPHGG3z44YeUlJTwpz/9iWXLllFSUtJ6zn333cevf/1r+vfvz6BBg3j66aeprq4Oes8BAwZwww03MGnSJJ566imGDx/Ovn37+OSTTxgyZAiXXnqpod+rT58+fPjhh6xfv57c3Fyys7MtCxMKgiAI0eOpP0IXvoGiHLBpW3QgXLVVWghNaWkpK1as4IILLmDGjBmceuqpjBw5kj/84Q88+OCD/Pd//3fQa6dMmcKECROYOHEio0aNYv/+/e28MAAPPPAAkyZNYvLkya2hpauvvjqkTa+99hqTJk3igQceYODAgVxxxRV89dVXEe34uv322xk4cCAjR44kPz+fL774wvC1giAIgo0cPar+a3FB1HB4lOMs+aC2tpbs7GxqamrIyspq97Njx45RXl5OSUkJaWlpDlkoCLEjn2VBEBzh+edh6lSYMAFMbt0Tav32RzwvgiAIgiAY48gR9V+/TSJ2I+JFEARBEARjaGEjES+CIAiCIMQFLsl5EfEiCIIgCIIxxPMiCIIgCEJcITkvgiAIgiDEFRI2EgRBEAQhrpCwkSAIgiAIcYWIF0EQgjFv3jxLG5IKgiBEheS8CPHA5MmTueqqq1q/P+ecc5g2bZpj9liNG36/r776invvvZfRo0c7aocgCEIHXJLzYmljRsFcKisrmTlzJu+//z47d+4kOzub/v37c+ONNzJp0iQ62fBhmjNnjulNEydPnkx1dTXz5s0z9b7RYMXvFwkHDhzg1ltvZd68efTp08cxOwRBEALikrCRiJc4YcuWLYwdO5acnBwef/xxhgwZQlNTExs2bODVV1+lsLCQK664IuC1jY2Npi3IXbt2NeU+bsXp369r1658++23jtogCIIQFAkbCZEwdepUkpKSWL58Oddddx2DBg1iyJAhXHPNNbz//vtcfvnlred6PB5eeOEFrrzySjIyMvjVr35Fc3Mzt956KyUlJaSnpzNw4ECeeeaZdmM0Nzczffp0cnJyyM3N5aGHHsK/b6d/WKWhoYGHHnqInj17kpGRwahRo1i0aFHrz2fPnk1OTg4ffvghgwYNIjMzk4svvpiKigoAHn30UV5//XX+8Y9/4PF48Hg87a7X09LSwhNPPEG/fv1ITU2lV69e/M///E/rz1evXs15551Heno6ubm53HHHHRw+fLj151oI7Mknn6SgoIDc3FzuuusuGhsbg/5+Ho+ng0coJyeH2bNnt36/ZMkShg0bRlpaGiNHjmTevHl4PB5WrlzZ7j3Qo52j57333sPr9ZKWlkbfvn355S9/SVNTU8D3QhAEwREkbOQSFKVNSdpNp07gt4AFYv/+/Xz00Uc8/vjjZGRkBDzHfyF85JFHmDlzJr/73e9ITEykpaWFoqIi3nnnHfLy8liyZAl33HEHBQUFXHfddQA89dRTvPrqq7zyyiucfPLJPPXUU8ydO5fzzjsvqG233HILW7du5a9//SuFhYXMnTuXiy++mNWrV9O/f38Ajhw5wpNPPsmf/vQnEhISuPHGG3nwwQd58803efDBB1m7di21tbW89tprQHDvx4wZM3jppZf43e9+x5lnnklFRQXr1q1rHePiiy/mjDPOYNmyZVRVVXHbbbdx9913txMaCxcupKCggIULF7Jp0yYmTpzIsGHDuP3228P+PwTi0KFDXH755Vx66aX85S9/Ydu2bVHlzHz44YfceOON/P73v2fcuHFs3ryZO+64A1D/LwVBEFyBS8JGKMcZNTU1CqDU1NR0+NnRo0eV7777Tjl69GjbwcOHFUWVMPa/Dh829Dt9+eWXCqDMmTOn3fHc3FwlIyNDycjIUB566KHW44Aybdq0sPedOnWqcs0117R+X1BQoPz6179u/b6xsVEpKipSrrzyytZjZ599tnLfffcpiqIomzZtUjwej7Jr16529z3//POVGTNmKIqiKK+99poCKJs2bWr9+R//+Eele/furd/ffPPN7cYIRG1trZKamqq89NJLAX/+v//7v0qXLl2Uw7r39P3331cSEhKUysrK1nF69+6tNDU1tZ7zH//xH8rEiRMD/n6Kor6Xc+fObTdWdna28tprrymKoijPP/+8kpub2+4z9dJLLymAsmLFitb3IDs7u9095s6dq+j//MaNG6c8/vjj7c7505/+pBQUFAT8fQN+lgVBiEu2bFGU555TlGPHnLbEABkZ6vq1ebPptw61fvsjnpc4wt+78vXXX9PS0sINN9xAfX19u5+NHDmyw/UvvPACL7/8Mtu2bePo0aM0NDQwbNgwAGpqaqioqGi3wyUpKYmRI0d2CB1plJWVoSgKAwYMaHe8vr6e3Nzc1u87depEaWlp6/cFBQVUVVUZ+6W/Z+3atdTX13P++ecH/fmpp57azjM1duxYWlpaWL9+Pd27dwfglFNOITExsZ0tq1evjsgWPevXr2fo0KGkpaW1Hjv99NMjvo/P52PZsmXtwmDNzc0cO3aMI0eO2JKMLQiCMzz8MLz1FmRnw/XXO21NCPSRCknYdZhOnUCXF2H72Abo168fHo+nNUSi0bdvXwDSA3yI/MNL77zzDvfffz9PPfUUo0ePpnPnzvz2t7/lq6++itJ4NQclMTERn8/XThAAZGZmtn7tnyzs8XiCCqJgBPod9SiK0kHc6ccLZUtLS0vQ+wayVZ8jE2hc//MTEhJC3gPU9/KXv/wlEyZM6GCDXhgJgnD8oT3Lbd7srB1haWhQBQxIzovjeDwQJI/ELeTm5nLhhRfy7LPPcs899wTNewnF4sWLGTNmDFOnTm09tln3l5KdnU1BQQFffvklZ511FgBNTU34fD5GjBgR8J7Dhw+nubmZqqoqxo0bF7FNGikpKTQ3N4c8p3///qSnp/Pxxx9z2223dfj5ySefzOuvv05dXV3r+/PFF1+QkJDQwTMUCfn5+a3JxQAbN27kiC5H6qSTTuLNN9+kvr6e1NRUAJYvX97hHocOHWpnm5bMqzFixAjWr19Pv379orZVEIT4REsj2b3bWTvCohkKjnteZLdRnPDcc8/R1NTEyJEjefvtt1m7di3r16/nz3/+M+vWrevg+fCnX79+LF++nA8//JANGzbw85//nGXLlrU757777uPXv/41c+fOZd26dUydOpXq6uqg9xwwYAA33HADkyZNYs6cOZSXl7Ns2TKeeOIJ5s+fb/h369OnD6tWrWL9+vXs27evg1cCVO/DT3/6Ux566CHeeOMNNm/ezJdffskrr7wCwA033EBaWho333wz3377LQsXLuSee+7hpptuag0ZRcN5553Hs88+S1lZGcuXL2fKlCntvDfXX389LS0t3HHHHaxdu5YPP/yQJ598Emjz+IwaNYpOnTrxs5/9jE2bNvGXv/ylXRIxwC9+8QveeOMNHn30UdasWcPatWt5++23+a//+q+obRcEIT7QnodcL140QxMSwMF6WCDiJW4oLS1lxYoVXHDBBcyYMYNTTz2VkSNH8oc//IEHH3yQ//7v/w55/ZQpU5gwYQITJ05k1KhR7N+/v50XBuCBBx5g0qRJTJ48uTW0dPXVV4e872uvvcakSZN44IEHGDhwIFdccQVfffUVxcXFhn+322+/nYEDBzJy5Ejy8/P54osvAp7385//nAceeIBf/OIXDBo0iIkTJ7bmznTq1IkPP/yQAwcOcNppp3Httddy/vnn8+yzzxq2IxBPPfUUxcXFnHXWWVx//fU8+OCD7fJPsrKyeO+991i5ciXDhg3j4Ycf5he/+AXQFu7p2rUrf/7zn5k/fz5Dhgzhrbfe4tFHH203zkUXXcQ///lPFixYwGmnncYZZ5zB008/Te/evWOyXxAE9xN3npf0dEM7Za3Eo0SafOByamtryc7OpqamhqysrHY/O3bsGOXl5ZSUlEgegRCQ0aNHc/755/OrX/0q6nu8+eab3HLLLdTU1ITN1YkW+SwLwvFD796wfTv07Ak7dzptTQi+/RaGDIH8/LZEHRMJtX77IzkvgoC6Q2r16tWsWbOGe++9N6Jr33jjDfr27UvPnj355ptv+OlPf8p1111nmXARBOH4QovGVFZCczOEyQJwDrfUeEHEiyAA8K9//YtJkyZx+eWXc+2110Z0bWVlJb/4xS+orKykoKCA//iP/2i35VkQBCEUmiZoboa9e6FHD2ftCYpLtkmDiBdBAOCqq66itrY2qmsfeughHnroIZMtEgThREBR2m/i2b3bxeLFJa0BQBJ2BUEQBMExGhtBX2pKV5nBfbgobCTiRRAEQRAcwr+1nqt3HIl4EQRBEARBHzICl4sXF+W8iHgRBEEQBIeIK/EiOS+CIAiCIEjYKDpEvBzHLFq0iOeff9626wRBEITI8Pe8uDphV8JGQqScc845TJs2zfD55eXl3HjjjZx22mkRjWP0ukcffZRhw4ZFdO8+ffowa9Ys0+/r8XiYN29eRNcIgiC4AQkbRYeIlyhRmhUOLjrInrf2cHDRQZRma7sszJkzp13/olBCoKGhgR/96Ee89NJLjBw50vAYkVz34IMP8vHHHxu+N8CyZcu44447Wr8PJDqiua8gCEK8oukBrbbLnj3Q1OScPSFxUdhIitRFwd45e9l03ybqd9a3HkstSqXfM/3In5BvyZhdu3Y1fG5KSgpffvmloXMbGhpISUmJ+LrMzEwyMzMN2wSQnx/+vYnmvoIgCPGKFonp3VttF9TSov5bWOisXQFxkXgRz0uE7J2zlzXXrmknXADqd9Wz5to17J2z15Jx9WGjc845h23btnH//ffj8Xjw6Lp7LlmyhLPOOov09HSKi4u59957qaura/15nz59+NWvfsXkyZPJzs7m9ttvN3SdP/7hncmTJ3PVVVfx5JNPUlBQQG5uLnfddReNjY3txta8RX369AHg6quvxuPxtH7vf99ly5Zx4YUXkpeXR3Z2NmeffTZlZWVRvIOCIAjuQ9MDGRlt3hfX5r1Izkt8ojQrbLpvEwSKEH1/bNO0TbaEkIqKinjssceoqKig4vtP+urVq7nooouYMGECq1at4u233+bzzz/n7rvvbnf9b3/7WwYPHozP5+PnP/+54evCsXDhQjZv3szChQt5/fXXmT17NrNnzw547rJlywB47bXXqKioaP3en0OHDnHzzTezePFivvzyS/r378+ll17KoUOHIrJNEATBjejTSDRvi2vzXlyU8yJhowioXlzdwePSDgXqd9RTvbiaLud0scyOrl27kpiYSOfOnemha4Lx29/+luuvv77VQ9O/f39+//vfc/bZZ/P888+TlpYGwHnnnceDDz7Yet2kSZMMXReOLl268Oyzz5KYmMhJJ53ED37wAz7++ONW744eLYSUk5PT7nfw57zzzmv3/YsvvkiXLl349NNPueyyywzZJQiC4Fb0zoy4ES/ieYkvGioaTD3PbHw+H7Nnz27NG8nMzOSiiy6ipaWF8vLy1vP8k3GNXheOU045hURdL/eCggKqqqpi+p2qqqqYMmUKAwYMIDs7m+zsbA4fPsz27dtjuq8gCCcWP/kJPPKI01Z0RK8HRLwYxxbx8txzz1FSUkJaWhper5fFixeHPP/NN9/k1FNPpVOnThQUFHDLLbewf/9+O0wNSUpBiqnnmU1LSwt33nknK1eubH198803bNy4kdLS0tbzMjIyorouHMnJye2+93g8tOg7jkXB5MmT8fl8zJo1iyVLlrBy5Upyc3NpaHBGIAqCEH8cPAhPPgmPPQaHDzttTXv0eqCgQP1acl7CY3nY6O2332batGk899xzjB07lhdffJFLLrmE7777jl69enU4//PPP2fSpEn87ne/4/LLL2fXrl1MmTKF2267jblz51ptbkhyxuWQWpRK/a76wHkvHnXXUc64HMttSUlJobm5ud2xESNGsGbNGvr16xfRvaK9LlaSk5M7/A7+LF68mOeee45LL70UgB07drBv3z47zBME4ThBL1gqKqB/f+ds8UdyXqLDcs/L008/za233sptt93GoEGDmDVrFsXFxUEruH755Zf06dOHe++9l5KSEs4880zuvPNOli9fbrWpYfEkeuj3zPcLvMf/h+o//Wb1w5Po/0Pz6dOnD5999hm7du1qXcx/+tOfsnTpUu666y5WrlzJxo0beffdd7nnnntC3iva68z4HT7++GMqKys5ePBgwHP69evHn/70J9auXctXX33FDTfcQLoLVL8gCPGDvhCc24SB5LxEh6XipaGhAZ/Px/jx49sdHz9+PEuWLAl4zZgxY9i5cyfz589HURT27NnD3/72N37wgx8EPL++vp7a2tp2LyvJn5DPKX87hdSeqe2OpxalcsrfTrGszos/jz32GFu3bqW0tLQ1+XXo0KF8+umnbNy4kXHjxjF8+HB+/vOfU6D5IoMQ7XWx8tRTT7FgwQKKi4sZPnx4wHNeffVVDh48yPDhw7npppu499576datm6V2CYJwfOFm8RJXOS8uChuhWMiuXbsU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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "A = np.array([[1,0],[0,50]])\n", "b = np.array([0,0])\n", "\n", "x0 = np.array([30, 1])\n", "\n", "x, it = grnormal(A, b, x0, 30)\n", "plt.plot(it[:,0], it[:,1], label='Gradient', color='blue')\n", "\n", "x, it = grconjug2(A, b, x0, 2)\n", "plt.plot(it[:,0], it[:,1], label='Gradient conjugué', color='red')\n", "\n", "plt.plot(*x0, 'om', label='itéré initial')\n", "plt.plot(0, 0, 'og', label='Solution')\n", "\n", "plt.legend(loc=2)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "id": "def6fc4c-8bb7-45da-9abd-823943669f46", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.11.5" } }, "nbformat": 4, "nbformat_minor": 5 }