用Python中的迭代方法解决表达式

时间:2014-08-23 20:30:57

标签: 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))) / math.cos(phi)

此处, a e2 是常量。

用户应该引入 X Y Z 的值并获取 phi ,< strong> lam 和 hei 。但是,鉴于 N 是一个依赖于 phi 的函数,有必要创建一个循环,在第二个等式中使 hei = 0作为初始值,为了获得 phi 的第一个近似值。但是,当 phi 达到某个值时,我不知道如何结束该循环(例如,当 phi 的9位或更多小数相等时到循环中的前一个值。)

1 个答案:

答案 0 :(得分:1)

您可以根据前一循环中phi的值与当前循环中的值之间的差异来中断循环,即差异是否小于10^(-9)