给定 $k$ 个互不相同的复数 $x_0,\cdots,x_{k-1}$,以及 $k$ 个复数$y_0,\cdots,y_{k-1}$.我们知道存在唯一的复系数 $k-1$ 次多项式
$$
\mathcal{P}_{k-1}(x)=\xi_0+\xi_1x+\cdots+\xi_{k-1}x^{k-1}
$$
使得
$$
\mathcal{P}_{k-1}(x_0)=y_0,\cdots,\mathcal{P}_{k-1}(x_{k-1})=y_{k-1}.
$$
其中 $\xi_0,\cdots,\xi_{k-1}\in\mathbf{C}$.这个结论是范德蒙行列式不为0的一个简单推论.特别的,我们令 $x_i=\omega^i$,其中 $\omega=e^{\frac{2\pi i}{k}}$,我们就得到了三角插值多项式.为了确定三角插值多项式的系数,我们使用 Cramer 法则.我们知道
$$
\begin{cases}
\xi_0+\xi_1\omega^0+\cdots+\xi_{k-1}\omega^0=y_0\\
  \xi_0+\xi_1\omega^1+\cdots+\xi_{k-1}\omega^{k-1}=y_1\\
\xi_0+\xi_1\omega^2+\cdots+\xi_{k-1}\omega^{2(k-1)}=y_2\\
\vdots\\
\xi_0+\xi_1\omega^{k-1}+\cdots+\xi_{k-1}\omega^{(k-1)(k-1)}=y_{k-1}.
\end{cases}
$$
因此
$$
\xi_i=\frac{\begin{vmatrix}
    \omega^{0}&\omega^0&\cdots&y_{0}&\cdots&\omega^{0}\\
    \omega^0&\omega^1&\cdots&y_{1}&\cdots&\omega^{k-1}\\
    \vdots&\vdots&\cdots&\vdots&\cdots&\vdots\\
\omega^0&\omega^{k-1}&\cdots&y_{k-1}&\cdots&\omega^{(k-1)(k-1)}\\
  \end{vmatrix}}{\begin{vmatrix}
    \omega^{0}&\omega^0&\cdots&\omega^{0}\\
\omega^0&\omega^1&\cdots&\omega^{k-1}\\
\vdots&\vdots&\cdots&\vdots\\
\omega^0&\omega^{k-1}&\cdots&\omega^{(k-1)(k-1)}\\
  \end{vmatrix}}.
$$

$$
\begin{pmatrix}
  y_0\\
y_1\\
\vdots\\
y_{k-1}\\
\end{pmatrix}=\alpha_0 \begin{pmatrix}
  \omega^{0}\\
\omega^{0}\\
\vdots\\
\omega^0\\
\end{pmatrix}+\cdots+\alpha_i \begin{pmatrix}
  \omega^{0}\\
\omega^{i}\\
\vdots\\
\omega^{i(k-1)}\\  
\end{pmatrix}+\cdots+\alpha_{k-1}\begin{pmatrix}
  \omega^{0}\\
\omega^{k-1}\\
\vdots\\
\omega^{(k-1)(k-1)}
\end{pmatrix},
$$
则 $\xi_i=\alpha_i$.于是我们只用求 $\alpha_i$ 即可.易得
$$
\alpha_i=\frac{1}{k}\begin{pmatrix}
  y_0\\
y_1\\
\vdots\\
y_{k-1}\\
\end{pmatrix}\cdot \begin{pmatrix}
  \omega^0\\
\omega^{-i}\\
\vdots\\
\omega^{-i(k-1)}\\
\end{pmatrix}.
$$

三角插值的 Fourier 系数推导的更多相关文章

  1. Fourier分析基础(一)——Fourier级数

    前言 傅立叶分析的作用是把一个函数变成一堆三角函数的和的形式,也就是分解.首先引入的是傅立叶级数,Fourier级数的作用是把函数变为可数无限个三角函数的和,而且这些三角函数的频率都是某个基频的整数倍 ...

  2. 最全面的图卷积网络GCN的理解和详细推导,都在这里了!

    目录 目录 1. 为什么会出现图卷积神经网络? 2. 图卷积网络的两种理解方式 2.1 vertex domain(spatial domain):顶点域(空间域) 2.2 spectral doma ...

  3. 从傅里叶级数(Fourier series)到离散傅里叶变换(Discrete Fourier transform)

    从傅里叶级数(Fourier series)到离散傅里叶变换(Discrete Fourier transform) 一. 傅里叶级数(FS) 首先从最直观的开始,我们有一个信号\(x(t)\)(满足 ...

  4. Adaboost 算法的原理与推导

    0 引言 一直想写Adaboost来着,但迟迟未能动笔.其算法思想虽然简单“听取多人意见,最后综合决策”,但一般书上对其算法的流程描述实在是过于晦涩.昨日11月1日下午,邹博在我组织的机器学习班第8次 ...

  5. paper 5:支持向量机系列二: Support Vector —— 介绍支持向量机目标函数的 dual 优化推导,并得出“支持向量”的概念。

    paper 4中介绍了支持向量机,结果说到 Maximum Margin Classifier ,到最后都没有说“支持向量”到底是什么东西.不妨回忆一下上次最后一张图: 可以看到两个支撑着中间的 ga ...

  6. 数理方程:Fourier级数

    更新:25 MAR 2016 对于周期函数(周期为\(2\pi\))或定义在\([-\pi,\pi]\)上的函数\(f(x)\),可以展开为* \(\large f(x)=\dfrac{a_0}{2} ...

  7. 《Concrete Mathematics》-chaper5-二项式系数

    二项式系数,也是我们常用的组合数,最直观的组合意义就是从n个元素取k个元素所有可能的情况数,因此我们自然的得到下面二项式系数的定义式. 那么我们通过具有组合意义的二项系数,给出更加一般的二项式系数的定 ...

  8. 多层神经网络BP算法 原理及推导

    首先什么是人工神经网络?简单来说就是将单个感知器作为一个神经网络节点,然后用此类节点组成一个层次网络结构,我们称此网络即为人工神经网络(本人自己的理解).当网络的层次大于等于3层(输入层+隐藏层(大于 ...

  9. AdaBoost 算法原理及推导

    AdaBoost(Adaptive Boosting):自适应提升方法. 1.AdaBoost算法介绍 AdaBoost是Boosting方法中最优代表性的提升算法.该方法通过在每轮降低分对样例的权重 ...

随机推荐

  1. k8s 使用新增user配置kubectl在各个节点都可运行

    k8s增加普通用户User 普通用户并不是通过k8s来创建和维护,是通过创建证书和切换上下文环境的方式来创建和切换用户.其实创建用户的步骤,就是手动部署k8s集群里的一个步骤.创建过程见下: 1.创建 ...

  2. MySQL索引(一)

    1.索引的类型 1) B-Tree索引 (1)概念 人们常说的Mysql索引一般是指B-Tree索引,它使用B-Tree数据结构来存储数据.存储引擎以不同的方式使用B-Tree索引,性能也各有不同,各 ...

  3. 使用GitHub+Hexo搭建个人博客

    title: CozyMo date: 2019-12-28 16:01:29 tags: 书写 前言:搭建博客要自己打代码吗? 开始动手:搭建博客的步骤 个性化:更换主题!! 写博客:初识 mark ...

  4. Mybatis实现联合查询(六)

    1. 疑问 在之前的章节中我们阐述了如何用Mybatis实现检查的查询,而我们实际的需求中,绝大部分查询都不只是针对单张数据表的简单查询,所以我们接下来要看一下Mybatis如何实现联合查询. 2. ...

  5. 我的第一次JAVA实训——校园公用房管理系统

    老铁们,昨天电脑没电了.这是上周答应的大项目. 别打脸. 详细内容我之后再写,下面是代码地址. Github地址 附:一个寂寞 以上

  6. gitlab命令详解

    http://www.ruanyifeng.com/blog/2014/06/git_remote.html

  7. spring-boot 如何加载rsources下面的自定义配置文件

    spring-boot 如何加载resources下面的自定义配置文件 https://segmentfault.com/q/1010000006828771?_ea=1144561

  8. 黑马oracle_day02:04.oracle对象&&05.oracle编程(a)

    01.oracle体系结构 02.oracle的基本操作 03.oracle的查询 04.oracle对象&&05.oracle编程(a) 05.oracle编程(b) 04.orac ...

  9. python语法基础-并发编程-进程-进程池以及回调函数

    ###############   进程池    ############## """ 进程池的概念 为什么会有进程池? 1,因为每次开启一个进程,都需要创建一个内存空间 ...

  10. ZJNU 1213 - 取水——高级

    某个村庄i可以打一口井取水花费费用Wi,也可以与有水的村庄连接取水 又因为不可能没有一个村庄不打井(即至少有一个村庄打井,其余村庄连向它) 实际上就可以理解为,将水井看作第N+1个村庄,需要有村庄与这 ...