Exercices sur les nombres¶
Fonctions mathématiques¶
Est ce que la fonction log est le logarithme décimal ou népérien ?
Calculer \(x = \sqrt{2}\) puis calculer \(x^2\). Que se passe-t-il ?
Calculer \(\arccos{\frac{\sqrt{2}}{2}}\) et comparer à sa valeur théorique.
from math import log
print(log(10))
2.302585092994046
from math import sqrt
sqrt(2)**2
2.0000000000000004
from math import acos, pi
print(acos(sqrt(2)/2))
print(pi/4)
0.7853981633974483
0.7853981633974483
Constante de structure fine¶
La constante de structure fine est définie en physique comme étant égale à
où
\(e\) est la charge de l’électron et vaut \(1.602176634 \times 10^{-19} C\)
\(h\) est la constante de Planck et vaut \(6.626\,070\,15 \times 10^{-34} J s\)
\(\epsilon_0\) la permitivité du vide et vaut \(8.8541878128 \times 10^{-12} F/m\)
\(c\) la célérité de la lumière dans le vide, \(c=299792458 m/s\)
Définissez en Python les variables e
, hbar
, epsilon_0
et c
. Calculez \(\alpha\) et \(1/\alpha\)
from math import pi
e = 1.602176634E-19
h = 6.62607015E-34
epsilon_0 = 8.8541878128E-12
c = 299792458
alpha = e**2/(2*epsilon_0*h*c)
print(1/alpha)
137.0359990841083
Précision des nombres¶
Soit \(x=1\) et \(\epsilon = 10^{-15}\). Calculez \(y=x + \epsilon\) et ensuite \(y - x\).
Pourquoi le résultat est différent de \(10^{-15}\).
Que vaut cette valeur ?
x = 1
epsilon = 1E-15
y = x + epsilon
print(y - x)
1.1102230246251565e-15
print(5*2**-52)
1.1102230246251565e-15
Calcul d’une dérivée¶
On considère une fonction \(f(x)\). On rappelle que la dérivée peut se définir comme
Pour calculer numériquement une dérivée, il faut évaluer la limite en prenant une valeur ‘petite’ de \(\epsilon\).
On prendra comme exemple \(f(x) = \sin(x)\).
Calculer numériquement la dérivée de \(f\) en \(\pi/4\) en utilisant la formule pour \(\epsilon = 10^{-6}\).
Comparer à la valeur théorique \(\cos(x)\) pour différentes valeurs de \(\epsilon\) que l’on prendra comme puissance de 10 (\(\epsilon = 10^{-n}\)). Que se passe-t-il si \(\epsilon\) est trop petit ? trop grand ?
Ecrire la fonction
sin_prime(x, epsilon)
qui calcule la dérivée de sin en \(x\)Ecrire une fonction qui prend une fonction quelconque et renvoie la fonction dérivée.
from math import sin, pi, cos
x = pi/4
epsilon = 1E-11
d = (sin(x + epsilon) - sin(x))/epsilon - cos(x)
print(d)
for n in range(1, 15):
epsilon = 10**(-n)
d = (sin(x + epsilon) - sin(x))/epsilon - cos(x)
print('n=', n, d)
# Lorsque epsilon est trop petit, il y a des erreurs d'arrondi. Lorsque epsilon est trop grand, nous
# sommes loin de la limite
5.365427460879424e-06
n= 1 -0.03650380828255784
n= 2 -0.0035472894973379576
n= 3 -0.0003536712121802177
n= 4 -3.535651724428934e-05
n= 5 -3.5355413900983734e-06
n= 6 -3.5344236126721995e-07
n= 7 -3.5807553921962665e-08
n= 8 3.050251939917814e-09
n= 9 3.635694267867251e-08
n= 10 9.245353623787977e-07
n= 11 5.365427460879424e-06
n= 12 -5.7368027853721415e-06
n= 13 0.00010528549967714351
n= 14 0.003435954573552613
def sin_prime(x, epsilon):
return (sin(x + epsilon) - sin(x))/epsilon
def derivee(f, epsilon):
def f_prime(x):
return (f(x+epsilon) - f(x))/epsilon
return f_prime
derivee(sin, epsilon=1E-8)(x) - cos(x)
3.050251939917814e-09
Nombre complexe¶
Ecrire une fonction qui calcule le module d’un nombre complexe \(z\)
Ecrire une fonction qui à partir de \(r\) et \(\theta\) renvoie le nombre \(z = re^{i\theta} = r\cos(\theta) + ir\sin(\theta)\)