Académique Documents
Professionnel Documents
Culture Documents
000000000
Reportez votre numéro d’anonymat dans le cadre ci-dessous et en haut à gauche de chaque page de
l’énoncé.
A la fin de l’épreuve glissez ce cahier dans la copie double qui vous a été fournie, qui comporte
votre numéro d’anonymat et sur laquelle vous aurez écrit et masqué votre nom en rabattant dessus
et en collant la languette triangulaire. Vous ne devez rien écrire d’autre sur cette copie double.
Numéro d’anonymat :
Licence et Magistère 1ère année de Physique fondamentale Examen d’informatique 2007-2008 première session
Numéro d’anonymat : 2 2008-03-05 01 :24 :46.000000000
Licence et Magistère 1ère année de Physique fondamentale Examen d’informatique 2007-2008 première session
Numéro d’anonymat : 3 2008-03-05 01 :24 :46.000000000
Question : écrire un programme calculant par une méthode statistique la probabilité pour que les deux pièces se
1
chevauchent, ceci pour n valeurs de r régulièrement réparties entre 0 et .
2
Réponse :
//-----------------------------------------------------------------------------------------------------
int main()
{
int i,j,nt=10000,n,np=100; double r,a,d2,dia2,x1,y1,x2,y2;
for(j=0;j<np;j++)
{
r=j/2./(np-1);
a=1-2*r; dia2=4*r*r;
for(n=0,i=1;i<=nt;i++)
{
x1=a*alea()+r; y1=a*alea()+r; x2=a*alea()+r; y2=a*alea()+r;
d2=(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1);
if(d2<=dia2) n++;
}
cout << r << " " << (double)n/nt << endl;
}
return 0;
}
//-----------------------------------------------------------------------------------------------------
Commentaire :
On obtient la courbe
1
0.8
0.6
0.4
0.2
0
0 0.1 0.2 0.3 0.4 0.5
r
1
La probabilité vaut 1 pour r ≥ √ √ (abscisse de la droite verticale).
2(1 + 2)
Licence et Magistère 1ère année de Physique fondamentale Examen d’informatique 2007-2008 première session
Numéro d’anonymat : 4 2008-03-05 01 :24 :46.000000000
Les intervalles [ai , bi ] sont fournis à la fonction par l’intermédiaire de deux tableaux à un indice et N éléments,
nommés a et b.
Question 2 : Ecrire l’appel de la fonction par le programme principal.
Réponse :
#define N 5
//-----------------------------------------------------------------------------------------------------
int inter(double *xi,double *xs,double *inf,double *sup,int n)
{
int i;
*inf=xi[0]; *sup=xs[0];
for(i=1;i<n;i++) {if(xi[i]>*inf) *inf=xi[i]; if(xs[i]<*sup) *sup=xs[i];}
if(*inf>*sup) return 0; else return 1;
}
//-----------------------------------------------------------------------------------------------------
int main()
{
double a[N]={1.5,-1.8,2.4,2.7,0.5},b[N]={2.9,3.5,4.3,6.7,6.3},min,max;
if(inter(a,b,&min,&max,N)==0)
cout << "Intervalle vide" << endl;
else
cout << min << " " << max << endl;
return 0;
}
//-----------------------------------------------------------------------------------------------------
Licence et Magistère 1ère année de Physique fondamentale Examen d’informatique 2007-2008 première session
Numéro d’anonymat : 5 2008-03-05 01 :24 :46.000000000
return 0;
}
//-----------------------------------------------------------------------------------------------------
Commentaire :
On obtient la courbe
6
3
x
0
0 0.5 1 1.5 2
t
Licence et Magistère 1ère année de Physique fondamentale Examen d’informatique 2007-2008 première session
Numéro d’anonymat : 6 2008-03-05 01 :24 :46.000000000
4000 4000
3500 3500
3000 3000
2500 2500
2000 2000
1500 1500
1000 1000
500 500
0 0
0 50 100 150 200 250 0 50 100 150 200 250
On observe sur cet histogramme qu’il y a très peu de pixels de valeur inférieure à environ min=25 ou supérieure à
environ max=160. On peut améliorer l’image en modifiant les valeurs des pixels de façon à ce que leur histogramme
occupe toute la gamme de 0 à 255. On constitue donc une nouvelle image en modifiant la valeur de chaque pixel par
la fonction affine
vi − min
vf = Partie entière ∗ 255 où vi est la valeur initiale du pixel et vf sa valeur finale
max − min
Un pixel de valeur min se retrouve ainsi à 0, un pixel de valeur max à 255. Les pixels de valeur inférieure à min doivent
être mis à 0, ceux de valeur supérieure à max à 255.
Question 2 : compléter le programme précédent pour qu’il constitue la nouvelle image dans un second fichier nommé
volcan 2.pgm et le nouvel histogramme dans un second tableau.
Les résultats obtenus sont présentés sur les figures 1 et 2. Le nouvel histogramme contient de nombreux « trous
» parcequ’on utilise des nombres entiers, mais cela n’a pas beaucoup d’importance.
Fig. 4 – A gauche l’image originale, à droite l’image modifiée. La différence serait mieux visible sur un écran ou du
papier photo (voir corrigé).
Réponse :
//-----------------------------------------------------------------------------------------------------
int main()
{
int i,nl,nh,x,xx,prof,min,max;
Licence et Magistère 1ère année de Physique fondamentale Examen d’informatique 2007-2008 première session
Numéro d’anonymat : 7 2008-03-05 01 :24 :46.000000000
Licence et Magistère 1ère année de Physique fondamentale Examen d’informatique 2007-2008 première session
Numéro d’anonymat : 8 2008-03-05 01 :24 :46.000000000
lorsque Bi décrit l’intervalle ]1, +∞[ la pente décrit l’intervalle ] − ∞, 0[, l’angle de la droite avec l’axe
π
horizontal décrit ] − , 0[
2
π π π
l’angle de la droite avec l’axe horizontal décrit donc ] − , [ sauf [0, ].
2 2 4
Les figures ci-dessous donnent deux exemples, l’un pour Bi = 0.3, l’autre pour Bi = 2.
10
Bi=0.3
ω
0
π/2 π 3π/2 2π 5π/2 3π 7π/2
-5
-10
0 2 4 6 8 10 12
Fig. 5 – Les ωk sont aux intersections des verticales en pointillés avec l’axe horizontal. La droite oblique de pente
ω
positive est la droite
1 − Bi
Licence et Magistère 1ère année de Physique fondamentale Examen d’informatique 2007-2008 première session
Numéro d’anonymat : 9 2008-03-05 01 :24 :46.000000000
10
Bi=2
-5
-10
0 2 4 6 8 10 12
Fig. 6 – Les ωk sont aux intersections des verticales en pointillés avec l’axe horizontal. La droite oblique de pente
ω
négative est la droite
1 − Bi
Une étude des racines de l’équation (2) en fonction des valeurs de Bi donne le résultat suivant
π
0 < Bi < 1 : il y a une et une seule racine ωk dans chaque intervalle ouvert ]kπ, +kπ[ avec k = 0, 1, ..., +∞
2
π
Bi = 1 : on prolonge les racines par continuité aux valeurs ωk = + kπ avec k = 0, 1, ..., +∞
2
π
1 < Bi : il y a une et une seule racine ωk dans chaque intervalle ouvert ] + kπ, (k + 1)π[ avec k =
2
0, 1, ..., +∞
On calcule la racine se trouvant dans l’intervalle ouvert ]α, β[ de la façon suivante (dichotomie) :
on pose
ω α+β
f (ω) = tan ω − et γ=
1 − Bi 2
puis on applique la procédure
si f (γ) = 0 la racine cherchée est γ
si f (γ) > 0 la racine cherchée est dans l’intervalle ]α, γ[, on prend donc un nouveau β égal à γ, on calcule
le nouveau γ et on recommence la procédure à son début
si f (γ) < 0 la racine cherchée est dans l’intervalle ]γ, β[, on prend donc un nouvel α égal à γ, on calcule
le nouveau γ et on recommence la procédure à son début
β−α
Si on ne tombe pas sur la racine l’intervalle se rétrécit en progression géométrique et quand est inférieur à
α
ε = 10 −13
par exemple, on prend α ou β comme valeur approchée de la racine.
Les ck sont donnés par l’expression
sin ωk − ωk cos ωk
ck = 2
ωk − sin ωk cos ωk
Le dénominateur ne peut être nul que si ωk = 0, or on a exclu cette solution, donc il ne peut jamais être nul.
T (r, t) − Te
Question : écrire un programme qui calcule pour Bi , r et t quelconques, la somme dans l’équation (1)
T0 − Te
étant limitée à N termes. On pourra prendre a = 2.10 , Bi = 0.3, R = 0.2, r = R/2, t = 105 , tout en unités SI, et
−7
N = 20.
Licence et Magistère 1ère année de Physique fondamentale Examen d’informatique 2007-2008 première session
Numéro d’anonymat : 10 2008-03-05 01 :24 :46.000000000
Licence et Magistère 1ère année de Physique fondamentale Examen d’informatique 2007-2008 première session
Numéro d’anonymat : 11 2008-03-05 01 :24 :46.000000000
Commentaire :
En calculant la température en fonction de r et de t on obtient la surface
Bi=10
1.1
1
0.9
0.8
0.7
0.6
0.5
T 0.4
0.3
0.2
0.1
0
0
10
20
30
40
50 position
0 60
10 20 70
30 40 80
50 60 90
70 80
temps 90 100 100
On vérifie que la température évolue plus lentement au centre de la sphère que sur les bords.
Licence et Magistère 1ère année de Physique fondamentale Examen d’informatique 2007-2008 première session