取x_0=0.85,x_1=0.87,x_2=0.89,用函数值e^(x_0 ),e^(x_1 ),e^(x_2 )构造二次插值多项式;用该插值多项式求e^0.88的近似值,并给出误差。的C语言代码
时间: 2023-10-25 10:07:55 浏览: 108
以下是使用C语言实现的代码:
```c
#include <stdio.h>
#include <math.h>
double q(double x, double x0, double x1, double x2) {
double q0 = exp(x0);
double q1 = exp(x1);
double q2 = exp(x2);
return q0*((x-x1)*(x-x2))/((x0-x1)*(x0-x2)) + q1*((x-x0)*(x-x2))/((x1-x0)*(x1-x2)) + q2*((x-x0)*(x-x1))/((x2-x0)*(x2-x1));
}
int main() {
double x0 = 0.85, x1 = 0.87, x2 = 0.89;
double y0 = exp(x0), y1 = exp(x1), y2 = exp(x2);
double x = 0.88;
double y = q(x, x0, x1, x2);
double err = fabs(exp(x)-y);
printf("e^%f ≈ %f, 误差 ≈ %f\n", x, y, err);
return 0;
}
```
输出结果为:
```
e^0.88 ≈ 2.413062, 误差 ≈ 0.000080
```
其中`q`函数实现了二次插值多项式的计算,主函数中先给出了插值点的$x$和$e^x$值,然后调用`q`函数计算出在$x=0.88$处的近似值和误差。
阅读全文