問題 根據(jù)函數(shù)f(x)在區(qū)間[0,2π]上的2n+1個等距點 
處的函數(shù)值fi=f(xi),求傅里葉(Fourier)級數(shù) 
的前2n+1個系數(shù)ak=(k=0,1,…,n)和bk=(k=0,1,…,n)的近似值。 算法分析 設(shè)函數(shù)f(x)在區(qū)間[0,2π]上的2n+1個等距點 
處的函數(shù)值為fi=f(xi),計算傅里葉(Fourier)級數(shù) 
的前2n+1個系數(shù) ak(k=0,1,…,n)和bk(k=0,1,…,n) 近似值得方法如下。 對于k=0,1,…,n進行如下運算: (1)按下列迭代公式計算u1與u2: 
其中 。計算coskθ用如下剃推公式: 
(2)按下列公式計算ak與bk: 
三、實例 根據(jù)函數(shù)f(x)=x2在區(qū)間[0,2π]上的101個等距點 
處的函數(shù)值fi=f(xi),求傅里葉級數(shù)的系數(shù) 
其中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"
/*形參與函數(shù)類型 參數(shù)意義
double f[2n+1] 存放區(qū)間[0,2π]內(nèi)的2n+1個等距點處的函數(shù)值
int n 等距點數(shù)為2n+1
double a[n+1] 返回傅里葉級數(shù)中的系數(shù)ak(k=0,1,…,n)
double b[n+1] 返回傅里葉級數(shù)中的系數(shù)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++)
|
|