Précis d'épistémologie/La justification et l'évaluation du savoir

Précis d'épistémologie/La perception et l'imagination

Python pour le calcul scientifique/Calcul différentiel et intégral

Rappelons que dorénavant les programmes commencent tous par :
import numpy as np
import matplotlib.pyplot as plt
Dérivation numérique.
Pour une fonction définie.
La fonction codice_1 permet de calculer les dérivées numériques successives d'une fonction, par exemple :
import scipy.misc
def f(x):
 return x*x
X = np.array([0, 1, 2, 3, 4])
print(f(X))
print(scipy.misc.derivative(f, X))
print(scipy.misc.derivative(f, X, n=2)) # dérivée seconde
Le module codice_2 fournit la fonction codice_3 mais celle-ci ne fonctionne qu'avec une unique valeur de "x" à la fois.
import numpy as np
from scipy import optimize as opt
def carre(X):
 return X[0]*X[0] + X[1]*X[1]
def gradcarre(X):
 return 2*(X[0] + X[1])
x = np.array([0, 0.5])
print(carre(x)) # 0.25
print(opt.approx_fprime(x, carre, 1e-6))
Pour une liste de valeurs.
La fonction codice_4 calcule la différence entre les éléments consécutifs d'un vecteur (ou d'une liste ou d'un n-uplet) : codice_5. Si M est une matrice, il faut indiquer l'axe en paramètre codice_6 : codice_7 (premier indice) pour faire une différence entre les lignes, codice_8 (deuxième indice) pour faire la différence entre les colonnes… L'axe par défaut est codice_9.
La fonction codice_10 fait la différence en remettant « en ligne » (comme avec codice_11) la matrice.
Par exemple :
M = np.array(1, 2, 3, 4], [3, 4, 5, 6)
print(np.diff(M, axis=0))
pos = solu.y[0, :]
vit = solu.y[1, :]
plt.plot(t, pos, label="position")
plt.plot(t, vit, label="vitesse")
plt.legend()
On retrouve bien des courbes sinusoïdales.
Considérons maintenant un circuit électrique RLC en série soumis à un échelon de tension E à "t" = 0. La loi des mailles donne
soit
donc
from scipy import integrate
L = 50 # inductance en H
R = 200 # résistance en Ω
C = 1e-5 # capacité en F
E = 1 # échelon de tension en V
foo = 1/(L*C)
lmbd = 0.5*R*C*foo
omega02 = foo
def equation(t, y, lmbd, omega02):
 return [y[1], -2*lmbd*y[1] - omega02*y[0] + E/L]
t0 = 0
T = 2*np.pi/np.sqrt(omega02 - lmbd*lmbd)
tmax = 5/lmbd
t = np.arange(0, tmax, T/8)
n = len(t)
y0 = [0, 0]
resultat = integrate.solve_ivp(lambda t, y: equation(t, y, lmbd, omega02),
 [t0, t[-1:]], y0, t_eval=t, method="Radau")
q = resultat.y[0, :]
i = resultat.y[1, :]
fig, axes1 = plt.subplots(1, 1)
axes2 = axes1.twinx()
axes1.plot(t, q, "orange", label="charge")
axes1.legend(loc=1)
axes1.set_xlabel("$t$ (s)")
axes1.set_ylabel("$q$ (C)")
axes2.plot(t, i, label="intensité")
axes2.legend(loc=4)
axes2.set_ylabel("$i$ (A)")
On retrouve bien une courbe de la forme formula_4
SUNDIALS.
Le LLNL (Lawrence Livemore National Laboratory) a développé une bibliothèque pour le calcul différentiel et la résolution de systèmes algébriques, appelé SUNDIALS "()". Cette bibliothèque est actuellement en cours de transposition dans Python.
Notes et références.
Algèbre linéaire < ↑ > Résolution d'équations

Recensement, cartographie et photographie des rues sur les plateformes libres

Introduction.
Ce livre propose une méthodologie pour lister l'ensemble des voies d'une ville, d'un village ou d'un quelconque lieu délimité, sur les projets Wiki et à l'aide de données et plateformes ouvertes et libres.
Il décrit les procédures établies pour les arrondissements de la ville de Lyon et de quelques communes alentour. Et utilise :
Exemple : la carte des rues du 8 arrondissement de Lyon

Programmation JavaScript/Références/Objets/Boolean

Cet objet désigne le type . Il est faux par défaut.
Exemples.
myBoolean = new Boolean(1);
console.log(myBoolean.toString()); // true

Recensement, cartographie et photographie des rues sur les plateformes libres/Belleville-en-Beaujolais