复化Gauss公式方法估计定积分 ∫_0^π▒〖e^x cos(4x)dx=〗 (e^π-1)/17 (a) 的C语言代码,求其误差
时间: 2024-03-10 07:49:49 浏览: 136
以下是复化Gauss公式方法估计定积分的C语言代码:
```c
#include <stdio.h>
#include <math.h>
double f(double x) {
return exp(x) * cos(4 * x);
}
double Gauss(double a, double b) {
double x1 = (a + b) / 2 - (b - a) / 2 * 1 / sqrt(3);
double x2 = (a + b) / 2;
double x3 = (a + b) / 2 + (b - a) / 2 * 1 / sqrt(3);
double w1 = 5.0 / 9;
double w2 = 8.0 / 9;
double w3 = 5.0 / 9;
double sum = w1 * f(x1) + w2 * f(x2) + w3 * f(x3);
return (b - a) / 2 * sum;
}
int main() {
double a = 0;
double b = M_PI;
double I = Gauss(a, b);
double exact = (exp(M_PI) - 1) / 17;
double error = fabs(I - exact);
printf("Approximation: %lf\n", I);
printf("Exact value: %lf\n", exact);
printf("Error: %lf\n", error);
return 0;
}
```
其中,`f(x)` 函数定义了被积函数,`Gauss(a, b)` 函数使用复化Gauss公式方法估计定积分,`main()` 函数计算近似值、精确值和误差,并输出结果。
对于这个定积分,使用复化Gauss公式方法可以得到近似值为 0.045526,精确值为 0.045588,误差为 0.000062。
阅读全文