三角插值的 Fourier 系数推导
给定 $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 系数推导的更多相关文章
- Fourier分析基础(一)——Fourier级数
前言 傅立叶分析的作用是把一个函数变成一堆三角函数的和的形式,也就是分解.首先引入的是傅立叶级数,Fourier级数的作用是把函数变为可数无限个三角函数的和,而且这些三角函数的频率都是某个基频的整数倍 ...
- 最全面的图卷积网络GCN的理解和详细推导,都在这里了!
目录 目录 1. 为什么会出现图卷积神经网络? 2. 图卷积网络的两种理解方式 2.1 vertex domain(spatial domain):顶点域(空间域) 2.2 spectral doma ...
- 从傅里叶级数(Fourier series)到离散傅里叶变换(Discrete Fourier transform)
从傅里叶级数(Fourier series)到离散傅里叶变换(Discrete Fourier transform) 一. 傅里叶级数(FS) 首先从最直观的开始,我们有一个信号\(x(t)\)(满足 ...
- Adaboost 算法的原理与推导
0 引言 一直想写Adaboost来着,但迟迟未能动笔.其算法思想虽然简单“听取多人意见,最后综合决策”,但一般书上对其算法的流程描述实在是过于晦涩.昨日11月1日下午,邹博在我组织的机器学习班第8次 ...
- paper 5:支持向量机系列二: Support Vector —— 介绍支持向量机目标函数的 dual 优化推导,并得出“支持向量”的概念。
paper 4中介绍了支持向量机,结果说到 Maximum Margin Classifier ,到最后都没有说“支持向量”到底是什么东西.不妨回忆一下上次最后一张图: 可以看到两个支撑着中间的 ga ...
- 数理方程:Fourier级数
更新:25 MAR 2016 对于周期函数(周期为\(2\pi\))或定义在\([-\pi,\pi]\)上的函数\(f(x)\),可以展开为* \(\large f(x)=\dfrac{a_0}{2} ...
- 《Concrete Mathematics》-chaper5-二项式系数
二项式系数,也是我们常用的组合数,最直观的组合意义就是从n个元素取k个元素所有可能的情况数,因此我们自然的得到下面二项式系数的定义式. 那么我们通过具有组合意义的二项系数,给出更加一般的二项式系数的定 ...
- 多层神经网络BP算法 原理及推导
首先什么是人工神经网络?简单来说就是将单个感知器作为一个神经网络节点,然后用此类节点组成一个层次网络结构,我们称此网络即为人工神经网络(本人自己的理解).当网络的层次大于等于3层(输入层+隐藏层(大于 ...
- AdaBoost 算法原理及推导
AdaBoost(Adaptive Boosting):自适应提升方法. 1.AdaBoost算法介绍 AdaBoost是Boosting方法中最优代表性的提升算法.该方法通过在每轮降低分对样例的权重 ...
随机推荐
- java课程之团队开发冲刺阶段1.9
一.总结昨天进度 1.学习了简单的消息推送方法,并且能够使用进行每日定时推送 二.遇到的困难 1.在每日推送的过程中,程序必须被正常关闭,如果程序是被切到后天然后直接结束进程的话,每日推送的线程服务也 ...
- UVALive 4670 AC自动机
第二道AC自动机的题目了,之前参考的是网上一个博客算法,不怎么好,难写而且占空间 后来参照大白书做的这题,代码简洁多了 #include <iostream> #include <c ...
- ssh首次链接出现yes/no提示和ansible提示
修改文件: /etc/ssh/ssh_config 在文件中添加如下信息:StrictHostKeyChecking no 改本机的/etc/ssh/ssh_config文件中的"# Str ...
- python format输出
http://www.cnblogs.com/nulige/p/6115793.html 2.Format 方式 [[fill]align][sign][#][0][width][,][.precis ...
- 2. Rabbitmq php 安装 amqp 拓展
记录一下 使用 rabbitmq 安装 amqp 拓展 环境 ubuntu 安装目录在 /user/local 下进行 1. 安装 wget apt-get update apt-get inst ...
- 干货 | CDN搭配OSS最佳实践 ——搭建动静态分离的应用架构
一.传统架构及痛点 传统的网站产品应用架构,所有资源部署在应用服务器本地存储或挂载的数据存储区,对于动静态资源不作分离, 产品架构如下图所示: 该架构存在诸多问题: ● 系统性能会随着系统访问量的增长 ...
- UML-从需求到设计--迭代进化
按照UP原则,初始阶段做10%的需求,而细化阶段开始为这10%的需求设计解决方案.后续章节介绍如何设计.
- UML-如何画SSD?
1.SSD来自哪里?答:用例文本 2.如何为系统事件和操作命名? 3.SSD中的哪些需要放到词汇表中? SSD元素包含 1).操作名称 2).参数 3).返回数据 这些元素,必须要简洁.但别人可能不太 ...
- Java之线程通信的应用:经典例题:生产者/消费者问题
/** * 线程通信的应用:经典例题:生产者/消费者问题 * * 生产者(Productor)将产品交给店员(Clerk),而消费者(Customer)从店员处取走产品, * 店员一次只能持有固定数量 ...
- blocking(非阻塞)回调函数
回调函数不会造成阻塞 function loop() { setTimeout(loop, 0) } loop 死循环 while(true)