From 5719a83756dbcbfd4b51e86dc39865c16df68f0e Mon Sep 17 00:00:00 2001 From: Denis Monnerat Date: Tue, 31 Mar 2026 11:17:49 +0200 Subject: [PATCH] tp1 : typo --- num/tp1/README.md | 64 +++++++++++++++++++++++++++++++++++++++++++- num/tp1/src/myF.sci | 9 +++++++ num/tp1/src/tp1.sce | 65 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 137 insertions(+), 1 deletion(-) create mode 100644 num/tp1/src/myF.sci create mode 100644 num/tp1/src/tp1.sce diff --git a/num/tp1/README.md b/num/tp1/README.md index 86115a9..753428b 100644 --- a/num/tp1/README.md +++ b/num/tp1/README.md @@ -2,6 +2,48 @@ > Lisez et testez les exemples du [guide pour débutant](../../scilab/Scilab_debutant_annot.pdf) de scilab +> Si vous avez des problèmes d'affichages, lancez scilab depuis la console avec +> ``` +> LIBGL_ALWAYS_SOFTWARE=1 /usr/bin/scilab +> ``` + +## Exécuter sous Scilab. + +Les commandes Scilab peuvent être tapées directement en ligne. Par exemple, +``` +--> x = 1 +--> A = ones(3,2); +--> x + A +``` + +Le caractère `;` à la fin de la ligne indique si scilab affiche le résultat de la commande. Les commandes peuvent +écrites dans un fichier `*.sce`. + +1. Enregistrez les instructions suivantes dans un fichier `test.sce`. +``` +clc;clear; +A = rand(3,4) +``` + +Exécutez "le fichier" avec `exec("test.sce")`. + +2. On peut définir des fonctions, et les placer dans un fichier : +``` +// (commentaires en Scilab) Fonction carre.sci +function res = carre(x) + res = x.*x +endfunction +``` + +3. Faites `exec("carre.sci")`. + La fonction carre est maintenant définie sous Scilab +``` +--> x = carre ([0,1,2,3,4]) +--> y = carre(x) +--> plot2d(x,y) +``` + + ## Ex1 : dérivation numérique La dérivée d'une fonction est définie par la limite $$ @@ -22,10 +64,30 @@ renvoi un tableau de même taille $y$ tel que $y(i) \approx f^{'}(x(i))$ avec $ 1. Écrire une fonction scilab `trace_tangente(f,x0,x)` qui trace la tangente au graphe de $f$ au point $x_0$ dans la fenêtre courante (le découpage de l’intervalle des $x$ étant donné dans la variable $x$). -Indication : On utilisera une dérivation numérique pour évaluer $f^{′}(x0)$ +Indication : On utilisera une dérivation numérique pour évaluer $f^{′}(x_0)$ 2. Vérifier graphiquement avec la fonction $f(x) = x^2$ et le point $x_0 = 1$ (faire le tracé sur l’intervalle $I = [−2; 2]$). 3. Ajouter un printf dans le code de la fonction `trace_tangente(f,x0,x)` pour afficher l’équation de la tangente dans la console. Tracer les graphes des fonctions f(x)suivantes sur l’intervalle I. Combien y a-t-il de solutions x ∈I `a l’´equation f(x) = 0. Retrouver si possible leur valeur exacte. + +## Ex3 : calcul approché +Récupérez le fichier [myF.sci](src/myF.sci) qui définit la fonction suivante : +``` +function [ y ] = myF( x ) + y = x; + for i=1:50 + y = sqrt(y); + end + for i=1:50 + y = y.*y; + end +endfunction +``` + +1. Charger `myF` dans scilab, et calculer la fonction pour quelques valeurs. +2. Que vaut en théorie la fonction `myF` ? Tracez-là sur `[0,100]`. +3. Tracez l'erreur en valeur absolue entre la fonction, et sa valeur théorique. + + diff --git a/num/tp1/src/myF.sci b/num/tp1/src/myF.sci new file mode 100644 index 0000000..cd46fdc --- /dev/null +++ b/num/tp1/src/myF.sci @@ -0,0 +1,9 @@ +function [ y ] = myF( x ) + y = x; + for i=1:50 + y = sqrt(y); + end + for i=1:50 + y = y.*y; + end +endfunction diff --git a/num/tp1/src/tp1.sce b/num/tp1/src/tp1.sce new file mode 100644 index 0000000..454dfbf --- /dev/null +++ b/num/tp1/src/tp1.sce @@ -0,0 +1,65 @@ + +//*************************************************** +//TP 1 +//*************************************************** + //******************************************************* +// dérivée numérique +//*************************************************** + + +function y=derive(x,f) + // TODO +endfunction + + +// le test +function y=f(x) + y=x^2 +endfunction + + //*************************************************** +// tracés de tangentes +//************************************************** + +function trace_tangente(f,x0,x) + // TODO +endfunction + + + //********************************************* +// fonctions hyperboliques +//********************************************* + + +clf +x=[-2:0.01:2]; +y0=sinh(x); +y1=asinh(x); +plot(x,y0,'-b') // sinh +plot(x,y1,'-r') // asinh +plot(x,x,'-k') // diagonale +xgrid(3) // grille + + +// cosh et acosh + +//tanh at atanh + //**************************************************** +// fonctions trigonométriques +//**************************************************** + +//arc tangente +clf +h=10^(-8) +x=[-5:0.01:5]; +y=atan(x); +dy=(atan(x+h)-atan(x))/h;// dérivée numérique +subplot(121) +plot(x,y,'-b',y,tan(y),'-r',x,x,'-g') +xgrid(3) +xtitle('$\tan/\arctan$') +subplot(122) +plot(x,dy,'-b',x,1 ./(1+x^2),'-r') +xgrid(3) +xtitle("$\arctan''(x)={1\over 1+x^2}$") +