Graph - exponentiell durch zwei Punkte

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@SkrixlerAnon: das kommt davon, dass Du nicht exakt arbeitest. So lange irgendwelche Formeln zu raten, bis man meint, dass man ein Ergebnis hat, ist nicht der richtige Weg. So lange in einem Forum herumzujammern, bis jemand Mitleid hat, anscheinend doch:

Code: Alles auswählen

b = (p1/p2) ** (1/(V1-V2))
a = p1 / b ** V1
Was Du mit der Kurve anfangen willst, weiß ich aber immer noch nicht. Ich zitiere mal:
Ich will ein Volumen-Druck-Diagramm machen.
Dafür ist das immer noch die falsche Formel.
SkrixlerAnon
User
Beiträge: 30
Registriert: Dienstag 7. Februar 2017, 20:05
Wohnort: Bayern
Kontaktdaten:

Ich rate keine Formeln.

https://www.amazon.de/Formelsammlung-Te ... 3941951914

Und noch das Schulbuch:
https://www.amazon.de/Technologie-Energ ... B009CPX5DS

Ich arbeite exakt.
Für eine isotherme Kurve ist das die richtige Formel.
Ich jammere nicht. Ich will einfach nur die richtige Lösung die ich verstehe.
Also ich hab nochmal nach gerechnet und meine Exponentialfunktion ist die gleiche wie deine.
Zuletzt geändert von SkrixlerAnon am Sonntag 12. Februar 2017, 23:44, insgesamt 1-mal geändert.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@SkrixlerAnon: Du benutzt selbst die richtige Formel zum Berechnen von p2, behauptest aber dann ernsthaft, Deine Exponentialfunktion sei noch richtiger?
SkrixlerAnon
User
Beiträge: 30
Registriert: Dienstag 7. Februar 2017, 20:05
Wohnort: Bayern
Kontaktdaten:

Deine Exponentialfunktion und meine sind ein und dieselben.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@SkrixlerAnon: ich habe nur mein Basiswissen in Physik und sonst versuche ich Dich nur mit dezenten Hinweisen in die richtige Richtung zu stupsen. Und dort verwirrt mich halt, dass Du auf der einen Seite sagst, Du möchtest das für die Schule (Physik) machen, auf der anderen Seite aber eine Formel zusammenrätst, die am Anfang e^(-x), dann a*e^(-b*x)+c und schließlich a*b^x hieß. Du mußt ja mit irgendeiner Begründung Dir diese Formeln ausgedacht haben. Boyle hat z.B. Versuche mit unterschiedlich dicken Kolben gemacht und herausgefunden, dass ein Zusammenhang zwischen Druck und Volumen besteht. Wie kamst Du darauf, das Boyle nicht recht hatte, sondern dass es ein anderer Zusammenhang sein müßte?
SkrixlerAnon
User
Beiträge: 30
Registriert: Dienstag 7. Februar 2017, 20:05
Wohnort: Bayern
Kontaktdaten:

Ich habe mir die Formeln nicht ausgedacht.
Die erste Formel hab ich aus einer pdf datei die 3000 Seiten hat. Dann hab ich gemerkt das es so nicht gehen kann. Deswegen hab ich mich mal über Exponentialfunktion schlauer gemacht. Ich hab halt nachgeschaut ob es noch andere Formeln gibt. Dann kam ich auf a*b^x. Ich hab mir dann Videos angeschaut wie ich eine Exponentialfunktion die durch zwei Punkte geht aufgestellt wird. Danach hab ich aufgestellt. Ich hab dann versucht die Funktion in Python einzusetzen, aber ich bekam andauernd ein Fehler mit float und pow. Ich wusste halt nicht wie ich eine Wurzel angebe. Dann hab ich mir Geogebra heruntergelanden. Dann wurde mir einiges klar als ich ein Video über das eingeben von einer Wurzel in Geogebra. Anschließend bekam ich andauernd ein Fehler, wie du schon erklärt hast das V und P nicht in der selben Diemension sind.
Dann hab ich mich mal schlau gemacht ob ich diesen Fehler mit np.exp() weg bekomm und dann kam ich auf die Formel a*e^(-b*x), aber die war dann auch falsch. Und dann hab ich nur noch rum probiert.

Im Schulbuch stehr das p*V= konstant (wobei T=konstant).
Und dann steht noch drin das man mit dieser Formel auch rechnen kann p1*V1=p2*V2.
Ich hab nichts anderes gemacht als die Formel umzustellen und in Python eingesetzt. Ich wollte und hab nicht behauptet das Boyle nicht Recht hat.
Außer du verwechselst grad die isotherme Kurve mit der adiabaten Kurve, weil dann hast du Recht. Für die adiabaten Kurve gibt es natürlich andere Formeln, abee brauch ich noch nicht.


Gut das die erste Stunde entfällt sonst hätt ich den Text hier nicht geschrieben. ^^
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@SkrixlerAnon: weder eine adiabatische noch eine isotherme Zustandsgleichung enthalten Exponentialfunktionen. Wenigstens Dein Schulbuch hat soweit recht. Ich glaube, Du hast Dich da in etwas verrannt und siehst den Wald vor lauter Bäumen nicht mehr. Laß das Programm am besten ein paar Tage liegen und schau dann mit frischem Geist nochmal drauf. Oder zeig es Deinem Lehrer, der kann Dich besser auf Deinen Denkfehler stoßen lassen, als dass es über ein Forum möglich wäre.
SkrixlerAnon
User
Beiträge: 30
Registriert: Dienstag 7. Februar 2017, 20:05
Wohnort: Bayern
Kontaktdaten:

Danke.
Ich werde es meinem Lehrer zeigen. Vielleicht sieht er ja einen Fehler.
Aber das Programm für ein paar Tage liegen lassen kann ich leider nicht, weil wenn ich schon weiß das die richtige Lösung so nah ist kann ich das so nicht liegen lassen.

Ich werd mir jetzt weiter Pygame anschauen und dann schau ich mir das nochmal an. ^^

Und falls jemand lust hat kann er/sie/es sich ja mal den code anschauen.

[codebox=python file=Unbenannt.txt]# Druck (p2) berechnen
#p1 = float(input("Druck p1 in bar = "))
#V1 = float(input("Volumen V1 in l = "))
#V2 = float(input("Volumen V2 in l = "))

p1 = 1.0
V1 = 2.0
V2 = 0.25

p2 = (p1 * V1) / V2
print("Druck p2 in bar = %f" % float(p2))

# Graph (exponential) erstellen
import matplotlib.pyplot as plt
import numpy as np

a = float((p1/(((p1/p2)**(p1/1.75))**V2)))
b = float(((p1/p2)**(p1/1.75)))

V = np.arange(V2, V1, 0.1)
P = a*b**V

plt.plot(V, P)
plt.title("V-p-Zustandsdiagramm")
plt.ylabel("Druck p in e5 N/m²")
plt.xlabel("Volumen V in e-3 m³")
plt.grid(True)
plt.show()[/code]
Zuletzt geändert von Anonymous am Montag 13. Februar 2017, 17:47, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
SkrixlerAnon
User
Beiträge: 30
Registriert: Dienstag 7. Februar 2017, 20:05
Wohnort: Bayern
Kontaktdaten:

Ich glaub ich bin dem Ziel eines richtigen Graphen näher gekommen.
Nein ich bin nicht happy Beispielcodes aus dem Internet rauszufischen und es dann an meinem anzupassen.

[codebox=pycon file=Unbenannt.txt]# Druck (p2) berechnen
#p1 = float(input("Druck p1 in bar = "))
#V1 = float(input("Volumen V1 in l = "))
#V2 = float(input("Volumen V2 in l = "))

p1 = 1.0
V1 = 2.0
V2 = 0.25

p2 = (p1 * V1) / V2
print("Druck p2 in bar = %f" % float(p2))

# Graph (exponential) erstellen
import matplotlib.pyplot as plt
import numpy as np

a = float(((p2)**(p2/7)))
b = float(((p1/p2)**(4/7)))


V = np.arange(V2, V1, 0.01)

P = a*b**(V*20)
#a*b*np.exp(V)

plt.semilogx(V, P)

plt.title("V-p-Zustandsdiagramm")
plt.ylabel("Druck p in e5 N/m²")
plt.xlabel("Volumen V in e-3 m³")
plt.show()
[/code]

Die Form der Linie schaut gut aus. Die V-Achse schaut auch gut aus.
Die P-Achse ist aber leider nicht richtig. Also es werden zu kleine Werte angezeigt auf P-Achse.

Was mach ich falsch?

Achja bei Zeile 23 die 20 hab ich durchs probieren her bekommen. Ich weiß das es falsch ist so es zu machen, aber wie soll ich es sonst schaffen?
Ändere ich die Zahl dann wird die Form der Linie anders.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@SkrixlerAnon: und was soll die 7 in Zeile 17 und 18? Ist die auch geraten? Das ursprüngliche Problem, das alle andern Probleme nach sich zieht ist aber immer noch, dass die Formel in Zeile 23 geraten und falsch ist.
SkrixlerAnon
User
Beiträge: 30
Registriert: Dienstag 7. Februar 2017, 20:05
Wohnort: Bayern
Kontaktdaten:

Hab die Funktion noch etwas vereinfacht, deswegen die 7 und die 4 in Zeile 17 und 18.
Warum ist die Formel falsch?
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@SkrixlerAnon: ich glaube, wir drehen uns im Kreis. Der Zusammenhang zwischen Druck und Volumen ist einfach kein exponentieller.
SkrixlerAnon
User
Beiträge: 30
Registriert: Dienstag 7. Februar 2017, 20:05
Wohnort: Bayern
Kontaktdaten:

Besser?

[codebox=pycon file=Unbenannt.txt]# Graph (exponential) erstellen
# Soll durch S1(V1/P1) und S2(V2/P2) gehen.
import matplotlib.pyplot as plt
import numpy as np

p1 = 1.0
p2 = 8.0
V1 = 2.0
V2 = 0.25

#p2 = (p1 * V1) / V2
#print("p2 = %f" % float(p2))

a = float(((p2)**(p2/7)))
b = float(((p1/p2)**(4/7)))

V = np.arange(V2, V1, 0.01)
P = a*b**V
#a*b*np.exp(V)

plt.semilogx(V, P)

plt.title("Diagramm")
plt.ylabel("Y-Achse")
plt.xlabel("X-Achse")
plt.show()
[/code]

Die Funktion geht nicht durch die zwei Punkte im Python Diagramm. Aber im Taschenrechner schon.
Und was ist jetzt an der Formel falsch?
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

An der Formel ist falsch, dass es eine Exponentialfunktion ist. Dass a und b falsch berechnet, dieses Thema hatte wir schon vor einigen Wochen.
SkrixlerAnon
User
Beiträge: 30
Registriert: Dienstag 7. Februar 2017, 20:05
Wohnort: Bayern
Kontaktdaten:

Ich hab diese Funktion und wie ich es gerechnet habe meiner Mathelehrerin gezeigt und sie hat gesagt das ich es richtig berechnet hab. Sie hat nur noch "a" vereinfacht.
SkrixlerAnon
User
Beiträge: 30
Registriert: Dienstag 7. Februar 2017, 20:05
Wohnort: Bayern
Kontaktdaten:

a*b**V ist keine Exponentialfunktion. Was ist es dann?
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Physikalisch ist es keine Exponentialfunktion. Und wie man a und b richtig berechnet, verweiß ich Dich mal auf meinen Beitrag vom 12. Februar 2017, 22:37Uhr. Und zu ihrer Verteidigung hoffe ich mal, dass Du Deine Mathelehrerin falsch verstanden hast.
SkrixlerAnon
User
Beiträge: 30
Registriert: Dienstag 7. Februar 2017, 20:05
Wohnort: Bayern
Kontaktdaten:

Wenn sie es falsch verstanden hätte, dann hätte sie es durch gestrichen und nicht a vereinfacht. Und wie gesagt ist meine und deine Funktion gleich.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@SkrixlerAnon: wenn alles richtig wäre, würde die Kurve ja durch die beiden Punkte gehen.
SkrixlerAnon
User
Beiträge: 30
Registriert: Dienstag 7. Februar 2017, 20:05
Wohnort: Bayern
Kontaktdaten:

[codebox=python file=Unbenannt.txt]# Graph (exponential) erstellen
# Soll durch S1(V1/P1) und S2(V2/P2) gehen.
import matplotlib.pyplot as plt
import numpy as np

p1 = 1.0
p2 = 8.0
V1 = 2.0
V2 = 0.25

#p2 = (p1 * V1) / V2
#print("p2 = %f" % float(p2))

#a = float(((p2)**(p2/7)))
#b = float(((p1/p2)**(4/7)))

b = (p1 / p2) ** (1 / (V1 - V2))
a = p1 / b ** V1

V = np.arange(V2, V1, 0.01)
P = a*b**V
#a*b*np.exp(V)

plt.semilogx(V, P)

plt.title("Diagramm")
plt.ylabel("Y-Achse")
plt.xlabel("X-Achse")
plt.show()[/code]

So schaut es aus:
Bild

Die erste Kurve im Diagramm (vom Schulbuch) will ich machen/versuchen.:
Bild
Antworten