La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

PROGRAMMATION SCIENTIFIQUE EN C

Présentations similaires


Présentation au sujet: "PROGRAMMATION SCIENTIFIQUE EN C"— Transcription de la présentation:

1 PROGRAMMATION SCIENTIFIQUE EN C

2 Résolution de système d’équations non-linéaires (racines d’équations)
Méthode de la bissection Analyse de la convergence de la méthode de bissection Exemple de recherche Recherche des zéros par la méthode de la bissection Recherche de plusieurs zéros

3 Méthodes de la bissection
La méthode de la bissection permet la localisation d’une seule racine dans un intervalle donné Conditions requises La fonction f(x) est continue sur l’intervalle [a,b] SI f(a)f(b) < 0 => une racine dans l’intervalle Pour une précision équivalente, cette méthode est généralement plus rapide (convergence)

4 Méthodes de la bissection
Étapes de la méthodes de bissection Pour un intervalle [a,b], calculer la position du cen-tre de l’intervalle par: c = 1/2(a+b) = a+(b-a)/2 Calculer f(a), f(b) et f(c) Calculer f(a)f(c) et f(c)f(b) Vérifier la convergence Si les critères de convergence sont satisfaits, afficher la valeur de la racine Sinon modifier les extrémités de l’intervalle, répéter les étapes précédentes

5 Méthodes de la bissection

6 Méthodes de la bissection
La méthode de la bissection converge si une racine se trouve dans un intervalle donné et trouve une seule racine si le nombre de racines dans un inter-valle est impair

7 Méthodes de la bissection

8 Méthode de la bissection
Algorithme de la bissection BISSEC(float a, float b, int nbiterMAX, float delta, float eps) u = f(a) v = f(b) e = b-a imprimer a,b,u,v SI u*v > 0 ALORS imprimer un message indiquant l’absence d’une racine SINON nbiter = 0 w = MAXFLOAT TANT QUE nbiter<nbiterMAX ET |e| > delta ET |w| > eps FAIRE e = e/2 c = a+e w = f(c) imprimer nbiter, c, w, e

9 Méthode de la bissection
Algorithme de la bissection TANT QUE nbiter<nbiterMAX ET |e| > delta ET |w| > eps FAIRE e = e/2 c = a+e w = f(c) imprimer nbiter, c, w, e SI (u*w<0) ALORS b=c v=w SINON a=c u=w FIN SI nbiter++ FIN TANTQUE

10 Méthode de la bissection
Cas ou les critères de convergence sont déficients Racines multiples (échec sur le critère |f(c)| < )

11 Méthode de la bissection
Cas ou les critères de convergence sont déficients Discontinuité (échec sur le critère |b-a| < )

12 Analyse de la convergence
Le critère de convergence peut être exprimé en valeur absolue par a = ck+1 - ck k étant le nombre d’itérations Il peut aussi être exprimé en pourcentage de l’erreur relative La précision réelle de la solution est donnée

13 Analyse de la convergence
Exemple de convergence avec la fonction f(x) = 20 - x2 = 0 Avec comme solution ct = sur l’intervalle [0,6]

14 Analyse de la convergence
Exemple de convergence

15 Exemple de recherche Utilisation de la méthode de bissection

16 Exemple de recherche Utilisation de la méthode de bissection

17 Exemple de recherche Recherche de plusieurs zéros (exemple)
Cherchons les valeurs et les vecteurs propres associés à une matrice A (ex: matrice de coefficients de corré-lation ou matrice variance-covariance) Si nous avons une matrice A de n x n nous pouvons écrire Où x est un vecteur propre de A et  une valeur propre de A

18 Exemple de recherche Recherche de plusieurs zéros (exemple)
Si nous avons une matrice A de n x n nous pouvons écrire Pour que  soit une valeur propre il faut que la solution de la dernière équation soit non nulle. Pour que x soit non nulle il faut que

19 Exemple de recherche Recherche de plusieurs zéros (exemple)
Si nous considérons un cas d’ordre 3, nous obtenons Le déterminant donne

20 Exemple de recherche Recherche de plusieurs zéros (exemple)
Lorsque nous avons les valeurs propres, nous les substituons une à une dans (A-I) x = 0 pour trouver les vecteurs propres x

21 Exemple de recherche Recherche de plusieurs zéros (exemple)
Les vecteurs propres désignent chacun des axes orthogonaux de variance maximale des données De plus, les valeurs propres donnent une mesure de la variabilité des données selon chaque axe Les vecteurs propres nous permettent alors par une transformation linéaire de passer d’un domaine où les données sont corrélées à un autre non corrélé

22 Exemple de recherche Recherche de plusieurs zéros (exemple) * * * * *

23 Exemple de recherche Système d’équations linéaires Ax = 0 :
Si nous avons une matrice variance-covariance A de 2X2

24 Exemple de recherche Algorithme de résolution SVD: matrice A de NXN
for(i=1;i<=N;i++) for(j=1;j<=N;j++) u[i][j] = a[i][j]; svdcmp(u,N,N,w,v); wmax = 0.0; for(j=1;j<=N;j++) if(w[j] > wmax) wmax = w[j]; wmin = wmax; // trouver la valeur propre min. dans w if((w[j] < wmin) && w[j] != 0.0) {wmin = w[j]; minPos = j;} for(j=1;j<=N;j++) x[j]=v[j][minPos]; // x contient un vecteur propre

25 Exemple de recherche Localiser des extremums de fonctions (ex: histogramme) Calcul de l’histogramme d’une image contenant deux objets principaux for(j=0;j<Hauteur;j++) for(i=0;i<Largeur;i++) h[I[j][i]]++; // comptage des pixels de chaque couleur Localisation des extremums Estimation de la dérivée première de la fonction h[] Détection des passages par zéro associés aux extremums Localiser les deux maximums associés à la moyenne de chaque distribution de couleur des deux objets Localiser ensuite le minimum entre ces deux maximums Segmenter l’image en deux régions distinctes en utilisant un seuil correspondant au minimum

26 Exemple de recherche Localisation des extremums
Localiser des extremums de fonctions (ex: histogramme) Localisation des extremums Estimation de la dérivée première de la fonction h[]: Pour estimer la dérivée première d’une fonction, il faut convoluer la fonction avec un opérateur de dérivée première. Opération de convolution entre une fonction h() et un opérateur

27 Exemple de recherche DF/ 2 = 4 DF = 8+1 Où   [0.5..(N-1)/8]
Localiser des extremums de fonctions (ex: histogramme) Localisation des extremums Opérateur de dérivée première (forme mathématique) DF/ 2 = 4 DF = 8+1 Où   [0.5..(N-1)/8] Où DF  [5,7,9..N]

28 Exemple de recherche Localiser des extremums de fonctions (ex: histogramme) Segmenter l’image en deux régions distinctes en utilisant un seuil correspondant au minimum Après avoir détecté les deux maximums et le minimum entre ces deux maximums à partir de la fonction dérivée g(x) Segmentation de l’image avec le seuil S correspondant au minimum entre les deux maximums détectés à l’étape précédente. for(j=0;j<Hauteur;j++) for(i=0;i<Largeur;i++){ if( I[j][i] > seuil) I[j][i] = 255; else I[j][i] = 0; }

29 Exemple de recherche (Méthode de Otsu
La méthode de Otsu permet de trouver un seuil optimal t pour segmenter une image dont l’histogramme est bimodal (2 régions) En minimisant la variance intra-classe Ou en maximisant la variance inter-classe ω est la probabilité d’occurrence d’une région, σ2 sa variance, µ sa moyenne

30 Exemple de recherche (Méthode de Otsu
Exemple d’application de la méthode de Otsu (approche de minimisation de la variance intra-classe)

31 Exemple de recherche (Méthode de Otsu
Exemple d’application de la méthode de Otsu (t=3)

32 Exemple de recherche (Méthode de Otsu
Exemple d’application de la méthode de Otsu (t=3, variance intra-classe totale)

33 Exemple de recherche (Méthode de Otsu
Exemple d’application de la méthode de Otsu (autres t)

34 Exemple de recherche (Méthode de Otsu
Exemple d’application de la méthode de Otsu (résultat optimal, t = 3)

35 Exemple de recherche (Méthode de Otsu
Méthode de Otsu (Approche de maximisation de la variance inter-classe)

36 Exemple de recherche (Méthode de Otsu
Méthode de Otsu (Approche de maximisation de la variance inter-classe, programme)

37 Exemple de recherche (Méthode de Otsu
Méthode de Otsu (Approche de maximisation de la variance inter-classe, exemples)


Télécharger ppt "PROGRAMMATION SCIENTIFIQUE EN C"

Présentations similaires


Annonces Google