Fonctions affines

Cette page regroupe différents exercices simples sur les fonctions affines. On rappelle qu'une fonction affine est une fonction définie pour tout nombre réel \(x\) par :

\[f(x) = ax + b\]

Les exercices sont tous indépendants et peuvent être traités dans un ordre quelconque.

assert ?

Le mot clé assert est utilisé en Python afin de vérifier que des propositions sont vraies.

Ainsi, l'instruction assert 3 + 5*7 == 38 permet de vérifier que l'expression 3 + 5*7 est bien évaluée à 38.

Si c'est le cas, le programme continue de se dérouler normalement. Dans le cas contraire, le programme est interrompu et une erreur est signalée.

La vidéo ne s'affiche pas... ?

Il peut arriver que les vidéos ne s'affichent pas sur des navigateurs basés sur Chrome, ou si un ad-blocker est activé sur le navaigateur. Essayer avec un autre navigateur si vous êtes dans ce cas (FireFox, typiquement), ou désactivez l'ad-blocker.

Comparaison de nombres flottants

Lorsqu'on écrit a = x ou x est un nombre réel, la valeur de a enregistrée en machine est une valeur approchée de x (quelques fois la valeur exacte). Cette valeur approchée a la forme d'un nombre flottant (le type float en Python). En conséquence, alors que des calculs et des comparaisons peuvent être effectués de manière exacte sur des réels, ils ne le sont que de manière approchée sur leur représentation en machine. On peut donc obtenir par exemple, avec a = x et b = y, l'expression a == b évaluée à True alors que x et y sont différents.

C'est pourquoi les tests ne vérifient pas l'égalité des résultats et des valeurs attendues mais leur proximité.

Ainsi, on peut vérifier que \(\sqrt{2} \approx 1,414214\) en faisantassert abs(1.414214 - sqrt(2)) < 1e-6. Ce test vérifie que les deux valeurs sont proches à \(10^{-6}\) près.

Définir la fonction

Le code contenu dans l'éditeur ci-dessous définit la fonction \(f:x\mapsto 5x-9\).

Ajouter en dessous le code définissant la fonction \(g:x\mapsto -3x+7\).

Exemples
>>> g(0)  # quelle est l'image de 0 par g: x ↦ -3x + 7 ?
7
>>> g(10)  # quelle est l'image de 10 par g: x ↦ -3x  + 7 ?
-23

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013s3obcdufvg/ly 7napSr1-me(P2=+:twkih*x)050g0y0F0r0I0m0b0o0f0m0r0b0b0C010F0I0s010406050b0h0x0x0r0u0n040t0d0m0h0%0d0q050l0.0:0=0@0,0s041017051a0l1a1c170,0g0I0j0V0X0Z0#0J0I0k0J0m1q0J0F0*050Q0e0m0y1l0Y0!011p1r1t1r0F1z1B1x0F0e0d0g0@1y0u180F0J0V0`0b0s0r0q0#0B011D1n010i0S0y0q0r0x0y1x1#1%1,1F1/1B1=1@0*0a0o0A0u0d0s0d0b0I0}0q0o0O1Z0u0u0y0f2c101`0q180l1X2p0F1V1U1W0g1|0#1t0q1;291x1i1k0W1E2z0I2B0q1R1j1x0s2i182n2p2T0-1$2d2H1-2M0u0;0m0*0v2m2X0+2W1{2Z1F2#2%0*0B2+1%2p2Q0y2p2F2s0g2w2y010f1R1^182 1b2R2.2o2_3d350O2S2X330H0*0O0i3e3i2/1m1F0G0*0o3p3c330q0i0*0k3x2n330)040z3E3j2:0#0q0*0L3K3r2I013H0M0E3p060o3!3w3F3M013l042i0F0h0u0 112,3$3L3s0#0d0*0w3R2Y3^010x0I0*0c3p3?3S1-3`040K453y3(3O043Q3;2`463~3T490D4c3%3 410*0p3Y103g2}193b0l392q31102t2s1Q1S2s0r1A4y4B1j2-4B0P0R0T04.
Sens de variations

Écrire la fonction variations qui prend en paramètres le coefficient directeur a et l'ordonnée à l'origine b d'une fonction affine \(f\) et renvoie :

  • 'strictement croissante' si la fonction \(f\) est strictement croissante ;
  • 'constante' si la fonction \(f\) est constante ;
  • 'strictement décroissante' si la fonction \(f\) est strictement décroissante.

On garantit que les paramètres a et b sont des entiers.

Exemples
>>> variations(4, -8)  # comment varie f: x ↦ 4x - 8 ?
'strictement croissante'
>>> variations(-2, 15)  # comment varie g: x ↦ -2x + 15 ?
'strictement décroissante'

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013s3o;bcdufvg/0ly n7apSr1me,(P2=4:twki5h)é6050h0z0H0t0K0o0b0q0g0o0t0b0b0E010H0K0u010406050b0i0y0y0t0w0p040v0d0o0i0*0d0r050m0;0?0^0`0/0u04131a051d0m1d1f1a0/0h0K0k0Y0!0$0(0M0K0l0M0o1t0M0H0-050T0f0o0z1o0#0%011s1u1w1u0H1C1E1A0H0f0d0h0`1B0w1b0H0M0Y0}0b0u0t0r0(0D011G1q010j0V0z0r0t0y0z1A1(1*1/1I1=1E1^1`0-0a0q0C0w0d0u0d0b0K100r0q0R1$0w0w0z0g2f131}0r1b0m1!2s0H1Y1X1Z0h1 0(1w0r1@2c1A1l1n0Z1H2C0K2E0r1U1m1A0u2l1b2q2s2W0:1)2g2K1:2P0w0@0o0-0x2p2!0.2Z1~2$1I2(2*0-0D2.1*2:2q2B012^0t2+040c2|2r0/2 2?0(32340F372~2!303d0-0L3g393i3b310d2)330-0P3n2;2#1p2@3s2_040s3g1c2U132I2v0h2z300g1U1{1b3K1e3I2Y142/053P0R2V3p3A0(0J0-0R0j3G3a3(010I0-0q3.3%2L310j0-0k0^0K0t2f0b3^2=3:0,040B443z3`0r0-0t4a30470A3g3@3/4c0-0f4g3q470N0G3n0q4w4l3_1:3*040K3-3X2}4y454n044f4F2r4H4b1:0d0-020l0H0e4k3y300y0K0-0n4q460-4u4M0.4x4.4O304B2l0H0i0w124,4:3q0b1-04010b2w0K2n0z1`0r0H0Y290K0$1*0H1{4v4x4Y3q4B0z1w4E2W4|3:4d4K4X4m4Q0-0E0E5u4z1I4!4$4(3`474+2W064/5i5v1I4=0S4^4`5p5j3:4~0-013P0r525e5g4,5K5M5B3)0-5m0b0z5F1:5H5h5L5U3`5P4@4_5A4I1:5W50520w545f57590h0O0g5b5d585%5J133!0z2s2T6j3J1m3L2v2x2t1T1V2v0t1D6m0m3K0/6z0S0U0W04.
Antécédent de \(0\)

On considère dans cette question des fonctions affines de coefficient directeur non nul.

Écrire la fonction antecedent_zero qui prend en paramètres le coefficient directeur a et l'ordonnée à l'origine b d'une fonction affine et renvoie la valeur de l'antécédent de \(0\).

Exemples
>>> antecedent_zero(4, -8)  # quel est l'antécédent de 0 par f: x ↦ 4x - 8 ?
2.0
>>> antecedent_zero(-2, 15)  # quel est l'antécédent de 0 par g: x ↦ -2x + 15 ?
7.5

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013so_bcdufvg/ly napSr1-me,(P2=:twzkih)050g0x0E0q0I0m0b0o0f0m0q0b0b0C010E0I0r010406050b0h0w0w0q0t0n040s0c0m0h0#0c0p050l0,0.0:0=0*0r040~1505180l181a150*0g0I0j0T0V0X0Z0J0I0k0J0m1o0J0E0(050O0e0m0x1j0W0Y011n1p1r1p0E1x1z1v0E0e0c0g0=1w0t160E0J0T0^0b0r0q0p0Z0B011B1l010i0Q0x0p0q0w0x1v1Z1#1*1D1-1z1:1=0(0a0o0A0t0c0r0c0b0I0{0p0o0M1X0t0t0x0f2a0~1^0p160l1V2n0E1T1S1U0g1`0Z1r0p1/271v1g1i0U1C2x0I2z0p1P1h1v0r2g162l2n2R0+1!2b2F1+2K0t0/0m0(0u2k2V0)2U1_2X1D2Z2#0(0B2)1#2n2O0x2n2D2q0g2u2w010f1P1?162}192P2,2m2@3b330M2Q2V310H0(0M0i3c3g2-1k1D0F0(0o3n3a310p0i0(1#0E2h0x0M0p0E0d0G0x243v2l310%040z3M3h2.0Z0p3A3S3p2G013P0y3n3u3N3U013W040e3Y2W3q0Z3P0K0D3n060o3|3)3T3=013j042g0E0h0t0}0 2*3~3Z1+0c0(0v3:3x0(3/492^4b3;3!4e040l3(3w3+3-0q3`0~3e2{17390l372o2 0~2r2q1O1Q2q0q1y4B4E1h2+4E0N0P0R04.
Antécédent de \(y\)

On considère dans cette question des fonctions affines de coefficient directeur non nul.

Écrire la fonction antecedent qui prend en paramètres le coefficient directeur a et l'ordonnée à l'origine b d'une fonction affine \(f\) ainsi qu'un nombre y et renvoie la valeur de l'antécédent de \(y\) par \(f\).

Exemples
>>> antecedent(4, -8, 5)  # quel est l'antécédent de 5 par f: x ↦ 4x - 8 ?
3.25
>>> antecedent(-2, 15, 5)  # quel est l'antécédent de 5 par g: x ↦ -2x + 15 ?
5.0

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013sobcdufvg/ly napSr1-me,(P2=:twkih)050f0w0D0p0G0l0b0n0e0l0p0b0b0B010D0G0q010406050b0g0v0v0p0s0m040r0c0l0g0Z0c0o050k0*0,0.0:0(0q040|1305160k1618130(0f0G0i0R0T0V0X0H0G0j0H0l1m0H0D0$050M0d0l0w1h0U0W011l1n1p1n0D1v1x1t0D0d0c0f0:1u0s140D0H0R0?0b0q0p0o0X0A011z1j010h0O0w0o0p0v0w1t1X1Z1(1B1+1x1.1:0$0a0n0z0s0c0q0c0b0G0_0o0n0K1V0s0s0w0e280|1?0o140k1T2l0D1R1Q1S0f1^0X1p0o1-251t1e1g0S1A2v0G2x0o1N1f1t0q2e142j2l2P0)1Y292D1)2I0s0-0l0$0t2i2T0%2S1@2V1B2X2Z0$0A2%1Z2l2M0w2l2B2o0f2s2u010e1N1;142{172N2*2k2=39310K2O2T2 0F0$0K0h3a3e2+1i1B0E0$0n3l382 0o0h0$1Z0D2f0w0K0o0D3t2j2 0#040y3G3f2,0X0o3y3M3n2E013J0x3l3s3H3O013Q040d3S2U3o0X3W3Y3u3#3%0m3*3I0$0I0C3l060n3~3Z3N3,013h042e0D0g0s0{0}2(403T1)3J3L4b2?3:423=3/3!420c0$0u4n413U3%3)4i394o3U3J0I4t4e1B4q040k4E3+4v3R4y2)0k3c2_15370k352m2}0|2p2o1M1O2o0p1w4S4V1f4P0K0M0O0b04.
Coefficient directeur

On considère dans cette question une fonction affine dont la représentation graphique \(C_f\) passe par deux points \(A\,(x_A\,;\,y_A)\) et \(B\,(x_B\,;\,y_B)\).

Écrire la fonction coefficient_directeur qui prend en paramètres les coordonnées x_A, y_A, x_B et y_B des points \(A\) et \(B\) et renvoie le coefficient directeur de \(f\).

On garantit que les abscisses \(x_A\) et \(x_B\) des deux points sont différentes.

Exemples
>>> coefficient_directeur(1, 4, 9, 10)  # C_f passe par A (1 ; 4) et B (9 ; 10)
0.75
>>> coefficient_directeur(3, 15, -2, 15)  # C_f passe par A (3 ; 15) et B (-2 ; 15)
0.0

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013s3o_bcdufvg/ly nABapSr1-me,(P2=4:twkihx)050h0A0I0t0L0n0b0p0g0n0t0b0b0F010I0L0u010406050b0i0z0z0t0w0o040v0d0n0i0)0d0q050m0:0=0@0_0.0u041219051c0m1c1e190.0h0L0k0X0Z0#0%0M0L0l0M0n1s0M0I0,050S0f0n0A1n0!0$011r1t1v1t0I1B1D1z0I0f0d0h0_1A0w1a0I0M0X0|0b0u0t0q0%0E011F1p010j0U0A0q0t0z0A1z1%1)1.1H1;1D1@1_0,0a0p0D0w0d0u0d0b0L0 0q0p0Q1#0w0w0A0g2e121|0q1a0m1Z2r0I1X1W1Y0h1~0%1v0q1?2b1z1k1m0Y1G2B0L2D0q1T1l1z0u2k1a2p2r2V0/1(2f2J1/2O0w0?0n0,0x2o2Z0-2Y1}2#1H2%2)0,0E2-1)2/2p2A012@0t2*040c2{2q0.2~2=0%31330G362r2S0A2r2H2u0h2y2 0g1T1`1a3k1d2T2:2q3f053p0Q2U2Z2 0K0,0Q0j3y391o1H0J0,0p3J3D3a300j0,3p0A0j1;0g0L1?0I0e1k2k2m0A0i0w3Q2;3L0%0+040C3/2!3;300,0N0e0r3_2 3?0B3f3P3K2K3|040o3 413S43453w2 0q3}0e0s4d3{4f132.463R3{4j4a4l4n483?0O0H3f060p4F4s3:484v0Q0n0S0e0o4g471/0d0,0F4Q4t4J0,4b4m4q2|4H3`484T040y4W4I2$4Z4c4$374G4(4i3G0A4M0t0e0N4.4)4S4U514`043~4#2V4_3S4+4-4?045b4u4k405f4E4G4h3S3F042k0I3-115f5h4Y044L4N4P5w5o3{4+0m553S4K4|4N505l123A3i1b3v0m3t2s3m122v2u1S1U2u0t1C5R5U1l2/5U0R0T0V04.
Ordonnée à l'origine

On considère dans cette question une fonction affine dont la représentation graphique \(C_f\) passe par deux points \(A\,(x_A\,;\,y_A)\) et \(B\,(x_B\,;\,y_B)\).

Écrire la fonction ordonnee_origine qui prend en paramètres les coordonnées x_A, y_A, x_B et y_B des points \(A\) et \(B\) et renvoie l'ordonnée à l'origine de \(f\).

On garantit que les abscisses \(x_A\) et \(x_B\) des deux points sont différentes.

La fonction coefficient_directeur de la question précédente est déjà chargée dans l'éditeur. Vous pouvez l'utiliser.

Exemples
>>> ordonnee_origine(1, 4, 9, 10)  # C_f passe par A (1 ; 4) et B (9 ; 10)
3.25
>>> ordonnee_origine(3, 15, -2, 15)  # C_f passe par A (3 ; 15) et B (-2 ; 15)
15.0

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013s3o_bcdufvg/ly nABapSr1-me,(P2=:twkih*x)050h0A0H0t0K0n0b0p0g0n0t0b0b0F010H0K0u010406050b0i0z0z0t0w0o040v0d0n0i0)0d0q050m0:0=0@0_0.0u041219051c0m1c1e190.0h0K0k0X0Z0#0%0L0K0l0L0n1s0L0H0,050S0f0n0A1n0!0$011r1t1v1t0H1B1D1z0H0f0d0h0_1A0w1a0H0L0X0|0b0u0t0q0%0E011F1p010j0U0A0q0t0z0A1z1%1)1.1H1;1D1@1_0,0a0p0D0w0d0u0d0b0K0 0q0p0Q1#0w0w0A0g2e121|0q1a0m1Z2r0H1X1W1Y0h1~0%1v0q1?2b1z1k1m0Y1G2B0K2D0q1T1l1z0u2k1a2p2r2V0/1(2f2J1/2O0w0?0n0,0x2o2Z0-2Y1}2#1H2%2)0,0E2-1)2/2p2A012@0t2*040c2{2q1b2T122H2u0h2y2 0g1T1`1a3b1d392X132.053g0Q2U2Z2 0J0,0Q0j363t2;1o1H0I0,0p3A2:2!3D0%0q0j0,0d0w0h102D0A0e3Q1s2M0A3I2~2=0%0+040C3#3u3%300,0N0e0r3,3C2K013)0B3A3H3$3L3/040o3=3@3K3_3{3}3J2 0q3:0e0s452 483o2|3~3-404c424e4g3.3)0O0G3A060p4y4l3^2$0,0t493 3_0d0,0F4F4m3_4o3g0A0j1;0g0K1?0H0e1k2k2m0A0i0w4r403)3+4j374G4C043;3?4,3B461/4i2V4A4^2?0,434=2X4.1H4`2.4|4b4d4f4?4a4s0,3|4?573.4o435a524M4_0,0O4w4z5h403w042k0H4$115g5c4n4 445B530%4I040y4L4B4~4:5F4{5C4H0,0M5M4}3M4D4w123r0A2r2S5%3a1l3c2u2w2s1S1U2u0t1C5*0m3b0.5`0R0T0V04.