c7.cpp

来自「数值算法的c++实现」· C++ 代码 · 共 30 行

CPP
30
字号
#include <iostream>
#include <math.h>
using namespace std;

double lagrange(double a[],double b[],int n,double x)
{
	double y=0,l;
	int i,j;
	for(i=0;i<n;i++)
	{
		l=1;
		for(j=0;j<n;j++)
			if(i!=j)
				l=l*(x-a[j])/(a[i]-a[j]);
        y=y+l*b[i];
	}
	return y;
}

main()
{
	double x1[2]={11,12},x2[3]={11,12,13};
	double y1[2]={2.39790,2.48491},y2[3]={2.39790,2.48491,2.56495};
	cout<<"线性插值计算ln11.75结果为:"<<lagrange(x1,y1,2,11.75)<<'\n';
	cout<<"二次插值计算ln11.75结果为:"<<lagrange(x2,y2,3,11.75)<<'\n';
	cout<<"准确值为:"<<log(11.75)<<'\n';
}
	
		

⌨️ 快捷键说明

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