⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simpson.cpp

📁 这事lanrange插值算法实例
💻 CPP
字号:
#include <iostream.h>
#include <math.h>
#include <iomanip.h>

double Simpson(double x0,double y0,double x1,double y1,double x2,double y2,double x)
{
	double temp0,temp1,temp2;
	temp0=(x-x1)*(x-x2)/(x0-x1)/(x0-x2);
	temp1=(x-x0)*(x-x2)/(x1-x0)/(x1-x2);
	temp2=(x-x0)*(x-x1)/(x2-x0)/(x2-x1);

	double y=temp0*y0+temp1*y1+temp2*y2;

	return y;
}

double SimpsonA(double x[],double y[],double xx)
{
	double yy=0;
	double temp[3];
	for(int i=0;i<3;i++)
	{
		switch(i)
		{
		case 0:
			temp[0]=(xx-x[1])*(xx-x[2])/(x[0]-x[1])/(x[0]-x[2]);
			yy+=temp[0]*y[0];
			break;
		case 1:
			temp[1]=(xx-x[0])*(xx-x[2])/(x[1]-x[0])/(x[1]-x[2]);
			yy+=temp[1]*y[1];
			break;
		case 2:
			temp[2]=(xx-x[0])*(xx-x[1])/(x[2]-x[0])/(x[2]-x[1]);
			yy+=temp[2]*y[2];
			break;
		}
	}

	return yy;
}

void main()
{
	double x=115;
	double y=Simpson(100,10,121,11,144,12,x);
	cout<<"the square root of the "<<x<<": "<<y<<endl;

	x=115;
	double x0[3]={100,121,144};
	double y0[3]={10,11,12};
	y=SimpsonA(x0,y0,x);
	cout<<"the square root of the "<<x<<": "<<y<<endl;
}

⌨️ 快捷键说明

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