-
Notifications
You must be signed in to change notification settings - Fork 13
/
jacobian_height.py
31 lines (20 loc) · 26.5 KB
/
jacobian_height.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
"""Approximate Jacobian of height measurement for coarse-time navigation."""
import numpy as np
def jacobian_height(state):
"""Approximate Jacobian of height measurement for coarse-time navigation.
Input:
state - Coarse-time navigation state with ECEF XYZ position as first
3 elements [m,m,m]
Output:
jac - Jacobian of height measurement w.r.t. to state, same size as
state
Author: Jonas Beuchert
"""
X = state[0]
Y = state[1]
Z = state[2]
jac = np.zeros(state.shape)
jac[0] = (6378137*((7718094650643695*((1119857325042224552253806830465948043803491303424*X*Z**3)/(8625872248189304430680257688602106644864125*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(5/2)) - (205168251170290689566757539936548014766583032948965266941680210874043283275776*X*Z**5)/(1569760425171700614928496196497711413532211771334769425585302587475553125*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(5/2)*(X**2 + Y**2)**(7/2)))*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2))))/(576460752303423488*((Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + 1)*((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2) - (7718094650643695*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2*((2*((1119857325042224552253806830465948043803491303424*X*Z**3)/(8625872248189304430680257688602106644864125*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(5/2)) - (205168251170290689566757539936548014766583032948965266941680210874043283275776*X*Z**5)/(1569760425171700614928496196497711413532211771334769425585302587475553125*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(5/2)*(X**2 + Y**2)**(7/2)))*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2))))/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + (2*(X/(X**2 + Y**2)**(1/2) - (2607536585979307010854857542631424*X*Z**2)/(20220311639288499177424097025*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(5/2)*(X**2 + Y**2)**2))*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2)/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**3))/(1152921504606846976*((Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + 1)**2*((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2) + (7718094650643695*(X/(X**2 + Y**2)**(1/2) - (2607536585979307010854857542631424*X*Z**2)/(20220311639288499177424097025*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(5/2)*(X**2 + Y**2)**2))*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2)/(576460752303423488*((Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + 1)*((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**3)))/(2*(1 - (7718094650643695*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2)/(1152921504606846976*((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2*((Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + 1)))**(3/2)) - ((X**2 + Y**2)**(1/2)*((2*((1119857325042224552253806830465948043803491303424*X*Z**3)/(8625872248189304430680257688602106644864125*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(5/2)) - (205168251170290689566757539936548014766583032948965266941680210874043283275776*X*Z**5)/(1569760425171700614928496196497711413532211771334769425585302587475553125*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(5/2)*(X**2 + Y**2)**(7/2)))*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2))))/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + (2*(X/(X**2 + Y**2)**(1/2) - (2607536585979307010854857542631424*X*Z**2)/(20220311639288499177424097025*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(5/2)*(X**2 + Y**2)**2))*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2)/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**3))/(2*((Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + 1)**(1/2)) + (X*((Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + 1)**(1/2))/(X**2 + Y**2)**(1/2)
jac[1] = (6378137*((7718094650643695*((1119857325042224552253806830465948043803491303424*Y*Z**3)/(8625872248189304430680257688602106644864125*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(5/2)) - (205168251170290689566757539936548014766583032948965266941680210874043283275776*Y*Z**5)/(1569760425171700614928496196497711413532211771334769425585302587475553125*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(5/2)*(X**2 + Y**2)**(7/2)))*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2))))/(576460752303423488*((Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + 1)*((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2) - (7718094650643695*((2*((1119857325042224552253806830465948043803491303424*Y*Z**3)/(8625872248189304430680257688602106644864125*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(5/2)) - (205168251170290689566757539936548014766583032948965266941680210874043283275776*Y*Z**5)/(1569760425171700614928496196497711413532211771334769425585302587475553125*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(5/2)*(X**2 + Y**2)**(7/2)))*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2))))/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + (2*(Y/(X**2 + Y**2)**(1/2) - (2607536585979307010854857542631424*Y*Z**2)/(20220311639288499177424097025*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(5/2)*(X**2 + Y**2)**2))*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2)/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**3)*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2)/(1152921504606846976*((Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + 1)**2*((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2) + (7718094650643695*(Y/(X**2 + Y**2)**(1/2) - (2607536585979307010854857542631424*Y*Z**2)/(20220311639288499177424097025*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(5/2)*(X**2 + Y**2)**2))*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2)/(576460752303423488*((Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + 1)*((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**3)))/(2*(1 - (7718094650643695*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2)/(1152921504606846976*((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2*((Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + 1)))**(3/2)) - (((2*((1119857325042224552253806830465948043803491303424*Y*Z**3)/(8625872248189304430680257688602106644864125*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(5/2)) - (205168251170290689566757539936548014766583032948965266941680210874043283275776*Y*Z**5)/(1569760425171700614928496196497711413532211771334769425585302587475553125*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(5/2)*(X**2 + Y**2)**(7/2)))*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2))))/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + (2*(Y/(X**2 + Y**2)**(1/2) - (2607536585979307010854857542631424*Y*Z**2)/(20220311639288499177424097025*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(5/2)*(X**2 + Y**2)**2))*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2)/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**3)*(X**2 + Y**2)**(1/2))/(2*((Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + 1)**(1/2)) + (Y*((Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + 1)**(1/2))/(X**2 + Y**2)**(1/2)
jac[2] = (6378137*((7718094650643695*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2*((2*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))*((1119857325042224552253806830465948043803491303424*Z**2)/(8625872248189304430680257688602106644864125*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)) - (205168251170290689566757539936548014766583032948965266941680210874043283275776*Z**4)/(1569760425171700614928496196497711413532211771334769425585302587475553125*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(5/2)*(X**2 + Y**2)**(5/2)) + 1))/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 - (5215073171958614021709715085262848*Z*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2)/(20220311639288499177424097025*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(5/2)*(X**2 + Y**2)*((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**3)))/(1152921504606846976*((Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + 1)**2*((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2) - (7718094650643695*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))*((1119857325042224552253806830465948043803491303424*Z**2)/(8625872248189304430680257688602106644864125*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)) - (205168251170290689566757539936548014766583032948965266941680210874043283275776*Z**4)/(1569760425171700614928496196497711413532211771334769425585302587475553125*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(5/2)*(X**2 + Y**2)**(5/2)) + 1))/(576460752303423488*((Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + 1)*((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2) + (122834559177274247521352038285204821912754727*Z*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2)/(71143896846886709392145939042063068692480*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(5/2)*((Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + 1)*(X**2 + Y**2)*((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**3)))/(2*(1 - (7718094650643695*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2)/(1152921504606846976*((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2*((Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + 1)))**(3/2)) + ((X**2 + Y**2)**(1/2)*((2*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))*((1119857325042224552253806830465948043803491303424*Z**2)/(8625872248189304430680257688602106644864125*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)) - (205168251170290689566757539936548014766583032948965266941680210874043283275776*Z**4)/(1569760425171700614928496196497711413532211771334769425585302587475553125*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(5/2)*(X**2 + Y**2)**(5/2)) + 1))/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 - (5215073171958614021709715085262848*Z*(Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2)/(20220311639288499177424097025*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(5/2)*(X**2 + Y**2)*((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**3)))/(2*((Z + (1119857325042224552253806830465948043803491303424*Z**3)/(25877616744567913292040773065806319934592375*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)*(X**2 + Y**2)**(3/2)))**2/((X**2 + Y**2)**(1/2) - 5868323452564791/(137438953472*((183209277273383696325016551424*Z**2)/(181982804753596492596816873225*X**2 + 181982804753596492596816873225*Y**2) + 1)**(3/2)))**2 + 1)**(1/2))
return jac