【发布时间】:2021-11-24 09:32:57
【问题描述】:
我有一个符号方程的一维 numpy 数组和一个像这样的一维 numpy 数组:
import numpy as np
import sympy as sp
E = sp.Symbol('E')
values = np.array([0.0, 0.0001, 0.0001, 0.0002, 0.0003, 0.0004, 0.0006, 0.0007, 0.0009, 0.0011, 0.0013, 0.0015, 0.0017, 0.0019, 0.0021, 0.0024, 0.0026, 0.0028, 0.0031, 0.0033, 0.0036, 0.0038, 0.0041, 0.0043, 0.0046])
equations = np.array([27405854.8989427/E, 106962058.905272/E, 234787976.631598/E, 407151513.555005/E, 620469116.017057/E, 871305771.223787/E, 1156375007.24571/E, 1472538893.01782/E, 1816808038.33958/E, 2186341593.87493/E, 2578447251.15228/E, 2990581242.5645/E, 3420348341.36898/E, 3865501861.68755/E, 4323943658.50655/E, 4793724127.67675/E, 5273042205.91346/E, 5760245370.79641/E, 6253829640.76983/E, 6752439575.14242/E, 7254868274.08736/E, 7760057378.64231/E, 8267097070.70941/E, 8775226073.05526/E, 9283831649.31095/E])
我试图找到 E 的单个值,当在方程式数组中替换时,该值对于第二个值数组中的每个元素的误差最小。
有人可以帮忙吗?
谢谢。
【问题讨论】:
-
是的,如果您以我可以复制的方式发布您的号码,那应该很容易。
-
感谢@user2640045
-
既然你基本上有
a / E = b,和E = a / b一样,numpy.linalg.lstsq()可能有用。 (它也在 Scipy 中。)网上有很多关于如何使用它的示例。
标签: python numpy regression linear-regression sympy