[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.