C# 使用傅里叶级数或其他算法通过给定值重建函数

C# 使用傅里叶级数或其他算法通过给定值重建函数,c#,algorithm,function,fft,C#,Algorithm,Function,Fft,我很好奇,如果有一些连续值(比如x的y值在[0,10]之间)(x是一个整数,对应的十进制y值在[0,1]之间),并且可以为用于获得任意近似值的算法设置精度,那么重构函数的有效方法是什么 我偶然发现了用傅里叶级数重建这种函数的可能性,但我不确定如何用C#实现它。目的是在实践中学习,而不是使用现有的库。关于如何(大致)建立一个函数的任何其他建议也都是受欢迎的。为了在运行时创建函数,我想到了元编程(使用Expressions) 编辑:对于傅立叶级数,我发现了一个相关的问题。但是,所提供的解决方案在Ma

我很好奇,如果有一些连续值(比如x的y值在[0,10]之间)(x是一个整数,对应的十进制y值在[0,1]之间),并且可以为用于获得任意近似值的算法设置精度,那么重构函数的有效方法是什么

我偶然发现了用傅里叶级数重建这种函数的可能性,但我不确定如何用C#实现它。目的是在实践中学习,而不是使用现有的库。关于如何(大致)建立一个函数的任何其他建议也都是受欢迎的。为了在运行时创建函数,我想到了元编程(使用
Expression
s)


编辑:对于傅立叶级数,我发现了一个相关的问题。但是,所提供的解决方案在Mathematica中,并使用其库。

傅里叶级数不会从有限长度的样本重建函数(除非样本恰好来自已知纯周期函数或信号的精确整数倍周期数)。它将仅近似与数据窗口的变换卷积的函数,并使用一系列正弦和余弦函数,这些函数可能与“真”未归集函数或信号相关,也可能与“真”未归集函数或信号无关。卷积函数(通常是周期性Sinc函数)的解卷积是非常重要的,但需要估计可能扩展到数据窗口之外的候选波形。

您对点的分布(线性、多项式、样条曲线)有什么想法吗?(假设x的y值在[0,10]之间)?这些是离散值吗(例如,x是整数吗)?@mbeckish:是的,x是整数,y在[0..1]之间在我的例子中。@AhmedKRAIEM:我猜这是一条样条曲线?如果你想把这些点拟合成周期函数,那么你可能会想要。请注意,这不是唯一的选择。例如,你也可以把这些点拟合成多项式。谢谢你的澄清。在我看来,在任何变化中使用傅立叶都不能回答这个问题给出输入数据样本的原始问题。你知道允许近似重建的其他技术吗?@Quickie007-有无限多个函数可以适合任何固定数量的数据样本,但一旦超出这些样本,就会产生不同的结果。通常,你应该知道你使用的是哪种函数expect要遵循的数据(线性、二次等),然后使用曲线拟合技术找到该函数的参数。