Utilisation des constantes physiques dans Python scipy.constants ~ constant e ~

0. Environnement

\bullet macOS Catalina \bullet Jupyter notebook \bullet Python 3.8.6 \bullet NumPy 1.18.5 \bullet SciPy 1.5.4[^1] [^ 1]: print (scipy.constants.physical_constants [" fréquence de transition hyperfine de Cs-133 "]) et print (scipy.constants.physical_constants [" efficacité lumineuse "]) sont affichés sous forme de colonnes vides. Dans ce cas, une mise à jour est requise. Notes de version de SciPy 1.4.0 - Guide de référence de SciPy v1.5.4

  1. scipy.constants

1.1 Constantes physiques

Vous pouvez introduire des constantes physiques en faisant from scipy.constants import *.

SI_2019


from scipy.constants import * 
print(physical_constants["hyperfine transition frequency of Cs-133"])
print(c) #speed of light in vacuum
print(h) #the Planck constant
print(e) #elementary charge
print(k) #Boltzmann constant
print(N_A) #Avogadro constant
print(physical_constants["luminous efficacy"])

Ceci est le résultat de sortie.

Results


(9192631770.0, 'Hz', 0.0)
299792458.0
6.62607015e-34
1.602176634e-19
1.380649e-23
6.02214076e+23
(683.0, 'lm W^-1', 0.0)

Si vous dites à partir des constantes d'importation scipy, vous devez faire quelque chose comme constants.h ouscipy.constant.physical_constants ["fréquence de transition hyperfine de Cs-133"], mais vous obtenez le même résultat. ..

from scipy import constants
print(constants.h)
#6.62607015e-34

1.2 Calculs plus fins

De plus, diverses unités telles que des unités combinées peuvent être utilisées dans le calcul.

units


from scipy.constants import * 
print(day) #one day is 86400 seconds
print(gram) # one gram is 0.001 kilogram
print(eV) #1 eV equals e coulomb times 1 volt
#86400.0
#0.001
#1.602176634e-19

Le calcul d'unité à l'aide de préfixes est également possible. Vous pouvez également convertir la longueur d'onde-fréquence des ondes électromagnétiques en utilisant lambda2nu ().

prefix_and_lambda2nu


print('{:e}'.format(lambda2nu(370 * nano)), 'Hz') #ultraviolet
print(lambda2nu(370 * nano) / tera, 'THz')
print('{:e}'.format(lambda2nu(1 * milli)), 'Hz') #radio waves (microwaves)
print(lambda2nu(1 * milli) / giga, 'GHz')
#8.102499e+14 Hz
#810.2498864864865 THz
#2.997925e+11 Hz
#299.792458 GHz

2. Constante e

2.1 Quantité d'électricité et nombre de napiers

La quantité d'électroélément et le nombre de Napier prêtent à confusion car ils ont tous deux le même symbole, $ e $ [^ 2]. [^ 2]: Il existe également un style pour le rendre tridimensionnel comme «e» et «i», mais ce n'est pas le cas dans tous les cas, et plutôt le corps oblique est utilisé par convention.

Si vous souhaitez simplement l'imprimer, vous pouvez ajouter une annotation, mais vous ne pouvez pas utiliser le même nom dans le code.

from scipy.constants import * 
print(physical_constants["elementary charge"])
print(e)
print(math.e) #the Euler's number

Surtout dans LaTeX, vous ne tapez pas math.e, il est donc très difficile de copier une formule proprement écrite dans du code Python.

2.2 Exemple de puissance de e: statistiques de Fermi-Dirac

Préparation



%matplotlib inline

import numpy as np
import matplotlib.pyplot as plt
import math
from scipy.constants import *

Comme exemple d'apparition des exposants, considérons la distribution de Fermi-Dirac. Supposons que vous souhaitiez tracer un graphique de la formule suivante:

 \frac{1}{e^{\beta(\varepsilon - \mu)} + 1}= \frac{1}{e^{\mu(x - 1)/(kT)} + 1}\quad(x = \varepsilon/ \mu )

Où $ k $ est une constante de Boltzmann. Dessinons avec le notebook Jupyter.

Fermi_Dirac_distribution


from scipy.constants import * 
def E(x, mu):
    return 1/(e**(mu*(x - 1)/(k*T)) + 1)
example_elementary.png

C'est un graphique étrange (les paramètres de dessin du graphique sont omis). Il s'agit d'un graphique qualitativement impossible car les particules peuvent consommer autant d'énergie que possible. Puisque "e" est défini comme la valeur de la quantité d'électroélément dans "de scipy.constants import *", le graphique a été généré, mais le calcul était incorrect.

Bien sûr, vous pouvez le résoudre en jouant avec import, mais ici nous utiliserons la méthode la plus intuitive, la plus pratique et la plus pratique. En d'autres termes, maintenant selon la formule

e = math.e

Faisons le. Comme la quantité d'électroélément n'est pas utilisée dans ce calcul, il n'y a pas de problème localement (si la quantité d'électroélément doit être utilisée ailleurs, écrivez à nouveau from scipy.constants import * à ce moment-là, etc. Tu devrais le faire).

from scipy.constants import * 
e = math.e
def E(x, mu):
    return 1/(e**(mu*(x - 1)/(k*T)) + 1)
example_math_e.png

Le graphique correct est sorti!

Articles connexes / de référence

Constants (scipy.constants) — SciPy v1.5.3 Reference Guide [SciPy Constants] (https://www.w3schools.com/python/scipy_constants.asp) [Python math.e Constant] (https://www.w3schools.com/python/ref_math_e.asp) [python memo] (http://tomohiro_abe.droppages.com/misc/python.html) J'ai fait référence à «from scipy.constants import *». [Fermi–Dirac statistics - Wikipedia] (https://en.wikipedia.org/wiki/Fermi–Dirac_statistics) J'ai fait référence aux statistiques de Fermi-Dirac.

Recommended Posts

Utilisation des constantes physiques dans Python scipy.constants ~ constant e ~
Résoudre ABC176 E en Python
Traduit à l'aide de googletrans en Python
Utilisation du mode Python dans le traitement
Programmation GUI en Python avec Appjar
Précautions lors de l'utilisation de Pit avec Python
Essayez d'utiliser LevelDB avec Python (plyvel)
Utilisation de variables globales dans les fonctions python
Voyons voir l'utilisation de l'entrée en python
Puissance totale en Python (en utilisant functools)
Reconnaissance de caractères manuscrits à l'aide de KNN en Python
Essayez d'utiliser LeapMotion avec Python
Recherche de priorité de profondeur à l'aide de la pile en Python
Lors de l'utilisation d'expressions régulières en Python
Création d'interface graphique en python avec tkinter 2
Fonctionnement de la souris à l'aide de l'API Windows en Python
Essayez d'utiliser l'API Wunderlist en Python
Obtenir l'équilibre Suica en Python (en utilisant libpafe)
Pratique d'utilisation de ceci en Python (mauvais)
Hachez lentement les mots de passe en utilisant bcrypt en Python
Essayez d'utiliser l'API Kraken avec Python
Utilisation de venv dans un environnement Windows + Docker [Python]
[FX] Hit oanda-API avec Python en utilisant Docker
Tweet à l'aide de l'API Twitter en Python
[Python] [Windows] Communication série en Python à l'aide de DLL
J'ai essayé d'utiliser l'optimisation bayésienne de Python
Obtenez des données Youtube en Python à l'aide de l'API Youtube Data
Scraping de sites Web à l'aide de JavaScript en Python
Développement de slack bot avec python en utilisant chat.postMessage
Ecrire un module python dans fortran en utilisant f2py
Dessinez une structure arborescente en Python 3 à l'aide de graphviz
Remarques sur l'utilisation de python (pydev) avec eclipse
Classification des maladies par Random Forest en utilisant Python
Téléchargez des fichiers dans n'importe quel format en utilisant Python
Exécution de tâches parallèles à l'aide de concurrent.futures en Python
Quadtree en Python --2
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Créer un fichier GIF en utilisant Pillow en Python
Méta-analyse en Python
Pièces jointes par e-mail à l'aide de votre compte gmail avec python.
Unittest en Python
Création d'un processus de numérotation à l'aide de python dans le processus de numérotation locale DynamoDB
Discord en Python
Obtenir l'URL de l'image à l'aide de l'API Flickr en Python
Commencez à utiliser Python
DCI en Python
Remarques sur l'utilisation de dict avec python [Competition Pro]
tri rapide en python
nCr en python
Jugons les émotions à l'aide de l'API Emotion en Python
N-Gram en Python
Effectuer une analyse d'entité à l'aide de spaCy / GiNZA en Python
Programmation avec Python