Python Solver gibt beim Ausführen des Code keine Werte zurückPython

Python-Programme
Anonymous
 Python Solver gibt beim Ausführen des Code keine Werte zurück

Post by Anonymous »

Ich muss die vertikale Eigenfrequenz und die horizontale Eigenfrequenz eines Strahls berechnen. Dazu erhielt ich zwei Werte der vertikalen und horizontalen Eigenfrequenz, die ich so nah wie möglich annähern muss. Nun, um dies zu tun, muss ich den Trägheitsmoment in y und z -Richtung und in der Oberfläche verwenden. Die Werte, die ich in diesem Fall berechnen muss, sind also die Breite (b), die Höhe (h) und die Dicke (T_H und T_V). Dafür habe ich zwei Löser verwendet. Der erste berechnet die Werte für B und H und der zweite die Werte für T_H und T_V. Jetzt funktioniert der erste Solver gut und gibt mir numerische Werte. Der zweite gibt mir jedoch irgendwie nicht und gibt mir nur []. Im Folgenden habe ich den Code eingelegt, den ich verwendet habe. Ich kann nicht verstehen, was ich in diesem Code falsch mache, und ich hoffe, dass mir jemand mit seinem helfen kann, weil ich seit ein paar Tagen dabei bin und es nicht herausfinden kann. < Br />import numpy as np
from sympy import symbols, Eq, solve

w_2_vb_g=4.341
w_2_hb_g=2.601
E=210E9
rho=7700
L=100
kL_2=7.85
kL_3=11.00

B,H,t_h,t_v=symbols('B H t_h t_v', real=True, positive=True)
w_2_vb_rec=Eq(((((kL_2)**2)/(L**2))*(((E*((1/12)*H*B**3))/(rho*(B*H)))**(1/2))), w_2_vb_g)
w_2_hb_rec=Eq(((((kL_2)**2)/(L**2))*(((E*((1/12)*B*H**3))/(rho*(H*B)))**(1/2))), w_2_hb_g)
Solution=solve((w_2_hb_rec,w_2_vb_rec), (B,H))
print(Solution)

print("Solutions:")
for var, val in Solution.items():
print(f"{var}: {val}")

list_from_dict = list(Solution.items())
print("List from dict:", list_from_dict)

B=round(float(list_from_dict[1][1]*1.03),3)
H=round(float(list_from_dict[0][1]*1.03),3)

B_list=np.array([t_h, (H-2*t_h), B, t_v])
H_list=np.array([B, t_v, t_h, (H-2*t_h)])
D0_list=np.array([0, (0.5*B-0.5*t_v), (0.5*H-0.5*t_h),0])

w_2_vb=Eq(((((kL_2)**2)/(L**2))*(((E*(2*(((1/12)*B_list[0]*H_list[0]**3)+B_list[0]*H_list[0]*D0_list[0]**2)+2*(((1/12)*B_list[1]*H_list[1]**3)+B_list[1]*H_list[1]*D0_list[1]**2))/(rho*(((2*(B_list[0]*H_list[0])))+(2*(B_list[1]*H_list[1]))))**(1/2))))), w_2_vb_g)
w_2_hb=Eq(((((kL_2)**2)/(L**2))*(((E*(2*(((1/12)*B_list[2]*H_list[2]**3)+B_list[2]*H_list[2]*D0_list[2]**2)+2*(((1/12)*B_list[3]*H_list[3]**3)+B_list[3]*H_list[3]*D0_list[3]**2))/(rho*(((2*(H_list[2]*B_list[2])))+(2*(H_list[3]*H_list[3]))))**(1/2))))), w_2_hb_g)
Solution_beam=solve((w_2_hb,w_2_vb), (t_h,t_v))
print(Solution_beam)
< /code>
unten sehen Sie die Ausgabe, die meine Konsole gibt: < /p>
{H: 0.279980237079456, B: 0.467279588297547}
Solutions:
H: 0.279980237079456
B: 0.467279588297547
List from dict: [(H, 0.279980237079456), (B, 0.467279588297547)]
[]
< /code>
Ich habe bereits verschiedene Löser wie linSolve () oder LELVE_UNDMINMINATE_COEffs ausprobiert, aber auch nicht funktioniert. Dies könnte auf meinen Code zurückgeführt werden und in diesem Fall nicht funktioniert, aber so weit ich es sehen kann. Ich habe auch berücksichtigt, indem ich die Gleichungen in mehreren Teilen aufgeteilt habe, um es für den Löser umfassender zu machen. Dies ist jedoch nicht möglich, da mir kein Startwert für den Trägheitsmoment oder die Oberfläche erhalten wurde, die die einzigen zwei Optionen sind, in denen es funktionieren können. Hoffentlich kann jemand helfen, vielen Dank im Voraus!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post