sympy plot oltre intervallo di default

enricovela

Utente Attivo
443
124
CPU
Ryzen 3600
Dissipatore
Thermaltake Water 3.0 240
Scheda Madre
MSI Gaming plus max x470
HDD
970 evo plus;Crucial MX500 1TB; GIGABYTE M.2 PCIe SSD; p300
RAM
16 GB @3000 MHz
GPU
quadro fx 3800
Audio
Audioengine D1
Monitor
LG 32QK500
PSU
Straight power 11 650 W
Case
Cooler Master MB510L
Net
FTTH Tim
OS
Pop!_OS
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
CPU
Intel i5 3570K @ 4,5Ghz
Dissipatore
Scythe Mugen 2
Scheda Madre
Gigabyte Z77X-UD3H
HDD
Samsung 840 PRO 256GB + Sandisk Ultra 250GB + Sandisk Plus 960GB
RAM
2x8GB Crucial Ballistix Tactical @2000Mhz CL9
GPU
XFX RX480 GTR Black Edition
Audio
Auzentech X-Fi Forte
Monitor
AOC i2369VW
PSU
Seasonic P660
Case
eh?
Periferiche
Razer Naga HEX v2
OS
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
Reazioni: enricovela

enricovela

Utente Attivo
443
124
CPU
Ryzen 3600
Dissipatore
Thermaltake Water 3.0 240
Scheda Madre
MSI Gaming plus max x470
HDD
970 evo plus;Crucial MX500 1TB; GIGABYTE M.2 PCIe SSD; p300
RAM
16 GB @3000 MHz
GPU
quadro fx 3800
Audio
Audioengine D1
Monitor
LG 32QK500
PSU
Straight power 11 650 W
Case
Cooler Master MB510L
Net
FTTH Tim
OS
Pop!_OS
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
CPU
Intel i5 3570K @ 4,5Ghz
Dissipatore
Scythe Mugen 2
Scheda Madre
Gigabyte Z77X-UD3H
HDD
Samsung 840 PRO 256GB + Sandisk Ultra 250GB + Sandisk Plus 960GB
RAM
2x8GB Crucial Ballistix Tactical @2000Mhz CL9
GPU
XFX RX480 GTR Black Edition
Audio
Auzentech X-Fi Forte
Monitor
AOC i2369VW
PSU
Seasonic P660
Case
eh?
Periferiche
Razer Naga HEX v2
OS
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
Discord Ufficiale Entra ora!