实验4 插值法与数值积分
思考问题:插值多项式是否阶次越高越好?数值积分与插值的关系是什么?逐次分半梯形公式求积如何判断误差是否满足要求?
答:插值多项式不一定阶次越高越好;
数值积分与插值的关系是:二者都是用已知给出的点通过构造新的函数来估计预测未知点,求取我们想知道的内容。数值积分与插值有密切联系,可以先对求积节点做插值,再对插值函数求积分,如果插值函数与被积函数足够接近,就可以把插值函数的积分近似为被积函数的积分;
逐次分半梯形公式求积可以用相邻两次求得的结果的差的绝对值来间接判断误差是否满足要求。
4.1 用拉格朗日插值法求2的平方根。
提示:可以用抛物线插值,f(1.69)?1.3,f(1.96)?1.4,f(2.25)?1.5。 运行结果为:
4.2 用牛顿插值法求2的平方根。
提示:可以用抛物线插值,f(1.69)?1.3,f(1.96)?1.4,f(2.25)?1.5。 运行结果为:
4.3用逐次分半梯形公式求积计算?0x2dx。
运行结果为:
3
程序代码 4.1
#include
void input(double x[MAXSIZE],double y[MAXSIZE],long n); void main(void) {
double x[MAXSIZE],y[MAXSIZE],_x,_y,t; long n,i,j;
printf(\ scanf(\
input(x,y,n);
printf(\ scanf(\ _y=0;
for(i=0;i<=n-1;i++) {
t=1;
for(j=0;j<=n-1;j++) if(j!=i)
t*=(_x-x[j])/(x[i]-x[j]); _y+=t*y[i]; }
printf(\getch(); }
void input(double x[MAXSIZE],double y[MAXSIZE],long n) {
long i;
for(i=0;i<=n-1;i++) {
printf(\ scanf(\ } }
4.2
#include
void input(double x[MAXSIZE],double f[MAXSIZE][MAXSIZE],long n); void main(void) {
double x[MAXSIZE],f[MAXSIZE][MAXSIZE],_x,_y; long n,i,j;
printf(\ scanf(\ input(x,f,n);
printf(\ scanf(\