Hallo,
ich bin leider im Programieren noch nicht so vertraut und ich benötige die Hilfe für ein Uni Projekt.
Ich möchte eine Funktion berechnen mit einer Variablen im Intervall von 100 bis 150. Danach möchte ich diese Funktion plotten in einen Graphen. leider akzeptiert er mein Intervall irgendwie nicht:
ValueError Traceback (most recent call last)
~\AppData\Local\Tem in <module>
1 t_1 = np.linspace(100,150) #Grenzen
2 plt.title('Verlauf der Nutzlastmasse über Boosterbrenndauer') #Title der Grafik
----> 3 plt.plot(t_1, Booster_thrust(t_1)) #Darstellen der Grafik
4 plt.xlabel('Brenndauer [s] ') #Benennung der x-Achse
5 plt.ylabel('Nutzlast [kg]') #Bennenung der y-Achse
~\AppData\Local\Tem in Booster_thrust(t_1)
1 def Booster_thrust(t_1):
2 mp_B = 1803.45
----> 3 if ((t_1 >=100) and (t_1 <= 150)):
4 m_T_B = mp_B * t_1
5 else:
raise ValueError('Invalid number')
return m_T_B
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Ich wäre über die Hilfe sehr Dankbar.
Viele Grüße
Leon
Schleifen Problem beim Intervall
Du hast kein Interval, sondern einen Vektor mit 50 Zahlen zwischen 100 und 150.
Im allgemeinen kann man die Frage sind die Zahlen größer als 100 nicht beantworten, oder was wäre die Antwort ob 1, 3 und 7 größer als 5?
Und deshalb muß man bei solchen Fragen angeben, ob man ›alle Zahlen‹ oder ›mindestens eine Zahl‹ meint.
In dem Punkt ist die Fehlermeldung ziemlich ausführlich.
Wenn ich raten soll, meintest Du wahrscheinlich das:
Im allgemeinen kann man die Frage sind die Zahlen größer als 100 nicht beantworten, oder was wäre die Antwort ob 1, 3 und 7 größer als 5?
Und deshalb muß man bei solchen Fragen angeben, ob man ›alle Zahlen‹ oder ›mindestens eine Zahl‹ meint.
In dem Punkt ist die Fehlermeldung ziemlich ausführlich.
Wenn ich raten soll, meintest Du wahrscheinlich das:
Code: Alles auswählen
def Booster_thrust(t_1):
if not ((t_1 >=100).all() and (t_1 <= 150).all()):
raise ValueError('Invalid number')
mp_B = 1803.45
m_T_B = mp_B * t_1
return m_T_B
Dann nochmal eine Frage:
Ich habe die Funktion weiter geschrieben und hab jetzt einen quadratischen Graphen. Den y_Max haben ich schon. Wie kann ich nun den x-Wert davon ermitteln?
m_N_max = max(Booster_payload(t_1))
Danke für die Hilfe
Ich habe die Funktion weiter geschrieben und hab jetzt einen quadratischen Graphen. Den y_Max haben ich schon. Wie kann ich nun den x-Wert davon ermitteln?
m_N_max = max(Booster_payload(t_1))
Danke für die Hilfe
-
- User
- Beiträge: 491
- Registriert: Mittwoch 13. November 2019, 08:38
Ohne Kenntnis über die Struktur der Daten ist das schwierig zu beantworten. Das hier dürfte dich vermutlich weiterbringen: numpy.argmax().