Graph - exponentiell durch zwei Punkte

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
SkrixlerAnon
User
Beiträge: 30
Registriert: Dienstag 7. Februar 2017, 20:05
Wohnort: Bayern
Kontaktdaten:

Also wenn ich dich richtig verstanden hab, dann heißt es das ich für V ein Bereich hab aber für P nur einen Wert habe.

Jetzt denk ich aber wiederum das ich das x gar nicht brauche, weil mein x eigentlich V ist.
Aber wenn ich V für x einsetze, dann ist die V Achse im Diagramm richtig aber mein P nicht.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@SkrixlerAnon: Genau, x ist V, aber was meinst Du damit, dass die V-Achse richtig ist, aber P nicht?
SkrixlerAnon
User
Beiträge: 30
Registriert: Dienstag 7. Februar 2017, 20:05
Wohnort: Bayern
Kontaktdaten:

Also die P Achse stimmt nicht.
Normalerweise ist P2 bei (0.25|8.0) aber jetzt ist der Punkt P2 im Graph bei (0.25|1).
Und P1 sollte bei (2.0|1) sein, aber jetzt ist es bei (1.95|0.13).

Also ich hab noch getestet ob die Exponentialfunktion richtig ist indem ich es in meinem Taschenrechner eingegeben hab und da geht sie auch die zwei Punkte. Also a und b ist richtig, aber mein hoch x ist nicht richtig

[codebox=pycon file=Unbenannt.txt]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

V = np.arange(V2, V1, 0.1)
#k = float((1/(((1/8)**(1/1.75))**2))*((1/8)**(1/1.75)))
#m = 4.84522
#P = m*k*np.exp(-k*V)

a = float((p1/(((p1/p2)**(p1/1.75))**V2)))
b = float(((p1/p2)**(p1/1.75)))
#x = 2
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]

Wär toll zu wissen ob ich hier Bilder einfügen kann, dann kannst du es nämlich sehen was ich mein.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@SkrixlerAnon: offensichtlich sind a und b nicht richtig.
[codebox=text file=Unbenannt.txt]
p1 = a * b ** V1
p2 = a * b ** V2

==> p1 / p2 = b ** (V1 - V2)
==> ln(p1 / p2) = ln(b) * (V1 - V2)
[/code]
Ich komm jedenfalls auf etwas anderes.
SkrixlerAnon
User
Beiträge: 30
Registriert: Dienstag 7. Februar 2017, 20:05
Wohnort: Bayern
Kontaktdaten:

Also meine Funktion lautet:

f(x) = 1/(((1/8)**1/1.75)**2)*(((1/8)**1/1.75)**x)

Genau so hab ich die Funktion in meinem Taschenrechner eingegeben und mein Taschenrechner zeigt mir die richtigen Werte an:

X | Y
0.25 | 8
2 | 1

Ich hab mir Geogebra heruntergeladen und dort schaut die Funktion richtig aus.
Sirius3
User
Beiträge: 17711
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: 17711
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: 17711
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: 17711
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: 17711
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: 17711
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: 17711
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.
Antworten