# Fonctions et dérivées numériques > 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 $$ f'(x) = \lim_{h\to 0} \frac{f(x+h) - f(x)}{h} $$ ce qui signifie que pour $h$ assez petit $$ f'(x)\approx \frac{f(x+h) - f(x)}{h} $$ 1. Vérifier numériquement l’affirmation précédente avec $f(x) = x^2, x = 1$ et $h = 0.01$. 2. Ecrire une fonction scilab $y=derive(x,f)$ qui pour un tableau à 1 dimension $x$ renvoi un tableau de même taille $y$ tel que $y(i) \approx f^{'}(x(i))$ avec $h = 10^{-8}$. 3. Vérifier graphiquement avec la fonction $f(x)=x^2$ sur l'intervalle $I=[-2,2]$ ## Ex2 : tracé de tangentes 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^{′}(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.