Mouvement brownien
Forum INFOMATH :: Enseignement de l'informatique :: INFO - Supérieur (Etudiants et Professionnels) :: C/C++
Page 2 sur 3•
Page 2 sur 3 •
1, 2, 3 
Re: Mouvement brownien
Tu dois distinguer entre Problème de conception d'une solution pour ton mini-projet, et problèmes techniques liés au langage C/C++...
Vu que ton problème a été déjà résolu en MATLAB, ton problème est considéré résolu
puisque avec le C/C++ rien n'est difficile.
D'ailleurs c'est un bon pas le fait d'être sûr que tu bloques uniquement au niveau Programmation.
Concentre-toi mnt sur la manipulation des matrices en C/C++.
Sache qu'une matrice n'est rien d'autre qu'un vecteur de vecteurs.
Une matrice dynamique est un vecteur dynamique de vecteurs dynamiques.
Un vecteur contenant des variables de type MONTYPE est déclaré comme suit:
MONTYPE* vect; /* tableau dynamique */
Donc tu ajoutes * à tout type T pour déclarer un tableau d'éléments de type T. Ainsi, un tableau de tableau est déclaré comme suit:
MONTYPE** vect_vect; /* matrice dynamique */
MONTYPE** est en réalité plus général qu'une matrice dynamique puisque c'est un tableau de tableaus dynamiques. On peut y mettre des tableaux de différentes tailles... ce qui ne donne plus une matrice...
Vu que ton problème a été déjà résolu en MATLAB, ton problème est considéré résolu
D'ailleurs c'est un bon pas le fait d'être sûr que tu bloques uniquement au niveau Programmation.
Concentre-toi mnt sur la manipulation des matrices en C/C++.
Sache qu'une matrice n'est rien d'autre qu'un vecteur de vecteurs.
Une matrice dynamique est un vecteur dynamique de vecteurs dynamiques.
Un vecteur contenant des variables de type MONTYPE est déclaré comme suit:
MONTYPE* vect; /* tableau dynamique */
Donc tu ajoutes * à tout type T pour déclarer un tableau d'éléments de type T. Ainsi, un tableau de tableau est déclaré comme suit:
MONTYPE** vect_vect; /* matrice dynamique */
MONTYPE** est en réalité plus général qu'une matrice dynamique puisque c'est un tableau de tableaus dynamiques. On peut y mettre des tableaux de différentes tailles... ce qui ne donne plus une matrice...
Dernière édition par le Mer 5 Déc - 21:22, édité 2 fois
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1906
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Mouvement brownien
je t'ai écrit un long message. A l'envoi, le firefox a crashé. Malheureusement pour toi ihecien
Résumé: Tant que tu as une solution qui marche en MATLAB, le problème revient à maitrise d'avantage le C/C++ en particulier la manipulation des matrices.
Crée un nouveau sujet sur le forum, et nomme le: Manipulation des Matrices en C. Il va être une référence pour tout le monde. Ok?
Résumé: Tant que tu as une solution qui marche en MATLAB, le problème revient à maitrise d'avantage le C/C++ en particulier la manipulation des matrices.
Crée un nouveau sujet sur le forum, et nomme le: Manipulation des Matrices en C. Il va être une référence pour tout le monde. Ok?
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1906
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Mouvement brownien
Admin a écrit:Crée un nouveau sujet sur le forum, et nomme le: Manipulation des Matrices en C. Il va être une référence pour tout le monde. Ok?
Ok, bonne idée, mais ya pas une idée rapide car c'est très urgent...
ihecien- Nouveau membre




- Messages : 23
Inscrit le : 10 Nov 2007
Age : 24
Localisation : Exponentielle
Feuille de personnage
Capacité linguistique:


(1000/1000)
Re: Mouvement brownien
Vu que c'est toi qui va implémenter la solution en C/C++. Je te conseille juste de te familiariser un peu avec les matrices dynamiques.
Puis la conception des fonctions de ton programme, on va la faire ensemble... elle est facile si on se basera sur ton code source MATLAB.
Puis la conception des fonctions de ton programme, on va la faire ensemble... elle est facile si on se basera sur ton code source MATLAB.
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1906
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Mouvement brownien
Tu pourras faire une seule fonction qui te retourne un tableau de valeurs, une instance du processus [X(n,t)] pendant une durée bien déterminée, passée en paramètre.
Sami - Methodix, tunis
Le génie de Newton a consisté à dire que la lune tombe alors que tout le monde voit bien qu'elle ne tombe pas.
(Paul Valéry)
Le génie de Newton a consisté à dire que la lune tombe alors que tout le monde voit bien qu'elle ne tombe pas.
(Paul Valéry)

methodiX- Admin


- Messages : 811
Inscrit le : 22 Mar 2007
Localisation : marsa - IPEST
Feuille de personnage
Capacité linguistique:


(1000/1000)
Re: Mouvement brownien
En fait il y a une autre méthode que j'ai vu dans le cours de calcul stochastique l'année dernière:


ihecien- Nouveau membre




- Messages : 23
Inscrit le : 10 Nov 2007
Age : 24
Localisation : Exponentielle
Feuille de personnage
Capacité linguistique:


(1000/1000)
Re: Mouvement brownien
Voilà un rapport de DEA qui contient une bonne présentation des processus stochastiques. Tu y trouvers:
1. les processus Gaussiens.
2. les mouvements Browniens
3. les martingales
4. les intégrales stochastiques...
http://www.dma.ens.fr/~legall/DEA96.pdf
@+
1. les processus Gaussiens.
2. les mouvements Browniens
3. les martingales
4. les intégrales stochastiques...
http://www.dma.ens.fr/~legall/DEA96.pdf
@+
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1906
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Mouvement brownien
Il est plus facile d'adapter la version Java au C++ que la version MATLAB.
manianis- Admin


- Messages : 976
Inscrit le : 10 Oct 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Mouvement brownien
Salut,
je te présente d'abord le résultat de la simulation que j'ai faite (en C++).
Les pramaètres sont résumés dans le MAIN suivant:
je te présente d'abord le résultat de la simulation que j'ai faite (en C++).
Les pramaètres sont résumés dans le MAIN suivant:
- Code:
void main()
{
double** mat = NULL;
double deltaT = 0.01;
int nbrMvt = 100;
int nbTraj = 5;
mat = BrownianMvt::gen_brownian_mvt(deltaT,nbrMvt,nbTraj);
BrownianMvt::displayMatrix(mat,nbrMvt,nbTraj);
}
- Code:
STEP[0]= 0.000 | 0.000 | 0.000 | 0.000 | 0.000 |
STEP[1]= 0.069 | -0.103 | -0.081 | 0.004 | -0.063 |
STEP[2]= -0.019 | -0.113 | 0.019 | 0.004 | 0.137 |
STEP[3]= 0.051 | -0.280 | -0.053 | -0.152 | 0.078 |
STEP[4]= -0.024 | -0.463 | 0.076 | -0.130 | 0.073 |
STEP[5]= 0.028 | -0.310 | 0.123 | -0.059 | -0.020 |
STEP[6]= 0.108 | -0.337 | 0.314 | 0.058 | -0.202 |
STEP[7]= 0.047 | -0.390 | 0.147 | 0.217 | -0.137 |
STEP[8]= -0.024 | -0.463 | 0.170 | 0.350 | -0.121 |
STEP[9]= 0.007 | -0.482 | 0.304 | 0.343 | -0.030 |
STEP[10]= -0.037 | -0.428 | 0.445 | 0.453 | 0.022 |
STEP[11]= -0.071 | -0.378 | 0.380 | 0.612 | 0.011 |
STEP[12]= -0.069 | -0.463 | 0.308 | 0.699 | -0.170 |
STEP[13]= -0.066 | -0.387 | 0.225 | 0.700 | -0.074 |
STEP[14]= -0.199 | -0.463 | 0.230 | 0.799 | -0.220 |
STEP[15]= -0.181 | -0.507 | 0.116 | 0.819 | -0.168 |
STEP[16]= -0.003 | -0.677 | 0.056 | 0.955 | -0.113 |
STEP[17]= 0.013 | -0.720 | -0.170 | 0.877 | -0.086 |
STEP[18]= 0.107 | -0.606 | -0.105 | 0.884 | -0.048 |
STEP[19]= -0.042 | -0.541 | -0.128 | 0.914 | 0.061 |
STEP[20]= -0.103 | -0.576 | -0.180 | 0.955 | -0.092 |
STEP[21]= -0.266 | -0.436 | -0.224 | 0.925 | 0.114 |
STEP[22]= -0.271 | -0.355 | -0.201 | 0.819 | 0.193 |
STEP[23]= -0.340 | -0.425 | -0.188 | 0.834 | 0.286 |
STEP[24]= -0.267 | -0.452 | -0.279 | 0.817 | 0.315 |
STEP[25]= -0.399 | -0.360 | -0.302 | 0.837 | 0.221 |
STEP[26]= -0.293 | -0.323 | -0.371 | 0.808 | 0.436 |
STEP[27]= -0.388 | -0.510 | -0.416 | 0.720 | 0.351 |
STEP[28]= -0.197 | -0.478 | -0.394 | 0.615 | 0.360 |
STEP[29]= -0.195 | -0.486 | -0.312 | 0.433 | 0.344 |
STEP[30]= 0.062 | -0.462 | -0.382 | 0.344 | 0.348 |
STEP[31]= -0.125 | -0.482 | -0.204 | 0.293 | 0.286 |
STEP[32]= -0.215 | -0.330 | -0.285 | 0.379 | 0.255 |
STEP[33]= -0.203 | -0.445 | -0.105 | 0.383 | 0.233 |
STEP[34]= -0.230 | -0.577 | -0.136 | 0.461 | 0.209 |
STEP[35]= -0.265 | -0.343 | -0.078 | 0.573 | 0.171 |
STEP[36]= -0.336 | -0.334 | -0.233 | 0.564 | -0.024 |
STEP[37]= -0.334 | -0.295 | -0.244 | 0.488 | 0.041 |
STEP[38]= -0.359 | -0.396 | -0.154 | 0.410 | 0.051 |
STEP[39]= -0.241 | -0.190 | -0.134 | 0.496 | 0.006 |
STEP[40]= -0.562 | -0.240 | -0.134 | 0.473 | 0.020 |
STEP[41]= -0.406 | -0.184 | -0.203 | 0.505 | 0.108 |
STEP[42]= -0.527 | -0.092 | -0.011 | 0.472 | 0.125 |
STEP[43]= -0.554 | 0.014 | -0.140 | 0.611 | 0.106 |
STEP[44]= -0.513 | -0.047 | -0.144 | 0.525 | 0.002 |
STEP[45]= -0.483 | -0.074 | -0.076 | 0.483 | -0.046 |
STEP[46]= -0.380 | -0.070 | 0.038 | 0.390 | -0.180 |
STEP[47]= -0.386 | -0.041 | 0.186 | 0.459 | -0.111 |
STEP[48]= -0.541 | -0.017 | 0.331 | 0.524 | -0.274 |
STEP[49]= -0.635 | 0.008 | 0.375 | 0.545 | -0.195 |
STEP[50]= -0.817 | -0.017 | 0.528 | 0.536 | -0.382 |
STEP[51]= -1.135 | -0.038 | 0.345 | 0.488 | -0.357 |
STEP[52]= -1.309 | -0.075 | 0.286 | 0.385 | -0.281 |
STEP[53]= -1.273 | -0.035 | 0.282 | 0.373 | -0.333 |
STEP[54]= -1.266 | -0.043 | 0.220 | 0.391 | -0.185 |
STEP[55]= -1.199 | -0.086 | 0.283 | 0.395 | -0.206 |
STEP[56]= -1.221 | -0.099 | 0.443 | 0.370 | -0.113 |
STEP[57]= -1.134 | -0.091 | 0.590 | 0.224 | -0.161 |
STEP[58]= -1.169 | -0.127 | 0.639 | 0.089 | -0.011 |
STEP[59]= -1.025 | -0.085 | 0.638 | 0.022 | 0.073 |
STEP[60]= -0.898 | 0.080 | 0.657 | 0.144 | 0.052 |
STEP[61]= -0.839 | 0.128 | 0.661 | 0.258 | -0.030 |
STEP[62]= -0.764 | 0.236 | 0.707 | 0.213 | 0.077 |
STEP[63]= -0.803 | 0.186 | 1.003 | 0.346 | -0.066 |
STEP[64]= -0.854 | 0.096 | 1.053 | 0.233 | -0.132 |
STEP[65]= -0.984 | 0.163 | 1.093 | 0.299 | -0.032 |
STEP[66]= -0.810 | 0.117 | 0.930 | 0.273 | -0.090 |
STEP[67]= -0.764 | 0.096 | 0.953 | 0.242 | -0.125 |
STEP[68]= -0.688 | 0.062 | 0.915 | 0.293 | -0.134 |
STEP[69]= -0.745 | -0.061 | 0.879 | 0.215 | -0.003 |
STEP[70]= -0.798 | -0.014 | 0.823 | 0.117 | 0.074 |
STEP[71]= -0.878 | -0.013 | 0.836 | 0.155 | 0.064 |
STEP[72]= -0.822 | -0.121 | 0.842 | 0.061 | 0.056 |
STEP[73]= -1.020 | 0.044 | 0.972 | 0.197 | -0.143 |
STEP[74]= -1.142 | 0.114 | 1.035 | 0.075 | -0.023 |
STEP[75]= -1.075 | -0.002 | 1.027 | 0.165 | -0.164 |
STEP[76]= -1.001 | -0.021 | 1.148 | 0.085 | -0.147 |
STEP[77]= -0.928 | -0.115 | 1.173 | -0.049 | -0.450 |
STEP[78]= -0.789 | -0.348 | 1.058 | -0.261 | -0.555 |
STEP[79]= -0.933 | -0.208 | 0.971 | -0.374 | -0.616 |
STEP[80]= -0.779 | -0.145 | 0.920 | -0.423 | -0.635 |
STEP[81]= -0.784 | -0.069 | 0.909 | -0.427 | -0.697 |
STEP[82]= -0.656 | -0.207 | 0.875 | -0.527 | -0.655 |
STEP[83]= -0.639 | -0.270 | 0.754 | -0.493 | -0.624 |
STEP[84]= -0.514 | -0.298 | 0.730 | -0.435 | -0.467 |
STEP[85]= -0.277 | -0.416 | 0.812 | -0.306 | -0.559 |
STEP[86]= -0.352 | -0.267 | 0.990 | -0.313 | -0.708 |
STEP[87]= -0.356 | -0.312 | 1.038 | -0.362 | -0.658 |
STEP[88]= -0.455 | -0.350 | 0.856 | -0.332 | -0.616 |
STEP[89]= -0.456 | -0.374 | 0.753 | -0.375 | -0.781 |
STEP[90]= -0.534 | -0.468 | 0.388 | -0.492 | -0.727 |
STEP[91]= -0.593 | -0.472 | 0.221 | -0.600 | -0.701 |
STEP[92]= -0.637 | -0.482 | -0.000 | -0.597 | -0.901 |
STEP[93]= -0.593 | -0.587 | 0.084 | -0.615 | -0.928 |
STEP[94]= -0.609 | -0.663 | -0.098 | -0.532 | -0.819 |
STEP[95]= -0.518 | -0.679 | -0.037 | -0.572 | -0.702 |
STEP[96]= -0.592 | -0.686 | -0.048 | -0.533 | -0.796 |
STEP[97]= -0.616 | -0.586 | -0.238 | -0.568 | -0.817 |
STEP[98]= -0.481 | -0.500 | -0.178 | -0.625 | -0.766 |
STEP[99]= -0.531 | -0.357 | -0.002 | -0.680 | -0.788 |
Press any key to continue
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1906
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Mouvement brownien
Voilà le code source d'une solution (pas la meilleure ce qui certain).
Elle n'est pas conçue Orientée Objet au vrai sens du mot. Mais, ça marche.
Compilée sous Visual Studio 6.0
Pas de copyright - c'est Open source
Bonne chance
@+
Elle n'est pas conçue Orientée Objet au vrai sens du mot. Mais, ça marche.
Compilée sous Visual Studio 6.0
- Code:
/*
-------------------
SOURCE EN MATLAB
----------------------------------------------------------------------
clear all;
n = 5; %le nombre de trajectoires simulées
m =10000; %le nombre de périodes de temps
Z = normrnd(0,1,m,n); %vecteur colonne composé de m v.a. iid N(0,1)
W = zeros(m+1,n); %initialisation: trajectoires du mouvement brownien
temps = zeros(m+1,1);
for i = 1 : m
W(i+1,:) = W(i,:) + sqrt(Delta)*Z(i,:);
temps(i+1,1) = temps(i,1) + Delta;
end
plot(temps,W)
----------------------------------------------------------------------
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#define NULL 0
#define PI 3,1415926535897932384626433832795
/* ------------------------------------------------------------------------------------ */
// CLASSE: Implémentation des variables Aléatoires
/* ------------------------------------------------------------------------------------ */
class RandomVar
{
public:
// LOI UNIFORME
static double unif()
{
return (double)((float)rand() / ((float)RAND_MAX + 1.0)) ;
}
// LOI NORMALE
static double normale(double m, double s)
{
double x1,x2,y;
x1 = unif();
x2 = unif();
// methode de Boc-Muller
// <y> suit une loi normale reduite (m=0,s=1)
y = pow(-2*log(x1),0.5)*cos(2.* 3.*x2);
return m + s*y;
}
};
/* ------------------------------------------------------------------------------------ */
// CLASSE: Implémentation du Mouvement Brownien
/* ------------------------------------------------------------------------------------ */
class BrownianMvt
{
public:
// Création d'une matrice dynamique
static double** createMatrix(int ln, int cl)
{
double ** traject = (double**)malloc(sizeof(double*) * ln);
if (traject == NULL) return NULL;
for (int i=0;i<ln;i++)
{
traject[i] = (double*) malloc (sizeof(double) * cl);
}
return traject;
}
// initialisation d'une matrice
static void initMatrix(double** matrix, int ln, int cl, double initVal)
{
for (int i=0;i<ln;i++)
for (int j=0;j<cl;j++)
matrix[i][j] = initVal;
}
// affichage d'une matrice
static void displayMatrix(double** matrix, int ln, int cl)
{
for (int i=0;i<ln;i++)
{
printf("STEP[%i]=\t",i);
for (int j=0;j<cl;j++)
printf("%7.3f | ",matrix[i][j]);
printf("\n");
}
}
static double** gen_brownian_mvt(double delta_T, int nbrMvt, int nbrTraj)
{
if (delta_T<=0 || nbrMvt<0 || nbrTraj<0) return NULL;
double ** traject = NULL;
// 1. Création de la matrice des Trajectoires
if (!(traject = BrownianMvt::createMatrix(nbrMvt, nbrTraj)))
return NULL;
BrownianMvt::initMatrix(traject, nbrMvt, nbrTraj, 0.0);
double rnd_dir;
srand((unsigned int) time(NULL));
for (int i=1;i<nbrMvt;i++)
{
// 1. W(i+1,:) = W(i,:) + sqrt(Delta)*Z(i,:);
for (int j=0;j<nbrTraj;j++)
{
rnd_dir = pow(delta_T,0.5) * RandomVar::normale(0,1);
traject[i][j] = traject[i-1][j] + rnd_dir;
//printf("rnd_dir = %.3f\n",rnd_dir);
}
}
return traject;
}
};
/* ------------------------------------------------------------------------------------ */
// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
/* ------------------------------------------------------------------------------------ */
void main()
{
double** mat = NULL;
double deltaT = 0.01;
int nbrMvt = 100;
int nbrTraj = 5;
printf("************************************\n");
printf("* Simulation Mouvements Browniens *\n");
printf("************************************\n\n");
printf("\tdelta = ");
scanf("%f",&deltaT);
printf("\tnombre de mouvements = ");
scanf("%i",&nbrMvt);
printf("\tnombre de trajectoires = ");
scanf("%i",&nbrTraj);
mat = BrownianMvt::gen_brownian_mvt(deltaT,nbrMvt,nbrTraj);
printf("Liste des trajectoirs:\n");
BrownianMvt::displayMatrix(mat,nbrMvt,nbrTraj);
}
Pas de copyright - c'est Open source
Bonne chance
@+
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1906
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Mouvement brownien
Impressionnant Admin, vraiment chapeau 
ihecien- Nouveau membre




- Messages : 23
Inscrit le : 10 Nov 2007
Age : 24
Localisation : Exponentielle
Feuille de personnage
Capacité linguistique:


(1000/1000)
Re: Mouvement brownien
- Code:
program brownien;
uses Graph;
procedure draw_brownien(n : integer);
var
interval : integer;
i : integer;
x, y : integer;
begin
interval := GetMaxX div n;
y:= GetMaxY div 2;
x:=0;
MoveTo(x, y);
for i:=1 to n do begin
x := x + interval;
y := y + (random(20) - 10);
LineTo(x, y);
end;
end;
var
gd,gm : integer;
begin
Randomize;
gd := D8bit; { highest possible resolution }
gm:=m640x480; { not needed, auto detection }
InitGraph(gd,gm,'');
if (GraphResult<>grok) then halt;
draw_brownien(GetMaxX);
Readln;
CloseGraph; { restores the old graphics mode }
end.
manianis- Admin


- Messages : 976
Inscrit le : 10 Oct 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Mouvement brownien
çà produit quelque chose comme suit :


manianis- Admin


- Messages : 976
Inscrit le : 10 Oct 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Mouvement brownien
manianis:
Ca ressemble beaucoup aux simulations des applets JAVA. Mais d'après ce que propose ihecien, la loi Normale est toujours présente dans les pas browniens. Il faut l'intégrer dans ton code au lieu de la loi Uniforme.
NB: il faut toujours indiquer le langage et la version du compilateur de chaque code source qu'on propose. C'est pour faciliter le test des programmes qu'on propose.
Merci pour la participation
a+
Ca ressemble beaucoup aux simulations des applets JAVA. Mais d'après ce que propose ihecien, la loi Normale est toujours présente dans les pas browniens. Il faut l'intégrer dans ton code au lieu de la loi Uniforme.
NB: il faut toujours indiquer le langage et la version du compilateur de chaque code source qu'on propose. C'est pour faciliter le test des programmes qu'on propose.
Merci pour la participation
a+
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1906
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Mouvement brownien
Admin a écrit:Voilà un rapport de DEA qui contient une bonne présentation des processus stochastiques. Tu y trouvers:
1. les processus Gaussiens.
2. les mouvements Browniens
3. les martingales
4. les intégrales stochastiques...
http://www.dma.ens.fr/~legall/DEA96.pdf
@+
Il est très intéressant ce rapport. Mais, je n'ai pas trouvé où est la contribution de l'auteur. Un DEA = Un travail de Recherche...
informix, Ecole d'ingénieurs
Les passions font vivre l'Homme; sa sagesse le fait seulement durer.
Les passions font vivre l'Homme; sa sagesse le fait seulement durer.

informix- Membre fondamental

- Messages : 350
Inscrit le : 19 Mar 2007
Feuille de personnage
Capacité linguistique:


(1000/1000)
Page 2 sur 3 •
1, 2, 3 


