[PDF] Mathématiques et Python 1.4 Un exemple : calcul





Previous PDF Next PDF



Analyse numérique en Python Intégration et dérivation

La fonction permettant de calculer l'intégrale d'une fonction sur un intervalle s'appelle quad et se trouve dans scipy.integrate. Son utilisation est très 



Calcul dintégrale : méthode des trapèzes Algorithme

13 sept. 2020 Calcul d'intégrale : méthode des trapèzes ... On incrémente ensuite p pour calculer les aires des trapèzes suivants. ... En langage Python.



Python MP PC

TSI Oral



Mathématiques et Python

1.4 Un exemple : calcul d'intégrales. Pour illustrer les capacités de base de Python nous proposons de calculer de manière numérique la valeur de I = ?.



Analyse numérique avec Python

22 mai 2014 Python) quelques algorithmes classiques d'analyse numérique. Le but est de résoudre des problèmes ... Pour calculer son intégrale ap-.



Intégrales de fonctions de plusieurs variables

Cette définition est effective : elle permet de calculer des intégrales. 8.3 Calcul des intégrales. Pour calculer l'intégrale d'une fonction f sur un intervalle 



Module C1 Calcul scientifique avec Python 3 Timothée Duruisseau

27 août 2021 Calcul scientifique avec Python 3 ... 1.2 Calculer une fonction mathématique simplement . ... 4 Chapitre 4 : Calculer une intégrale.



Calcul Scientifique avec Python

Nous présentons donc le langage Python et donnerons quelques algorithmes standard pour. • calculer des intégrales numériques. • interpoler une fonction.



Cours 2 – Révisions de PTSI – Tracé de courbes calculs d

Cours 2 – Révisions de PTSI – Tracé de courbes calculs d'intégrales. I Tracé de courbes en Python. Exemples : 1. Tracer la courbe représentative de la 



A. Calcul intégral B. Équations différentielles linéaires C. Langage

7 janv. 2022 A. Calcul intégral ... C. Langage Python. ? Listes. ... La colle commence par une question d'informatique (langage python) parmi :.



CALCUL INTÉGRAL - maths et tiques

Avec Python on programme cet algorithme pour la fonction !(()=(# sur l’intervalle [1 ; 2] On exécute plusieurs fois le programme pour obtenir un encadrement de l'intégrale de la fonction carré sur [1 ; 2] En augmentant le nombre de sous-intervalles la précision du calcul s'améliore car



Calcul d’intégrale : méthode des trapèzes Algorithme

En langage Python • On dé?nit la fonction à intégrer • On dé?nit la fonction A(abn) qui calcule un approximation de l’intégrale en découpant l’intervalle ennparties — qui calcule le pas et initialisesà zéro — à chaque boucle rajoute l’aire du trapèze : T i= [f(a)+f(a+p)]p 2 — puis incrémentea



Searches related to calcul intégrale python PDF

calcul d'aire f da; est égal à l'aire du domaine compris entre Si f est une fonction positive sur [ a ; b ] alors la courbe de f l'axe des abcsisses et les droites d'équations a; — a et a: b exprimée en unité d'aire Remarque 2 • L'intégrale d'une fonction f sur [ a ; b ] est indépendante du choix de la primitive F • On note aussi

Comment calculer l’intégral d’une fonction en Python ?

1. Définir la fonction f(x) en python en faisant appel au module de Scipy pour le calcul de l’intégral d’une fonction. 2. Faire un graphe de la fonction f(x) dans l’intervalle ?5 < x < 5. 3. A l’aide de la méthode de Newton-Raphson (implémentée dans Scipy), déterminer numériquement le zéro de la fonction, c’est à dire le point x0 où f(x = x0) = 0.

Comment calculer une intégrale à partir d'un tableau de données sous Python?

Exemple de comment calculer une intégrale à partir d'un tableau de données sous python (pour faire faire une intégration sur une fonction définie voir Calculer une intégrale simple avec python ). Dans cet exemple on suppose que l'on a deux matrices x et y et on veut calculer l'intégrale y (x) (pour illustrer on a pris $y=x^2$).

Comment calculer l'intégration d'une fonction Python?

Voici un exemple basique d'utilisation: l'intégration de la fonction $f: xightarrow cos (x)$ entre $0$ et $frac {9pi} {2}$. Pour illustrer l'aire d'intégration avec matplotib, on peut utiliser la méthode ax.fill_between (x, 0, function (x)) comme dans cet exemple: Calculer et tracer une intégrale simple avec python et Matplotlib.

Comment calculer l’intégral d’une fonction ?

l’intégral d’une fonction. 2. Faire un graphe de la fonction f(x) dans l’intervalle ?5 < x < 5. 3. A l’aide de la méthode de Newton-Raphson (implémentée dans Scipy), déterminer numériquement le zéro de la fonction, c’est à dire le point x0 où f(x = x0) = 0. 4. Trouver les points de maximum et minimum local de f.

Mathématiques et Python

Le langage Python seul ne sait pas faire grand chose dans le domaine mathématique, comme

tracer une fonction, calculer des valeurs de fonctions usuelles, réaliser des opérations matricielles,...

Cependant, de nombreux modules ont été développés pour pallier ce manque, parmi lesquels in

convient de citer : scip y n umpy matplotlib

A noter que le module

p ylab in tègreces trois mo duleset ip ython. L"objectif de ce document n"est bien entendu pas d"être exhaustif sur ce qu"il est possible de

faire avec python et ces modules, mais juste de donner quelques points d"entrée sur ces librairies

et de proposer des illustrations par l"exemple de leur utilisation. Dans la mesure du possible, les exemples collent "pas trop loin" du programme officiel de maths MPSI.

1 Ce que l"on peut faire sans les modules...

1.1 Types

Les types de base qui peuvent être utiles dans la suite sont les suivants :

1.1.1 Types numériques

in teger(at tentionà la division en treen tiers!) float complex : l"imaginaire pur iest notéjen python. A tout instant, il est possible d"accéder au type d"une variableaen tapanttype(a) Toute variable définie avec un type change de type lors d"une nouvelle affectation. On peut

aussi changer de type à l"aide des fonctionsint();float(). L"une des caractéristiques importantes

de Python est le typage dynamique. Cependant, si certaines opérations provoquent un changement de type, certaines restent interdites.

1.1.2 Conteneurs

listes (par exemple tab= [1;2;3;4;5]) index (les indices de listes commencen tà 0 : par exem plea[2]donne 3) slices ( a[1 : 3]donne[2;3])

Le typage dans les listes est faible, on peut combiner différents types numériques (ou non comme

des chaînes de caractères, des booléens...)

De nombreuses fonctions sont associées à ces listes (concaténation, recherche de sous-chaînes...).

1

1.2 Opérateurs élémentaires

Les opérateurs classiques suivantes sont disponibles : 1. 2. mo dulo: % 3. exp osant: * * 4. division en tière:// (par exemple 9//2=4) 5. op érateursde comparaison : ==, !=,<>, <,<=,>,>= 6. op érateursd"affectation : =,+=,-=,*=,/=,%=,**=,// = 7.

les op érateursbit à bit : &(et),k(ou),^(XOR),~(complément à 1),<<(décalage à gauche),

>>(décalage à droite) 8. op érateurslogiques : and, or, not 9. op érateursd"appartenance (sur des t ypescomme des c haînes): in, not in 10. op érateursd"iden tité: is, is not

1.3 La librairie standard math

Pour disposer des fonctions mathématiques usuelles, la librairie d"origine du python se nomme math. On peut alors d"importer juste les fonctions nécessaires par from math import cos, log ou toutes les fonctions mathématiques par from math import *. Dans le premier cas l"inconvénient

est qu"il faut savoir à l"avance les fonctions utilisées par la suite, dans le deuxième cas on risque de

surcharger inutilement la mémoire. A noter que pour manipuler des complexes, il faut importer le module cmath en plus du module math (par exemple pour réaliser des produits de complexes).

1.4 Un exemple : calcul d"intégrales

Pour illustrer les capacités de base de Python, nous proposons de calculer de manière numérique

la valeur deI=Rb af(x)dx, en utilisant trois méthodes classiques : la métho dedes rectangles : In1X i=0(xi+1xi)fxi+xi+12 la métho dedes trap èzes: Ih" f(a)+f(b)2 +n1X i=1f(xi)# la métho dede Simpson : Ih6 f(a) +f(b) + 4n1X i=0f(x2i+1) + 2n1X i=1f(x2i)# avech=ban etxk=a+kh2 et où(x0xn)est une subdivision régulière de l"intervalle[a;b]de pash

Le code

1 donne le source p ythonp ermettantde réaliser ces trois appro ximations. 2 #coding: u tf8defrectangles ( f , a ,b ,n) :#Methoded esr ectangles S=0

foriinxrange (0 ,n) :xi=a+(ba)i / float (n)xj=a+(ba)( i +1)/ float (n)S+= f (( xi+xj ) /2.0)( xjxi )returnSdeftrapezes ( f , a ,b ,n) :#Methoded est rapezes

S=0

foriinxrange (0 ,n) :xi=a+(ba)i / float (n)xj=a+(ba)( i +1)/ float (n)S+= ( f ( xi )+f ( xj ) ) /2.0( xjxi )returnSdefsimpson ( f , a ,b ,n) :#Methoded eS impson

S=0

foriinxrange (0 ,n) :xi=a+(ba)i / float (n)xj=a+(ba)( i +1)/ float (n)S+= ( xjxi )( f ( xi )+4f (( xi+xj ) /2.0)+f ( xj ) ) /6.0returnSdeffn (x) :#fonctiona i ntegrer

return4.0/(1+(x3)(x3))defmain () :print"par rectangles : ", rectangles ( fn ,0. ,5. ,100) ;print"par trapèzes : ", trapezes ( fn ,0. ,5. ,100) ;print"par Simpson : ", simpson ( fn ,0. ,5. ,100) ;main()

Listing 1 - Approximation numérique d"une intégrale par trois méthodes classiques

1.5 Un autre exemple autour des suites

Prenons un exemple classique, celui du calcul d"une estimation du nombre d"or à l"aide de la suite de Fibonacci. Le code 2 présen tele calcul des npremiers termes de la suite de Fibonacci u

0= 1;u1= 1etun=un1+un2;n2ainsi que la valeur absolue de la différence avec le

nombre d"or 1+p5 2 3 #coding: u tf8deffibonacci (n) :a = b = 1. foriinrange (n) :a , b = a + b , a printabs (( a/b)(1+50.5)/2)returnbdefmain() :fibonacci (30) main()

Listing 2 - Calcul approché du nombre d"or

Exercice 1Proposer un code permettant de calculer ces mêmes quantités de manière récursive.

Exercice 2Proposer un code permettant de calculer la somme des éléments d"une suite quelconque indicés par un ensemble d"entiersJ

1.6 Un dernier exemple : zéro d"une fonction

Le code

3 présen teun calcul simple d"un zéro d" unefonction dans un in tervalledonné, en utilisant une approche dichotomique.

#coding: u tf8deff (x) :returnx2 +20x12defzero ( f , a ,b) :iff (a)f (b) >0:print("La fonction ne s""annule pas dans l""intervalle ["+str (a)+","+str (b)+"]")return0while( abs (ab)>1e3) :m=(a+b) /2.

printmiff (m)f (a) >0:a=m else:b=m print("la solution de f(x)=0 est "+str (m) )returnmprint( zero ( f ,10. ,10.) ) Listing 3 - Zéro d"une fonction sur un intervalle par dichotomie. 4

Exercice 3Produire un code qui calcule le zéro d"une fonction en utilisant la méthode de Newton

(algorithme 1 ) :Algorithm 1:Méthode de NewtonEntrées:N;;f;fp;x0 n 0 x n x0 répéterx n xnf(xn)f p(xn) n n+ 1 sifp(xn)< alorsDivision par zero fin jusqu"à f(xn)f p(xn)

< OUn > N;Exercice 4Calculer une approximation deen utilisant par exemple les deux résultats classiques :

26
=1X n=11n 2et2 =1X n=14n24n21

2 ... Et là où ça va mieux : utilisation des librairies

Python présente l"avantage de recourir aux modules pour le développement de fonctions ou

d"ensembles de fonctionnalités spécifiques. Cela permet une grande flexibilité et une dynamique

de développement importante. Parmi ces modules nous nous intéressons particulièrement dans la

suite à Numpy, Scipy et Matplotlib. Suivant la distribution de Python choisie, l"ensemble de ces

modules, avec d"autres, est automatiquement installé lors de l"installation de Python. Si ce n"est

pas le cas il y a toujours la possibilité de les installer a posteriori.

2.1 Présentation rapide des modules

Ces modules fournissent un ensemble d"objets ainsi qu"un groupes de fonctions permettant de

manipuler nombre d"objets de façon simple et très performantes dans le cadre du calcul scientifique.

Voici la description donnée par le site officiel de Numpy (http ://www.scipy.org, numpy.scipy.org )

SciPy is a collection of mathematical algorithms and convenience functions built on the Numpy extension for Python. It adds significant power to the interactive Python session by exposing the user to high-level commands and classes for the manipulation and visualization of data. With SciPy, an interactive Python session becomes a data-processing and system-prototyping environment ri- valing sytems such as MATLAB, IDL, Octave, R-Lab, and SciLab. NumPy is the fundamental package needed for scientific computing with Python. It contains among other things : a p owerfulN-dimensional arra yob ject- sophisticated (broadcasting) func tionsto olsfor in- tegrating C/C++ and Fortran code useful linear algebra, F ouriertransform, and random n umbercapabilities. 5

Besides its obvious scientific uses, NumPy can also be used as an efficient multi-dimensional contai-

ner of generic data. Arbitrary data types can be defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases. Scipy est un ensemble qui comprend de nombreux modules utiles pour des scientifiques : cluster : information theory functions (cu rrently,vq and kmeans) w eave: compilation of n umericexpress ionsto C++ for fast execution fftpac k: fast F ouriertransform mo dulebased on fftpac kand fft wwhen a vailable ga : gen eticalgorithms io : r eadingand writing n umericarra ys,MA TLAB.mat, and Matrix Mark et.m txfiles in tegrate: n umericin tegrationfor b oundedand u nboundedranges. ODE solv ers. in terpolate: in terpolationof v aluesfrom a sample data set. optimize : constrained and unconstrained optimization metho dsand ro ot-findingalgorithms signal : signal pro cessing(1-D and 2 -Dfiltering, filter design, L TIsystems, etc.) sp ecial: sp ecialfunction t ypes(b essel,gamma, airy ,etc.) stats : statistical functions (stdev, v ar,mean, etc.) linalg : linear algeb raand BLAS routines base don the A TLASimplemen tationof LAP ACK sparse : Some sparse matrix supp ort.LU factorization and solving Sparse linear systems. Enfin Matplotlib permet de visualiser en 2D des données.

2.2 Quelques exemples de Numpy

Numpy ajoute le type array qui est similaire à une liste (list) avec la condition supplémentaire

que tous les éléments sont du même type.

Le code

4 présen tequelques exemples d"instan tiationde matrices simple s. 6 #coding: u tf8importnumpy as np#t ableau1 D a1 = np . array ([1 , 2 , 3 , 4] , float ) printa1#tableau2 D a2=np . array ( [ [ [ 1 , 2 ] , [ 3 , 4 ] ] , [ [ 5 , 6 ] , [ 7 , 8 ] ] ] ) printa2#matricesd e1 un=np . ones (5) printun#matriced iagonale d = np . diag (a1) printd#matriceb ande d1 = np . diag (a1,1)printd1#matriceà c oefficientsa léatoiresd ans[ 0, 1] r = np . random . rand (3 ,3) printr#I dentité i = np . eye (5) printi#M atricen ulle z = np . zeros (5) printz

Listing 4 - Définitions de matrices

Les opérations classiques sur la matrices sont disponibles à l"aide de numpy : addition, multipli-

cation par un scalaire, produit matriciel...Le code 5 présen tequelques exemples de ces op érations. 7 #coding: u tf8importnumpy as npA = np . random . rand (3 ,3)

B=np . diag ( [ 1 . , 2 . , 3 . ] )

v = np . array ( [ 3 . , 4 . , 5 . ] , float ) a ddition

C1 = A+B

C2 = 2.+A

multiplication

D1 = 2A# coefficientsd eA m ultipliésp ar2 D2 = B3# coefficientsd eB à l ap uissance3 D3 = AB# m ultiplicationt ermeà t ermeD4 = np . dot (A,B)#m ultiplicationm atricielle

D5 = np . dot (A, v)

produit m atrice vecteur

D6 = np . kron (A,B)

produit d e

K ronecker

test

E1 = A renvoie u ne m atrice d e b ooléens e ffectuant l e t est bo = np . array ([1 ,0. ,0] , bool )

E2=B[ bo ]

extrait l es

é léments

d e B q ui c orrespondent l a v aleur v raie d e b o

E3=A[A>0.5]

Listing 5 - Opérations sur les matrices

Bien entendu, numpy permet facilement de faire du calcul numérique matriciel : calcul du rang

d"une matrice, inversion d"une matrice, résolution de systèmes linéaires. A titre d"exemple, le code

6 présen tequelques p ossibilitéso ffertespar le mo dule. 8 #coding: u tf8importnumpy as npimportnumpy. linalg as nlA = np . random . rand (3 ,3) b = np . array ( [ 3 . , 4 . , 5 . ] , float )

Transposition

d une m atrice

Aprime=A. transpose ()

Rang d une m atrice r = np . rank (A)

Inverse

d une m atrice

Ainv = nl . inv (A)

attention t ester s i A e st i nversible

Résolution

d e s ystèmes l inéaires x = nl . solve (A,b) calcul d es

é léments

p ropres nl . eig (A) valeurs p ropres m atrice d e p assage

Calcul

d e n ormes n1 = nl .norm(A, np . inf ) ; n2 = nl .norm(A,np . inf ) ;n3 = n1 = nl .norm(A,2) ; n4 = n1 = nl .norm(A,"fro") ; Listing 6 - Un peu d"algèbre linéaire avec numpy Exercice 5Proposer un code qui code la décomposition de Cholesky d"une matrice A. Comparer

avec l"appel à numpy.linalg.cholesky. Pour rappel, l"algorithme de Cholesky est le suivant :Algorithm 2:Méthode de Choleskypourk2 f1ngfairea

kk a kkk1X p=1a 2kp! 2 pouri2 fk+ 1ngfairea ik 1a kk a ikk1X p=1a ipakp! fin finNotons que numPy propose de nombreux autres atouts, que nous vous conseillons de décou- vrir dans la documentation de ce module. A titre d"exemple, citons la classe poly1d qui gère les polynômes à une variable, documentée comme suit : 9

classnumpy. poly1d (c_or_r , r=0, variable=None) [ source ]A onedimensional polynomialclass.A convenienceclass, used to encapsulate natural operations on polynomials so thatsaid operations may take on their customary formincode ( see Examples) .Parameters :

c_or_r : array_like

The polynomials coefficients ,indecreasing powers ,ori fthe value of the secondparameterisTrue , the polynomials roots ( values where the polynomial evaluatesto 0) . For example , poly1d ([1 , 2 , 3]) returns an object that represents ,

whereas poly1d ([1 , 2 , 3] , True) returns one that represents . r : bool , optional If True , c_or_r specifies the polynomials roots ; the defaultisFalse .variable : str , optional Changes the variable used when printing pfromx to variable ( see Examples) .Examples

Construct the polynomial :

>>> p = np . poly1d ([1 , 2 , 3]) >>>printnp . poly1d (p)2

1 x + 2 x + 3

Evaluate the polynomial at :

>>> p(0.5) 4.25

Find the roots :

>>> p. r array ([1.+1.41421356 j ,1.1.41421356 j ])>>> p(p. r )

array ([4.44089210e16+0.j ,4.44089210e16+0.j ])These numbersinthe previous line represent (0 , 0) to machine precisionShow the coefficients :

>>> p. c array ([1 , 2 , 3]) Display the order ( the leading zerocoefficients are removed) :>>> p. order 2

Show the coefficient of the kth powerinthe polynomial (whichisequivalent to p.c[( i +1) ]) :>>> p [1]

2 Polynomials can be added , subtracted , multiplied ,anddivided ( returns quotientandremainder ) : >>> pppoly1d ([ 1 , 4 , 10 , 12 , 9]) >>> (p3 + 4) / p( poly1d ([ 1. , 4. , 10. , 12. , 9 . ] ) , poly1d ([ 4 . ] ) )

asarray (p) gives the coefficient array , so polynomials can be usedinall functionsthat accept arrays :

Listing 7 - Documentation de la classe poly1d

10 >>> p2# s quareo fp olynomialpoly1d ([ 1 , 4 , 10 , 12 , 9]) >>> np . square (p) s quare o f i ndividual c oefficients array ([1 , 4 , 9]) The variable usedinthe string representation of p can be modified , using thevariable parameter : >>> p = np . poly1d ([1 ,2 ,3] , variable="z")>>>printp2

1 z + 2 z + 3

Construct a polynomialfromits roots :>>> np . poly1d ([1 , 2] , True)

poly1d ([ 1 ,3, 2])Thisisthe same polynomial as obtained by :>>> np . poly1d ([1 ,1])np . poly1d ([1 ,2])poly1d ([ 1 ,3, 2])Attributes

coeffs order variable

Methods

__call__( val ) deriv ([m]) Return a derivative of this polynomial . integ ([m, k ]) Return an antiderivative ( indefinite integral ) of this polynomial . Listing 8 - Documentation de la classe poly1d : suite Exercice 6Proposer un code, utilisant la classe poly1d, et codant les polynômes de Legendre : P

0(x) = 1;P1(x) =x;

et pour tout entiern >0 (n+ 1)Pn+1(x) = (2n+ 1)xPn(x)nPn1(x):

2.3 Quelques exemples de Scipy

Scipy est construit à partir de Numpy, ce qui signifie qu"il faut avoir le module Numpy pour faire fonctionner le module Scipy. En effet nombre de fonctions ainsi que le type "ndarray" de Scipy sont en fait ceux définis dans Numpy.

2.3.1 Intégration numérique

Scipy propose une série de classes pour l"intégration. Cet ensemble se trouve regroupé dans le

sous-modulescipy:integrate. L"intégration peut se faire sur un intervalle, à partir d"un échantillon

de points ou encore servir à résoudre des équations différentielles (cf. paragraphe 2.3.2

Le code

9 reprend le calcul de l"in tégraledécrit dans le paragra phe 1.4 , mais en utilisant trois fonctions fournies par la librairie 11 #coding: u tf8fromnumpyimportfromscipyimportintegratedeffn (x) :#fonctiona i ntegrer

return4.0/(1+(x3)(x3))defmain () :print"par Scipy : ", integrate . quad( fn ,0 ,5)print"Romberg par Scipy : ", integrate . romberg( fn ,0 ,5)#Subdivisiond el " i ntervallep arp asr égulier

x = linspace (0 ,5 ,1000) y=fn (x) print"trapezes par Spicy", integrate . trapz (y , x , dx = 0.1)main() Listing 9 - Approximation numérique d"une intégrale en utilisant Spicy

2.3.2 Résolution d"une équation différentielle ordinaire

On souhaite par exemple résoudre l"équation différentielle d2ydt

2=ay+bdydt

pourt2[0;10]et

une condition initiale sur y et sa dérivée. Les modules d"intégration de Scipy (et plus précisément

odeint) permettent de trouveryet, en prenant un peu d"avance sur l"affichage (cf. section2.4 ), on peut tracer la fonction résultat. Le code 10 prop oseune solution à ce problème.

#coding: u tf8importnumpy as npfromscipy . integrateimportodeintimportmatplotlib . pyplot as plt#dérivéed ey ( ent antq uet ableau: y [ 0]e stl af onction, y [ 1]l ad érivée)

defderiv (y , t ) :a =2.0b =0.1returnnp . array ([ y [1] , ay[0]+by [1] ])tps = np . linspace (0.0 ,10.0 ,1000)

valeurs i n i t i a l e s d e y e t d equotesdbs_dbs27.pdfusesText_33

[PDF] python intégration numérique

[PDF] exercice python euler

[PDF] le médecin malgré lui acte 2 scène 4

[PDF] méthode dichotomie python

[PDF] le message andrée chedid résumé détaillé

[PDF] résolution équation différentielle matlab ode45

[PDF] le message andrée chedid genre

[PDF] algorithme méthode d'euler implicite matlab

[PDF] méthode de tir équation différentielle

[PDF] le message andrée chedid quiz

[PDF] le message andrée chedid extrait

[PDF] méthode euler implicite matlab

[PDF] le message andrée chedid texte intégral

[PDF] fonction ode45 matlab

[PDF] memoire de fin detude en telecommunication