Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 02-12-2016 19:22:11

Terces
Membre
Inscription : 16-07-2015
Messages : 466

Installer Numpy

Bonsoir/bonjour

J'aimerais tracer des courbes sur python, j'ai cru comprendre qu'il fallait installer Numpy.
En fait c'est pas aussi simple que d'installer un simple programme :(
J'ai cru comprendre qu'une "bonne solution" était d'installer pip pour ensuite simplement faire "pip install numpy" dans l'interface python.
Mais même pip, je n'y suis pas arrivé, je suis allé sur ce lien : https://pypi.python.org/pypi/pip#downloads
mais quand ca ne marche pas, quand je clic sur "download" ca descend juste la page et puis je ne sais plus quoi faire.

Vous souvenez vous de comment vous avez fait ?


La somme des inverses de la suite de Sylvester converge vers 1 plus vite que toute autre série somme infinie d'inverses d'entiers convergeant vers 1.

Hors ligne

#2 02-12-2016 20:02:57

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 943

Re : Installer Numpy

Salut jeune-homme,

Alors, non, numpy n'est pas fait pour tracer des courbes c'est une extension mathématique qui combinée à Scipy permet de faire des calculs dingues...
Les courbes, c'est le domaine de matplotlib...Si tu es encore en version 2.x, je te conseille d'installer la version 3.5.2.
Sauf erreur les versions 3.x sont livrées avec pip (Dans la 3.5, c'est sûr) puisque quand j'ai changé de disque dur je me suis servi de pip pourb installer mkl+numpy, scipy et ensuite matplotlib.
Si j'ai bien compris mkl, est un accélérateur indispensable pour scipy...

Avant toute chose donc :
- version Python ?
- Windows 7, 8 ou 10 ? (En principe ce sont des versions 64 bits qui sont préinstallées sur les bécanes)
- 32 bits ou 64 bits ? (En principe ce sont des versions 64 bits qui sont préinstallées sur les bécanes)
  Pour Windows 7 --> clic gauche bouton Démarrer, puis clic droit sur ordinateur, puis gauche sur Propriétés et tu pourras répondre 32/64 bits...

Moi, j'ai  windows 7 64 bits et donc Python 3.5.2 64 bits...
Les programmeqs 32 bits peuvent tourner sur les systèmes 64 bits (c'est du gâchis), le contraire, non.
Selon ta réponse, j'ai gardé les fichiers que j'ai téléchargés et la façon de les installer, je pourrai te les faire parvenir...
N-B : les fichiers numpy,scipy,matplotlib sont maintenant des roues : extension .whl...

Tiens, regarde un peu ce qu'on peut faire avec matplotlib...
http://matplotlib.org/gallery.html


A te lire


Arx Tarpeia Capitoli proxima...

Hors ligne

#3 02-12-2016 23:33:55

Terces
Membre
Inscription : 16-07-2015
Messages : 466

Re : Installer Numpy

Re,

Merci pour l’intérêt que tu porte à mon problème :)
Alors j'ai python 3.5  32 bit
Windows 10 (64 bit)

J'aimerais faire des programmes à propos du calcul numérique / interpolation, cette année en binôme on doit donner un cours sur ca, je crois qu'au final on va devoir parler des courbes brachistochrone ou tautochrone ou quelque chose dans le genre.

Tu penses que c'est quel module qui serait le plus adapté pour étudier ca numériquement ?

Dernière modification par Terces (02-12-2016 23:35:03)


La somme des inverses de la suite de Sylvester converge vers 1 plus vite que toute autre série somme infinie d'inverses d'entiers convergeant vers 1.

Hors ligne

#4 03-12-2016 10:39:27

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 943

Re : Installer Numpy

Re,

Ben là, il te faut la totale : numpy+scipy et matplotlib pour les dessins.
Je te conseille de désinstaller ton Python 32 bits pour télécharger à la place la version 64 bits mieux adaptée : ton Python gérera mieux le processeur, ses ressources et ta RAM. Et installe "pour tout le monde" quand on te pose kla question il le mettra à la racine de C:\, sinon, il va le planquer dans C:\Utilisateurs\TonNom\... et encore un ou deux sous-dossiers
En 32 bits Python ne pourra accéder qu'à environ 2,7 Go de mémoire vive. En général les systèmes 64 bits embarquent 8 Go de RAM !
A titre de comparaison : j'avais 1 barrette de 8 Go, je l'ai remplacée par 4 barrettes de 4 : Windows  7 est à l'aise et marche comme un avion et  Python est à l'aise aussi.
Téléchargement
https://www.python.org/ftp/python/3.5.2 … -amd64.exe

Puis télécharger ici : http://www.lfd.uci.edu/~gohlke/pythonlibs/
*  "mkl+numpy" Chercher dans la liste Numpy (en gras) puis cliquer sur la 3e ligne avant la fin de la liste numpy :
     numpy‑1.12.0b1+mkl‑cp35‑cp35m‑win_amd64.whl

* Scipy.  Chercher dans la liste Scipy (en gras) puis cliquer sur la 3e ligne avant la fin de la liste Scipy :
  Il sera écrit :
   SciPy is software for mathematics, science, and engineering.
   Requires numpy+mkl.
   Install numpy+mkl before installing scipy
   Cliquer en dessous 3e ligne avant la fin de la liste Scipy :
   scipy‑0.18.1‑cp35‑cp35m‑win_amd64.whl

*  Et enfin Matplotlib (Remonter par rapport à Scipy) Il sera écrit :
Requires numpy, dateutil, pytz, pyparsing, cycler, setuptools, and optionally pillow, pycairo, tornado, wxpython, pyside, pyqt4, ghostscript, miktex, ffmpeg, mencoder, avconv, or imagemagick.
Rassure-toi : avec numpy seul, ça marche très bien (j'ai testé chez moi)
    clique sur la ligne (4e avant la fin de la liste Matplotlib)
    matplotlib‑2.0.0b4‑cp35‑cp35m‑win_amd64.whl

Quand tu auras chargé tout ça et installé le Python 3.5, dis-le moi, je te dirai où les poser dans Python puis lancer pip pour l'installation (j'avais galéré pour ça et j'avais dû demander de l'aide)...

Repère bien le nom de ton dossier Python et où il est exactement...

Tout ce que fait Numpy : https://docs.scipy.org/doc/numpy/reference/
Tout ce que fait Scipy : https://docs.scipy.org/doc/scipy/reference/
Tout ce que fait Matplotlib  : http://matplotlib.org/
Je vois que la doc officielle demande installation, préalablement à matplotlib, de setuptools... Moi, je ne l'ai pas fait (pas vu !) et ça marche quand même (je n'ai peut-être pas toutes les fonctionnalités dispo)...
Là, c'est toi qui voit...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#5 06-12-2016 15:36:10

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 943

Re : Installer Numpy

Re,

Et alors, on en est où ?

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#6 06-12-2016 20:35:18

Terces
Membre
Inscription : 16-07-2015
Messages : 466

Re : Installer Numpy

Re^^

Ben je ne pensais pas qu'il faudrait "faire tout ca", je le verrais pendant les vacances je penses.
En attendant j'ai fait un truc sur python (et turtle) pour intégrer avec les rectangles/trapèzes/simpson/Monte Carlo   ca marche très bien mais j'ai un peu galérer pour obtenir une représentation visuelle (changement d’échelle et tout ca...).


Voila le code si ca t’intéresse^^ ("Im", "Ip" les bornes d'intégration "pt" pour le nombre de points que tu prends(impair à cause de simpson) et "pt" à la fin pour monte carlo)
L'inconveniant c'est que si ton ecran n'a pas les mêmes dimensions que le mien tu vas avoir un mauvais rendu.
J'essayerais de le refaire ces vacances avec matplotlib.





from math import*
from turtle import*
from random import uniform
bgcolor()
def f(x) :
    return sin(x)
Im=0
Ip=pi/2
pt=9


ht()
tracer(5)
def axe():
    up()
    goto(0,-700*(maxa+mina)/(2*(abs(maxa)+abs(mina))))
    down()
    fd(2000)
    fd(-4000)
    up()
    goto(-1400*(Ip+Im)/(2*(abs(Ip)+abs(Im))),0)
    rt(90)
    down()
    fd(1000)
    fd(-2000)   


maxa=f(Ip)
for i in range(0,1000):
    if f(Im+i*(Ip-Im)/1000) > maxa :
        maxa=f(Im+i*(Ip-Im)/1000)

mina=f(Im)
for i in range(1,1001):
    if f(Im+i*(Ip-Im)/1000) < mina :
        mina=f(Im+i*(Ip-Im)/1000)

axe()

up()
goto(-1400*(Ip+Im)/(2*(abs(Ip)+abs(Im)))-90,-350+10)
down()
write(mina)
up()
goto(-1400*(Ip+Im)/(2*(abs(Ip)+abs(Im)))-90,350)
down()
write(maxa)
up()
goto(-700+5,-700*(maxa+mina)/(2*(abs(maxa)+abs(mina)))-15)
down()
write(Im)
up()
goto(700,-700*(maxa+mina)/(2*(abs(maxa)+abs(mina)))-15)
down()
write(Ip)
up()
color('blue')
for i in range(0,1400):
    goto(-700+i,-350+(f(Im+(i+1)*(Ip-Im)/1400)-mina)*(700/(maxa-mina)))
    down()
color('black')
up()



   
############################
## Méthode des Réctangles ##
############################

##p=10
##pt=p

s=0
for i in range(0,pt-1):
    x1=Im+(Ip-Im)*i/(pt-1)
    x2=Im+(Ip-Im)*(i+1)/(pt-1)
    y1=f(Im+(Ip-Im)*i/(pt-1))
    a=y1
    s+=a*x2-a*x1

    #tt
    x_1=(x1-Im)*(1400/(Ip-Im))
    x_2=(x_1-Im)*(1400/(Ip-Im))
    y_1=(y1-mina)*(700/(maxa-mina))
    aa=y_1
    up()
    for j in range(int(1400*i/(pt-1)),int(1400*(i+1)/(pt-1))):
        goto(-700+j,-350+aa)
        down()
    goto(-700+j,-700*(maxa+mina)/(2*(abs(maxa)+abs(mina))))
    goto(-700+j,-350+(f(Im+j*(Ip-Im)/1400)-mina)*(700/(maxa-mina)))

print("rectangle : ",s)


##########################
## Méthode des Trapèzes ##
##########################

##p=10
##pt=p+1

s=0
for i in range(0,pt-1):
    x1=Im+(Ip-Im)*i/(pt-1)
    x2=Im+(Ip-Im)*(i+1)/(pt-1)
    y1=f(Im+(Ip-Im)*i/(pt-1))
    y2=f(Im+(Ip-Im)*(i+1)/(pt-1))
    a=(y1-y2)/(x1-x2)
    b=(x1*y2-x2*y1)/(x1-x2)
    s+=(a*x2**2)/2+b*x2-((a*x1**2)/2+b*x1)

    #tt
    x_1=(x1-Im)*(1400/(Ip-Im))
    x_2=(x2-Im)*(1400/(Ip-Im))
    y_1=(y1-mina)*(700/(maxa-mina))
    y_2=(y2-mina)*(700/(maxa-mina))
    aa=(y_1-y_2)/(x_1-x_2)
    bb=(x_1*y_2-x_2*y_1)/(x_1-x_2)
    up()

    for j in range(int(1400*i/(pt-1)),int(1400*(i+1)/(pt-1))):
        goto(-700+j,-350+aa*j+bb)
        down()

print("Trapèze : ",s)


########################
## Méthode de Simpson ##
########################

##p=3
##pt=2*p+1

s=0
for i in range(0,pt-2,2):
    x1=Im+(Ip-Im)*i/(pt-1)
    x2=Im+(Ip-Im)*(i+1)/(pt-1)
    x3=Im+(Ip-Im)*(i+2)/(pt-1)
    y1=f(Im+(Ip-Im)*i/(pt-1))
    y2=f(Im+(Ip-Im)*(i+1)/(pt-1))
    y3=f(Im+(Ip-Im)*(i+2)/(pt-1))
    a=(-(x1*(y2-y3)-x2*(y1-y3)+x3*(y1-y2)))/((x1**2-x1*(x2+x3)+x2*x3)*(x2-x3))
    b=(x1**2*(y2-y3)-x2**2*(y1-y3)+x3**2*(y1-y2))/((x1**2-x1*(x2+x3)+x2*x3)*(x2-x3))
    c=(x1**2*(x2*y3-x3*y2)-x1*(x2**2*y3-x3**2*y2)+x2*(x2-x3)*x3*y1)/((x1**2-x1*(x2+x3)+x2*x3)*(x2-x3))
    s+=(a*x3**3)/3 + (b*x3**2)/2 + c*x3 -((a*x1**3)/3 + (b*x1**2)/2 + c*x1)

    #tt
    x_1=(x1-Im)*(1400/(Ip-Im))
    x_2=(x2-Im)*(1400/(Ip-Im))
    x_3=(x3-Im)*(1400/(Ip-Im))
    y_1=(y1-mina)*(700/(maxa-mina))
    y_2=(y2-mina)*(700/(maxa-mina))
    y_3=(y3-mina)*(700/(maxa-mina))
    aa=(-(x_1*(y_2-y_3)-x_2*(y_1-y_3)+x_3*(y_1-y_2)))/((x_1**2-x_1*(x_2+x_3)+x_2*x_3)*(x_2-x_3))
    bb=(x_1**2*(y_2-y_3)-x_2**2*(y_1-y_3)+x_3**2*(y_1-y_2))/((x_1**2-x_1*(x_2+x_3)+x_2*x_3)*(x_2-x_3))
    cc=(x_1**2*(x_2*y_3-x_3*y_2)-x_1*(x_2**2*y_3-x_3**2*y_2)+x_2*(x_2-x_3)*x_3*y_1)/((x_1**2-x_1*(x_2+x_3)+x_2*x_3)*(x_2-x_3))
    up()
    for j in range(int(1400*i/(pt-1)),int(1400*(i+2)/(pt-1))):
        goto(-700+j,-350+aa*j**2+bb*j+cc)
        down()
## tt

print("Simpson : ",s)


############################
## Méthode de Monte Carlo ##
############################

pt=10000
tracer(pt)
c=0
for i in range(0,pt):
    color('green')
    a=uniform(Im,Ip)
    b=uniform(mina,maxa)
    up()
    goto(-700+(a-Im)*1400/(Ip-Im),-350+(b-mina)*700/(maxa-mina))
    down()
    if f(a)>b and b>0:
        color('red')
        c+=1
    if f(a)<b and b<0:
        color('red')
        c-=1
    dot(3)

if mina>0:
    print("Monte Carlo : ",(Ip-Im)*(maxa-mina)*(c/pt)+mina*(Ip-Im))
elif maxa<0:
    print("Monte Carlo : ",(Ip-Im)*(maxa-mina)*(c/pt)+maxa*(Ip-Im))
else:
    print("Monte Carlo : ",(Ip-Im)*(maxa-mina)*(c/pt))


La somme des inverses de la suite de Sylvester converge vers 1 plus vite que toute autre série somme infinie d'inverses d'entiers convergeant vers 1.

Hors ligne

#7 06-12-2016 20:51:26

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 943

Re : Installer Numpy

Bonsoir,

Méthode Monte Carlo : voila qui est intéressant ! Je m'étais penché dessus un jour, et j'avais laissé tomber, je vais donc pouivoir m'y remettre...
Ce jour-là, j'avais écrit ce petit programme de calcul de $\pi$ via plusieurs méthodes :
http://www.bibmath.net/forums/viewtopic … 968#p21968

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#8 06-12-2016 22:16:39

Terces
Membre
Inscription : 16-07-2015
Messages : 466

Re : Installer Numpy

Re,

Dans ton programme le print n'avait pas besoin de parenthèses en 2005 ?
Je n'ai pas entendu parlé de la méthodes des tangentes(tu peux me dire rapidement le principe ? j'ai pas trouvé grand chose sur le net), j'ai suivi ce lien avant de programmer : http://userpages.irap.omp.eu/~rbelmont/ … ration.pdf
La "méthode de Gauss-Legendre" a apparemment une très bonne précision, mais je ne sais pas si je pourrais la programmer, à voir.


La somme des inverses de la suite de Sylvester converge vers 1 plus vite que toute autre série somme infinie d'inverses d'entiers convergeant vers 1.

Hors ligne

#9 07-12-2016 12:47:52

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 943

Re : Installer Numpy

Salut,

Non, ce programme a été écrit en Python 2.6 : le print n'était pas encore une fonction.
Quant à la méthode des tangentes, j'avais oublié 11 ans plus tard...
Je vais revérifié ce que j'ai fait, parce que à la lumière de ce document :
http://math.univ-lyon1.fr/capes/IMG/pdf/integrales.pdf  voir 2e
j'ai l'impression bizarre que ce que j'ai fait est faux... Pourtant la valeur de [tex]\pi[/tex] colle...
Prog modifié pour tourner en 3.x:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from decimal import Decimal
import decimal as d


def titre():
    print()
    print()
    print()
    print ("                  *******************************************")
    print ("                  *     +-+ APPROXIMATIONS de Pi +-+        *")
    print ("                  *******************************************")
    print()
    print()
    print()
    print ("Calcul de la valeur approchée de l'intégrale de 0 à 1")
    print ("de f(x)=4/(1+x^2) par :")

def affiche_resultat(p,s):
    print ("\n\n")
    print ("-------------------------------------------------------")
    print()
    print ("            *****************************")
    print ("   **********    Résultat du calcul      ***********")
    print ("            *****************************")
    print ()
    print ("Valeur calculée de Pi :",s, "avec un pas de",p)
    print ("Valeur  connue  de Pi : 3.1415926535897932384626...")
    print()
    print ("-------------------------------------------------------\n\n")
   
   
def sortie():
    print()
    print()
    print ("   Au revoir !")

def incorrect():
    print ("           ...Désolé, valeur incorrecte. Veuillez recommencer ...")

def pas_nb():
    print ("             ... Ce n'est pas un nombre. Veuillez recommencer...")    

def message(cx):
    ch={0:'       ... Pour retourner au menu,',
        1:'... Pour la suite,',2:'... '}
    print()
    print ("       ",ch[cx],"Presser ENTREE ...")
    input("")

def pas():
    ok=0
    print ("\n\n")
    while not ok:
        try:
            chp=input("Choisissez un pas (0.1, 0.01, 0.001...) : ")
            l=len(chp)
            p=float(chp)
            if p>0 and p<1:
                if chp=="0."+(l-3)*"0"+"1" :
                    ok=1
                else:
                    incorrect()
                    message(2)
            else:
                incorrect()
                message(2)          
        except ValueError:
            pas_nb()
            message(1)
    return p
         
def rectangles():
    # Somme des aires des rectangles de largeur x-p/2 ; x+p/2
    p=0
    p=pas()
    nt,x,s=int(1/p),p/2,0
    for k in range(nt):
        s+=4/(1+(x+k*p)**2)*p
    affiche_resultat(p,s)

def trapezes():
    s=0
    p=pas()
    nt,x,s=int(1/p),p/2,0
    for k in range(nt):
        s+=4*(1/(1+(k*p)**2)+1/(1+((k+1)*p)**2))/2
    s=s*p
    affiche_resultat(p,s)

def tangentes():
    s=0
    p=pas()
    nt,x=int(1/p),p/2
    for k in range(nt):
        s+=4/(1+(x+k*p)**2)
    s=s*p
    affiche_resultat(p,s)

def simpson():
    d.getcontext().prec = 30
    s,a,b=0,0,1
    p=pas()
    nt=int(1/p)
    for k in range(1,nt):
       s+=Decimal(4*(1+k%2))/Decimal(str(1+(a+k*p)**2))
    s=Decimal(str(p))/Decimal(3)*(Decimal(4)/Decimal(1+a**2)+Decimal(4)/Decimal(1+b**2)+Decimal(str(2*s)))
    affiche_resultat(p,s)
   
fin=5
while fin>0:
    titre()
    print ("      1.la méthode des rectangles")
    print ("      2.la méthode des trapèzes")
    print ("      3.la méthode des tangentes")
    print ("      4.la formule de Simpson composée")  
    print ()
    print (" 0. Sortie du programme\n")
    chx_menu='5'
    while chx_menu=='5':
        chx_menu=input(" Votre choix : ")
        try:
            fin = int(chx_menu)
            choix2 = {'1': rectangles,
                      '2': trapezes,
                      '3': tangentes,
                      '4': simpson,
                      '0': sortie}
            if not fin in [0,1,2,3,4]:
                chx_menu='5'
                incorrect()
        except ValueError:
            pas_nb()
            chx_menu='5'
    choix2[chx_menu]()

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#10 27-12-2016 11:12:17

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 943

Re : Installer Numpy

Re,

Hello Terces ???
Tu installes quand numpy, scipy, matplotlib and co ?

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#11 28-12-2016 14:21:19

Terces
Membre
Inscription : 16-07-2015
Messages : 466

Re : Installer Numpy

Hello yoshi ^^
Je ne sais pas mais je le ferais un jour, tu n'as pas écrit pour rien ;)
@+

Dernière modification par Terces (28-12-2016 16:45:36)


La somme des inverses de la suite de Sylvester converge vers 1 plus vite que toute autre série somme infinie d'inverses d'entiers convergeant vers 1.

Hors ligne

#12 11-03-2017 01:27:07

Terces
Membre
Inscription : 16-07-2015
Messages : 466

Re : Installer Numpy

Re :)
J'ai eu un problème avec l’installation de numpy et les autres, je les ai trouvé dans le lien que tu m'as indiqué mais mon pc ne savait pas avec quel logiciel les ouvrir et moi non plus ...

Enfin bref j'ai téléchargé "Anaconda" : https://www.continuum.io/downloads
Et dedans il y a un truc qui s’appelle "Spyder" sur lequel on peut coder et j'ai testé, on peut import numpy et matplotlib et sans doute d'autres librairies.

Voila a quoi ca ressemble :
424461spyder.png


La somme des inverses de la suite de Sylvester converge vers 1 plus vite que toute autre série somme infinie d'inverses d'entiers convergeant vers 1.

Hors ligne

#13 11-03-2017 07:17:33

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 943

Re : Installer Numpy

Salut,

J'ai eu un problème avec l’installation de numpy et les autres, je les ai trouvé dans le lien que tu m'as indiqué mais mon pc ne savait pas avec quel logiciel les ouvrir et moi non plus ...

Tu as eu ou tu as encore ?
La procédure d'installation est spécifique : si on la respecte ça marche bien...
Quant à Anaconda c'est une variante de Python avec une surcouche dont Spyder qui est un IDLE amélioré...
Par contre, j'ignore s'il n'a pas été rajouté dans Anaconda d'autres fonctions, méthodes, classes, mots-clés qui ne figurent pas dans le python d'origine...
Voilà un peu de lecture :
http://eric.univ-lyon2.fr/~ricco/cours/ … aconda.pdf
J'ai survolé rapidement, ça a l'air bien fait, mais je ne sais pas si ce doc contient la réponse à mon questionnement ci-dessus.

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#14 19-03-2017 22:43:33

Terces
Membre
Inscription : 16-07-2015
Messages : 466

Re : Installer Numpy

Salut,

j'ai eu des problèmes mais ayant maintenant spyder qui fonctionne très bien je n'ai pas besoin de les résoudre.
J'ai réussi à faire le squelette du programme que je voulais, maintenant je dois le finaliser.

@+


La somme des inverses de la suite de Sylvester converge vers 1 plus vite que toute autre série somme infinie d'inverses d'entiers convergeant vers 1.

Hors ligne

Pied de page des forums