我有三点[x0 y0],[x1 y1],[x2 y2]与严格的条件x0<x1<x2,y0<y1<y2。所有这些点都依赖于一些指数函数y=ae^(bx)+c。我需要找到a,b,c..。不可能精确地解3个方程组,所以我需要近似它。java中有没有数学库可以帮我解决这个问题?我在mathcad上找到了类似的东西
https://help.ptc.com/mathcad/en/index.html#page/PTC_Mathcad_Help/exponential_regression.html,但在java中找不到。
另一种方法-如何近似求解3个方程和3个数值的系统。
ae^(bx_0)+c=y_0 ae^(bx_1)+c=y_1 ae^(bx_2)+c=y_2
发布于 2019-06-08 21:34:28
您必须求解一个非线性方程组,对于这个方程组,只有近似解是可能的,但可以使用牛顿·拉夫森的多变量方法来完成。
坦率地说,这个算法是一种符号上的痛苦,但你可以在这里了解它- http://fourier.eng.hmc.edu/e176/lectures/NM/node21.html。实际上,你有一个函数,它的导数引导你从一个初始随机点(你猜它是一个可能的根)达到一个‘均衡’。
如果您不愿意自己编写代码,这个代码库可以为您提供一个入门工具-- https://github.com/prasser/newtonraphson。但是AFAIK,没有现成的库可以用于此目的。不过,您可以使用Wolfram的Mathematica或MATLAB/OCTAVE作为现成的库。
也就是说,这里有一些其他的(更复杂的)东西你可以看看
希望这能有所帮助!
https://stackoverflow.com/questions/54791818
复制相似问题