[Python] Grafico
import matplotlib.pyplot as plt
import numpy as np
import math
def grafico(r) :
t = 0
volume = []
tempo = []
while t <= 120 :
volume_00 = 10**9+10**8*(1-math.exp(-t/100))-r*t
volume.append(volume_00)
tempo.append(t)
t += 1
plt.plot(tempo, volume)
plt.xlabel("Tempo")
plt.ylabel("Volume")
plt.grid('on')
plt.show()
def main() :
r = 10**7
Grafico = grafico(r)
main()Buonasera, dovrei creare un grafico con questi elementi ma non so come fermare il while quando "volume_00" diventa minore di zero, io ho messo "while t <= 120 :" ma forse ho sbagliato.
Perchè io dovrei aumentare t che inizialmente è zero finchè volume_00 non diventa minore di zero e diagrammare i risultati del volume_00 e del tempo.
Qualcuno mi può aiutare
Grazie
Risposte
Beh. Porlo uguale a 1 e mettere [inline]volume_00 > 0[/inline] come condizione nel while funziona?
Già provato e non funziona
Boh, a me mostra quel che deve se provo a farlo girare.
mi potresti far vedere come hai scritto chissà sbaglio io a scrivere per favore
import matplotlib.pyplot as plt
import numpy as np
import math
def grafico(r) :
t = 0
volume = []
tempo = []
volume_00 = 1
while volume_00 > 1 :
volume_00 = 10**9+10**8*(1-math.exp(-t/100))-r*t
volume.append(volume_00)
tempo.append(t)
t += 1
plt.plot(tempo, volume)
plt.xlabel("Tempo")
plt.ylabel("Volume")
plt.grid('on')
plt.show()
def main() :
r = 10**7
Grafico = grafico(r)
main()
Anche a te da lo stesso mio problema perchè se noti dal grafico la linea va sotto lo zero quindi l'ultimo valore è negativo
Beh, ma il ciclo si ferma, sarà un artefatto del visualizzatore; non me ne preoccuperei.

Il secondo punto invece chiede questo, io ho scritto questo:
def grafico(r) :
t = 0
volume = []
tempo = []
while t <= 120:
volume_0 = 10**9+10**8*(1-math.exp(-t/100))-r*t
if volume_0 < 0 : break
volume.append(volume_0)
tempo.append(t)
t += 1
plt.plot(tempo, volume)
plt.xlabel("Tempo")
plt.ylabel("Volume")
plt.grid('on')
plt.show()
def t_f(r,x) :
t = 0
volume = []
tempo = []
while t <= 120:
volume_0 = 10**9+10**8*(1-math.exp(-t/100))-r*t
if volume_0 < 0 : break
volume.append(volume_0)
tempo.append(t)
t += 1
def main() :
r = float(input("Inserire il valore di r: "))
x = float(input("Inserire il valore di x: "))
Grafico = grafico(r)
main()ma come faccio ad avere il tempo nel senso se io passo il 40 % come faccio a farmi dare il tempo che è passato affinchè il livello dell'acqua sia sceso del 40%
t = 10
while t >= 0.01:
t -= 0.1
print t
print round(t)prova ad adattare questi parametri al tuo codice,
e vedi se il risultato è come intedi tu.
Quindi vorresti aumentare t da zero e ridurre volume_00 controllando che non diventi minore di zero?
Premetto di non essere espertissima ma provo ad aiutarti sempre che possa essere di aiuto: Man mano che aumenti t controlli il valore del volume_00. Io ìnserirei un IF/ELSE sul volume e nel caso diventi <0 un BREAK che interrompe il ciclo ELSE CONTINUE.
Prova a cercare info su "Ciclo While, istruzioni break e continue". Ci sono vari esempi.
Premetto di non essere espertissima ma provo ad aiutarti sempre che possa essere di aiuto: Man mano che aumenti t controlli il valore del volume_00. Io ìnserirei un IF/ELSE sul volume e nel caso diventi <0 un BREAK che interrompe il ciclo ELSE CONTINUE.
Prova a cercare info su "Ciclo While, istruzioni break e continue". Ci sono vari esempi.