2026-04-07 13:28:01 +02:00
|
|
|
|
# TP1 : Fonctions et dérivées numériques
|
2026-03-30 18:40:47 +02:00
|
|
|
|
|
2026-03-31 08:29:49 +02:00
|
|
|
|
> Lisez et testez les exemples du [guide pour débutant](../../scilab/Scilab_debutant_annot.pdf) de scilab
|
2026-03-31 08:24:15 +02:00
|
|
|
|
|
2026-03-31 11:17:49 +02:00
|
|
|
|
> 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)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-03-31 08:24:15 +02:00
|
|
|
|
## Ex1 : dérivation numérique
|
2026-03-30 18:40:47 +02:00
|
|
|
|
La dérivée d'une fonction est définie par la limite
|
2026-03-30 18:42:31 +02:00
|
|
|
|
$$
|
2026-03-30 18:40:47 +02:00
|
|
|
|
f'(x) = \lim_{h\to 0} \frac{f(x+h) - f(x)}{h}
|
2026-03-30 18:42:31 +02:00
|
|
|
|
$$
|
2026-03-30 18:43:20 +02:00
|
|
|
|
|
|
|
|
|
|
ce qui signifie que pour $h$ assez petit
|
2026-03-30 18:42:54 +02:00
|
|
|
|
|
|
|
|
|
|
$$
|
2026-03-30 18:40:47 +02:00
|
|
|
|
f'(x)\approx \frac{f(x+h) - f(x)}{h}
|
2026-03-30 18:42:54 +02:00
|
|
|
|
$$
|
2026-03-30 18:44:21 +02:00
|
|
|
|
1. Vérifier numériquement l’affirmation précédente avec $f(x) = x^2, x = 1$ et $h = 0.01$.
|
2026-03-30 18:40:47 +02:00
|
|
|
|
2. Ecrire une fonction scilab $y=derive(x,f)$ qui pour un tableau à 1 dimension $x$
|
2026-03-30 18:44:21 +02:00
|
|
|
|
renvoi un tableau de même taille $y$ tel que $y(i) \approx f^{'}(x(i))$ avec $h = 10^{-8}$.
|
2026-03-30 18:40:47 +02:00
|
|
|
|
3. Vérifier graphiquement avec la fonction $f(x)=x^2$ sur l'intervalle $I=[-2,2]$
|
2026-03-31 08:24:15 +02:00
|
|
|
|
|
|
|
|
|
|
## 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$).
|
2026-03-31 11:17:49 +02:00
|
|
|
|
Indication : On utilisera une dérivation numérique pour évaluer $f^{′}(x_0)$
|
2026-03-31 08:24:15 +02:00
|
|
|
|
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]$).
|
2026-03-31 11:19:15 +02:00
|
|
|
|
|
2026-03-31 08:24:15 +02:00
|
|
|
|
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.
|
2026-03-31 14:00:52 +02:00
|
|
|
|
## EX3 : fonctions et fonctions réciproques
|
|
|
|
|
|
- Vérifiez la symétrie des graphes de $f$ et $f^{-1}$ :
|
|
|
|
|
|
- Calculez la dérivée de $f^{-1}$ et vérifiez le résultat en traçant le graphe de la
|
|
|
|
|
|
dérivée numérique avec la fonction `derive`)
|
|
|
|
|
|
1. $exp$ et $ln$
|
|
|
|
|
|
2. $tan$ et $arctan$.
|
|
|
|
|
|
3. $sin$ et $arcsin$
|
2026-03-31 11:17:49 +02:00
|
|
|
|
|
2026-03-31 14:00:52 +02:00
|
|
|
|
## Ex4 : calcul approché
|
2026-03-31 11:17:49 +02:00
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|