Numpy wurzel complexe Formeln

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
goldjunge91
User
Beiträge: 8
Registriert: Sonntag 15. Januar 2023, 16:33

Hi,
Bin neu hier und ein mega noob was programmieren angeht.
Ich suche ein Weg um complexe mathematische Formeln zu lösen. Ansich klappt alles wie ich will aber alles ab plus minus geteilt, scheitere ich leider dran.
Ich würde gern
Die Formeln in den Fotos umsetzen.
Was mir fehlt ist quasi Wurzel von
3wurzel von zu berechnen
Hoffe das mir jemand helfen kann vielen Dank für die Mühe schon mal.

Bild
Bild
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Bei dem image-Hoster gibt es ein BBCode-Feld, das du kopieren kannst. Und den Code dann hier einfügen. Dann klappt's auch mit den Bildern. Bitte in Zukunft selbst machen.

Und zur eigentlichen Frage: die dritte Wurzel kann zb mit numpy.pow(wert, 1/3) berechnet werden.
goldjunge91
User
Beiträge: 8
Registriert: Sonntag 15. Januar 2023, 16:33

__deets__ hat geschrieben: Sonntag 15. Januar 2023, 16:52 Bei dem image-Hoster gibt es ein BBCode-Feld, das du kopieren kannst. Und den Code dann hier einfügen. Dann klappt's auch mit den Bildern. Bitte in Zukunft selbst machen.

Und zur eigentlichen Frage: die dritte Wurzel kann zb mit numpy.pow(wert, 1/3) berechnet werden.
danke hab es geändert.

leider funktioniert das mit numpy.pow nicht.

ich probiere es wie folgt zum testen:

Code: Alles auswählen

import numpy
wurzel=numpy.pow(10/15, 1/3)
d=3.4*wurzel
ich versuche grad die Formel aus dem ersten bild
Benutzeravatar
Dennis89
User
Beiträge: 1556
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

kann es sein das 'pow' von 'math' ist?
Kann man nicht einfach:

Code: Alles auswählen

(10/15)**(1/3)
schreiben?

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
goldjunge91
User
Beiträge: 8
Registriert: Sonntag 15. Januar 2023, 16:33

Dennis89 hat geschrieben: Sonntag 15. Januar 2023, 17:09 Hallo,

kann es sein das 'pow' von 'math' ist?
Kann man nicht einfach:

Code: Alles auswählen

(10/15)**(1/3)
schreiben?

Grüße
Dennis
Also es funktioniert jetzt fast.

Code: Alles auswählen

mv=10
obd=15
wurzel = np.sqrt(np.divide(mv, obd))
d=wurzel
print(d)

Code: Alles auswählen

#wurzel = np.sqrt(np.divide(mv, obd)**1/3)
#d=wurzel#
der teil mit den ** funktioniert leider nicht wenn ich in meinen Taschenrechner 3wurzel 10/15 rechne kommt 0,8735 raus.
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Warum funktioniert ** nicht? Gibt es eine Fehlermeldung? Wie lautet die? Die Quadratwurzel ist natürlich etwas anderes als die Kubikwurzel.
Benutzeravatar
Dennis89
User
Beiträge: 1556
Registriert: Freitag 11. Dezember 2020, 15:13

Also bei mir passts:

Code: Alles auswählen

Python 3.11.1 (main, Dec  7 2022, 00:00:00) [GCC 12.2.1 20221121 (Red Hat 12.2.1-4)] on linux
>>(10/15)**(1/3)
0.8735804647362989
Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
goldjunge91
User
Beiträge: 8
Registriert: Sonntag 15. Januar 2023, 16:33

Dennis89 hat geschrieben: Sonntag 15. Januar 2023, 17:29 Also bei mir passts:

Code: Alles auswählen

Python 3.11.1 (main, Dec  7 2022, 00:00:00) [GCC 12.2.1 20221121 (Red Hat 12.2.1-4)] on linux
>>(10/15)**(1/3)
0.8735804647362989
Grüße
Dennis
okay danke bei mir kam die ganze zeit 0,222 raus. hatte die klammer falsch gesetzt
Bild
goldjunge91
User
Beiträge: 8
Registriert: Sonntag 15. Januar 2023, 16:33

Dennis89 hat geschrieben: Sonntag 15. Januar 2023, 17:29 Also bei mir passts:

Code: Alles auswählen

Python 3.11.1 (main, Dec  7 2022, 00:00:00) [GCC 12.2.1 20221121 (Red Hat 12.2.1-4)] on linux
>>(10/15)**(1/3)
0.8735804647362989
Grüße
Dennis
vielen vielen dank. Es funktioniert jetzt.

Bild
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

@goldjunge91: Wenn du Code oder Fehlermeldungen posten willst, mach das bitte nicht als Bilder sondern benutze Code-Tags. Code-Tags werden automatisch eigefügt, wenn du den </> Button im "vollständigen Editor" drückst. Zwischen die Tags gehört dein Code und ggf. eine dazu passende Ausgabe.
goldjunge91
User
Beiträge: 8
Registriert: Sonntag 15. Januar 2023, 16:33

sparrow hat geschrieben: Sonntag 15. Januar 2023, 17:39 @goldjunge91: Wenn du Code oder Fehlermeldungen posten willst, mach das bitte nicht als Bilder sondern benutze Code-Tags. Code-Tags werden automatisch eigefügt, wenn du den </> Button im "vollständigen Editor" drückst. Zwischen die Tags gehört dein Code und ggf. eine dazu passende Ausgabe.
sorry. werd ich machen. Also soweit funktioniert alles.
jetzt würde ich gerne einige Ergebnisse auf oder ab runden. mein aktueller code sieht so aus

Code: Alles auswählen

import numpy as np

#gegeben
ka=1.2
kt=1.0
p=7.5
la=560
fges=9.2
rm=470
ren=295
obwn=245
alpha0=0.7
ta=2.5
n=80
t = 7
vwt =1.2
wirkungsgrad=0.8
tnennmotor=(9550*p)/n
tnenn=tnennmotor*wirkungsgrad
teq=ka*tnenn
tmax=ta*tnenn
mbmaxst = (fges*la)/4
mbnenndy = mbmaxst
mbeq = mbnenndy*ka
mbmaxdy = ta*mbnenndy

mv=(np.sqrt((mbeq**2)+0.75*(alpha0*teq)**2))*1000
obd=kt*obwn
wurzel = (3.4)*((mv/obd)**(1/3))
d = wurzel
dd = d - t
wt = 0.2*d**3
wb = (0.012)*((d+dd)**3)
obmax = mbmaxdy/wb
obf = vwt*kt*ren
ttmax =tmax/wt 
ttf = (vwt*kt*ren)/np.sqrt(3)
sf = 1/ (np.sqrt(((obmax/obf)**2)+((ttmax/ttf)**2)))
print(wurzel)
print(mv,obd)
print(d,dd)
print(wb)
Als Beispiel zum aufrunden: d auf die nächste volle zahl, aktuell wäre das Ergebnis 63,xxx sollte dann aufrunden auf 64.
Ich möchte das Ergebnis nicht gerundet ausgegeben bekommen sondern soll er es gerundet in die Zeile:
dd = d - t
übernehmen.

Die print am ende sind nur eine zwischen Kontrolle für mich aktuell.
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Da du numpy vewendest: Was sagt denn dessen Dokumentation dazu?
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Für nichts, was Du tust, brauchst Du numpy. Statt np.sqrt benutze ich ›** 0.5‹
Und dann wäre math.ceil das richtige.
goldjunge91
User
Beiträge: 8
Registriert: Sonntag 15. Januar 2023, 16:33

sparrow hat geschrieben: Sonntag 15. Januar 2023, 19:26 Da du numpy vewendest: Was sagt denn dessen Dokumentation dazu?
danke hab es erst nur so probiert

Code: Alles auswählen

dd1= np.ma.round(d, decimals=0)
was ich etwas nervig fand da ich jeden wert in eine neue variable schreiben musste aber hab nochmal geschaut, und

Code: Alles auswählen

around
gefunden.

und mach es jetzt so:

Code: Alles auswählen

wurzel = np.around(3.4*((mv/obd)**(1/3)))
goldjunge91
User
Beiträge: 8
Registriert: Sonntag 15. Januar 2023, 16:33

Sirius3 hat geschrieben: Sonntag 15. Januar 2023, 19:43 Für nichts, was Du tust, brauchst Du numpy. Statt np.sqrt benutze ich ›** 0.5‹
Und dann wäre math.ceil das richtige.
ihm eigentlich gibt es kein besonderen grund bzw. den Grund das ich anfange mir für Festigkeitsnachweise (statisch und dynamische) kleines script schreiben wollte das ich nachher nur noch füttern brauche mit mein infos die ich gegeben habe um dann mir dann eine Übersicht als text ausgibt. ja bis jetzt hab ich das auch noch nicht ganz raus wie das sqrt und oder die ** nutze aktuell sind ein paar Ergebnisse falsch. Erst recht wenn ich wie in der sf Formel 2x Potenzen drin habe die ich dann addieren soll davon die wurzel und das alles durch 1 teilen :D
Benutzeravatar
Dennis89
User
Beiträge: 1556
Registriert: Freitag 11. Dezember 2020, 15:13

goldjunge91 hat geschrieben: Sonntag 15. Januar 2023, 19:54 bis jetzt hab ich das auch noch nicht ganz raus wie das sqrt und oder die ** nutze aktuell sind ein paar Ergebnisse falsch.
DIe '**' leitet die Potenz ein. Also x im Quadraht wäre x**2 und x hoch 4 wäre x**4. 'sqrt' gibt die Quadratwurzel einer Zahl zurück, das ist die "normale" Wurzel. Die kann man aber auch berechnen wenn man die Zahl mit hoch 1/2 potenziert. Die Quadrahtwurzel von x wäre dann x**(1/2) bzw. x**0.5. Wenn du bspw. die dritte Wurzel von x im Quadrat berechnen willst, dann wäre das x**(2/3).

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Antworten