moyen
Aire sous une courbe (2)
Soient \(a\) et \(b\) deux nombres réels (\(a < b\) ) et \(f\) une fonction continue telle que l'on ait \(f(x)\ge0\) sur \(\left[a~;~b\right]\) . On appelle \(C_f\) la représentation graphique de \(f\) dans un repère orthonormé.
On cherche à calculer une valeur approchée de l'aire du domaine situé entre :
l'axe des abscisses ;
la courbe \(C_f\) ;
les droites d'équations \(x=a\) et \(x=b\) .
La figure ci-dessous (à gauche) illustre le problème avec :
Il est possible de calculer cette valeur approchée en utilisant la méthode des rectangles suivante :
on découpe l'intervalle \(\left[a~;~b\right]\) en \(n>0\) subdivisions régulières. Chaque subdivision a pour largeur \(\text{d}x=\dfrac{b-a}n\) ;
il est possible de numéroter chaque subdivision avec un entier \(0 \leqslant k < n\) ;
dans la \(k\) -ième subdivision, on dessine le rectangle de largeur \(\text{d}x\) et de hauteur \(f\left(a+k\text{d}x\right)\) ;
la somme des aires de tous les rectangles donne une valeur approchée de l'aire du domaine étudié.
La figure de droite illustre cette méthode dans le cas \(n=16\) . La valeur approchée obtenue vaut alors :
\[f(-1)\times\text{d}x+f(-1+\text{d}x)\times\text{d}x+f(-1+2\text{d}x)\times\text{d}x+\dots+f(-1+15\text{d}x)\times\text{d}x\simeq2,4888\]
Il est clair que plus le nombre de subdivisions est important, plus la valeur calculée est proche de la valeur exacte de l'aire cherchée.
Écrire la fonction aire
qui prend en paramètres les entiers a
et b
ainsi que l'entier n
strictement positif et renvoie la valeur approchée renvoyée par la méthode des rectangles décrite utilisant \(n\) rectangles.
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.
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.
Exemples
>>> a = - 1
>>> b = 2
>>> aire ( a , b , 1 )
1.5
>>> aire ( a , b , 2 )
1.78125
>>> aire ( a , b , 4 )
2.1328125
Version vide Version à trous
.128013bqO,9vià3o_x;}lpwf( g0]6-)2As1^+8ené4[m5tLRPhk:c.a=ryS*u/7{d050,0I0P0Y0h0p0D0u0W0p0Y0D0D0Z010P0h0q010406050D0(0N0N0Y0!0#040$0k0p0(100k0J0u020Y0N0q0n0u0R0I1a0!0c0(0I0D050)17191b1d150q04051I1B1L0)1I150,0h0g0^0`0|0~0T0h0v0T0p1Z0T0P13050:0b0p0I1U0{0}011Y1!1$1!0P1,1.1*0P0!1J0P0T0^1g0D0q0Y0J0~0B011:1W010s0=0I0J1o0I1*26282d1=2g1.2j0N2l040a0u0S0!0k0q0k0D0h1j1l0.240!0!0I0W2G1B2n0J1J0)222S1 21201+0,2p0~1$0J2i2D1*1R1T0_1;2$0h2(0J0k2,1*0q2L1J2Q2S2}16271l2.2e2?0!1a0p130u0E2P3114302o331=3537390B3c283e2Q2#013j0Y38040u0j3n2R153q3h0~3t3v0u0L3z3p313r3F390O3J3B3L3D3s0k363u390y3Q3f321V3i3V3k3w0*3!3C3%3E3)3X3w0H3-3S3/3U3W3G0f3^3g3`3N040E0w3 3$2/3{3*0E3b1C3d1M2{1B2,2V0,212!3T0W2@2v0-1S1J2`0I2|4e4d3o054o0.4w40480U130.0s3J3#3r0r394K3.480J0s134J4y2R4L3T12040t4P3_4R130m4%4E2e4!0A0V3Q0u4?0u4Y3`4G042L0P0(0!0J3J4^4Q2e0N4T040w0X3P4W3w4_480k130%525e344*4,472e5g040%5i5c5k1=0N0h133y5c534(5p130z5j545w57595b2}5C4-1=5q5t5N5v3E5m5u5I0~5R5S4e5Y015x133m5B5U015q5G5,5%56135L5H5D5Q5h5_5P5V044+5;5`5Z130G5}5o5w5y433Q063R5~014{4I5n4M4O5X633s570;2L6j4Z134$6m6f0J130Y6s3`4!0e673M130b6B486D6F3T6y04516w680~4/4;5c064@5O6S3s130D0k190I6M3`5q0Z6+485)584=4@5-6O0,615T5%6-6/4.6u6J5l046I626f5/6 3i6z721=4/7964040)7f6#6P6?4?5-4{0s3V7j6O0U7j0k4N042;7s0b130!280v6*6R3r4!6v2 5%6O6Q7L6n6U7m6Y6Z6G607v136.766!6O6A7!3r5q667(6N137u7,6,5|7:4)046`7S6Y6^6$6(2u7X047Z6|6n6O6%6)807+836x4U7c6T717H7-7W8g6C130A805#3o7U8h7_6W7{5%4{4}4 7O3d8q417}876W1B4B4v4f8I0)4i1B0P4k8N2Y2T0Y1-8K4i1H4D6!2L0N0l0s0Y0U0I0l0T0j131t1v1x1z0u6V2 1O3e1I0Q3V0D8;8B481b2F0T1a0P0I0m13090t0J098m5B960J2!0g0I0!0@5-92229597990t0G092;0s0P0#9d520`0u862u0^3u0W0(0p0K1/9g9i9k0@0p006q1/0,0(0u0,6(0;2(0u0K4~1R0K0X0u0d1l2?960^0/9:9T0u0i0u9R0;2I0,000(9#161 1k0v7y0J0P0K0v7D1.2Pa30Ja58?1M3e2,3r9o940Y969804090M0C0Z9va70l0Y0F0b0u0s0t0m0A09ap0P0+0,0o0m090x4h4s8X0Q0Y0u0g3u0I4 0u970Y2N9U1/0W9=1/2;a8aaaXa!0D0P902eam9qaq9a0B0e0y0B0O9A5c0Xai150T0!0u0)8`04aT0u0!a99J9o0K9X1/9C170b2,0h2E1k0u0q9k2ua?2I2E1p1$2g9k9`a)9H9Ja!1l8%2N3Vbq28a?27b81.9Q1b7F4 0@6V1P4r2-3`a_ao9rar0M091.9x0taD0Y0A0Gb:0G0EaH97aJaLaFb?0t0Y0G0Bb`0mb|aMb=099Y0P0Db c19b0z0EaGaIaKc7090!1%0Pci0h2u0Dc4c6aNbz0I0ca}0L0HcCaOaQ0gaj1S3r1@1#co2m6n2r2i2k132x0$0Wcn0qa?0S0#221k4K4u8Y2~4e8H8Y3r6h0I4V7P6f7x4^8j4R6p0h6rc_704#8d7k7%c=6!6L7?7375d47I136Ed77a7lc~7d8l8@3d6X6@7M8D7 de7g828A5-6;458tdn844H6{du6}7Y7j7Jd16Od9dD6n78drd2d17edO5q7idO7N7S7o4U7rdV7.7v7x7zdV7B4|7E7Gda6td0dh5 8z4z5%7Rdy7Ta@dfdC8p5-6~d#04d3dL77657sd$dS7=8a7#dB7`dz8b049Ed.e66!e2ed7Vek88e904c;5$7Q8fd/8C8iez6K8l52d}0~0W0E1303aCaE0A9DaY0pa!bP0{eMaF0u0%9Xd 3A8u6n8w0/8yetereb5ret8s5Nd|7n5%eIeK0ubs0N9J100q1$bl02030j0f0n2i0D1u8Ubk9`aUe,2}150)c,8J2S8W4h0/0;0?04.
.128013bqO,9vià3o_x;}lpwf( g0]6-)2As1^+8ené4[m5tLRPhk:c.a=ryS*u/7{d050,0I0P0Y0h0p0D0u0W0p0Y0D0D0Z010P0h0q010406050D0(0N0N0Y0!0#040$0k0p0(100k0J0u020Y0N0q0n0u0R0I1a0!0c0(0I0D050)17191b1d150q04051I1B1L0)1I150,0h0g0^0`0|0~0T0h0v0T0p1Z0T0P13050:0b0p0I1U0{0}011Y1!1$1!0P1,1.1*0P0!1J0P0T0^1g0D0q0Y0J0~0B011:1W010s0=0I0J1o0I1*26282d1=2g1.2j0N2l040a0u0S0!0k0q0k0D0h1j1l0.240!0!0I0W2G1B2n0J1J0)222S1 21201+0,2p0~1$0J2i2D1*1R1T0_1;2$0h2(0J0k2,1*0q2L1J2Q2S2}16271l2.2e2?0!1a0p130u0E2P3114302o331=3537390B3c283e2Q2#013j0Y38040u0j3n2R153q3h0~3t3v0u0L3z3p313r3F390O3J3B3L3D3s0k363u390y3Q3f321V3i3V3k3w0*3!3C3%3E3)3X3w0H3-3S3/3U3W3G0f3^3g3`3N040E0w3 3$2/3{3*0E3b1C3d1M2{1B2,2V0,212!3T0W2@2v0-1S1J2`0I2|4e4d3o054o0.4w40480U130.0s3J3#3r0r394K3.480J0s134J4y2R4L3T12040t4P3_4R130m4%4E2e4!0A0V3Q0u4?0u4Y3`4G042L0P0(0!0J3J4^4Q2e0N4T040w0X3P4W3w4_480k130%525e344*4,472e5g040%5i5c5k1=0N0h133y5c534(5p130z5j545w57595b2}5C4-1=5q5t5N5v3E5m5u5I0~5R5S4e5Y015x133m5B5U015q5G5,5%56135L5H5D5Q5h5_5P5V044+5;5`5Z130G5}5o5w5y433Q063R5~014{4I5n4M4O5X633s570;2L6j4Z134$6m6f0J130Y6s3`4!0e673M130b6B486D6F3T6y04516w680~4/4;5c064@5O6S3s130D0k190I6M3`5q0Z6+485)584=4@5-6O0,615T5%6-6/4.6u6J5l046I626f5/6 3i6z721=4/7964040)7f6#6P6?4?5-4{0s3V7j6O0U7j0k4N042;7s0b130!280v6*6R3r4!6v2 5%6O6Q7L6n6U7m6Y6Z6G607v136.766!6O6A7!3r5q667(6N137u7,6,5|7:4)046`7S6Y6^6$6(2u7X047Z6|6n6O6%6)807+836x4U7c6T717H7-7W8g6C130A805#3o7U8h7_6W7{5%4{4}4 7O3d8q417}876W1B4B4v4f8I0)4i1B0P4k8N2Y2T0Y1-8K4i1H4D6!2L0N0l0s0Y0U0I0l0T0j131t1v1x1z0u6V2 1O3e1I0Q3V0D8;8B481b2F0T1a0P0I0m13090t0J098m5B960J2!0g0I0!0@5-92229597990t0G092;0s0P0#9d520`0u862u0^3u0W0(0p0K1/9g9i9k0@0p006q1/0,0(0u0,6(0;2(0u0K4~1R0K0X0u0d1l2?960^0/9:9T0u0i0u9R0;2I0,000(9#161 1k0v7y0J0P0K0v7D1.2Pa30Ja58?1M3e2,3r9o940Y969804090M0C0Z9va70l0Y0F0b0u0s0t0m0A09ap0P0+0,0o0m090x4h4s8X0Q0Y0u0g3u0I4 0u970Y2N9U1/0W9=1/2;a8aaaXa!0D0P902eam9qaq9a0B0e0y0B0O9A5c0Xai150T0!0u0)8`04aT0u0!a99J9o0K9X1/9C170b2,0h2E1k0u0q9k2ua?2I2E1p1$2g9k9`a)9H9Ja!1l8%2N3Vbq28a?27b81.9Q1b7F4 0@6V1P4r2-3`a_ao9rar0M091.9x0taD0Y0A0Gb:0G0EaH97aJaLaFb?0t0Y0G0Bb`0mb|aMb=099Y0P0Db c19b0z0EaGaIaKc7090!1%0Pci0h2u0Dc4c6aNbz0I0ca}0L0HcCaOaQ0gaj1S3r1@1#co2m6n2r2i2k132x0$0Wcn0qa?0S0#221k4K4u8Y2~4e8H8Y3r6h0I4V7P6f7x4^8j4R6p0h6rc_704#8d7k7%c=6!6L7?7375d47I136Ed77a7lc~7d8l8@3d6X6@7M8D7 de7g828A5-6;458tdn844H6{du6}7Y7j7Jd16Od9dD6n78drd2d17edO5q7idO7N7S7o4U7rdV7.7v7x7zdV7B4|7E7Gda6td0dh5 8z4z5%7Rdy7Ta@dfdC8p5-6~d#04d3dL77657sd$dS7=8a7#dB7`dz8b049Ed.e66!e2ed7Vek88e904c;5$7Q8fd/8C8iez6K8l52d}0~0W0E1303aCaE0A9DaY0pa!bP0{eMaF0u0%9Xd 3A8u6n8w0/8yetereb5ret8s5Nd|7n5%eIeK0ubs0N9J100q1$bl02030j0f0n2i0D1u8Ubk9`aUe,2}150)c,8J2S8W4h0/0;0?04.
# Tests
(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)