Forum: PC-Programmierung Formel in phyton code


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Tester (Gast)


Bewertung
0 lesenswert
nicht lesenswert

von Bernd (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Meine Glaskugel sagt, dass dein Problem vermutlich der Exponent ist.

Schau mal in der Doku von Python nach:

https://docs.python.org/3.6/library/math.html#module-math
>math.pow(x, y)
>Return x raised to the power y. Exceptional cases follow Annex ‘F’ of the
>C99 standard as far as possible. In particular, pow(1.0, x) and pow(x, 0.0)
>always return 1.0, even when x is a zero or a NaN. If both x and y are
>finite, x is negative, and y is not an integer then pow(x, y) is undefined,
>and raises ValueError.
>Unlike the built-in ** operator, math.pow() converts both its arguments to
>type float. Use ** or the built-in pow() function for computing exact
>integer powers.

von lks (Gast)


Bewertung
0 lesenswert
nicht lesenswert
T = 1
h = 5
P = 3
p0 = P*(1-((0.0065*h)/(T+0.0065*h+273.15)))**(-5.257)

wobei P hier als Konstante angenommen wird. Könnte nach der Fromel aber 
auch eine Funktion o.ä. sein. Dafür lieferst du zu wenig Informationen.

von Daniel A. (daniel-a)


Bewertung
0 lesenswert
nicht lesenswert
1
def seaLevelPressure(P,T,h):
2
  return P * ( 1.0 - ( 0.0065*h ) / ( T + 0.0065*h + 273.15 ) )**-5.257

von Tester (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Kann man das auch etwas eleganter lösen mit der pow Funktion? Daran 
hänge ich grad

von mh (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Klar, die Doku sagt: The two-argument form pow(x, y) is equivalent to 
using the power operator: x**y.

von Tester (Gast)


Bewertung
0 lesenswert
nicht lesenswert
also

pow( P*(1-((0.0065*h)/(T+0.0065*h+273.15))),(-5.257)) ?

von Heiko G. (heikog)


Bewertung
0 lesenswert
nicht lesenswert
Eleganter ist das aber auch nicht gerade, und man muss den 
Operatorenvorrang selbst berücksichtigen, also Exponentiation vor 
Multiplikation:

P * Pow(...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.