用Python迭代法求解表达式
我是Python新手,开始编写坐标转换程序。问题是我找不到一种迭代方法来求解其中一个表达式 表达方式:用Python迭代法求解表达式,python,loops,coordinates,iteration,Python,Loops,Coordinates,Iteration,我是Python新手,开始编写坐标转换程序。问题是我找不到一种迭代方法来求解其中一个表达式 表达方式: N = a / math.sqrt(1 - (e2 * (math.sin(phi))**2)) phi = math.atan((Z / math.sqrt((X**2) + (Y**2))) * ((1-e2) * (N / N + hei)**-1)) lam = math.atan(Y / X) hei = (math.sqrt((X ** 2) + (Y ** 2))) / mat
N = a / math.sqrt(1 - (e2 * (math.sin(phi))**2))
phi = math.atan((Z / math.sqrt((X**2) + (Y**2))) * ((1-e2) * (N / N + hei)**-1))
lam = math.atan(Y / X)
hei = (math.sqrt((X ** 2) + (Y ** 2))) / math.cos(phi)
这里,a和e2是常数
用户应该引入X、Y和Z的值,并获得phi、lam和hei。但是,鉴于N是一个依赖于phi的函数,有必要创建一个循环,使第二个方程中的hei=0作为初始值,以便获得phi的一级近似值。但是,我不知道当phi达到某个值时(例如,当phi的9个或更多小数等于循环中的前一个值时),如何结束该循环.您可以根据前一个循环中的
phi
值与当前循环中的值之间的差异来中断循环,即,如果差异小于10^(-9)