{ "cells": [ { "cell_type": "markdown", "id": "472391ae-2bce-43fd-808c-4a6ab9c6144c", "metadata": { "tags": [] }, "source": [ "| [Intro Octave 1](intro_octave_1.ipynb)| Revenir à la [page déroulement](../README.ipynb) |---|\n", "|-------------|---|---|\n", "\n", "---\n", "---\n", "# Intro. Octave 2 : CORRIGÉ ( -> [Sujet](./intro_octave_2.ipynb))\n", "--- \n", "\n", "--- \n" ] }, { "cell_type": "markdown", "id": "771060a6-b098-4b6d-92ee-de6926d2a5d0", "metadata": { "tags": [] }, "source": [ "---\n", "Apprendre à :\n", " - faire simple avec les interfaces utilisateur : config de script au début\n", " - faire des fonctions explicite\n", " - utiliser les fonctions anonyme\n", " - calcul numérique d'intégrale de 3 manières différentes\n", " " ] }, { "cell_type": "markdown", "id": "dcb49e2b-5673-487e-a15a-8b4ecdaa43ba", "metadata": { "jp-MarkdownHeadingCollapsed": true, "tags": [] }, "source": [ "## Déclaration de fonctions explicites (obsolète)\n", "\n", "Pour déclarer une fonction en octave cela est similaire au langage ada.\n" ] }, { "cell_type": "markdown", "id": "e5081e19-5674-4b34-bd52-18126c0f9c2e", "metadata": {}, "source": [ "\n", "Prenons l'exemple de la fonction qui calcule la valeur de l'onde complexe.\n", "\n", "$f : x \\mapsto e^{i.\\omega.x}$ \n", "\n", "Remarquons que cette fonction dépend d'un paramètre $\\omega$.\n" ] }, { "cell_type": "code", "execution_count": 5, "id": "77bc6500-2a10-44c7-8e8b-474bdfd67847", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "error: 'omega' undefined near line 2 column 15\n", "error: called from\n", " f at line 2 column 7\n" ] } ], "source": [ "omega = 4;\n", "\n", "function y = f(x)\n", " y = exp(i*omega*x)\n", "end\n", "\n", "f(3)" ] }, { "cell_type": "markdown", "id": "30897c3a-103b-42ba-9031-a2aae1db430e", "metadata": {}, "source": [ "Et oui, en informatique un paramètre doit être donné explicitement ou bien déclaré comme visible partout (dangereux)!\n", "\n", "On peut donc définir de deux manière une fonction paramétrée :\n", " - `fomega(x)` qui est paramétrée par une variable globale `omega` (effets de bord dangereux !)\n", " - `f(x,omega)` qui est une fonction de deux variables (passage explicite)" ] }, { "cell_type": "code", "execution_count": 223, "id": "06674ee9-8af3-4deb-955a-a92458208684", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "clear all;\n", "global omega=4;\n", "t=0:0.01:2;\n", "\n", "function y = fomega(x)\n", " global omega;\n", " y = exp(i*omega*x);\n", "end\n", "\n", "function y = f(x, omega)\n", " y = exp(i*omega*x);\n", "end\n", "\n", "plot(t,fomega(x=t),'b');\n", "hold on;\n", "\n", "omega=1;\n", "plot(t,fomega(x=t),'g');\n", "\n", "plot(t,f(x=t, w=10),'r');\n", "legend([\"fomega(t) omega = 4 globale\";\"fomega(t) omega = 1 globale modifiee\";\"f(t,10) omega explicite =10\"])" ] }, { "cell_type": "markdown", "id": "19084002-4ef0-49b6-a84e-13da12ba3d20", "metadata": {}, "source": [ "On peut mettre une fonction dans un fichier du même nom par exemple ici `fomega.m` et `f.m`.\n", "\n", "Si ces fichiers sont **dans le même répertoire que le script** alors ce script peut les utiliser sans déclarations." ] }, { "cell_type": "markdown", "id": "3eb51e27-ea87-4ac5-9f7d-8487bd59e6e6", "metadata": { "tags": [] }, "source": [ "## Fonctions anonymes\n", "---\n", "\n", "Une fonction mathématique qui s'exprime en une ligne de calcul peut être \n", " **déclarée en une seule ligne**.\n", " " ] }, { "cell_type": "markdown", "id": "f0fc6b3c-ebaf-41fb-b3cd-da0fff0183ce", "metadata": { "jp-MarkdownHeadingCollapsed": true, "tags": [] }, "source": [ " > Syntaxe de la déclaration avec @ \n", " > @(x,y,z) \n", " > Par exemple: \n", " > `@(x) x * x` est la fonction de $\\mathbb{C}\\to\\mathbb{C}$ de graphe $x\\mapsto x^2$ \n", " \n", " On peut la vectoriser avec : \n", " `@(x) x .* x` \n", "par polymorphisme x peut ainsi être un scalaire, un vecteur réel , un vecteur complexe, une matrice 2D, etc. \n", "On obtiendra ainsi le carré du scalaire, le vecteur du carré de chaque élément, la matrice des carrés de chaque élément etc.\n", " \n", "Remarquez que cette fonction n'as pas de nom ! (`@` pour anonyme avec matlab/octave, `lambda` en python donnera `lambda x : x * x`) \n", "\n", ">**En général on nomme une fonction anonyme avec =**, ce qui donne : \n", "> `f = @(x) x .* x` \n", "\n", "Ne pas nommer une fonction peut servir lorsque l'on doit passer une fonction en argument à une commande.\n", "Par exemple la fonction `quad` permet d'intégrer une fonction (pas un tableau de valeurs) avec une méthode numérique avancée (faire `help quad` pour les détails). \n", " " ] }, { "cell_type": "code", "execution_count": 224, "id": "f3d89588-fba2-4cc0-bd94-9f0f6ce48e01", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ans = 1.5000\n", "ans = 2.5000\n", "ans = 2\n", "la méthode numérique n'intègre pas des complexes :\n", "warning: quad: ignoring imaginary part returned from user-supplied function\n", "ans = 4.9226e-17\n", "energie_periode = 3.1416\n", "puissance_moyenne = 0.50000\n" ] } ], "source": [ "quad( @(x) x, 1, 2) % Intégrer l'\"x\" de l'année 1 à 2 de prépa = 3/2\n", "quad( @(x) x, 2, 3) % Intégrer l'\"x\" de l'année 2 à 3 de prépa = 5/2\n", "quad( @sin,0,pi) % intégrer sin sur une demi alternance : @sin <-> \"la fonction sin\"\n", " % sin <-> appelle la fonction sin\n", "disp(\"la méthode numérique n'intègre pas des complexes :\")\n", "quad( @fomega,0,pi) % notre fonction fomega s'intègre aussi mais c'est une fonction dans C !\n", "% donnons un nom à une fonction anonyme\n", "puissance = @(x) sin(x).^2;\n", "energie_periode = quad( puissance, 0, 2*pi) % énergie d'une période de sin \n", "puissance_moyenne = energie_periode / (2*pi)" ] }, { "cell_type": "markdown", "id": "1ff9b9ee-5866-4de6-b666-707e18e106bb", "metadata": { "jp-MarkdownHeadingCollapsed": true, "tags": [] }, "source": [ "### Sans effets de bord \n", "\n", "Attention ! Cette déclaration peut utiliser une valeur de paramètre **au moment où elle est déclarée**.\n", "\n", "On peut avoir des surprises et mieux vaux passer tous les paramètres explicitement.\n", "\n", "Reprenons notre fonction f :" ] }, { "cell_type": "code", "execution_count": 9, "id": "d8e99974-292f-4089-ae51-9dd34250ce1f", "metadata": {}, "outputs": [ { "data": { "image/png": "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b7/9trm5+d133y3zIj/88IOI3Llzh49KuOghxePp06dKKaXUnTt3zs/PzYP7+/tXr169evXqTz/9JCLn5+d37txxn2ZuJ7e2tsyD5mki8tNPPymlVldXt7a27ty5U3kLczNrfvfp06dXr16tH0/9vew/PXjwYHV11fy8urr64MGDKcdmXv/du3d379599+7dpJd98eKFUsr+pWPPTP0e3Ly4+UvfvXtn/yjzFlevXn358qV5gv3d+qtVztWUP9y+fuWETz/CsS/lXtlmL2vlUE33ZcpHaPrfe+mHwX6WTJ9m0hWZdMbMq5kXef369bt37+xHZfZXgy80orC/vy8i29vb+/v7Kysr29vbh4eHInL79u3Dw8Pr16+vrKxorV+8eCEi+/v75vmvXr0yT7t///7h4eEXX3xhPhJv374Vkc3NTfO027dv13/3xYsX5nevX7++vb1tj8Q8eHh4WH8v+5xXr16JyNu3bz98+GD/adKxmdef8rLmn7744gvzJ6ysrPz111+Tnv/ixYvKoW5ubtpfdB80z19ZWdnf379//745M/VXq5+rKX+4fX33hE85wvplta/gXtlmL2vlUCsntv5el77C9A+DPaoPHz5MuSLu31I/LfZF3Es/46st871Ds7gYkdje3rZfrbdv3759+9Z+Lev/ur29ffv2bfOVHvs088Nff/2ltb5//75puW7fvm1iw/b29srKimkQTevgHon7gpX3cp9m2hETmcwbTTo28/pTXtb9J9NU2cbo8PCwfthjT1r9F7XWttW2z6y/2thzNeUPr5/wGY/QXNaxr9DsZR17qPb81N/LXETzIot9GOwjl14R84Sxp8W+iH3+jK+m4Q2G7CJ08+bNSQPoL1++/Oc//ykis4zXm4E4O7bm2tra+vrrr92nzfteDx48ODo6Ojw8vH//vnmFSc+vvP70l510MPXDXl79JJhzNddJnv0IO76sY39r7HttbW0dHh7euXPnp59++vrrr8fmJixzTqabcloQHAJSJK5duyYiR0dH5+fnZoZg7NPMIM+zZ88+fvw45dU+//xzEXn58uXHjx/tIPvNmzfPz8+fPXtmfn3sVMHs73X37t3//Oc/R0dHd+/enevYJj3NjgVJubWdctjmzzR/oBn8ubRpq79a/VzN+IfMcoQ+XFb3xJp8gcp7PX369NWrVy9fvjw/P79+/frY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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "omega = 4;\n", "\n", "f = @(x) exp(i*omega*x) ; % vectorisée puisque omega est scalaire\n", "\n", "plot(t,f(t),'r+-');\n", "hold on;\n", "\n", "omega = 10;\n", "plot(t,f(t),'go');\n", "\n", "title(\"changer la variable omega ne change pas la fonction\")" ] }, { "cell_type": "markdown", "id": "1990e775-c7fc-40c9-a25b-ce8a22093a93", "metadata": {}, "source": [ "Et oui ! lors de la déclaration de la fonction f, omega vallait 4.\n", "La déclaration est exactement équivalente à `f = @(x) exp(i*4*x)` car à ce moment `omega` vallait 4.\n", "\n", "> Changer la valeur de omega ensuite, ne change pas la fonction f...\n", "\n", "Mieux vaut passer plusieurs paramètres explicitement. \n", "Ou bien déclarer une fonction par valeur de paramètre !" ] }, { "cell_type": "code", "execution_count": 60, "id": "303c3baf-5968-49a3-8a36-a08549aee44d", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f = @(x,w) exp(i*w*x) ;\n", "omega = 4;\n", "f_de_t = f(x=t, w=omega); % passage explicite des params\n", "plot(t,f_de_t,'r');\n", "\n", "hold on;\n", "omega = 10; \n", "plot(t,f(t,omega),'b'); % passage implicite par ordre\n", "\n", "% Déclarons la fonction pour omega =0 \n", "% C'est donc la fonction constante\n", "constante = @(x) f(x=x,w=0); % vectorisée si f(x,w) vectorisée\n", "plot(t,sqrt(2)/2*constante(t),'g')" ] }, { "cell_type": "markdown", "id": "3d3cd093-629e-4900-a434-74bbc352385b", "metadata": {}, "source": [ "Remarquez bien qu'en informatique comme en mathématique, il ne faut pas confondre\n", " - la fonction $\\vec{f}:\\mathbb{R^2}\\to \\mathbb{R}$ mathématique associée en informatique à la fonction anonyme `f`\n", " - l'évaluation la fonction $f(x,w)\\in\\mathbb{R}$ mathématique qui est une variable ou un tableau `f_de_t` ou `f(t)`dans cet exemple.\n", " " ] }, { "cell_type": "code", "execution_count": 10, "id": "94c520da-94e0-4f1c-b7d5-dfed4397193a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "f =\n", "\n", "@(x) exp (i * omega * x)\n", "\n", "f_de_t =\n", "\n", " Columns 1 through 3:\n", "\n", " 1.00000 + 0.00000i -0.65364 - 0.75680i -0.14550 + 0.98936i\n", "\n", " Columns 4 and 5:\n", "\n", " 0.84385 - 0.53657i -0.95766 - 0.28790i\n", "\n", "ans = 1\n", "ans = -0.95766 - 0.28790i\n" ] } ], "source": [ "t=0:4;\n", "f_de_t=f(t,1);\n", "f\n", "f_de_t\n", "f(x=0,w=1)\n", "f(4,1)" ] }, { "cell_type": "markdown", "id": "333ab045-2171-4cf6-a7b5-2ef75ec7b7f9", "metadata": { "tags": [] }, "source": [ "## Exercice fonctions anonymes" ] }, { "cell_type": "markdown", "id": "ef3af02e-9481-4cf4-af79-5b73288544af", "metadata": { "tags": [] }, "source": [ "On a définit la fonction de heaviside $\\vec{u}$ on aimerait définir la fonction rampe $\\vec{r} : x\\mapsto x.u(x)$\n" ] }, { "cell_type": "code", "execution_count": 257, "id": "e04c77a5-b6f2-4fe5-a9c7-18e6dc662a0b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "u_de_moins_10 = 0\n", "u_de_0 = 1\n", "u_de_t =\n", "\n", " 0 1 1 1\n", "\n", "ans = -0\n", "ans = 10\n", "r_de_t =\n", "\n", " -0 0 1 2\n", "\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "clear all;\n", "t=-1:2; % t = [-1; 0; 1; 2]\n", "\n", "% Définition de l'échelon u\n", "u = @(x) (x >= 0);\n", "u_de_moins_10 = u(-10)\n", "u_de_0 = u(0)\n", "\n", "%% VOTRE CODE u_de_t= évaluant u pour chaque valeur du tableau t \n", "%% il utilise la vectorisation de l'opérateur >= et la diffusion de 0\n", "u_de_t = u(t)\n", "\n", "%% VOTRE CODE r = déclarant la fonction rampe \n", "r = @(x) u(x).*x;\n", "r(-10)\n", "r(10)\n", "r_de_t = r(t)\n", "\n", "\n", "%% CORRIGER l'affichage \n", "t=-1:0.1:2;\n", "plot(t,r(t),'b-+'); hold on;\n", "%% il faut mettre à jour r_de_t et recalculer\n", "r_de_t = r(t);\n", "plot(t,r_de_t,'bo');\n", "xlabel(\"t [s]\"); ylabel(\"r(t) [V]\"); title(\"fonction rampe\")\n", "legend([\"la fonction r\";\"le vecteur r-de-t\"])" ] }, { "cell_type": "markdown", "id": "2890da4e-048e-412a-9f41-524ec18fe217", "metadata": { "tags": [] }, "source": [ "On veut définir:\n", " - une fonction causale $\\vec{f_1} =\\frac{3}{2}\\vec{u}-\\vec{r}$, \n", " - sa fonction antipodale (symétrique dans le temps) et donc anti-causale $\\vec{f_2}=\\vec{f_1}\\left(-\\bullet\\right)~: t\\mapsto f_1(-t)$. \n", " Remarquez que la variable $t$ est muette et aurait pu être $x\\mapsto f_1(-x)$ d'où la notation $\\vec{f_1}(-\\bullet)$\n", " - et la fonction non causale $\\vec{f}=\\vec{f_1}-\\vec{f_2}$ \n", " \n", " Et les tracer pour un temps $t$ allant de -3 à 3" ] }, { "cell_type": "code", "execution_count": 216, "id": "313790f7-e0a1-4698-be5c-0722aef41400", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "val_de_f1 = 10\n", "val_de_f1a = 1.5000\n", "ans = 31\n", "ans = 61\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "a=10;\n", "%% VOTRE CODE f1 : x |--> à partir des fonctions u, r et du scalaire a \n", "f1 = @(x) a*u(x)-r(x);\n", "\n", "%% VOTRE CODE f1a : (x,a) |--> à partir de u et r mais fonction de x et de a\n", "f1a = @(x,a) a*u(x)-r(x);\n", "\n", "a=3/2; % On redéfinit a et on évalue f1(0) et f1a(0)\n", "val_de_f1 = f1(0)\n", "val_de_f1a = f1a(0,a) % là f1 est redéfinie avec la bonne valeur de a\n", "\n", "%% VOTRE CODE f2 = à partir de f1a (variable muette t) on garde a=3/2\n", "f2 = @(t) f1a(-t,a);\n", "%%VOTRE CODE f= à partir de f1a et f2 (variable muette \"bernardo\")\n", "f = @(bernardo) f1a(bernardo,a) - f2(bernardo);\n", "\n", "t=-1:0.1:2;\n", "%% VOTRE CODE f_de_t=... le vecteur des valeur de f pour les temps de t\n", "f_de_t = f(t);\n", "\n", "%%VOTRE AFFICHAGE de f_de_t avec t pour abscisse , en \"ronds bleus\" avec titre légende des axes etc\n", "plot(t,f_de_t,'ob-');\n", "xlabel(\"temps t [s]\")\n", "ylabel(\"f(t) [V]\")\n", "hold on; %pour ne pas effacer\n", "t = -3:0.1:3; % on elargit le temps\n", "\n", "%%VOTRE AFFICHAGE \"en petits + rouges\" de t |--> f(t) à partir de la fonction f\n", "plot(t,f(t),'r+');\n", "\n", "length(f_de_t) % Ne recalcule pas ! c'est en mémoire\n", "length(f(t)) % Recalcule tout à chaque fois !" ] }, { "cell_type": "markdown", "id": "9cb2991b-486d-47fb-aa28-65a16cb5cd50", "metadata": { "tags": [] }, "source": [ "### En bonus / série de Fourier\n", "\n" ] }, { "cell_type": "markdown", "id": "1da60f99-78be-4298-a307-19d435b58644", "metadata": {}, "source": [ "voici un exemple de code qui calcule la somme partielle de la série de fonction $\\vec{S_n} = \\Sigma a(n) . \\vec{\\omega_n}$ avec $a(n) = \\frac{1}{n}$:\n", "\n", "$S_2(t) = a(1).\\overbrace{cos(2\\pi.F_0.t)}^{\\omega_1(t)} + a(2).\\overbrace{cos(2\\pi.2.F_0.t)}^{\\omega_2(t)}$\n", "\n", "$\\dots$ \n", "\n", "$\\vec{S_N}=\\sum\\limits_{n=1}^{n=N} a(n).\\overbrace{\\cos(2\\pi.F_0.\\bullet)}^{\\vec{\\omega_n}}$\n", "\n", "\n", "Remarquez bien la différence entre la fonction $\\vec{S_2}$ représentée par la fonction anonyme `S2` \n", "et l'évaluation $S_2(t)\\in\\mathbb{R}$ de cette fonction représentée par le tableau de réels `S2_de_T` " ] }, { "cell_type": "code", "execution_count": 217, "id": "ac3d6d76-ae96-432b-9091-db6d4437bfd1", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "T0=3;F0 = 1/T0; % période de 3 secondes\n", "n=1:10;\n", "a= 1./n; % coefs de Fourier [1, 1/2, 1/3, ...]\n", "w1 = @(x) sin(2*pi*F0*x);\n", "w2 = @(x) w1(2*x);\n", "\n", "S2 = @(x) a(1)*w1(x) + a(2)*w2(x);\n", "S2_de_t = S2(t);\n", "plot(t,a(1)*w1(t)); hold on;\n", "plot(t,S2_de_t,'b-.')\n", "\n", "w = @(x) sin(2*pi*x);\n", "wn= @(n,x) w(F0*x*n);\n", "\n", "Sn_de_t = 0*t; % vecteur de zéros (autant de valeur que dans t)\n", "Sn = @(x) (0); % fonction nulle x |--> 0\n", "\n", "\n", "for n=n\n", " %plot(t,f_de_t,'r--');hold on;\n", " Sn = @(x) Sn(x) + a(n)*wn(n,x); % Redéfinition de la fonction Sn EN FONCTION de Sn !\n", " Sn_de_t = Sn_de_t + a(n)*wn(n,t); % Somme des valeur à partir de la somme des valeurs !\n", " \n", "end\n", "\n", "plot(t,Sn(t),'r')\n", "plot(t,f(t),'k')\n", "legend([\"S_1 : fondamentale (rang 1)\";\n", " \"S_2 : fond+ 1ere harmonique (rang 2)\";\n", " \"S_{10} : Somme partielle de rang 10\";\n", " \"fonction f : limite de Sn\"])\n" ] }, { "cell_type": "markdown", "id": "7001c72f-40bd-4c70-a89a-d24fdee6e4df", "metadata": {}, "source": [ "Si l'on change le vecteur temps `t` ($\\pm 3$s) pour l'agrandir en un vecteur `tt` doublé ($\\pm 6$s), on voit que la fonction $f$ n'est pas périodique et est approchée sur le support $\\left[-3,\\;3\\right]$ par $S_n$ qui est périodique. " ] }, { "cell_type": "code", "execution_count": 218, "id": "35744a12-23c2-4957-8008-eb21a2de6af2", "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGkCAIAAACgjIjwAAAJMmlDQ1BkZWZhdWx0X3JnYi5pY2MAAEiJlZVnUJNZF8fv8zzphUASQodQQ5EqJYCUEFoo0quoQOidUEVsiLgCK4qINEWQRQEXXJUia0UUC4uCAhZ0gywCyrpxFVFBWXDfGZ33HT+8/5l7z2/+c+bec8/5cAEgiINlwct7YlK6wNvJjhkYFMwE3yiMn5bC8fR0A9/VuxEArcR7ut/P+a4IEZFp/OW4uLxy+SmCdACg7GXWzEpPWeGjy0wPj//CZ1dYsFzgMt9Y4eh/eexLzr8s+pLj681dfhUKABwp+hsO/4b/c++KVDiC9NioyGymT3JUelaYIJKZttIJHpfL9BQkR8UmRH5T8P+V/B2lR2anr0RucsomQWx0TDrzfw41MjA0BF9n8cbrS48hRv9/z2dFX73kegDYcwAg+7564ZUAdO4CQPrRV09tua+UfAA67vAzBJn/eqiVDQ0IgALoQAYoAlWgCXSBETADlsAWOAAX4AF8QRDYAPggBiQCAcgCuWAHKABFYB84CKpALWgATaAVnAad4Dy4Aq6D2+AuGAaPgRBMgpdABN6BBQiCsBAZokEykBKkDulARhAbsoYcIDfIGwqCQqFoKAnKgHKhnVARVApVQXVQE/QLdA66At2EBqGH0Dg0A/0NfYQRmATTYQVYA9aH2TAHdoV94fVwNJwK58D58F64Aq6HT8Id8BX4NjwMC+GX8BwCECLCQJQRXYSNcBEPJBiJQgTIVqQQKUfqkVakG+lD7iFCZBb5gMKgaCgmShdliXJG+aH4qFTUVlQxqgp1AtWB6kXdQ42jRKjPaDJaHq2DtkDz0IHoaHQWugBdjm5Et6OvoYfRk+h3GAyGgWFhzDDOmCBMHGYzphhzGNOGuYwZxExg5rBYrAxWB2uF9cCGYdOxBdhK7EnsJewQdhL7HkfEKeGMcI64YFwSLg9XjmvGXcQN4aZwC3hxvDreAu+Bj8BvwpfgG/Dd+Dv4SfwCQYLAIlgRfAlxhB2ECkIr4RphjPCGSCSqEM2JXsRY4nZiBfEU8QZxnPiBRCVpk7ikEFIGaS/pOOky6SHpDZlM1iDbkoPJ6eS95CbyVfJT8nsxmpieGE8sQmybWLVYh9iQ2CsKnqJO4VA2UHIo5ZQzlDuUWXG8uIY4VzxMfKt4tfg58VHxOQmahKGEh0SiRLFEs8RNiWkqlqpBdaBGUPOpx6hXqRM0hKZK49L4tJ20Bto12iQdQ2fRefQ4ehH9Z/oAXSRJlTSW9JfMlqyWvCApZCAMDQaPkcAoYZxmjDA+SilIcaQipfZItUoNSc1Ly0nbSkdKF0q3SQ9Lf5RhyjjIxMvsl+mUeSKLktWW9ZLNkj0ie012Vo4uZynHlyuUOy33SB6W15b3lt8sf0y+X35OQVHBSSFFoVLhqsKsIkPRVjFOsUzxouKMEk3JWilWqUzpktILpiSTw0xgVjB7mSJleWVn5QzlOuUB5QUVloqfSp5Km8oTVYIqWzVKtUy1R1WkpqTmrpar1qL2SB2vzlaPUT+k3qc+r8HSCNDYrdGpMc2SZvFYOawW1pgmWdNGM1WzXvO+FkaLrRWvdVjrrjasbaIdo12tfUcH1jHVidU5rDO4Cr3KfFXSqvpVo7okXY5upm6L7rgeQ89NL0+vU++Vvpp+sP5+/T79zwYmBgkGDQaPDamGLoZ5ht2GfxtpG/GNqo3uryavdly9bXXX6tfGOsaRxkeMH5jQTNxNdpv0mHwyNTMVmLaazpipmYWa1ZiNsulsT3Yx+4Y52tzOfJv5efMPFqYW6RanLf6y1LWMt2y2nF7DWhO5pmHNhJWKVZhVnZXQmmkdan3UWmijbBNmU2/zzFbVNsK20XaKo8WJ45zkvLIzsBPYtdvNcy24W7iX7RF7J/tC+wEHqoOfQ5XDU0cVx2jHFkeRk4nTZqfLzmhnV+f9zqM8BR6f18QTuZi5bHHpdSW5+rhWuT5z03YTuHW7w+4u7gfcx9aqr01a2+kBPHgeBzyeeLI8Uz1/9cJ4eXpVez33NvTO9e7zofls9Gn2eedr51vi+9hP0y/Dr8ef4h/i3+Q/H2AfUBogDNQP3BJ4O0g2KDaoKxgb7B/cGDy3zmHdwXWTISYhBSEj61nrs9ff3CC7IWHDhY2UjWEbz4SiQwNCm0MXwzzC6sPmwnnhNeEiPpd/iP8ywjaiLGIm0iqyNHIqyiqqNGo62ir6QPRMjE1MecxsLDe2KvZ1nHNcbdx8vEf88filhICEtkRcYmjiuSRqUnxSb7JicnbyYIpOSkGKMNUi9WCqSOAqaEyD0tandaXTlz/F/gzNjF0Z45nWmdWZ77P8s85kS2QnZfdv0t60Z9NUjmPOT5tRm/mbe3KVc3fkjm/hbKnbCm0N39qzTXVb/rbJ7U7bT+wg7Ijf8VueQV5p3tudATu78xXyt+dP7HLa1VIgViAoGN1tubv2B9QPsT8M7Fm9p3LP58KIwltFBkXlRYvF/OJbPxr+WPHj0t6ovQMlpiVH9mH2Je0b2W+z/0SpRGlO6cQB9wMdZcyywrK3BzcevFluXF57iHAo45Cwwq2iq1Ktcl/lYlVM1XC1XXVbjXzNnpr5wxGHh47YHmmtVagtqv14NPbogzqnuo56jfryY5hjmceeN/g39P3E/qmpUbaxqPHT8aTjwhPeJ3qbzJqamuWbS1rgloyWmZMhJ+/+bP9zV6tua10bo63oFDiVcerFL6G/jJx2Pd1zhn2m9az62Zp2WnthB9SxqUPUGdMp7ArqGjzncq6n27K7/Ve9X4+fVz5ffUHyQslFwsX8i0uXci7NXU65PHsl+spEz8aex1cDr97v9eoduOZ67cZ1x+tX+zh9l25Y3Th/0+LmuVvsW523TW939Jv0t/9m8lv7gOlAxx2zO113ze92D64ZvDhkM3Tlnv296/d5928Prx0eHPEbeTAaMip8EPFg+mHCw9ePMh8tPN4+hh4rfCL+pPyp/NP637V+bxOaCi+M24/3P/N59niCP/Hyj7Q/Fifzn5Ofl08pTTVNG02fn3Gcufti3YvJlykvF2YL/pT4s+aV5quzf9n+1S8KFE2+Frxe+rv4jcyb42+N3/bMec49fZf4bmG+8L3M+xMf2B/6PgZ8nFrIWsQuVnzS+tT92fXz2FLi0tI/QiyQvpTNDAsAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAddEVYdFNvZnR3YXJlAEdQTCBHaG9zdHNjcmlwdCA5LjI2WJButwAAIABJREFUeJzt3b9v20jex/Hhg62959QrA9EBNg5OZW1jA9dcZCBujZOzpVNY6u6aW9vFBVe4sddpXNppXG5kIM0VG0DsDpGLMzsFhxwgFdEC18nQ/gN8iq/N0NQPixTJGZLvFxYLReaPEUfih5wZkpbrugoAAN3+T3cBAABQikACABiCQAIAGIFAAgAYIUog9fv9fr8fe1EAAEX2TdgZXr9+rZTq9/tbW1svX75MoEgAgCIKd4bUbreVUkdHR2dnZ/IaAIBYWKGuQzo9Pf3d7363sLCglOL0CAAQo9B9SD///LNS6suXL7u7u/EXBwBQVKH7kF68eCHnRtvb22MnWFlZmbdQAIAs+/z5c4S5wgXS0tLSly9f5PVwOIy3KPlgWeFaQfOHLcAWYAsUfAtEPi0JF0gvX77c3t4+PT399OlTvV6PtkoAAEaFbrJ7//59u93+4YcfSqVSEgUC8sGyLN1F0KngH18VbAvEdToYOpCUUhsbG7GsG8i3wjbaFLzBShVsC8QYvdw6KGbF+RZOwhZgC7AF2ALREEgAACMQSAAAIxBIAAAjEEgAACMQSAAAIxBIQN70er1erzfPBNPd3t7OM3tCZimVbdtmFh6CQALyplarTd/nPjrBWI7jHBwcKKV6vZ5t29HLl4xZSrW5uWlm4SGiXBgLwFiO4yilyuWy/03btiuVyuLiYmCC29tbx3EWFxcrlcqtjzexnEvJBI7j2Lbd6/XK5bL81T+7/HN0CWPfn3FGWbUUuFqteksbLXO5XJ5UKu9TyEf2JvPelJV6y5FNJO8EloOkEUhArjiOI61S/kw6Pj72Tgu8CZRS1WpVzpbK5fLm5ubBwYHs98/Pz6+urnq9Xq1Wq1artm0fHh52u11vxlar1Wg0/LOfnJzIKZR/Cd4a/e+fnJzMOOP5+blkQ6/XazabFxcXEh6BMlcqlcPDw16vN6lUtVqtVqtJsDmO02q1dnZ2vDclmeT9k5MTpdTBwcHV1ZV/RfI+EufGbXl5OfZlApkz+uNK7ff7/Pnz6WWTCfb398/Pz+Wdp0+ftlqtvb29wATNZtN13W6322w2W62WvN9qtfb39wOzy/uBJYjA+7PPKGuR12tra4PB4Pj4eFKZJ5Vqb29PPsVgMFBKyWSBN73ZvTIEVjR9exbc6PcwcgrQhwSkZO4f/hjzlMd/FiUvvLYyIQ1W8tdarfbo7KNL8PjfDzWjfwmO4wwGg/Pz82q1Wq1Wx5Z5dOHS7jdahtE3/UZXhBQQSEBBlctlaX+bNPBM2sqUbzhDqNkjr3esXq9XqVSePHnSaDRs27Zte3Nzc5aFS2+QLME/2eib3oqUUo+uCEmgDwnIv7E3nz48PKxWq91uV7qIRudqNBq1Wk0mODk5WVxc9A9Re3T2SULNKP1G0pu1uLhYr9elSI7j7OzszLJw6VW6ubmxbfvp06f+jyZvyjvlcln6riSoHl0RkhD/PdJXVlaK/MRYQGTlAQS2bcsQtSkT+EfoLS4u+id+dPbI61VKyWmZ5IF/qNssZfZPIOPl/OP3/G8+efJEakpGN3jD+eb5dIUy+lWPnAIEEpCIrASSySSQkh7hRk3NKcZAoskOgKEajUYKa2m1WimsBbMgkAAYKp22Mn8bHfRilB0AwAgEEgDACAQSAMAIBBIAwAgEEgDACAQSAMAIBBIAwAgEEgDACAQSAMAIBBIAwAgEEgDACAQSAMAIBBIAwAgEEpBD8uztUE8WjzxXOiY971zeD/sY9Qgr8pPnzMa4UggCCcibSqXSarVarVa9Xr+4uEh0rqQ5jiOP6fM/PT0wwfn5ufw/ljVOWpHf5ubmjFMiFJ6HBOSKbduLi4vylNXb29tyuVyv12995Ene/geTT5lLnlkujw+X2eWcoFqtyr64Wq1Oel+WHFiI6PV6i4uLjuP4p5QniPuXeXt7+69//UtO2srlspR27AI9k/46usaxn+729vbJkydjJ/BK6D2lySuS975sOvm/Ukoekf5omeEhkIBcKZfLjuNcXFxUq1XZOar78wzZz56fn19dXR0fH/uP7kfn6vV61Wq1VqvJrvbk5MRxnHq9XqvVvKU5jiP73LHvHxwcSP75FyKrk3OaSqXS6/WazebFxUWv16vX6/JOq9Xa3Nw8ODioVCqWZXlp12q1Dg8Pxy5QTFrd6BpPTk4CU0qBK5XKH//4x06n02g0Rj9+rVaTjynLdByn1Wrt7Ox47/d6vYuLi1arJas+ODiwbXtKqRDkxm15eTn2ZQKZM+bHpVT8/43TarX29/fX1tbW1taazaa8s7e3J399/vz5LHPt7++fn5/Ln54+fepNMPpi0vuu6x4fHwcWIvb392UC13XX1tYGg8FgMOh2u67rNpvN58+fewVutVpSYFnm6AL9ZZi0utE1/uMf/xhdjrdGmTgwwd7enmzMwWAglStTBt73Pru3qaeUKh9Gv+qRU4AzJCAtrpvCSnq9XqVSkZMheS3NRF7r3Ixzra+vS0+JmuNR4oPBoNlsNpvNKQuRlrRyuSxnVF45xxZ4+gJnWZ0s+T//+c8///nPwJT+NfZ6vcDHl0a/0YJNej9sqaAY1ADkjDTHyWuvkyPCXKVSSRrK5hlL9uTJk0ajIYP3vP17gOTf+fn5zs6ObduNRiPyAmdZnazxD3/4w/Qpy+Vy4ONXKhVp/wxsDa9dNPC+988ZSwVFHxKQM9KdI6c7tm3XajVv3+pnWZbrO2Mbnevw8LBarXa7Xdu2Dw8P5ylMt9t1HGdnZ8f/p4uLC9nX12q1xcXF77///vj4+ObmRt783//+J5MtLi76B7NNWeCjf/Wv8a9//euUKZVSox9fepVubm5s23769Kk3ZaPRqNVq8r5SqlwuX11dKaUkpR4tFfwefCljsbKy8vnz53iXCWROYI+fMhn35R9HF20u27bL5fKcDU2jC5GR3LJ39o9hk/5/acHzyiDj0/yzTy/V2L+OXeOjny4wgQyWG92q3vtPnjxxXVc2ozd6cMZ1ZdfoVz1yChBIQCL0BpLhJB7SHG+WzhqLWekxBhJNdgDSNr2jKLtrbLVaKawlxwgkAGlLv+UqnTUGmukQFqPsAABGSCSQLMtKYrEAgBxLJJBc1yWTAAChJNVkRyYBAEJJsA9JMolYAgDMItlBDXK/PDIJAPCoNEbZkUkAgEelNOyb5jsAwHTpXYdE8x0AYIq0L4wlkwAAY2m4UwOZBAAYpefWQXQpAQACIgZSv98fDofzrJguJQCAX5RAGg6H29vb33777fyrJ5OAJMgDs8M+etx7MGu2zPOQdRglSiC9efNmYWFhzjMkD813QLwqlUqr1Wq1WvV6/eLiYvYZNzc3p/zVcRx5zJ1p/M84T8I8H9zYjWam0M9Devv27dLSUr/fj+UMScjTBov5sEUgXrZtLy4uyqNRb29vy+VyvV6/9Rl9Arc8cjvwoO7FxUXvUd/CcRw56wo8Tdy/QFmUun8ykG3b8kJOYiqVSmDhMv3ougLLGS2/f0bveeeBhU/61I+WKlAw/wf3TylLlq0hjzD3VucVafq83meUQK1Wq7JSx3GU7+lKjuPIMnP5BHS/cIHU6XQ6nc7Z2dnHjx9jL4qcKpFJKDivsSDaT6FcLjuOc3FxUa1WZSeo7o/TZQd3fn5+dXXlTe84Tq1Wq9VqshOUfXetVpN9qP+Z391uV/ah/t3i8fGxd3bS6/Xq9XqlUun1eq1W6+TkpNls3t7e1mq1q6urbrdbLpf9C280GrVaTXbHh4eHtVpt0nIC5T85OfHPuLi42Gq1Dg8PAyWf9Kmnl+rk5KTX6/mX731wyRJvys3NTSmeUurg4MC2bVljpVKRUvk32ui89XpdNrsU0nEcx3EGg4FkW6/XazabFxcXV1dX5+fnlUrFtu2rq6ucZ5Ibxl/+8peffvrpp59++tOf/vT3v//9y5cvo9MsLy9HXr6XRmHnAkwT+Wus1N1/kbVarf39/bW1tbW1tWazKe/s7e3JX58/f+6feG9vT6YZDAZKqePj4/Pzc/nT06dPA4sNzBswGAy63a7rus1mU6ZsNpuy3j//+c83NzeBhe/v78uqu92uvJi0nED5AzPK5x0t+aRPPb1UruuOLl9mD0wp6/Uv37/GwEabNG/ghZDJ1tbWBoOB90632x0MBlO2vy7qvpXLs7y8HG1R4c6Q9vb2fvvtN6XU9fX11tbWwsLCpJALtdjReTlVAqKRNig5LZDX0gzlb6azbbvVav3+97+v1+ty8O5NMBgMms1ms9lU94/99iZ+9Nj89vb24ODg9vbWW1etVpN3pCTNe+r+TE56rQKNUaPLCZQ/MKOcoo2WPDCXZ3qpJi1/0ioCxq5xxnlHF+U4zuHh4fHxsbRMylngLPOmz7/HXllZibaQcIManj17trGxsbGxsbCwsLGxEWM3UoDL6DsUleve/RfN1dXV8fGxvPZ6MgKq1erJyUm9XldKSX+GUkr6M548edJoNGSQnuyU/RNPd35+vrOzY9t2o9Hwr6ter8s7gYVLw5Qa6fkfuxy/sTOOlnyKKaWatPwpq5hljF+o4nmLlZa6RqPhOM7Ozo7kWY6FHtQgLi8vYy3GGF4mcaoEzE56JuQkybbtWq1WLpen7DEbjUa1Wr25ubFt++nTpzJ7t9uVPaB/ShlK4I0IEP7GjO+///74+Pjm5kZOPqSzZGdnZ3NzUwb7BRYufVfdbte2bX9n1ehyRss8OuOUko+aUqrR5XsfPDBluVyWfilJ9LEmzTulbBcXF/LBa7WaHE9Uq9VarRbYSvkUSxuiX+TWw0mSKCSQNL3f226322q1ZuxyGAwGgYlbrZb04gTc3NyMfd+/3pubG5ly0toDCx9bzhmXM/qnSSV/1OiM/uX7P7h/StnO05c8ad6xpMfo5uZGPr5/LWZ2ILnjvuqRUyD+rpqVlZXPnz/Hu0y6lJA5fGkRgbQQZutMaPSrHjkFIjbZpcyl+Q5AAUzqNiuIbASSYvQdgALI+WVGj9Fzt+/IXEbfAUBOZSyQFPe+A4Ccyl4gKR5dAQB5lMlAEmQSAORJhgNJ0XwHADmSmVF2kzD6DsbiUAkIJfOBJFweXQHD8G0Ewsp2k50fzXcAkGn5CSTF6DsAyLJcBZIgkwAgi3IYSIpMAoAMymcgKbqUACBrchtIii4lAMiUPAeSIJMAIBPyH0iK5jsAyIJCBJKi+Q4AjFeUQBJkEgAYq1iBpGi+AwBTFS6QFM13AGCkIgaSIJMAwCjFDSRF8x0AmKTQgaRovgMAYxQ9kASZBADaEUh3aL4DAL0IpK9ovgMAjQikIDIJALQgkMag+Q4A0kcgjUfzHQCkjECahkwCgNQQSI+g+Q4A0kEgPY7mOwBIAYE0KzIJABJFIIVA8x0AJIdACofmOwBICIEUBZkEALEjkCKi+Q4A4kUgRUfzHQDEiECaF5kEALEgkGJAJgHA/AikeNClBABzIpBiQ5cSAMyDQIoZmQQA0RBI8aP5DgAiIJASQfMdAIRFICWITAKA2RFIyaL5DgBmRCAljuY7AJgFgZQSMgkApiOQ0kPzHQBMQSCliuY7AJiEQNKATAKAUQSSHjTfAUBAlEDqdDr9fj/2ohQNzXcA4PdNqKmHw+GrV69WV1f7/f7q6uqPP/6YULGKQzLJdV3dBQEAzcKdITWbzfX19aOjo8vLyw8fPiRUpqKh+Q4AVNgzpBcvXsiL4XCYQGGKS86QOFUCUGThAqlUKiml2u32mzdv6vV6MkUqLprvABRZuEBSSp2env76669nZ2cSTmP5W5/YvYbiDXNguwHIEP9uf3l5OdpCwvUhvXv37tE0Uvfjx0S0YhUZo+8AZE4su/1wZ0gy4Ht3d1f+eXl5GXnFmI7mOwBFEy6Qjo6OEioHRtF8B6BQuFOD0Wi+A1AcBFIGkEkAioBAygYyCUDuEUiZwQ0dAOQbgZQldCkByLHkA4m9Z9xCZxJVoB1VoJdlUQWZkMoZEl+FuIVovrMs5bpUgU5UATCbhANJfor8GhNA8x0wE/ZC2UEfUrZNzyTLUpZyZTp+jemThqK7KgDwGAIp8x5tviOJjMAxAfAYAikPpjffceMhQCmOCTIgyUCSplvBVyF5o5nkKos00sh1qQIgBM6QcmVK852lXMa+pmPSqSpVAExHIOUNo+9MwD01TOFvp4HxCKR8IpP0mnJYwO5RJ/oOzJZiIPFVSJc8RcnbJ9KfkT5XKf83XqpAW2kA43GGlHMPjtM5Jkgdt8QFZkcg5dd96znNd3o9aL7jmACYjEAqBI7TteOwwBQcExgs3UDiq6CPHKeP/RNjkdMxJZOoAkAlGEihRlvyW0zNyDEB2z5NgZEmgiowAtVgAAOa7Lg5f+rGN99RBelwXXfSxbNUgS7eXogq0Oobzev3TqTk28Co5FR4x+mu67rK2+xUQXq85jv3vjqUUowJj9mk73NgbxPYC0Gf1M+Q/FUe+LrwbUiH6yrLsizlchCg2UivHj+B9LEXMomOJjvv1JhdoSbyhB7LUiow+o5fYzpcVzazVwW6C1Q8NNAZSVOTHVFkDH/znZKs4lAhFjMfcn1tvnNdL6uogsRN2sS0HOhjwKAGP47QU+E1mPveeXCcTiUkLVAF3sWzbHkUmWGBhLSMHv9x5WbKxlaBjoIApjAvkDhJikWkNgcZkMw9WDWSdlPuwaoZeyFNzAskaCXdGPwaNaIKUFhGBhK/RgOMNt8xKCllozd0oArSw15Ih2RG2cU+RsU/LhkpuOthv/+XsmSkONIzUgWKKkjZ6PWz3vtIhu47NUwSODwZvaYaSXN9HRkunRo6UAXa+XdE7IWSZ2ogKQ5DDOJdpST/oGrSRxVoM240JFWQEIMDaSy+CinybeYHV25SBakJVIHLjR9nxybKICMHNUxHZ6MODx57Ch14yqJB2AslI2tnSNBK9okut7fRxH+fJ6oA+ZPBMyTF4YlO/vMkKkELL42gE3uhBGQzkKAVd7h5HB0YQHiZDSQOT7SSwQ2MRNbF2/50KenEXihumQ0kxbfBCNLLTj3ocf80dKpAG/ZCscr4oIax3waaSlJrL/J1KFnWgxs6UAkpoQq0Yy8Un4wHkhpX8TTfp4m7CWhHFWjHXigm2Q+kUVw2mC7fDQS435oeVIFx2AtFkuU+JBjGde+uk5GeDd3FKSLpVKIKjED3UnjJBJL24wK+CvrcdWpQBZpwTw1kV37PkNgh6sMOUTvXdS3FSZJu7IVCymMfEgxwf5Mbea25MMV0d0MHqgDZkd8zJMXhiWZse2hjzoAC9kJh5DqQFN8GnR4O/YJOVIFO7IVmVowmO3MOlwrmbqtbD4YjUxWp+bqpfbdyYPtrwCjw2RQgkORLEDhC4ZuRpsAgB4u7CaTOf8GsZSmlqIK0jZ4nselHFCCQRKDuOVpJmW+HSOOFFt7+0JIhJ1RD+tgLPaYwgRTAGXTqHj6NW2NBEucqQw9+7wvlckMHI7AXGpH3QQ1T0NOoz90NHThK1+TrPTWoAr3YCz1U4ECCVly5qR1VYAQyySdKIHU6neFwGHtRNOCroBU7RO3ur1+mCmCE0IG0u7v77t27V69etdvtJAqUtvxlUqZapb0bOuSsErLk7il/VIE++dsLRRVuUMMvv/xSKpWOjo76/f7r1683NjYSKhaKw6J3XTeqQD8GOCilwp4hdTqdZ8+eKaVKpdL19XUyRUpdvg5PrMyOYbPu5Kk2Mkba7qgC6BJ62HepVJIX6+vrcRdGHy+TMn6EksX9iP9uAvf/y/DBomUppVyVqfKPvaFDdmWxCpR6eGScsaLHJnQfUr/flxdTzpAsn+hFS5nr3n0h/P8hTVIFHrZ/+gLbnypImfcTyOBeKJbdfrhAevbs2ZcvX5RS/X5/dXV10mSuT+SS6SFfCO+/7HwbROa292SWpTL3k1TqvgqyWxFfb4mrlHLdLFaByG4VZHQvFMtuP1yT3dbW1tu3b09PT6+vr/f29iKvFcnJYFPFA97dBFRmz5Fcle37IGT9hg73j2/PXsnHK9J4h9B9SO/fv2+32z/88IPXmZRnRfoqAAF3j/jLXMTym82sKPeyK9ZobzJJn/unV1iWpbLX/JsL3gNEoFNh9kLcOgjGu7tyk52iPq6rsjVGKX+y05k0DwJpBsX4KhiNTNKOKkDyCKTZkEm6WcqV51awT9TFqwLoUYC9EIE0swJ8GzJBHj9r7ljkAgSmt/3z/1FNk/e9UFEf0BcNDyE2gW9EbzE6eo3jMspBo1zvhQikkHgIsSb+B866Xy9RsuSJ3JoKVSz+KviaSLm451bG5HcvRCDNpzDDMU3z4OLNot8ATIOvN3S4u/nggzeRqhzthehDmptRrbp5+V7OjuuT9HJd19+CCj2M2gvNgUCKQ16+DUAE3iEBxwY65WIvRJMdMo8bOmj3tQo4Z8UcOEOKSS4OT7KNKzcNIIPydZeiqAzZC6X2+AnAcPdXKRnwsywg11WWRSbpZEgmRUUgxSfjX4U8uLs7tXv/6ASk7r4KOCxABPQhxSpH4y+zznt0gqKzXQ+XR3LrkeW9EIEUt7HnSdn8cmSb/xFtmf19ZpuWp+RR1yrDeyECKQGjFc+PJC1jb+hgyT1BqYJUcEMHI2RzL0QfUiroXtLEdeU/11Jct6nB/fYnigyQhb0QgYRCcF3Xunt6he6iFBXbXz/jM4lASovxXwXEIAutItox+g6TEEgpIpMMIA/j1l2KIvLdYYhB+fqYvRcikFAUd50ZXLmpD1WA6QikdCV6eEJ70cy4oYN2ZJI2Bp8kMewbBXN/2aDcA9TyXStDmqfEVwX3mUQVQCkCSYPAddRcy56+BzdxcE09WMy1r5vdNfh4Pb9G7+Zgxo6IJjsd5Nsg/3lXavCj1MK/2akCLagCLfx7IW9HNL/5Og44Q9JktM6yfAeqDPM9vceyuKFD2lxXeT8GupTSZt5eiDMkk3CelJavdxB48CZRlJ7x25+fgHZaq4BAAnzkMiX2iVpF3/6c4GYcgQQ8YPE4Ja3utz8teProO0kikAxDk4VWvm1PJmnGhUoFxKAG4CvveEA622WHeH/F0tdpkA7JJK9vjyrIPc6QzDP2JMkbnYmEue7Xx/i4Dy7efAwdGHG4G2/iqwLuqaHBpKaahPdCBFJ2MAYpNQ+3s1y6KVnz9al/SJSvCuSw4Os/FdtfE+9ypcR+AgSSkQJVzqG3ASzLUuwKdbn7CVh3z/rjmCAFOvZC9CEZL/A9mHTlGqEVr7vHVHj3WPt68SZbOSUPqkCS6L5XT2/BisPb28y4F5obZ0im8m7sQczoMm7L8zT0VI1Ugeu6XL+cqnTv3UAgGSyuu0shVr7bhCMlwd8BrXZpmn0vNHd00WQHTDTlxxUYkYyETNnA/kH5SFsyZ06cIWUQh4dm4MpNvcINykcWEEhAePfHBFwlo93XTKLDNfsIJGAuHKfr8fBCJbZ/PhBIQBTy7CSPyzVK6bKsB1XASBMNEug7IJCyiW4krcZue47TtaMKso5AygVaz83ADlE7evUyjWHfQGjebRtGbxrAKOR0PFoFDMpPWxyHxZwhAfMK9GcgfVIF/nc4W01D3H0HBFJm0Y0EKKUm38iJTMocAgmIimMCMzx6Qw1iKSsIpOxjRINurrK476Ae3hXKypq0/blQLEMIpCzjCB2YDZmUlFifS0AgAXNI9+b8GGPmKqD5znwM+844doXaUQXazVwFjAhPRHwbkzMkAMVC852xCCQAhUPznZkIJABFxOg7A0UJpE6n0+/3Yy8KAKSMTDJKuEENw+Hw1atXq6ur/X5/dXX1xx9/TKhYAJAOL5MY6aBduDOkZrO5vr5+dHR0eXn54cOHhMoEAGmi+c4Q4c6QXrx4IS+Gw2EChQEAbSSTOE/SKFwglUolpVS73X7z5k29Xk+mSACgB813es0USO12++PHj0tLSy9fvjw9Pf3111/Pzs4knMbyn/lSrwAyhItno/Hv9peXl6MtZKZA2tjY2NjYUEq9e/dO0mj69FQkgEyj+S4s/7ZaWVmJtpBwTXYy4Ht3d1f+eXl5GW2tAGA4mu/SFy6Qjo6OEioHAJiG5ruUcacGAJiGEeGpIZAA4BHc+y4dBBIAPI6LZ1NAIAHArMikRBFIABACzXfJIZAAIBya7xJCIAFAFGRS7AgkAIiITIoXgQQA0dGlFCMCCQDmQpdSXAgkAIgBmTQ/AgkA4kHz3ZwIJACIDc138yCQACBmZFI0BBIAxI/muwgIJABIBM13YRFIAJAgMml2BBIAJIvmuxkRSACQOJrvZkEgAUBKyKTpCCQASA/Nd1MQSACQKprvJiGQAEADMmkUgQQAetB8F0AgAYA2NN/5EUgAoBmZJAgkANCP5jtFIAGAIWi+I5AAwCBFziQCCQDMUtjmOwIJAIxTzOY7AgkADFW0TCKQAMBchWq+I5AAwGjFab4jkAAgA4qQSQQSAGRD7jOJQAKAzMh3lxKBBABZkuMuJQIJALInl5lEIAFAJuWv+Y5AAoCsylnzHYEEANmWm0wikAAg8/LRfEcgAUAe5KD5jkACgPzIdCYRSACQK9ltviOQACBvMtp8RyABQD5lLpMIJADIrWw13xFIAJBnGWq+I5AAIP8ykUkEEgAUgvnNdwQSABSF4c13BBIAFIuxmUQgAUDhmNl8RyABQBEZ2HwXMZD6/f5wOIy3KACAlBmVSVECaTgcbm9vf/vtt7GXBgCQMnOa76IE0ps3bxYWFjhDAoB8MKT5LnQgvX37dmlpqVQqcYYEAHmiPZPCBVKn0+l0Ont7ewmVBgCgkd5MslzXfXSidrv98ePHpaWldrv93XffKaU+fPiwsbFRr9dLpVJg4pWVlf/+97/eP2dZPgDAHJJJofbe/hhbXl7+/PlzhPV+M8tEGxsbGxsbSqnV1dXffvtNKXV9fb21tbWwsDB2ekIIALJL9uGWNdMZi38WsbKyEm29MwWS59mzZ/JiYWEmX5FdAAAEYUlEQVRBIgoAkEvSfJfmCUbE65AuLy9jLQYAwDgpjwjnTg0AgInSHBFOIAEAHpFOJhFIAIDHpdB8RyABAGaSdPMdgQQACCG5TCKQAADhJNR8RyABAEJLovmOQAIARBRvJhFIAIDoYmy+I5AAAHOJq/mOQAIAxGD+TCKQAADxmDOTCCQAQGzmuTs4gQQAMAKBBAAwAoEEADACgQQAMAKBBAAwAoEEADACgQQAMAKBBAAwAoEEADACgQQAMAKBBAAwAoEEADACgQQAMAKBBAAwAoEEADACgQQAMAKBBAAwAoEEADACgQQAMAKBBAAwAoEEADACgQQAMAKBBAAwAoEEADACgQQAMAKBBAAwAoEEADACgQQAMAKBBAAwAoEEADACgQQAMAKBBAAwAoEEADACgQQAMAKBBAAwAoEEADACgQQAMAKBBAAwAoEEADACgQQAMAKBBAAwAoEEADACgQQAMEKUQOr3+/1+P/ai5INlWbqLoBlbgC3AFmALRPNN2Blev36tlOr3+1tbWy9fvkygSACAIgp3htRut5VSR0dHZ2dn8hoAgFiEO0P6+PHj0tLSu3fvlFJnZ2fJFAkAUESh+5B+/vlnpdSXL192d3fjLw4AoKgs13Ufnajdbsu50ZcvX5RSP/74o1Jqe3v7/fv3oxOvrKzEXkoAQIZ8/vw5wlwzNdltbGxsbGwopd69eyeZpJQaDocxlgMAUHAznSH5bW9vr6+vf/r0iVF2AIAYhQ4kpVS73S6VSqVSKYkCAQCKKUogAQAQu0RuHcStHJRS/X5/UjdbEXQ6ncJ+BzqdTpGrXhW79kXBf/6RIyD+MyRu5aCUGg6H1Wr13//+t+6CaDAcDl+9erW6utrv91dXV2VMZnHs7u6WSqVPnz797W9/k6FAhVLw2hdF/vmr+SIg5jMkbuUg3rx5s7CwUMxDpGazub6+fnR0dHl5+eHDB93FSdUvv/xSKpXk+39xcaG7OBoUufY9Rf75zxkBoe9lNx23clBKvX37dmlpqd/vf/vtt7rLosGLFy/kRQF/kJ1O59mzZ0qpUql0fX2tuzgaFLn2RcF//nNGQPx9SAW/lUOn0+l0Ont7e7oLoo2MwGy3269evarX67qLkzZv9On6+rrekmhR8Nrn56/mi4B4zpC8WzkopV68eCHthtvb27Es3Hzex3/58uXbt2+/++6709PTfr//+vXrer1ehPHx/i2glDo9Pf3111/Pzs6K8NkDvL7cYp4hqWLXfjF//gHzREA8gRTqVg754318pdTe3t5vv/2mlLq+vt7a2lpYWNBatJT4t8C7d+9kf6S3SFo8e/as0+kopaRLX3dxNChy7aui/vz9vDvMqUgREP8oO27lIHZ3dy8vL3WXQoPXr19/+vTJ+ykWbSPI9//6+npvb29ra0t3cdJW8Nr3FPbnr+aLgEQujOVWDigyvv8ouMg/Ae7UAAAwQiJ3agAAICwCCQBgBAIJAGAEAgkAYAQCCQBghP8HDRG3N1lyZo8AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tt = -6:0.01:6;\n", "plot(tt,f(tt),'k'); hold on;\n", "plot(tt,Sn(tt),'r');\n", "plot(t,Sn_de_t,'b.');\n", "legend([\"f : fonction non periodique\";\"Sn: Somme partielle periodique\";\"Sn-de-t : avec ancien vecteur temps\"])\n" ] }, { "cell_type": "markdown", "id": "4fe66528-992e-4e85-affa-29cba0fca56e", "metadata": { "jp-MarkdownHeadingCollapsed": true, "tags": [] }, "source": [ "## Interface utilisateur\n", "---\n", "\n", "En Ada ou avec des **programmes compilés** on est obligée de demander à l'utilisatrice de donner des valeurs avec une interface etc.\n", "\n", "En langage interprété on fait **des scripts** simple et **l'utilisatrice modifie directement le fichier script !** \n", "\n", "La partie [exemple pénible](#Exemple-p%C3%A9nible) montre comment on fait un script compliqué voire impossible en voulant bien faire. **Vous n'êtes pas obligé de la lire**\n", "\n", "Mieux vaut voir comment on fait simplement quand on fabrique des scripts avec la partie [smart and easy](#Version-smart-and-easy) \n" ] }, { "cell_type": "markdown", "id": "0a255e19-1bed-413b-889d-f35d46ce4943", "metadata": { "jp-MarkdownHeadingCollapsed": true, "tags": [] }, "source": [ "### Version smart and easy\n", "\n", "> L'[exemple pénible](#Exemple-p%C3%A9nible) montre que demander à chaque fois de rentrer des valeurs est pénible et\n", "> qu'il est impossible de demander de rentrer une fonction mathématique lors de l'exécution du programme...\n", "\n", "Comme l'utilisatrice doit lancer octave et ouvrir votre fichier script,\n", "\n", "> **on demande toujours à l'utilisatrice de configurer directement le script** avant de l'exécuter\n", "\n", "Voilà à quoi ressemble le script idéal :" ] }, { "cell_type": "code", "execution_count": 227, "id": "0c3bb28d-102d-48aa-8eb9-099418b058c6", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "clear all; % efface le \"workspace\" de variables\n", "close all; % ferme les fenètres graphiques\n", "clc; % efface la console\n", "%%_________\n", "%% script qui affiche une fonction donnée\n", "\n", "%% <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n", "%% UTILISATRICE CONFIGUREZ ICI LE SCRIPT\n", "tmin = 0 ; % premier instant affiché [s]\n", "tmax = 20 ; % dernier instant affiché [s]\n", "Te = 0.1; % période d'échantillonnage\n", "\n", "%% fonction de x à afficher\n", "%% décommentez une ligne\n", "%fonction = @(x) 3*x + 4*cos(x) ;\n", "fonction = @(x) 4*cos(x)-2*sin(x) ;\n", "%fonction = @(x) 4*cos(1./x) ;\n", "%fonction = @(x) \n", "\n", "%% FIN DE CONFIGURATION\n", "%% >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n", "\n", "%% Calculs\n", "t = tmin:Te:tmax ;\n", "f_de_t = fonction(t) ;\n", "\n", "%% Affichage\n", "plot(t,f_de_t);\n", "xlabel('Temps [s]');\n", "ylabel('Valeur [V]');\n", "title('Affichage de la fonction f')\n" ] }, { "cell_type": "markdown", "id": "6b444786-33ad-42c6-a323-fa4da7a24161", "metadata": {}, "source": [ "> **L'utilisatrice a le code source, sait exécuter un script et connait le langage** \n", "alors ne pas s'embêter." ] }, { "cell_type": "markdown", "id": "ea6a75b2-fbb5-43a2-8944-c247c0cd5ff0", "metadata": { "jp-MarkdownHeadingCollapsed": true, "tags": [] }, "source": [ "### Exemple pénible\n", "\n", "Lisez cette section si vous voulez comprendre pourquoi \"c'est pas bien\" de demander à l'utilisatrice des valeurs etc.\n", "\n", "On montre ici comment on fait des choses trop compliquée voire impossible...\n", "\n", "\n", "> **Mieux vaut voir comment on fait bien et aller direct à la partie suivante [smart and easy](#Version-smart-and-easy)**\n", "\n", "\n", "Sinon, prenons l'exemple d'un programme qui calcule un produit sclaire entre deux vecteurs. Faisons le pénible !\n", "\n", "Exécutez cette céllule et demandez un vecteur de dimension 3 avec deux fois le vecteur 1, 2,3" ] }, { "cell_type": "code", "execution_count": 220, "id": "781c1154-5a2c-44f9-823b-19f4385b4ff5", "metadata": {}, "outputs": [ { "name": "stdin", "output_type": "stream", "text": [ "Dimension du vecteur 10\n", "Valeur de l'element de rang 1 1\n", "Valeur de l'element de rang 2 2\n", "Valeur de l'element de rang 3 3\n", "Valeur de l'element de rang 4 2\n", "Valeur de l'element de rang 5 3\n", "Valeur de l'element de rang 6 1\n", "Valeur de l'element de rang 7 2\n", "Valeur de l'element de rang 8 3\n", "Valeur de l'element de rang 9 1\n", "Valeur de l'element de rang 10 1\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Pour le deuxième vecteur :\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Valeur de l'element de rang 1 1\n", "Valeur de l'element de rang 2 1\n", "Valeur de l'element de rang 3 1\n", "Valeur de l'element de rang 4 1\n", "Valeur de l'element de rang 5 1\n", "Valeur de l'element de rang 6 1\n", "Valeur de l'element de rang 7 2\n", "Valeur de l'element de rang 8 3\n", "Valeur de l'element de rang 9 4\n", "Valeur de l'element de rang 10 5\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Le produit scalaire\n", "ans =\n", "\n", " 1\n", " 2\n", " 3\n", " 2\n", " 3\n", " 1\n", " 2\n", " 3\n", " 1\n", " 1\n", "\n", "fois\n", "v =\n", "\n", " 1 1 1 1 1 1 2 3 4 5\n", "\n", "=\n", "ans =\n", "\n", " 1 1 1 1 1 1 2 3 4 5\n", " 2 2 2 2 2 2 4 6 8 10\n", " 3 3 3 3 3 3 6 9 12 15\n", " 2 2 2 2 2 2 4 6 8 10\n", " 3 3 3 3 3 3 6 9 12 15\n", " 1 1 1 1 1 1 2 3 4 5\n", " 2 2 2 2 2 2 4 6 8 10\n", " 3 3 3 3 3 3 6 9 12 15\n", " 1 1 1 1 1 1 2 3 4 5\n", " 1 1 1 1 1 1 2 3 4 5\n", "\n" ] } ], "source": [ "clear all;\n", "N = input(\"Dimension du vecteur\");\n", "\n", "for id = 1:N\n", " u(id) = input([\"Valeur de l'element de rang \",num2str(id)]);\n", "end\n", "\n", "disp(\"Pour le deuxième vecteur :\")\n", "for id = 1:N\n", " v(id) = input([\"Valeur de l'element de rang \",num2str(id)]);\n", "end\n", "\n", "disp(\"Le produit scalaire\")\n", "u'\n", "disp(\"fois\")\n", "v\n", "disp(\"=\")\n", "u'*v" ] }, { "cell_type": "markdown", "id": "4917cedb-dec0-41cf-a5e5-70adb5abd1a6", "metadata": {}, "source": [ "**Zut le produit est dans le mauvais sens** (3,1)x(1,3) et donne une matrice (3,3) et non un scalaire.\n", "\n", "Corrigez l'erreur et re-exécutez avec les mêmes valeurs" ] }, { "cell_type": "code", "execution_count": 2, "id": "728f8190-7f21-46f5-953a-a0b76e55b1ef", "metadata": {}, "outputs": [ { "name": "stdin", "output_type": "stream", "text": [ "Dimension du vecteur 3\n", "Valeur de l'element de rang 1 1\n", "Valeur de l'element de rang 2 2\n", "Valeur de l'element de rang 3 3\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Pour le deuxième vecteur :\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Valeur de l'element de rang 1 1\n", "Valeur de l'element de rang 2 2\n", "Valeur de l'element de rang 3 3\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Le produit scalaire\n", "ans =\n", "\n", " 1\n", " 2\n", " 3\n", "\n", "fois\n", "v =\n", "\n", " 1 2 3\n", "\n", "=\n", "ans = 14\n" ] } ], "source": [ "%% CORRIGER LE CODE \n", "% pour avoir un produit (1,3)x(3,1)=(1,1) scalaire\n", "clear all;\n", "N = input(\"Dimension du vecteur\");\n", "\n", "for id = 1:N\n", " u(id) = input([\"Valeur de l'element de rang \",num2str(id)]);\n", "end\n", "\n", "disp(\"Pour le deuxième vecteur :\")\n", "for id = 1:N\n", " v(id) = input([\"Valeur de l'element de rang \",num2str(id)]);\n", "end\n", "\n", "disp(\"Le produit scalaire\")\n", "u'\n", "disp(\"fois\")\n", "v\n", "disp(\"=\")\n", "u*v'" ] }, { "cell_type": "markdown", "id": "3eb36d56-51f9-4f97-9dd3-56a609b2201b", "metadata": {}, "source": [ "**Pénible hein !** de répéter les saisies à chaque fois...\n", "\n", "Maintenant supposons que l'on veut demander à l'utilisatrice de donner une fonction à appliquer au produit scalaire.\n", "\n", "Cela ressemblerait au code ci-dessous mais de plus on ne saurait pas le poursuivre !" ] }, { "cell_type": "code", "execution_count": 3, "id": "2a051e92-f2ba-4d43-a598-68e483f4b085", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Programme qui affiche une fonction\n" ] }, { "name": "stdin", "output_type": "stream", "text": [ "Entrez le tmin = 0\n", "Entrez le tmax = 5\n", "Entrez la periode d'echantillonnage = 0.1\n", "Entrez la fonction à afficher : \"3*x + 4*cos(x)\" par exemple 3*x\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "error: fonction(0): subscripts must be either integers 1 to (2^31)-1 or logicals\n", "warning: non-integer range used as index\n", "error: fonction(0): subscripts must be either integers 1 to (2^31)-1 or logicals\n" ] } ], "source": [ "%% CORRIGER LE CODE \n", "% pour avoir un produit (1,3)x(3,1)=(1,1) scalaire\n", "clear all;\n", "disp('Programme qui affiche une fonction')\n", "tmin = input(\"Entrez le tmin =\");\n", "tmax = input(\"Entrez le tmax = \");\n", "Te = input(\"Entrez la periode d'echantillonnage =\");\n", "t=tmin:Te:tmax;\n", "\n", "fonction = input(\"Entrez la fonction à afficher : \"\"3*x + 4*cos(x)\"\" par exemple\",\"s\");\n", "\n", "fonction(0)\n", "fonction(t)\n" ] }, { "cell_type": "markdown", "id": "a152bb28-d271-4ece-a8d1-27d2155f5c96", "metadata": {}, "source": [ "**Impossible !** il faudrait transformer la chaine de caractère `fonction` en fonction octave...\n", "\n", "Comment demander à octave de transformer la chaine de caractère rentrée en une fonction ? \n", "> on est bloqué.\n" ] }, { "cell_type": "markdown", "id": "2c237b50-1b90-4399-bd3d-f1b14f0fd357", "metadata": { "tags": [] }, "source": [ "## Exercice interface\n", "---\n", "\n", "Le script ci-dessous fonctionne mais mélange tout et demande des saisies pénibles à l'exécution (essayez-le). Faites un script smart !" ] }, { "cell_type": "markdown", "id": "76dc39cd-1ffb-42e8-bbe0-c22eeff80011", "metadata": {}, "source": [ "\n", "Son but est d'illustrer le concept de phaseur (voir [FREQ1 phaseurs](FREQ1_phaseurs.ipynb) ). \n", "\n", "De retrouver le phaseur de cosinus et sinus et de s'en servir pour trouver le phaseur $z_f$ de n'importe quelle onde pure de la forme~:\n", "$$ f(t) = \\rho.\\cos(\\omega.t+\\phi) $$\n", "$$ \\quad = a.\\cos(\\omega.t)+b\\sin(\\omega.t)$$\n", "$$ \\quad = \\mathcal{R}\\left[ z_f.e^{i.\\omega.t}\\right]$$\n", "$$ \\quad = c.e^{\\omega.t} + \\overline{c}.e^{-i.\\omega.t}$$\n", "\n", "Modifiez-le en version smart avec une partie configuration pour que l'utilisatrice puisse rentrer :\n", " - une valeur numérique de a et de b\n", " - le phaseur de Cos \n", " - le phaseur de Sin\n", " - la formule donnant le phaseur zf en fonction de a et b\n", "\n", "L'affichage de vérification se fait en final après les calculs. " ] }, { "cell_type": "code", "execution_count": null, "id": "fe97d9ce-da3f-46b8-9668-6cfd7e8fc820", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "clear all;\n", "close all;\n", "\n", "%%______________________________________\n", "%% Programme qui permet de comparer la forme\n", "%% f(t)= a cos (w.t) + b sin(wt)\n", "%% pour a et b donné \n", "%% avec une forme en phaseur\n", "%% = Réel[ Zf . exp(i.w.t] ]\n", "%% où Z est un nombre complexe \n", "\n", "%% <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n", "%% Utilisatrice, configurez ces lignes SVP\n", "a = 1 ; % amplitude du cos \n", "b = -1; % amplitude du sin\n", "% Utilisatrice, donne ici les phaseurs\n", "% Zi = In phase du cos => cos\n", "Zi = 1; \n", "% Zq = Quadrature phase du cos => sin\n", "Zq = - i; % i donnerait -sin ! \n", "% Utilisatrice mets ici ton calcul de Zf(a,b)\n", "Zf = a*Zi+b*Zq;\n", "%% Fin de la zone de configuration\n", "%% >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n", "\n", "\n", "%% Affichage des phaseurs\n", "%%________________________\n", "\n", "subplot(121) % figure de gauche\n", "\n", "%tracé du cercle unitaire\n", "teta=0:0.1:2*pi;\n", "plot(real(exp(i*teta)),imag(exp(i*teta)),'k--');hold on;\n", "% phaseur In phase (cos) \n", "plot(real(Zi),imag(Zi),'db'); % un \"diamand bleu\"\n", "% phaseur Quadrature phase (sin) \n", "plot(real(Zq),imag(Zq),'dr'); % un \"diamand rouge\"\n", "% phaseur de l'onde pure f et de son cercle\n", "plot(real(Zf),imag(Zf),'og'); % rond vert\n", "plot(real(Zf*exp(i*teta)),imag(Zf*exp(i*teta)),'g--');\n", "\n", "axis ([-3, 3, -3, 3], \"square\");\n", "grid on;\n", "xlabel('Reel [V]');\n", "ylabel('Imag. [V]');\n", "title('Phaseurs');\n", "\n", "%% Affichage temporel\n", "%%________________________\n", "\n", "subplot(122)\n", "t=-3:0.5:3; \n", "% onde pure A.cos + b.sin noir\n", "plot(t,a*cos(pi/2*t)+b*sin(pi/2*t),'k+-'); hold on;\n", "\n", "% onde pure Real(Zf.exp) vert\n", "plot(t,real(Zf*exp(i*pi/2*t)),'go-'); \n", "% cosinus bleu\n", "plot(t,cos(pi/2*t),'b--');\n", "%sinus rouge\n", "plot(t,sin(pi/2*t),'r--');\n", "xlabel('temps [s]');\n", "ylabel('signal [V]');\n", "title('Temporel');\n", "axis ([-3, 3, -3, 3], \"square\");\n", "legend([\"f\";\"Zf\";\"Zi : cos\";\"Zq : sin\"]);\n", "\n", "\n" ] } ], "metadata": { "kernelspec": { "display_name": "Octave", "language": "octave", "name": "octave" }, "language_info": { "file_extension": ".m", "help_links": [ { "text": "GNU Octave", "url": "https://www.gnu.org/software/octave/support.html" }, { "text": "Octave Kernel", "url": "https://github.com/Calysto/octave_kernel" }, { "text": "MetaKernel Magics", "url": "https://metakernel.readthedocs.io/en/latest/source/README.html" } ], "mimetype": "text/x-octave", "name": "octave", "version": "4.2.2" } }, "nbformat": 4, "nbformat_minor": 5 }