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'expression 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.

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)
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 : 5/5

.128013(lbsSetxph-rdf1uma"ov+7g/3=in k:)y *2Pc030h0a0b0m0w06080D0H060m08080v0n0b0w0d0n020y03080k0l0l0m0g0C02090o060k0Y0o0x030t0(0*0,0.0%0d0203110`140t110%0h0w0p0Q0S0U0W0e0w0s0e061i0e0b0#030L07060a1d0T0V0n1h1j1l1j0b1r1t1p0b0g120b0e0Q0;080d0m0x0W0F0n1v1f0n0i0N0a0x0m0l0a1p1O1Q1V1x1Y1t1#1%0#040D0G0g0o0d0o080w0@0x0D0J1M0g0g0a0H1~0`1)0x120t1K2b1H1J1I1q0h1+0W1l0x1!1{1p1a1c0R1w2l0w2n0x0o2r1p0d2412292b2F0'1P1 2t1W2y0g0+060#0j282J0$2I1*2L1x2N2P0#0F2T1Q2b2C0a2b2r2e0h1J2j2Y0W0H2z1'122-132D2W2a2'2 2@0J2E2J2k0n0z0#0J0i30020D2~360x0i0#0s3c3f2=0n0!02053l293g0#0c3s353n3p0B0A3c0y0D3F3e3t3n3802240b0k0g0_0{2U3H3y1e1x0o0#0f3x2X3V0W0l0w0#0u3c3T3#2u0n3X020E3+3m3$0n0x3v3?3I3^3:0q3|3U3.3'0#0r3D0`322+152}0t2{2c2/0`2f4h0m1s4a4d1b2V4d0K0M0O02.
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)
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 : 5/5

.128013(lbsSetph4rd;5f10uma"ov7g,/3=in 6k:é)y q2Pc030g0a0b0o0y06080H0L060o08080x0p0b0y0c0p020A03080m0n0n0o0f0G02090q060m0$0q0z030v0,0.0:0=0*0c0203150~180v150*0g0y0r0U0W0Y0!0d0y0t0d061m0d0b0(030P07060a1h0X0Z0p1l1n1p1n0b1v1x1t0b0f160b0d0U0^080c0o0z0!0J0p1z1j0p0j0R0a0z0o0n0a1t1S1U1Z1B1$1x1(1*0(040H0K0f0q0c0q080y0{0z0H0N1Q0f0f0a0L220~1-0z160v1O2f1L1N1M1u0g1/0!1p0z1'1 1t1e1g0V1A2p0y2r0z0q2v1t0c28162d2f2J0+1T232x1!2C0f0/060(0k2c2N0)2M1.2P1B2R2T0(0J2X1U2Z2d2o0p2'0o2U020w2+2e0*2.2$0!2;2?0e2_2-2N2/2 0(0i322{342}2:0q2S2=0(0B392!2O1i2%3e2(020s32192H0~2v2i0g1N2n3c0L2D1+163w173u2L0 2Y033C0N2I3b3m0!0C0(0N0j320H3k350j0(0r0:0y0o22083s2|3R0p0'02053,3Q2y2:0(0o3?2#3.3:0u3X3Z3c0z0(073|3l3^3:0F0D390H4e3Y3-3^3T020y3W3K2,4g3@2Q3`414h1!0q0(000t0b0h4t4q1B0n0y0(0l472/3:4c4n2`4f4P4p3}4i0(280b0m0f0}4N024R481!081X02000I0m0q4A081L0y2a0a1*0z0b0U1|0y0Y1U0b0a4+4-4A4d4f423.4j0a1p4m2J4$354s4!5e3c4w020x0x4C4S1!4F4H4J3c4L554Q5i584U0O4X4Z5d573^4(4x4,4.0h3C0z4:4 515J544!0A4P5F1!590S0a5t3~0(4M2J5U5x5y4T024V5C5o4%1B5H4*5R0h4:0f4=504^4`0g0E0L4|4~4_5Q534B5T0~3N0a2f2G6c3v1f3x2i2l2g0o1w6f0v3w0*6p0O0Q0S02.
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)
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 : 5/5

.128013(lbsSet-phrdf1zuma"ovg,_/=in k:)y 2Pc030g0a0b0m0v06080C0F060m08080u0n0b0v0d0n020x03080k0l0l0m0f0B02090o060k0W0o0w030t0%0(0*0,0#0d02030 0^120t0 0#0g0v0p0O0Q0S0U0e0v0q0e061g0e0b0Z030J07060a1b0R0T0n1f1h1j1h0b1p1r1n0b0f100b0e0O0/080d0m0w0U0D0n1t1d0n0h0L0a0w0m0l0a1n1M1O1T1v1W1r1Z1#0Z040C0E0f0o0d0o080v0=0w0C0H1K0f0f0a0F1|0^1'0w100t1I291F1H1G1o0g1)0U1j0w1Y1_1n181a0P1u2j0v2l0w0o2p1n0d221027292D0$1N1}2r1U2w0f0)060Z0i262H0!2G1(2J1v2L2N0Z0D2R1O292A0a292p2c0g1H2h2W0U0F2x1$102+112B2U282$2}2=0H2C2H2i0n0y0Z0H0h2~020C2|340w0h0Z1O0b230a0H0w0b0s0j0a1?3a3d2:0n0Y02053t273e3h3A333v3x0r3a3c3B3v0w0Z073E2V1c1v3x0A0z3a0x0C3Z3K3F3S0U3602220b0k0f0@0_2S3#3R2s0n0o0Z0c3Q2I3%0n3N023P3/2%3;3|3?3^020t3J3u3}3 0m3X0^302)132{0t2_2a2-0^2d4p0m1q4i4l192T4l0I0K0M02.
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)
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 : 5/5

.128013(lbsSet-phrdf1uma"ovg,/=in k:)y 2Pc030g0a0b0l0t06080A0D060l08080s0m0b0t0d0m020v03080j0k0k0l0f0z02090n060j0U0n0u030r0#0%0(0*0Z0d02030}0?100r0}0Z0g0t0o0M0O0Q0S0e0t0p0e061e0e0b0X030H07060a190P0R0m1d1f1h1f0b1n1p1l0b0f0~0b0e0M0-080d0l0u0S0B0m1r1b0m0h0J0a0u0l0k0a1l1K1M1R1t1U1p1X1Z0X040A0C0f0n0d0n080t0:0u0A0F1I0f0f0a0D1`0?1$0u0~0r1G271D1F1E1m0g1'0S1h0u1W1@1l16180N1s2h0t2j0u0n2n1l0d200~25272B0!1L1{2p1S2u0f0'060X0i242F0Y2E1%2H1t2J2L0X0B2P1M272y0a272n2a0g1F2f2U0S0D2v1!0~2)0 2z2S262!2{2:0F2A2F2g0m0w0X0F0h2|020A2`320u0h0X1M0b210a0F0u0b383b2.0m0W02053n253c3f3u313p3r0q383a3v3p0u0X073y2T1a1t3B3D3o3M0S3H020z3K2G3R3q0X0y0x380v0A3(3E3z3Y3402200b0j0f0=0@2Q3*3L2q3Z3s3W3w3U3P3F3Y0n0X0c413+3{3T3J3@2#3Q3{3r0y473`1S44020r4i3X493x4c260Z0r2~2'112_0r2@282+0?2b4E0l1o4x4A172R4A0G0I0K02.
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)
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 : 5/5

.128013(lbsSetxph4rdA-f1uma"ovg,_/B3=in k:)y 2Pc030h0a0b0o0z06080G0J060o08080y0p0b0z0d0p020B03080m0n0n0o0g0F02090q060m0!0q0A030v0*0,0.0:0(0d0203130|160v130(0h0z0r0S0U0W0Y0e0z0s0e061k0e0b0%030N07060a1f0V0X0p1j1l1n1l0b1t1v1r0b0g140b0e0S0?080d0o0A0Y0H0p1x1h0p0k0P0a0A0o0n0a1r1Q1S1X1z1!1v1%1(0%040G0I0g0q0d0q080z0_0A0G0L1O0g0g0a0J200|1+0A140v1M2d1J1L1K1s0h1-0Y1n0A1$1}1r1c1e0T1y2n0z2p0A0q2t1r0d26142b2d2H0)1R212v1Y2A0g0-060%0l2a2L0'2K1,2N1z2P2R0%0H2V1S2X2b2m0p2$0o2S020x2)2c0(2,2!0Y2/2;0f2@2d2E0a2d2t2g0h1L2l2{0p0J2B1)1435152F2Y2c30033c0L2G2L2-0C0%0L0k300G3j2-0A0k0%3c0a0k1!0J0z1$0b0u1c26280a0m0g3l2`1g1z0$02053S3q3a0A0%0c0u0i3Z2Z3U0Y3W0t3w3y3#0%0F3(3*2M3,0p3.3:3T2w2.3%0u0w3_2-3}0}2W3x3 2O3?43453a3W0E0D300B0G4m4a3!3{3$020L060N0u0F3~4p400q0%0y4y3+404r3@44482*4o4F1Y4B020j4E3`4G4d3)4K2^4n4M4T4c4s0a4u0o0u0c4S2-4P4D4X024!3z424J2H4=3a4P4R4:4`4q424W2H4l4n3;3{3s02260b3Q0{4~564U4%4(4w4,4{0%0v5k505h4v4+4:0(0v3n33173i0v3g2e370|2h5E0o1u5x5A1d2X5A0M0O0Q02.
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)
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 : 5/5

.128013(lbsSetxph-rdAf1uma"ovg,_/B3=in k:)y *2Pc030h0a0b0n0y06080F0J060n08080x0o0b0y0d0o020A03080l0m0m0n0g0E02090p060l0!0p0z030u0*0,0.0:0(0d0203130|160u130(0h0y0q0S0U0W0Y0e0y0r0e061k0e0b0%030N07060a1f0V0X0o1j1l1n1l0b1t1v1r0b0g140b0e0S0?080d0n0z0Y0H0o1x1h0o0j0P0a0z0n0m0a1r1Q1S1X1z1!1v1%1(0%040F0I0g0p0d0p080y0_0z0F0L1O0g0g0a0J200|1+0z140u1M2d1J1L1K1s0h1-0Y1n0z1$1}1r1c1e0T1y2n0y2p0z0p2t1r0d26142b2d2H0)1R212v1Y2A0g0-060%0k2a2L0'2K1,2N1z2P2R0%0H2V1S2X2b2m0o2$0n2S020w2)2c172F0|2t2g0h1L2l2!0Y0J2B1)142|152`2J0}2W03330L2G2L2-0B0%0L0j2@020F2Y2M1g2#0j0%0p0g0h0`2p0a0t3w1k2y0a3n3q2-0$02053H2,312.0%0c0t0i3N3h3P3K0s3n3p3O3s0Y0z0%0E3T3V2Z3%0o3Y3!3I3P3(023S0v3,3r2w3/0%3Z3b2*3#3W3.3@3*3`412^3$3}3K0D0C3n0A0F4i433-3}3@0n3;4b1Y0p0%0x4p444m0%330a0j1!0J0y1$0b0t1c26280a0l0g3{3J0%3M493g4l2O3R3+4S3=3.3:4S4k3|4V023*3U4Y4q1z4#2H4%2-3@3_4O3X3 4v4U2#3)0t482J4-0Y4d4g4j4;3P3j02260b4M0{4$4Z4x4)4X4:5g4r0%0f4{4'4}3^5j2W573.4s020G5p4=0%4o4S0(0u3e0a2d2E5I2{1d2}2g2j2e0n1u5L0u2|5F0L0N0P0802.