问题 根据函数f(x)在区间[0,2π]上的2n+1个等距点 
处的函数值fi=f(xi),求傅里叶(Fourier)级数 
的前2n+1个系数ak=(k=0,1,…,n)和bk=(k=0,1,…,n)的近似值。 算法分析 设函数f(x)在区间[0,2π]上的2n+1个等距点 
处的函数值为fi=f(xi),计算傅里叶(Fourier)级数 
的前2n+1个系数 ak(k=0,1,…,n)和bk(k=0,1,…,n) 近似值得方法如下。 对于k=0,1,…,n进行如下运算: (1)按下列迭代公式计算u1与u2: 
其中 。计算coskθ用如下剃推公式: 
(2)按下列公式计算ak与bk: 
三、实例 根据函数f(x)=x2在区间[0,2π]上的101个等距点 
处的函数值fi=f(xi),求傅里叶级数的系数 
其中n=50。 四、代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include "stdio.h"
#include "math.h"
/*形参与函数类型 参数意义
double f[2n+1] 存放区间[0,2π]内的2n+1个等距点处的函数值
int n 等距点数为2n+1
double a[n+1] 返回傅里叶级数中的系数ak(k=0,1,…,n)
double b[n+1] 返回傅里叶级数中的系数bk(k=0,1,…,n)
void four() 过程
*/
void four( double f[], int n, double a[], double b[])
{
int i,j ;
double t,c,s,c1,s1,u1,u2,u0 ;
t=6.283185306/(2.0*n+1.0);
c= cos (t);
s= sin (t);
t=2.0/(2.0*n+1.0);
c1=1.0 ;
s1=0.0 ;
for (i=0;i<=n;i++)
|
|