如何提升天文光谱线性最小二乘回归求解器的精度?
提升光学光谱数据线性最小二乘回归精度的问题
我正尝试优化处理光学光谱数据的线性最小二乘回归代码——这类数据通常噪声大、杂乱无章。目前用已知系数的玩具模型做测试:先生成系数,与模板相乘后加入高斯误差,得到模拟「观测光谱」。最小二乘解始终接近已知系数,但无法完全吻合,虽能满足低敏感度数据需求,但我需要更高精度。
我的实现代码如下:
def solve_p(obs, temp): return np.dot((np.dot(lin.inv(np.dot(temp.T,temp)),temp.T)),obs)
我做过这些尝试:
- 使用
scipy.linalg.lstsq()求解,和自己实现的方法结果一致,均无法得到完全准确的系数 - 改用128位浮点数计算,未观察到明显精度提升
- 计算得到的约化卡方值在1.25到1000之间,例如某模板已知系数为0.7,求解结果为0.69981902
是否有方法能进一步提升求解精度?我猜测这可能和计算机舍入机制有关,但不确定具体该如何调整。
附天文光谱数据示例图:
内容的提问来源于stack exchange,提问作者charlie
相关产品推荐
相关产品推荐

