lagrange.cpp

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

CPP
34
字号
//*************************************
//程序功能:Lagrange插值法  求函数的值
//
//作    者:杭永东
//
//日    期: 2002.06.10
//*************************************
#include <math.h>
#include <stdio.h>

#define pi 3.141592653589793L

void main()
{
	long double x[5]={0.0L,pi/6.0L,pi/4.0L,pi/3.0L,pi/2.0L};
	long double y[5]={0.0L,0.5L,sqrt(2.0L)/2.0L,sqrt(3.0L)/2.0L,1.0L};
	long double l[5],lt;
	long double u=pi/12.0L; //插值点
	long double v=0.0L;

	for(int j=0;j<5;j++)
	{
		lt=1.0L;
		for(int i=0;i<5;i++)
		{
			if(i!=j)
				lt=lt*((u-x[i])/(x[j]-x[i]));
		}
		l[j]=lt;
		v+=l[j]*y[j];
	}
	printf("v=%1.9f\n",v);
}

⌨️ 快捷键说明

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