上传者: fzu031002319
|
上传时间: 2018-06-12 17:05:30
|
文件大小: 217KB
|
文件类型: docx
1.1 double gauss_ch1(double(*f)(double), int n);求积分∫_(-1)^1 f(x)dx/√(1-x^2 )
实现n点Gauss-Chebyeshev积分公式;返回积分的近似值。
在区间[-1,1]上关于权函数1/√(1-x^2 )的正交多项为T_n (x)=cos(narccos(x)),T_n (x)在[-1,1]上的n个根是x_k=cos((2k-1)/2n π),k=1,…,n. n点Gauss-Chebyeshev积分公式为∫_(-1)^1 f(x)dx/√(1-x^2 )≈π/n ∑_(k=1)^n f(cos((2k-1)/2n π))
1.2 double gauss_ch2(double(*f)(double), int n); 求积分∫_(-1)^1 √(1-x^2 ) f(x)dx
实现n点Gauss-Chebyeshev II型积分公式;返回积分的近似值。
在区间[-1,1]上关于权函数√(1-x^2 )的正交多项为U_n (x)=sin((n+1)arccos(x))/sin(arccos(x)) ,U_n (x)在[-1,1]上的n个根是x_k=cos(kπ/(n+1)),k=1,…,n. n点Gauss-Chebyeshev II型积分公式为
∫_(-1)^1 √(1-x^2 ) f(x)dx≈π/(n+1) ∑_(k=1)^n sin^2 (kπ/(n+1))f(cos(kπ/(n+1)))
1.3 double comp_trep(double (*f)(double), double a, double b);求积分∫_a^b f(x)dx
函数实现逐次减半法复化梯形公式;返回积分的近似值。
1.4 double romberg(double (*f)(double), double a, double b); 求积分∫_a^b f(x)dx
函数实现Romberg积分法;返回积分的近似值。
1.5 double gauss_leg_9(double (*f));求积分∫_(-1)^1 f(x)dx
实现9点Gauss-Legendre求积公式。
使用上面实现的各种求积方法求下面的积分:∫_(-1)^1 e^x √(1-x^2 ) dx (=∫_(-1)^1 (xe^x)/√(1-x^2 ) dx)
使用第3,4,5个函数求积分:∫_0^(π/2) sinx dx (=1)