Fascicule OS Math
Télécharger le fascicule d'exercices ici (version 1.96 du 10.11.20).
Télécharger le fascicule d'exercices ici (version 1.96 du 10.11.20).
# dichotomie 1
# variables f, a, b et n le nombre d’étapes voulues.
def dicho(f, a, b, n):
for i in range(n):
c = (a + b)/2
if f(a)*f(c) <= 0:
b = c
else:
a = c
return a, b
# dichotomie 2
# variables f, a, b et tol la tolérance souhaitée
def dicho(f, a, b, tol):
while b - a > tol:
c = (a + b)/2
if f(a)*f(c) <= 0:
b = c
else:
a = c
return a, b
# variables x, f, df, tol la tolérance souhaitée
def newton(x, f, df, tol):
n = 1
while abs(f(x)) > tol:
x = x - f(x) / df(x)
n += 1
return x, n
# variables x, x_, f et tol la tolérance souhaitée
def secante(x, x_, f, tol):
n = 1
while abs(f(x_) - f(x)) > tol:
x, x_ = x_, x_ - (x_ - x) * f(x_) / (f(x_) - f(x))
n += 1
return x, n
import random
def listeDePointsAlea(a, b, n):
# intervalle [a ; b], n: nombre de points
# donne n+1 intervalles
L = [a, b]
for _ in range(n):
L.append(random.uniform(a,b))
L.sort()
return L
def sommeRectanglesInfAlea(a, b, n, f):
aireInf = 0.0
L = listeDePointsAlea(a, b, n)
for k in range(n+1):
dx = L[k+1]-L[k]
mini = f(L[k])
maxi = f(L[k+1])
if mini>maxi:
mini, maxi = maxi, mini
aireInf += dx*mini
return aireInf
Adapter ce code pour déterminer l'aire obtenue avec les rectangles qui donnent une aire supérieure, l'aire calculée avec des trapèzes et l'aire calculée avec une somme de Riemann.
Oscillations harmoniques, exemple d'un ressort.
MOOC Mécanique EPFL: 10.3 Résonance d'oscillateurs harmoniques et battement.
TP de Physique 8 : la résonance (2 : la pendule élastique - 2).