Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

Jupyter notebook Lecons/Lecon7.ipynb

Views: 135
Kernel: SageMath 7.4

Bijections, ensembles dénombrables

Rappels

C'est quoi une bijection ?

Une fonction, par définition, fait correspondre un unique élément de l'ensemble d'arrivée à tout élément de l'ensemble de départ.

Une fonction ƒ:ABƒ : A → B est injective si et seulement si tout élément de son image ƒ(A)ƒ(A) est l'image par ƒƒ de précisement un élément de AA.

Exemple : A = {'a','b','c'} B = {1, 5} ƒ:ABƒ : A → B est définie par

f = {'a' : 1, 'b' : 5, 'c' : 1 }

Est-ce que ƒ:ABƒ : A → B est injective dans cet exemple?

NON, parce que 1B1\in B a deux antécédents, c'est à dire qu'il existe deux éléments de AA dont l'image par ƒƒ est 11. Plus précisement :

ƒ(ƒ('a')=ƒ() = ƒ('b')=1) = 1

alors que 'a' \neq 'b'.

Définition équivalente de fonction injective

ƒ:ABƒ : A → B est injective si, et seulement si,

x,yB:ƒ(x)=ƒ(y)x=y\forall x,y\in B: ƒ(x)=ƒ(y) \Rightarrow x=y

Déf. Une fonction est surjective si, et seulement si, tout élément de son ensemble d'arrivée a au moins un antécédent.

Une fonction ƒ:ABƒ : A → B est bijective si et seulement si elle est injective et surjective.

C'est quoi un ensemble dénombrable?

  • Définition sans beaucoup de symboles

Un ensemble est dénombrable s'il existe une bijection entre l'ensemble des nombres naturels et l'ensemble en question.

  • définition avec un peu plus de symboles

Un ensemble AA est dénombrable s'il existe une fonction bijective ƒ:NAƒ : ℕ → A.

  • définition avec beaucoup de symboles

AA dénombrable ƒ:NA⇔ ∃ ƒ : ℕ → A bijective.

La composition de fonctions, la fonction identité et les fonctions inversibles.

Pour mieux appréhender le concept d'ensemble dénombrable, nous avons besoin de connaître mieux les fonctions bijectives. Plus concrètement:

Une fonction ƒƒ est bijective si et seulement elle est inversible, c'est à dire s'il existe une fonction gg telle ff composée avec gg et gg composée avec ƒƒ donnent une fonction identité.

Là, il y a quelques mots que nous n'avons pas encore définis. Les définitions sont données à continuation.

Composition de fonctions

Etant données deux fonctions ƒ:ABƒ:A → B et g:CDg:C → D, où B⊆C, la composition gƒg∘ƒ est la fonction de AA dans DD définie par gƒ(a)=g(ƒ(a))g∘ƒ(a)=g(ƒ(a)) pour tout aAa∈A.

Dans Sage, on peut calculer la composition gƒg∘ƒ de deux fonctions ƒƒ et gg définies par des expressions symboliques g(y)g(y) et ƒ(x)ƒ(x) en substituant tout simplement f(x)f(x) à la place de yy.

Par exemple, si gg est définie par g(x)=x2+23xg(x)=x²+23x

g(x) = x^2+23*x

et hh est définie par h(x)=xh(x) = √x

h(x) = sqrt(x)

alors ƒ=ghƒ=g∘h est définie par ƒ(x)=x+23xƒ(x) = x+23√x, ce qu'on peut calculer avec la commande

g(h(x))

Essayez par vous-mêmes!

g(x) = x^2+23*x h(x) = sqrt(x) g(h(x))
x + 23*sqrt(x)

Quelle est la formule pour hgh∘g dans cet exemple?

h(g(x))
sqrt(x^2 + 23*x)

Donnez un exemple de plus de composition avec des expressions symboliques.

La fonction identité

Pour tout ensemble AA, la fonction identité sur AA est la fonction qui à tout aAa∈A fait correspondre aa lui-même.

La fonction identité sur AA est habituellement notée par idAid_A

Propriété Soit g:ABg:A→B alors gidA=g=idBgg∘id_A=g=id_B∘g.

Remarque: Comment montrer que deux fonctions sont égales? f:ABf:A\to B est la même fonction que g:CDg:C\to D si, et seulement si :

  • A=CA = C et B=DB = D

  • xA:f(x)=g(x)\forall x\in A : f(x) = g(x)

Preuve du fait que l'identité agit comme élément neutre pour la composition de fonctions (propriété gidA=g=idBgg∘id_A=g=id_B∘g énoncée ci-dessus)

Soit aAa\in A quelconque.

(gidA)(a)=g(idA(a))(g∘id_A)(a) = g ( id_A (a) ) par définition de la composition.

Or, idA(a)=aid_A(a) = a par définition de la fonction identité.

Il s'en suit que (gidA)(a)=g(a)(g∘id_A)(a) = g(a).

On conclut que gidA=gg∘id_A=g

La preuve de idBg=gid_B∘g = g est similaire.

La restriction d'une fonction

L'idée de la restriction des fonctions est que la restriction d'une fonction ƒƒ est une fonction définie sur un sous-ensemble du domaine de ƒƒ qui coïncide avec ƒƒ sur ce sosus-ensemble.

Les concepts de fonction identité et de composition de fonction nous permettent de préciser rapidement cette idée.

Soit ƒ:ABƒ:A→B et CAC⊆A non-vide, alors la restriction de ƒƒ à CC, notée ƒCƒ|_C, est la fonction ƒidCƒ∘id_C.

**Remarque : ** Etant données deux fonctions ƒ:ABƒ:A → B et g:CDg:C → D, telles que BCB ⊆ C, alors gƒ=gBƒg∘ƒ=g|_B∘ƒ.

La composition de fonctions dans le cas général

Comment composer des fonctions qui ne rentrent pas dans le cadre ci-dessus, c'est à dire qui n'ont pas l'ensemble d'arrivée de l'une qui est égale à l'ensemble de départ (domaine) de l'autre?

Considérons deux fonctions ƒ:ABƒ:A → B et g:CDg:C → D, sans aucune rélation à priori entre BB et CC. Par l'axiome de la réunion, il existe un ensemble EE qui contient BB et CC. Par l'axiome de compréhension, on peut considérer le sous-ensemble de tous les éléments de EE qui appartiennent aussi bien à BB qu'à CC, c'est à dire l'intersection de BB et CC.

Maintenant, si BB et CC sont disjoints, c'est-à-dire BC=B∩C=∅, on va convenir gƒg∘ƒ n'est pas définie.

Par contre, si BCB∩C≠∅ alors on va convenir que gƒ=gBCƒH:HDg∘ƒ = g|_{B∩C}∘ƒ|_H: H → DH={xAƒ(x)BC}H = \{x∈A|ƒ(x)\in B∩C\}.

Les fonctions injectives et l'inverse à gauche

Une inverse à gauche d'une fonction ƒ:ABƒ:A→B est une fonction g:BAg:B→A telle que (gƒ)(x)=x(g∘ƒ)(x) = x pour tout xAx∈A. Autrement dit, gƒ=idAg∘ƒ=id_A.

Proposition : Soit AA≠∅ et soit ƒ:ABƒ : A → B. La fonction ƒƒ est injective si et seulement si elle possède une inverse à gauche.

**Preuve : **

()

Comme AA\neq \emptyset, AA possède au moins un élément a0a₀.

Supposons que ƒƒ est injective. Considérons la fonction g:BAg:B → A définie par

  1. g(b)=a0g(b) = a₀ si bƒ(A)b∉ƒ(A)

  2. g(b)=ag(b) =a si bƒ(A)b∈ƒ(A) et aa est l'unique élément de AA tel que ƒ(a)=bƒ(a) = b.

Dans le deuxième cas, aa est unique car ƒƒ est injective. On a, par la définition même de gg que g(ƒ(a))=ag(ƒ(a))=a pour tout aAa∈A. Donc gƒ=idAg∘ƒ=id_A et gg est une inverse à gauche de ff.

() Supposons que g:BAg : B → A est une inverse à gauche de ƒƒ. Considérons xAx∈A, yAy∈A tels que ƒ(x)=ƒ(y)ƒ(x)=ƒ(y). Alors : x=idA(x)=(gƒ)(x)=g(ƒ(x))=g(ƒ(y))=(gƒ)(y)=idA(y)=y.x=id_A(x)=(g∘ƒ)(x)=g(ƒ(x))=g(ƒ(y))=(g∘ƒ)(y)=id_A(y)=y. On peut donc conclure que ff est injective.

Les fonctions surjectives et l'inverse à droite

Une inverse à droite d'une fonction ƒ:ABƒ:A→B est une fonction g:BAg:B→A telle que (ƒg)(x)=x(ƒ∘g)(x) = x pour tout xBx∈B. Autrement dit, ƒg=idBƒ∘g=id_B.

Proposition : Soit AA≠∅ et soit ƒ:ABƒ : A → B. La fonction ƒƒ est surjective si et seulement si elle possède une inverse à droite.

**Preuve : **

() Supposons que ƒƒ est surjective. Par définition, on a alors que bB:aAƒ(a)=b∀b∈B:∃a∈A|ƒ(a)=b

Dit autrement : bB:{aAƒ(a)=b}∀b∈B:\{a∈A|ƒ(a)=b\}≠∅

Par l'axiome du choix, nous pouvons trouver une fonction g:BAg:B → A tel que pour tout bBb∈B on a que g(b){aAƒ(a)=b}g(b)∈\{a∈A|ƒ(a)=b\}.

Par la définition même de bb on aura donc que : bB:ƒ(g(b))=b∀b∈B:ƒ(g(b))=b

D'où gg est une inverse à droite de ƒƒ.

() Supposons que g:BAg : B → A est une inverse à droite de ƒƒ. Considérons yBy∈B, et x=g(y)Ax=g(y)∈A, alors ƒ(x)=ƒ(g(y))=(ƒg)(y)=idA(y)=yƒ(x)=ƒ(g(y))=(ƒ∘g)(y)=id_A(y)=y On peut donc conclure que ff est surjective.

Les fonctions bijectives et l'inverse

L'inverse d'une fonction ƒ:ABƒ:A→B est une fonction g:BAg:B→A telle que gƒ=idAg∘ƒ=id_A et ƒg=idBƒ∘g=id_B. Autrement dit, gg est une inverse à droite et une inverse à gauche.

**Proposition : ** Soit A≠∅ et ƒ:ABƒ : A → B une fonction. Si l'inverse de ƒƒ existe alors elle est unique.

Preuve : Supposons que g:BAg : B → A et h:BAh : B → A sont inverses de ƒƒ. Soit bBb∈B quelconque. Alors : g(b)=g(idB(b))=g((ƒh)(b))=g(ƒ(h(b)))=(gƒ)(h(b))=idA(h(b))=h(b)g(b) = g(id_B(b))=g((ƒ∘h)(b))=g(ƒ(h(b)))=(g∘ƒ)(h(b))=id_A(h(b))=h(b) On peut donc conclure que g=hg=h. Il s'en suit qe l'inverse, quand elle existe, est unique.

On dit qu'une fonction est inversible si son inverse existe.

Proposition : Soit AA≠∅ et soit ƒ:ABƒ : A → B. La fonction ƒƒ est bijective si et seulement si elle est inversible.

**Preuve : ** Suit facilement des propositions précédentes sur les inverses à droite ou à gauche. ∎

Propriétés élémentaires des ensembles dénombrables.

Utilisons maintenant tout cela pour les ensembles dénombrables.

**Proposition : ** Soit AA un ensemble infini. Les affirmations suivantes sont équivalentes

  1. AA est dénombrable

  2. Il existe une fonction surjective ƒ:NAƒ : ℕ → A.

  3. Il existe une fonction injective ƒ:ANƒ : A → ℕ.

Preuve

(121⇒2) AA dénombrableƒ:NA⇒ ∃ ƒ : ℕ → A bijective ƒƒ bijectiveƒ⇒ ƒ surjective

(232⇒3) ƒƒ surjective ⇒ ƒƒ possède inverse à droite g:ANg : A → ℕ gg est l'inverse à droite de ƒƒƒƒ est l'inverse à gauche de gg g:ANg : A → ℕ possède inverse à gauche ⇒ gg est injective

(313⇒1) Soit g:ANg : A → ℕ injective. On définit par récurrence une fonction ƒ:NAƒ : ℕ → A.

  1. ƒ(0)ƒ(0) est l'unique aAa∈A tel que g(a)g(a) est le plus petit nombre naturel dans g(A)g(A).

  2. Pour tout n0n≥0, ƒ(n+1)ƒ(n+1) est l'unique aAa∈A tel que g(a)g(a) est le plus petit nombre naturel dans g(A)g(A){ƒ(k)kn}\{ƒ(k)|k≤n\}.

À chaque étape, aa est unique car gg est injective. On peut itérer ce processus à l'infini car AA a plus qu'un nombre fini d'éléments.

Par construction, la fonction ƒƒ est une bijection. (La preuve complète se fait par récurrence).

Corollaire :

  1. Tout ensemble infini contenu dans un ensemble dénombrable est dénombrable.

  2. Tout ensemble infini qui contient un ensemble non-dénombrable est non-dénombrable.

**Preuve de 1. ** (2. découle de 1. ) Soient AA et BB des ensembles infinis tels que ABA⊆B. Comme BB est infini, il existe une fonction injective ƒ:BNƒ : B → ℕ. Comme AA est inclus dans BB, on peut restreindre ƒƒ à AA pour obtenir la fonction ƒA=ƒidAƒ|_A=ƒ∘id_A qui sera encore une fonction injective. Par conséquent AA est dénombrable aussi.∎

Exemples :

  • N est dénombrable, il suffit de prendre la fonction identité.

  • Tout sous-ensemble de N\mathbb N est dénombrable :

    • L'ensemble des nombres pairs (positifs) {0,2,4,}\{0,2,4,\dots\}

    • L'ensemble des nombres premiers (positifs) {1,2,3,5,7,11,}\{1,2,3,5,7,11,\dots\}

    • L'ensemble de tous les carrés de nombres entiers. {0,1,4,9,}\{0,1,4,9,\dots\}

  • ℤ est dénombrable, il suffit de considérer la fonction ƒ:NZ ƒ : ℕ → ℤ définie par ƒ(n)=(1)nn/2ƒ(n)=(−1)ⁿ⌈n/2⌉.

xR\forall x\in\mathbb R : x⌈x⌉ denote le plus petit nombre entier qui est plus grand que xx.

Dans Sage cette fonction est calculée avec la méthode ceil.

f(x) = (-1)^x*ceil(x/2)
for i in range(10): print f(i)
0 -1 1 -2 2 -3 3 -4 4 -5
x,y = var('x','y') f(x,y) = ((x+y)^2+3*x+y)/2

Par le théorème de Fueter et Polya cité dans le site web signalé, ff défini une bijection entre ℕ×ℕ et ℕ.

Trouver avec une boucle les nombres naturels mm et nn tels que f(m,n)=101f(m,n) = 101

m = 0 n = 0 while f(m,n)!= 101: if( m == 100): m = 0 n = n + 1 else: m = m + 1 (m,n)
(10, 3)

Justification de la borne m=100m=100

Sage n'arrive pas à le montrer automatiquement "out-of-the-box"

assume(f(x,y)==101) bool(x<=100)
False

On peut remarquer que

m,nN:f(m,n)=12((m+n)2+3m+n)32m\forall m,n\in \mathbb N : f(m,n) = \frac12((m+n)^2+3m+n)\ge \frac32 m
assume(x>0) assume(y>0) bool(f(x,y)>=3*x/2)
True

On peut en déduire que si f(m,n)=101f(m,n) = 101, alors 10132m101\ge \frac32 m donc m23101<23102=68m \le \frac23 \cdot 101 <\frac23 \cdot 102 = 68.

Il s'en suit que pour chercher m,nm,n tels que f(m,n)=101f(m,n)=101 on peut s'arrêter à m=68m=68, ce n'est pas la peine de chercher plus loin.

En particulier, si on s'arrête à m=100m= 100, c'est bon aussi, puisque 100>68100>68.

En généralisant ce raisonnement, réutilisez la boucle while de toute à l'heure pour coder la fonction informatique qui calcule la fonction inverse de ff.

C'est à dire que pour chaque kNk\in\mathbb N, votre fonction doit calculer les uniques m,nNm,n\in\mathbb N tels que f(m,n)=kf(m,n) = k

Solution :

def inverse_de_f(k): m = 0 n = 0 while f(m,n)!=k: if (2*k >= 3*m): m = 0 n = n + 1 else: m = m + 1 return (m,n)

Pour être sûrs que ça marche bien, écrivons aussi un test de vérification

def test_inverse_de_f(k): c = inverse_de_f(k) print 'l\'inverse de f en ',k,' est ',c,' car f',c,' = ',f(c[0],c[1])

Appliquons ce test à quelques nombres

test_inverse_de_f(105)
l'inverse de f en 105 est (0, 14) car f (0, 14) = 105
test_inverse_de_f(215)