sympy plot oltre intervallo di default

enricovela

Utente Attivo
184
48
Hardware Utente
CPU
Ryzen 3600
Dissipatore
Stock
Scheda Madre
MSI Gaming plus max x470
Hard Disk
970 evo plus
RAM
16 GB @3000 MHz
Scheda Video
RX 5700 Pulse
Alimentatore
Straight power 11 650 W
Case
Cooler Master MB510L
Sistema Operativo
Ubuntu 18 / Windows 10
Sto provando a tracciare dei grafici con sympy, a partire dall'espressione simbolica della funzione.

Il mio problema è che traccia il grafico solo nell'intervallo di default [-10;10]

Ho provato a passare alla funzione plot l'argomento plot(self.x_t, xlim = [0,20]) ma, allunga solamente l'asse delle x. Il tracciamento della funzione si ferma sempre a 10. Qualcuno sa come risolvere?

Python:
from sympy import *

class Armonica:
    
    def __init__(self,x_0,v_0,wn):
        
        self.x_0 = x_0
        self.v_0 = v_0
        self.wn = wn
        
        self.A = self.x_0
        self.B = (self.v_0/wn)
        
        t = Symbol('t')
        
        ##############
        
        self.x_t = self.A*cos(self.wn*t)+self.B*sin(self.wn*t)
        self.x_tprime = self.x_t.diff(t)
        self.x_tsecond = self.x_tprime.diff(t)
        
        ###################################
        
        print self.x_t
        plot(self.x_t,xlim = [0,20])
        print self.x_tprime
        print self.x_tsecond
      


if __name__ == "__main__":
    
    a = Armonica(1,0,1)
 

1nd33d

Utente Attivo
653
279
Hardware Utente
CPU
Intel i5 3570K @ 4,5Ghz
Dissipatore
Scythe Mugen 2
Scheda Madre
Gigabyte Z77X-UD3H
Hard Disk
Samsung 840 PRO 256GB + Sandisk Ultra 250GB + Sandisk Plus 960GB
RAM
2x8GB Crucial Ballistix Tactical @2000Mhz CL9
Scheda Video
XFX RX480 GTR Black Edition
Scheda Audio
Auzentech X-Fi Forte
Monitor
AOC i2369VW
Alimentatore
Seasonic P660
Case
eh?
Periferiche
Razer Naga HEX v2
Sistema Operativo
Windows 10 64bit - Linux Mint 18
Segui quanto scritto nella documentazione: https://docs.sympy.org/latest/modules/plotting.html
e quindi devi scrivere
Codice:
plot (self.x_t, (symbols('x'), 0, 20))
Un paio di consigli:
- passa a python 3
- non usare mai "import *", non sai cosa potresti importare e quali nomi vai a mascherare. Piuttosto sii esplicito, nel tuo caso scrivi:
Codice:
from sympy import Symbol, plot, cos, sin, symbols
 
  • Mi piace
Reactions: enricovela

enricovela

Utente Attivo
184
48
Hardware Utente
CPU
Ryzen 3600
Dissipatore
Stock
Scheda Madre
MSI Gaming plus max x470
Hard Disk
970 evo plus
RAM
16 GB @3000 MHz
Scheda Video
RX 5700 Pulse
Alimentatore
Straight power 11 650 W
Case
Cooler Master MB510L
Sistema Operativo
Ubuntu 18 / Windows 10
Grazie per la dritta, con calma do un'occhiata alla documentazione.

Python:
from sympy import Symbol, plot,cos,sin


class Armonica:
   
    def __init__(self,x_0,v_0,wn):
       
       
        self.x_0 = x_0
        self.v_0 = v_0
        self.wn = wn
       
       
        self.A = self.x_0
        self.B = (self.v_0/wn)
       
       
       
        self.periodo = (int(6.2832/self.wn))
       
        t = Symbol('t')
       
        ##############
       
        self.x_t = self.A*cos(self.wn*t)+self.B*sin(self.wn*t)
        self.x_tprime = self.x_t.diff(t)
        self.x_tsecond = self.x_tprime.diff(t)
       
       
       
        a =  plot((self.x_t,(t,0,2*self.periodo)),(self.x_tprime,(t,0,2*self.periodo)),(self.x_tsecond,(t,0,2*self.periodo)))

if __name__ == "__main__":
   
    a = Armonica(1,0,1)
Mi piacerebbe dare un colore diverso per ogni funzione. L'unico modo che ho trovato per farlo è quello di istanziare singolarmente ogni singolo plot. Che mi sembra un po' scomodo.


Ps. ho installato anacoda3, qual'è la procedura migliore per rimuovere anaconda2 senza fare danni? Come sistema operativo uso Ubuntu.

Grazie
 

1nd33d

Utente Attivo
653
279
Hardware Utente
CPU
Intel i5 3570K @ 4,5Ghz
Dissipatore
Scythe Mugen 2
Scheda Madre
Gigabyte Z77X-UD3H
Hard Disk
Samsung 840 PRO 256GB + Sandisk Ultra 250GB + Sandisk Plus 960GB
RAM
2x8GB Crucial Ballistix Tactical @2000Mhz CL9
Scheda Video
XFX RX480 GTR Black Edition
Scheda Audio
Auzentech X-Fi Forte
Monitor
AOC i2369VW
Alimentatore
Seasonic P660
Case
eh?
Periferiche
Razer Naga HEX v2
Sistema Operativo
Windows 10 64bit - Linux Mint 18
Sinceramente non so aiutarti per i plot multipli, sympy l'ho solo provato un po' di tempo fa ma mai realmente usato.
Per disinstallare anaconda2 sotto ubuntu basta rimuovere la cartella dove è installato ed eventualmente correggere la variabile d'ambiente PATH in .bashrc e/o .profile. Se non hai dimestichezza, penso che ti puoi limitare a rimuovere la cartella di installazione.
 

Entra

oppure Accedi utilizzando