Utiliser des logiciels libres n’est pas chose facile : les documentations sont abondantes (trop) et disséminées sur la toile... sans parler qu’elles sont généralement en anglais. Je vais donc essayer de parcourir les programmes de mathématique avec les logiciels libres (sauf la géométrie pour laquelle il y a déjà abondance d’exemples).
Si, ô lecteur, tu trouves des erreurs ou connais des façons plus simples de pratiquer les calculs ou représentations, n’hésite pas à me les communiquer pour que j’améliore cette fiche :-)
moyenne de série à partir de moyennes de sous-groupes ;
Voici deux séries de notes obtenues par les élèves des groupes A et B :
Gpe A : 10,12,8,7,15,13,6,18,20,2,10,8.
Gpe B : 8,7,13,11,11,14,5,14,19,8,9.
Quelle est la moyenne de la classe réunissant ces deux groupes ?
> ga<-c(10,12,8,7,15,13,6,18,20,2,10,8)
> gb<-c(8,7,13,11,11,14,5,14,19,8,9)
> mean(ga)
[1] 10.75
> mean(gb)
[1] 10.81818
> ma<-mean(ga)
> mb<-mean(gb)
> lb<-length(gb)
> la<-length(ga)
> weighted.mean(c(ma,mb),c(la,lb))
[1] 10.78261
Les 16 garçons de seconde 1 ont obtenu 12,5 de moyenne au dernier DS et les 18 filles ont obtenu 13,4 de moyenne. Quelle est la moyenne de la classe de seconde 1 ?
> weighted.mean(c(12.5,13.4),c(16,18))
[1] 12.97647
moyenne pondérée d’une série connaissant les effectifs ;
Voici une distribution de salaires dans une entreprise :
Salaire | 900 | 1100 | 1300 | 1500 | 1700 | 1900 | 2100 | 2300 | 2500 | 2700 | 2900 | 3100 | 3300 | 3500 | 3700 | 3900 | 4100 | 4300 | 4500 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Effectif | 12 | 10 | 20 | 18 | 12 | 13 | 5 | 3 | 12 | 5 | 7 | 10 | 0 | 6 | 5 | 0 | 0 | 0 | 1 |
Calculer le salaire moyen dans cette entreprise.
> salaire<-c(900,1100,1300,1500,1700,1900,2100,2300,2500,
+2700,2900,3100,3300,3500,3700,3900,4100,4300,4500)
> effectif<-c(12,10,20,18,12,13,5,3,12,5,7,10,0,6,5,0,0,0,1)
> weighted.mean(salaire,effectif)
[1] 1986.331
distribution de fréquence à partir d’une série (valeurs,effectifs) ;
Calculer la distribution de fréquences (arrondir au dix-millième) de cette série.
> frequence<-effectif/sum(effectif)
> round(frequence,d=4) # d c'est l'abréviation de digits
[1] 0.0863 0.0719 0.1439 0.1295 0.0863 0.0935 0.0360 0.0216 0.0863 0.0360 0.0504 0.0719
[13] 0.0000 0.0432 0.0360 0.0000 0.0000 0.0000 0.0072
[4]moyenne de série à partir d’une distribution de fréquences
Reprendre la distribution de fréquences des salaires de l’exemple précédent et en déduire le salaire moyen. Recommencer avec les fréquences arrondies au dix-millième.
> sum(salaire*frequence)
[1] 1986.331
> sum(salaire*round(frequence,d=4))
[1] 1986.52
calcul des fréquences cumulées croissantes à partir de la distribution d’une série
Déterminer les fréquences cumulées croissantes de la série précédente.
> cumsum(round(frequence,d=4))
[1] 0.0863 0.1582 0.3021 0.4316 0.5179 0.6114 0.6474 0.6690 0.7553 0.7913 0.8417 0.9136
[13] 0.9136 0.9568 0.9928 0.9928 0.9928 0.9928 1.0000
médiane et étendue à partir de la série (valeurs,effectifs)
Déterminer la médiane et l’étendue de la série des salaires.
seriesal<-rep(salaire,effectif)
> seriesal
[1] 900 900 900 900 900 900 900 900 900 900 900 900 1100 1100 1100 1100 1100
[18] 1100 1100 1100 1100 1100 1300 1300 1300 1300 1300 1300 1300 1300 1300 1300 1300 1300
[35] 1300 1300 1300 1300 1300 1300 1300 1300 1500 1500 1500 1500 1500 1500 1500 1500 1500
[52] 1500 1500 1500 1500 1500 1500 1500 1500 1500 1700 1700 1700 1700 1700 1700 1700 1700
[69] 1700 1700 1700 1700 1900 1900 1900 1900 1900 1900 1900 1900 1900 1900 1900 1900 1900
[86] 2100 2100 2100 2100 2100 2300 2300 2300 2500 2500 2500 2500 2500 2500 2500 2500 2500
[103] 2500 2500 2500 2700 2700 2700 2700 2700 2900 2900 2900 2900 2900 2900 2900 3100 3100
[120] 3100 3100 3100 3100 3100 3100 3100 3100 3500 3500 3500 3500 3500 3500 3700 3700 3700
[137] 3700 3700 4500
> median(seriesal)
[1] 1700
> range(seriesal)
[1] 900 4500
> max(seriesal)-min(seriesal)
[1] 3600
regroupement des données brutes en distribution d’effectifs
Reprendre la série brute des salaires pour établir la distribution d’effectifs
> table(seriesal)
seriesal
900 1100 1300 1500 1700 1900 2100 2300 2500 2700 2900 3100 3500 3700 4500
12 10 20 18 12 13 5 3 12 5 7 10 6 5 1
regroupement des données brutes en classes d’égale amplitude
Regrouper la série en classes de 1000 euros.
> classes<-c(0,1000,2000,3000,4000,5000)
> regroupsalaires<-cut(seriesal,classes)
> table(regroupsalaires)
regroupsalaires
(0,1e+03] (1e+03,2e+03] (2e+03,3e+03] (3e+03,4e+03] (4e+03,5e+03]
12 73 32 21 1
Représenter l’histogramme de la distribution de la série en classes de 1000 euros.
> hist(seriesal,classes,ylim=c(0,80), col = gray(seq(0.4,1.0,length=5)),labels=T,main="Histogramme",ylab="effectifs")
# la série,le vecteur des classes, l'axe vertical, la couleur, les effectifs sur les barres, le titre, les ordonnées
Représenter une série avec en étiquettes des désignations :
les sports pratiqués : natation, judo, foot et volley,
le nombre de pratiquants : 40, 60, 120, 42
> sport<-c("natation","judo","foot","volley")
> pratiquants<-c(40,60,120,42)
> plot(pratiquants,type="h",axes=F,col="red",lwd=3,xlab="sport",ylab="nbre d'enfants")
> axis(1,at=1:4,label=sport)
> axis(2)
> box()
diagrammes à barre, circulaires
On donne la répartition suivante du nombre d’espèces menacées sur Terre :
mammifères | oiseaux | insectes | amphibiens | reptiles |
---|---|---|---|---|
40 | 35 | 19 | 11 | 10 |
Représenter cette répartition sous forme de diagramme en barre puis circulaire.
> barplot(espeffectifs,legend=especes,col = gray(seq(0.4,1.0,length=5)), main="Répartition des espèces menacées")
> especes<-c("mammifères","oiseaux","insectes","amphibiens","reptiles")
> espeffectifs<-c(40,35,19,11,10)
> pie(espeffectifs,especes,col = gray(seq(0.4,1.0,length=5)),main="Répartition des espèces menacées")
simulations statistiques (effectifs croissants et fluctuations)
Simuler le lancer d’un dé : 100 fois, 1000 fois et enfin 10000 fois. Comparer les fluctuations.
># à taille constante
> t1
a
1 2 3 4 5 6
0.20 0.11 0.17 0.16 0.18 0.18
> a<-ceiling(6*runif(100)); t1<-table(a)/100 ; t1
a
1 2 3 4 5 6
0.20 0.14 0.17 0.14 0.17 0.18
> a<-ceiling(6*runif(100)); t2<-table(a)/100 ; t2
a
1 2 3 4 5 6
0.18 0.22 0.11 0.17 0.12 0.20
> a<-ceiling(6*runif(100)); t3<-table(a)/100 ; t3
a
1 2 3 4 5 6
0.13 0.15 0.20 0.17 0.22 0.13
> layout(matrix((1:3),1,3))
> barplot(t1,main="100 fois",col=gray(seq(0.4,1.0,length=6)),ylim=c(0,0.25)); barplot(t2,main="100 fois",col=gray(seq(0.4,1.0,length=6)),ylim=c(0,0.25)); barplot(t3,main="100 fois",col=gray(seq(0.4,1.0,length=6)),ylim=c(0,0.25))
># à taille croissante
> a<-ceiling(6*runif(100)); t1<-table(a)/100 ; t1
a
1 2 3 4 5 6
0.20 0.11 0.17 0.16 0.18 0.18
> a<-ceiling(6*runif(1000)); t2<-table(a)/1000 ; t2
a
1 2 3 4 5 6
0.160 0.160 0.175 0.159 0.162 0.184
> a<-ceiling(6*runif(10000)); t3<-table(a)/10000 ; t3
a
1 2 3 4 5 6
0.1673 0.1652 0.1657 0.1736 0.1632 0.1650
> layout(matrix((1:3),1,3))
> barplot(t1,main="100 fois",col=gray(seq(0.4,1.0,length=6)),ylim=c(0,0.2)); barplot(t2,main="1000 fois",col=gray(seq(0.4,1.0,length=6)),ylim=c(0,0.2)); barplot(t3,main="10000 fois",col=gray(seq(0.4,1.0,length=6)),ylim=c(0,0.2))
analyse de données obtenues par simulation
On lance un dé 400 fois et on relève la fréquence d’apparition du 5. On renouvelle cette expérience 100 fois. Relever la médiane des fréquences ainsi que l’étendue. Recommencer en répétant l’expérience 1000 fois.
># premiers essais avant de construire la fonction
> dqcl<-sample(1:6,400,T)
> dqcl
[1] 1 5 2 2 4 3 3 4 6 6 5 1 4 2 1 1 3 4 4 3 6 4 5 1 4 4 2 2 6 2 1 5 4 3 2 3 3 5 3 4 5 4 5
[44] 2 4 4 2 3 6 5 1 6 6 5 6 2 2 1 3 6 3 3 4 3 5 5 4 1 6 1 2 6 3 3 3 4 4 3 2 5 1 1 2 2 6 2
[87] 6 3 3 3 4 4 2 4 4 1 5 3 1 6 1 6 6 6 4 5 3 1 1 5 3 4 2 2 1 2 4 6 3 1 5 4 5 1 3 3 4 2 2
[130] 1 1 6 1 3 6 3 2 6 3 3 5 3 4 5 4 1 4 3 3 5 5 6 6 6 1 6 1 6 4 1 5 5 2 5 3 4 6 5 5 3 6 5
[173] 2 4 1 3 1 4 3 5 4 2 4 5 2 6 2 5 6 5 5 5 5 2 3 3 6 5 6 5 3 1 4 1 1 3 3 3 3 1 4 5 4 5 4
[216] 6 1 5 2 1 1 5 5 5 6 2 6 6 1 2 6 2 2 5 6 6 1 2 3 1 4 6 4 1 6 1 2 4 2 5 3 2 3 3 2 1 4 5
[259] 4 5 2 3 4 1 2 3 2 2 1 5 2 4 2 5 6 4 2 5 4 2 4 5 5 4 1 3 5 6 6 6 3 5 4 2 4 6 3 3 3 1 1
[302] 5 5 1 4 6 1 1 4 2 5 4 1 3 5 5 4 6 6 3 3 5 6 5 6 1 4 2 6 2 4 1 5 1 3 1 4 4 3 5 3 6 4 3
[345] 3 5 1 2 3 3 2 2 1 3 1 5 5 5 1 2 4 1 4 2 6 5 6 5 5 5 3 1 6 6 1 3 6 6 2 2 2 6 2 4 3 1 4
[388] 5 4 1 2 2 2 2 4 4 3 2 4 6
> c1<-dqcl[dqcl==5]
> c1
[1] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
[45] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
> f1<-length(c1)/400;f1
[1] 0.1775
># on passe à la fonction
> dechant<-function(taille){echant<-vector();for(i in 1:taille)
+ {dqcl<-sample(1:6,400,T);fi<-length(dqcl[dqcl==5])/400;echant<-c(echant,fi)}
+ }
> dd100<-dechant(100);max(dd100)-min(dd100);median(dd100)
[1] 0.07
[1] 0.16375
> dd1000<-dechant(1000);max(dd1000)-min(dd1000);median(dd1000)
[1] 0.1225
[1] 0.1675
bases, simplifications, substitution d’expression, transformations de formules
Écrire $\frac{2}{3}+7$ sous forme fractionnaire «à la française». Comparer $\frac{148}{149}$ et $\frac{149}{148}$.
(C7) 2/3+7;
23
(D7) --
3
(C25) is(148/149<149/148);
(D25) TRUE
(C26) is(1/sqrt(3)<5/9);
(D26) FALSE
Rappeler les identités remarquables.
(C1) (a+b)^2;
2
(D1) (b + a)
(C2) expand(%);
2 2
(D2) b + 2 a b + a
(C4) expand((a-b)^2);
2 2
(D4) b - 2 a b + a
(C5) factor(a^2-b^2);
(D5) - (b - a) (b + a)
On pose $a=\frac{x}{x^2+x}$ et $b=\frac{y^2+y}{y}$. Simplifier la somme $a+b$.
(C61) a:x/(x^2+x);
x
(D61) ------
2
x + x
(C62) b:(y^2+y)/y;
2
y + y
(D62) ------
y
(C63) ratsimp(a);
1
(D63) -----
x + 1
(C64) ratsimp(a+b);
(x + 1) y + x + 2
(D64) -----------------
x + 1
(C65) map(ratsimp,a+b);
1
(D65) y + ----- + 1
x + 1
On pose $a=3x$ et $b=-5$. Développer les identités remarquables $a^2-b^2$ et $a^2+2ab+b^2$.
(C49) a:3*x;
(D49) 3 x
(C50) b:-5;
(D50) - 5
(C51) a^2-b^2;
2
(D51) 9 x - 25
(C52) a^2+2*a*b+b^2;
2
(D52) 9 x - 30 x + 25
$$ v=\frac{1}{4}L(3f-4)$$
exprimer $f$ en fonction de $v$ et $l$.(C42) bain:v=1/4*L*(3*f-4);
(3 f - 4) L
(D42) v = -----------
4
(C46) solve(bain,f);
4 v + 4 L
(D46) [f = ---------]
3 L
$$T=2\pi \sqrt{\frac{1}{g}}$$
exprimer $g$ en fonction de $T$ et de $L$.(C47) pend:T=2*%pi*sqrt(1/g);
2 %PI
(D47) T = -------
SQRT(g)
(C48) solve(pend,g);
Is T positive or negative?
positive
;
2
4 %PI
(D48) [g = ------]
2
T
Résoudre le système $\left\lbrace\begin{array}{l} 3 x - y = 5\\ 3 y + 2 x = 7\\ \end{array}$ par substitution et détailler les étapes du calcul.
(C54) eq1:3*x-y=5;
(D54) 3 x - y = 5
(C55) eq2:2*x+3*y=7;
(D55) 3 y + 2 x = 7
(C56) solve(eq1,y);
(D56) [y = 3 x - 5]
# on veut récupérer le membre de droite (2) dans (1) l'expression précédente
(C57) subst(part(%,1,2),y,eq2);
(D57) 3 (3 x - 5) + 2 x = 7
(C58) solve(%,x);
(D58) [x = 2]
(C59) solve(eq1,y),x=2;
(D59) [y = 1]
développements, factorisations
Développer puis réduire l’expression :
$2(x+1)^2-2(1-4x)-4x^2$
(C22) D:2*(x+1)^2-2*(1-4*x)-4*x^2;
2 2
(D22) 2 (x + 1) - 4 x - 2 (1 - 4 x)
(C23) expand(D);
2
(D23) 12 x - 2 x
(C24) factor(D);
(D24) - 2 (x - 6) x
Résoudre les équations suivantes :
D'abord$$(x+5)(3-8x)=0$$
puis$$\frac{(x+5)}{3-8x)}=0$$
(C16) A:x+5;
(D16) x + 5
(C17) B:3-8*x;
(D17) 3 - 8 x
(C18) solve(A*B=0,x);
3
(D18) [x = -, x = - 5]
8
(C19) solve(A/B=0,x);
(D19) [x = - 5]
résolution de systèmes 2x2 d’équations
Résoudre le système d’équations :
$\left\lbrace\begin{array}{l} 2y+3x=5\\ x - 5 y = - 3\\ \end{array}$
(C1) e1:3*x+2*y=5;
(D1) 2 y + 3 x = 5
(C2) e2:x-5*y=-3;
(D2) x - 5 y = - 3
(C3) linsolve([e1,e2],[x,y]);
19 14
(D3) [x = --, y = --]
17 17
# une vérification ?
(C4) e1,part(%,1),part(%,2);
(D4) 5 = 5
(C5) e2,part(d3,1),part(d3,2);
(D5) - 3 = - 3
détermination de la primalité d’un nombre, décomposition en nombres premiers
(C1) primep(101);
(D1) TRUE
(C2) primep(102);
(D2) FALSE
(C3) factor(524);
2
(D3) 2 131
(C4) factor(648);
3 4
(D4) 2 3
représentation graphique à partir de l’expression
On demande de représenter les fonctions définies sur [-2 ; 2] par : $f(x)=x^2$, $g(x)=2x-1$ puis celles correspondants aux deux enchaînements possibles : $g$ d'abord puis $f$ ce qui donne $f\left(g(x)\right)$ et $f$ d'abord puis $g$ ce qui donne $g\left(f(x)\right)$.
Le fichier fonction.gnu :
# codage latin1
set encoding iso_8859_1
# affichage de décimaux avec séparateur virgule
set decimalsign ','
# le chemin des polices Utopia/Fourier... pour ceux qui l'ont, décommenter et adapter !
# set fontpath "/usr/local/teTeX/share/texmf.gwtex/fonts/type1/adobe/utopia!"
# terminal (=type de fichier de sortie) postscript avec police Utopia
set term postscript eps enhanced monochrom \
"Utopia-Regular" fontfile '/usr/local/teTeX/share/texmf.gwtex/fonts/type1/adobe/utopia/putr8a.pfb' 18
# le fichier de sortie, adapter le chemin
set output "/mon_chemin_a_moi/grafonc.eps"
# définition des fonctions
f(x)=x**2
g(x)=2*x-1
# premier tracé
# plot f(x),g(x),f(g(x)),g(f(x))
# les intervalles de la fenêtre
set xrange [-2:2] ; set yrange [-2:5]
# le titre
set title "Bibliothèque \nde fonctions \nde référence"
# les étiquettes des axes
set xlabel "abscisses" ; set ylabel "ordonnées"
# on veut les axes sur les zéros et en traits continus
set xzeroaxis 1 ; set yzeroaxis 1
# on veut les graduations sur les axes et non en extérieur
set xtics axis ; set ytics axis
# on affiche la grille
set grid
# on affiche les graduations d'abscisses de -1,5 à 1,5 de 1 en 1
set xtics -1.5,1,1.5
# on affiche les graduations d'ordonnées de 0 à 4 de 1 en 1
set ytics -1,1,4
# on veut deux intervalles mineurs entre graduations d'abscisses
set mxtics 2
# on veut que la grille se crée aussi sur les graduations mineures d'abscisses
set grid mxtics
# on positionne les légendes
set key left Left reverse box 3
# on positionne une étiquette (la numéro 1) A en (-0,95;1,1)
set label 1 "A" at -0.95,1.1 left
# on marque le point (avec un x) sur la courbe en redessinant les courbes
plot f(x),g(x),f(g(x)),g(f(x)),\
'-' notitle with points pt 2 ps 1.5
-1 1
e
permet un travail facile, il suffit après une modification de reécrire dans gnuplot :
> load "/mon_chemin_a_moi/fonction.gnu"
représentation graphique à partir de mesures
Un relevé sur terrain sec (circuit d’essai) a délivré les mesures suivantes :
Vitesse en km/h | 0 | 40 | 50 | 70 | 90 | 100 | 110 | 130 |
---|---|---|---|---|---|---|---|---|
Distance de freinage en m | 0 | 11 | 16 | 32 | 52 | 64 | 80 | 109 |
On demande de représenter la distance de freinage en fonction de la vitesse en joignant les points par des segments.
Voici le fichier des données :
# Distances de freinage
# Vitesse en km/h
# vitesse distance
0 0
40 11
50 16
70 32
90 52
100 64
110 80
130 109
Puis le fichier de dessin :
set term postscript eps enhanced monochrom \
"Utopia-Regular" fontfile '/usr/local/teTeX/share/texmf.gwtex/fonts/type1/adobe/utopia/putr8a.pfb' 18
set decimalsign ','
set xlabel "Vitesse en km/h"
set ylabel "Distance de freinage en m"
set data style linespoints
set linestyle=2
set title "Distance de freinage \nen fonction de la vitesse"
set output "/Users/jpg/Desktop/securit.eps"
# adapter à ton cas
plot "/mon_chemin_a_moi/securit.dat" notitle
Reste à exécuter ce dernier :
> load "/mon_chemin_a_moi/freinage.gnu"
2004-2024 © Mathazay - Tous droits réservés
Ce site est géré sous SPIP 3.0.17 [21515] et utilise le squelette EVA-Web 4.2
Dernière mise à jour : lundi 7 septembre 2015