相关疑难解决方法(0)

计算 Skyfield 中两个物体的表观角距的更好方法?

更新: Skyfield 刚刚进行了重大修订,包括扩展文档和角度分离方法 - 请参阅已接受的答案。

我正在使用Skyfield计算两个物体之间的表观角距。我没有在包中找到方法,所以我“发明”了一种通过计算两个视位置向量之间的点积的方法。

这是目前最好的方法吗?在Skyfield的范围内,它本质上是正确的吗?

def separation(seconds, lat, lon):

    lat, lon, seconds = float(lat), float(lon), float(seconds) # necessary it seems

    place = earth.topos(lat, lon)

    jd = JulianDate(utc=(2016, 3, 9, 0, 0, seconds))

    mpos = place.at(jd).observe(moon).apparent().position.km
    spos = place.at(jd).observe(sun).apparent().position.km

    mlen = np.sqrt((mpos**2).sum())
    slen = np.sqrt((spos**2).sum())

    sepa = ((3600.*180./np.pi) *
            np.arccos(np.dot(mpos, spos)/(mlen*slen)))

    return sepa


from skyfield.api import load, now, JulianDate
import numpy as np
from scipy.optimize import minimize

data = load('de421.bsp')

sun   = data['sun']
earth = data['earth']
moon  = …
Run Code Online (Sandbox Code Playgroud)

python skyfield

5
推荐指数
1
解决办法
1240
查看次数

为什么我的 scipy.optimize.minimize 失败?

我尝试使用 fmin_bfgs 来找到绝对函数的局部最小值abs(x)。初始点设置为100.0;预期答案是 0.0。但是,我得到:

In [184]: op.fmin_bfgs(lambda x:np.abs(x),100.0)
Warning: Desired error not necessarily achieved due to precision loss.
         Current function value: 100.000000
         Iterations: 0
         Function evaluations: 64
         Gradient evaluations: 20
Out[184]: array([100.0])
Run Code Online (Sandbox Code Playgroud)

为什么?

python minimization scipy

1
推荐指数
1
解决办法
2520
查看次数

标签 统计

python ×2

minimization ×1

scipy ×1

skyfield ×1