analytisch funktioniert noch nicht

This commit is contained in:
2025-11-04 14:18:17 +01:00
parent 610ea3dc28
commit 1c56b089f2
3 changed files with 92 additions and 31 deletions

View File

@@ -267,15 +267,23 @@ class EllipsoidTriaxial:
:param z:
:return:
"""
if z*np.sqrt(1-self.ee**2) <= np.sqrt(x**2 * (1-self.ee**2)+y**2) * np.sqrt(1-self.ex**2):
u = np.arctan(z*np.sqrt(1-self.ee**2) / np.sqrt(x**2 * (1-self.ee**2)+y**2) * np.sqrt(1-self.ex**2))
u_check1 = z*np.sqrt(1 - self.ee**2)
u_check2 = np.sqrt(x**2 * (1-self.ee**2) + y**2) * np.sqrt(1-self.ex**2)
if u_check1 <= u_check2:
u = np.arctan(u_check1 / u_check2)
else:
u = np.arctan(np.sqrt(x**2 * (1-self.ee**2)+y**2) * np.sqrt(1-self.ex**2) / z*np.sqrt(1-self.ee**2))
u = np.pi/2 * np.arctan(u_check2 / u_check1)
if y <= x*np.sqrt(1-self.ee**2):
v = 2*np.arctan(y/(x*np.sqrt(1-self.ee**2) + np.sqrt(x**2*(1-self.ee**2)+y**2)))
v_check1 = y
v_check2 = x*np.sqrt(1-self.ee**2)
if v_check1 <= v_check2:
v = 2 * np.arctan(v_check1 / (v_check2 + np.sqrt(x**2*(1-self.ee**2)+y**2)))
else:
v = np.pi/2 - 2*np.arctan(x*np.sqrt(1-self.ee**2) / (y + np.sqrt(x**2*(1-self.ee**2)+y**2)))
v = np.pi/2 - 2 * np.arctan(v_check2 / (v_check1 + np.sqrt(x**2*(1-self.ee**2)+y**2)))
return u, v
def H(self, x, y, z):
return x**2 + y**2/(1-self.ee**2)**2 + z**2/(1-self.ex**2)**2
if __name__ == "__main__":