Académique Documents
Professionnel Documents
Culture Documents
simulation
Console python
>>> np.array([1, 2, 3]) # Un tableau d’entiers
array([1, 2, 3])
>>> np.array([1, 2, 3.0]) # On impose implicitement les flottants
array([ 1., 2., 3.])
>>> np.array([[1, 2], [3, 4]]) # Plus d’une dimensions
array([[1, 2],
[3, 4]])
Ones et eye :
ones(n) : crée un tableau de longueur n contenant uniquement des 1.
Console python
>>> import numpy as np
>>> np.ones(2)
array([ 1., 1.])
>>> np.ones((2,3))
array([[ 1., 1., 1.],
[ 1., 1., 1.]])
>>> np.eye(2)
array([[ 1., 0.],
[ 0., 1.]])
Remarque :
Chaque fonction mathématique usuelle possède une fonction Numpy
qui lui est homonyme et qui calcule la même chose sur les objets de type float.
Par exemple il existe math.sin et np.sin L’avantage des fonctions numpy f,
c’est que si a est un tableau numpy a = array[a0, . . . , an-1], l’appel f(a) renvoie
le tableau array[f(a0), . . . , f(an-1)]. Ce mécanisme s’applique aussi aux
matrices.
7 Ingénierie numérique et simulation-MPSI/TSI/PCSI 11/04/20
Exemple :
Console python
>>> import numpy as np
>>> x=np.array([3,4])
>>> np.exp(x)
array([ 20.08553692, 54.59815003])
Déterminant :
det(A) : le déterminant de A
Exemple :
Console python
>>> from numpy.linalg import det
>>> det ([[1,2],[3,4]])
-2.0000000000000004
Cadre de travail :
Dans la suite, on notera f une fonction continue sur un intervalle [a, b].
On supposera, en outre, que f s’annule en un unique point de [a, b],
que l’on notera xsol.
Méthode de Newton :
Contexte de travail et idée de départ :
On suppose que :
f est dérivable sur [a, b] ;
f ’ ne s’annule pas sur [a, b].
Console python
>>> from scipy .optimize import newton
>>>…….
>>> newton(f,position_depart,der_f)
f(t,y)=y; a=0; b=1; T =[0, 0.25, 0.5, 0.75, 1], l'équation est donc :
Console python
>>> from scipy . integrate import odeint
>>>def f(y,t):
return (y)
>>> odeint(f,1,[0,0.25,0.5,0.75,1.0])
array([[ 1. ],
[ 1.28402541],
[ 1.64872127],
[ 2.11700009],
[ 2.7182819 ]])
Console python
>>> from numpy import arange
>>> T=arange(0,1.05,0.05)
>>> T
array([ 0. , 0.05, 0.1 , 0.15, 0.2 , 0.25, 0.3 , 0.35, 0.4 , 0.45, 0.5 , 0.55, 0.6 ,
0.65, 0.7 , 0.75, 0.8 , 0.85, 0.9 , 0.95, 1. ])
def Euler(a,b,Phi,y0,n):
"""Méthode d'Euler d'intégration approchée de
y'=Phi(x,y(x)) sur [a,b] avec condition initiale y0=f(a)
avec n+1 points"""
x=linspace(a,b,n+1)
y=empty(n+1) # tableau vide de n+1 éléments
y[0]=y0
pas=(b-a)/float(n)
for k in range(n):
y[k+1]=y[k]+pas*Phi(x[k],y[k])
return(y)
Langage python