Formule d'Euler

Publié: 10-02-2020
Le code de ce post est écrit avec Python version 3.7.3 à l'aide du logiciel Spyder.

Cet article vous présentera la formule d'Euler et comment elle est utilisée pour représenter des vecteurs complexes. Cette formule est importante lors de l'étude de la transformée de Fourier car elle fournira une notation compacte pour représenter un grand nombre d'informations spectrales détaillées.

La formule d'Euler est la suivante: $$ e^{ik} = cos(k) + i \times sin(k) $$

e est l'exponentielle naturelle. C'est un nombre irrationnel. Cette constante est célèbre en mathématiques, et elle est utilisée en trigonométrie, analyse complexe, équations différentielles, simulations, biologie et finance. $$ e = 2.718... $$

Si vous faites un tracé de l'exponentielle naturelle de X, vous pouvez voir que pour les valeurs négatives de X, cette fonction devient de plus en plus petite et plus proche de zéro, mais elle reste toujours positive. Pour de plus grandes valeurs positives de X, cette fonction monte à l'infini. Une propriété spéciale de cette fonction est que la dérivée de l'exponentielle naturelle de X est l'exponentielle naturelle de X. La dérivée de la fonction est la même que la fonction.

            
                import numpy as np
                import matplotlib.pyplot as plt

                x = np.linspace(-4,5,num=80)
                plt.plot(x,np.exp(x),label='y=e^x')

                plt.axis([min(x),max(x),0,np.exp(x[-1])])
                plt.grid(True)
                plt.legend()
                plt.xlabel('x')
                plt.show()
            
        

Ce qui nous intéresse, c'est ce qui se passe lorsque vous mettez un nombre imaginaire à l'intérieur de l'exposant de cette exponentielle naturelle. La formule ci-dessous fournit un lien entre les nombres complexes et la trigonométrie. $$ e^{ik} = cos(k) + i \times sin(k) $$ Prenons un exemple où k = 1.1: $$ e^{1.1i} = cos(1.1) + i \times sin(1.1) \\ e^{1.1i} = 0.45 + 0.89 \times i $$ Notez que nous utilisons des radians, pas des degrés.

La réponse est une combinaison d'un nombre réel et d'un nombre imaginaire, qui ensemble est appelé un nombre complexe.
Nous pouvons tracer un tel nombre sur le plan complexe:

            
                import numpy as np
                import matplotlib.pyplot as plt

                k=1.1
                #euler=0.45 + 0.89 i
                euler = complex(np.cos(1.1),np.sin(1.1))
                #Tracer le nombre complexe
                plt.plot(np.real(euler),np.imag(euler),'ro')
                plt.axis('square')
                plt.grid(True)
                plt.xlabel('Real axis'), plt.ylabel('Imaginary axis')
                plt.show()
            
        

Maintenant, nous allons essayer avec différentes valeurs de k. Nous allons générer différents nombres réels et les tracer comme suit:

            
                import numpy as np
                import matplotlib.pyplot as plt

                for i in range(-20,20):
                    #définir n'importe quel nombre réel
                    k=i/np.pi
                    plt.plot(np.cos(k),np.sin(k),'ro')
                plt.axis('square')
                plt.grid(True)
                plt.xlabel('Real axis'), plt.ylabel('Imaginary axis')
                plt.show()
            
        

Nous pouvons remarquer que mettre la formule d'Euler sur un graphique produit un cercle de rayon 1. Nous pouvons remarquer que tous les vecteurs sont des vecteurs unitaires, ce qui signifie qu'ils ont tous une magnitude de 1.


$$ k = 2\pi \rightarrow e^{i2\pi} = cos(2\pi) + i \times sin(2\pi) \rightarrow e^{i2\pi} = 1 + 0 \times i = 1 \rightarrow e^{i2\pi} -1 = 0 $$ $$ k = \frac{\pi}{2} \rightarrow e^{i\frac{\pi}{2}} = cos(\frac{\pi}{2}) + i \times sin(\frac{\pi}{2}) \rightarrow e^{i\frac{\pi}{2}} = 0 + 1 \times i = i \rightarrow e^{i\frac{\pi}{2}} - i = 0 $$ $$ k = \pi \rightarrow e^{i\pi} = cos(\pi) + i \times sin(\pi) \rightarrow e^{i\pi} = -1 + 0 \times i = -1 \rightarrow e^{i\pi} + 1 = 0 $$ $$ k = \frac{-\pi}{2} \rightarrow e^{i\frac{-\pi}{2}} = cos(\frac{-\pi}{2}) + i \times sin(\frac{-\pi}{2}) \rightarrow e^{i\frac{-\pi}{2}} = 0 - 1 \times i = -i \rightarrow e^{i\frac{-\pi}{2}} + i = 0 $$

Nous pouvons transformer un nombre complexe avec la forme: $$ a + i \times b $$ sous cette forme: $$ re^{ik} $$ Où r est la magnitude et k est la phase (Consultez l'article précédent Nombres complexes). Nous pouvons calculer la magnitude et la phase comme suit (conversion cartésienne en polaire): $$ r = \sqrt{a^2 + b^2} \\ k = tan^{-1}(\frac{b}{a}) $$

C'est fondamentalement une autre façon d'avoir un nombre complexe. Cela s'avère très utile, car il existe de nombreux cas (comme la multiplication) où il est plus facile d'utiliser la forme $$ re^{ik} $$ plutôt que la forme $$ a + i \times b $$

Dans ce qui suit, nous allons tracer ces formules d'Euler: $$ e^{i2\pi} \\ e^{i\frac{\pi}{2}} \\ e^{i\pi} \\ e^{i\frac{-\pi}{2}} $$

            
                import numpy as np
                import matplotlib.pyplot as plt

                m = 1; # magnitude
                phase1 = np.pi*2; # phase 1
                phase2 = np.pi/2; # phase 2
                phase3 = np.pi; # phase 3
                phase4 = np.pi/2 * (-1); # phase 4

                euler1 = m*np.exp( 1j*phase1 );  # euler 1
                euler2 = m*np.exp( 1j*phase2 ); # euler 2
                euler3 = m*np.exp( 1j*phase3 ); # euler 3
                euler4 = m*np.exp( 1j*phase4 ); # euler 4


                # extraire la magnitude et l'angle

                #e^i(2pi)
                mag = np.abs(euler1);
                phs = np.angle(euler1);
                plt.polar([phs,phs],[0,mag],'blue')

                #e^i(pi/2)
                mag = np.abs(euler2);
                phs = np.angle(euler2);
                plt.polar([phs,phs],[0,mag],'orange')

                #e^i(pi)
                mag = np.abs(euler3);
                phs = np.angle(euler3);
                plt.polar([phs,phs],[0,mag],'green')

                #e^i(-pi/2)
                mag = np.abs(euler4);
                phs = np.angle(euler4);
                plt.polar([phs,phs],[0,mag],'red')

                plt.show()
            
        

L'idée clé derrière la discussion de la formule d'Euler est de coder deux informations sur les nombres complexes dont nous avons besoin dans la transformée de Fourier. La magnitude du nombre complexe et l'angle (phase) par rapport à l'axe réel positif.

Article précédent:

Références

  • Mike x Cohen, http://sincxpress.com