我正在开始我的第一个 C# 项目——需要找到适合多个 x-y 数据点的曲线。
例如:
x: 1,2,3,4,5,6 y: 0.5,5,0.5,2.5,5,0.5
碰巧,根据 excel,我需要的这些点的正确曲线拟合是六阶多项式。
如何获取此曲线的系数和指数以在 C# 中编写正确的表达式?我想远离库,因为它很可能最终会被转换为 C 以用于微处理器。
我是 C# 的新手,对硬件/软件集成知之甚少。
也就是说,我现在正在阅读数值方法...该项目的第二步将采用曲线并在连续最小值之间进行数值积分...
非常感谢任何建议/指示。
输入将由六个 x-y 坐标给出...
问题#1: 如何写出给定六个坐标的多项式?
最佳答案
在给定 n 个点的情况下求出多项式系数的问题被称为多项式插值问题。您可以阅读问题的详细信息及其解决方案here (wikipedia.org)。
你应该密切关注构造插值多项式部分,他们提到如果你使用高斯消元法,你需要求逆的矩阵会引入很大的误差,并查看Newton interpolation (wikipedia.org) 以获得更好的方法。仅仅六分可能并不重要,但值得了解。
至于实现,您有两种选择:使用具有线性代数支持的第三方库 - 例如 Science Code .Net (sciencecode.com),或者开始写一些向量和矩阵的基本抽象,实现乘法、加法、求逆等基本运算。过去,我们使用了一个名为“C 中的数字食谱”的库,它们很可能有一个用于 C# 的端口。可能值得一试。
关于c#数值多项式回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10605607/