newton插值法.cpp

来自「大量数值计算的算法」· C++ 代码 · 共 30 行

CPP
30
字号
//*************************************
//程序功能:Newton插值法  求函数的值
//
//作    者:杭永东
//
//日    期: 2002.06.10
//*************************************
#include <math.h>
#include <stdio.h>
#define pi 3.141592653589793L
main()
{
	long double x[5]={0.0L,pi/6.0L,pi/4.0L,pi/3.0L,pi/2.0L};
	long double f[5]={0.0L,0.5L,sqrt(2.0L)/2.0L,sqrt(3.0L)/2.0L,1.0L};
	long double u=pi/12.0L; //插值点
	for(int i=1;i<=4;i++)  //开始计算差商
	{
		for(int j=i;j<5;j++)
		{
			f[j]=(f[j]-f[i-1])/(x[j]-x[i-1]);
		}
	}
	long double v=0.0L; //开始用N法求插值
	for(i=4;i>=0;i--) 
	{
		v=v*(u-x[i])+f[i];
	}
	printf("v=%1.9f\n",v);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?