📄 插值函数.cpp
字号:
// 插值函数.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include"stdio.h"
#include"stdlib.h"
#include"iostream.h"
int main(int argc, char* argv[])
{
float Lagrange(float a[], float b[], int , float );
float x;//插值点
float xpoint[10];
float ypoint[10];//已知(x0,y0),(x1,y1)
int n;//输入已知插值组数
cout<<"输入插值组数:";
cin>>n;
cout<<"输入"<<n<<"组已知插值数(x,y)"<<endl;
for(int i=0; i<n; i++)
{
cin>>xpoint[i]>>ypoint[i];
}
cout<<"输入插值:";
cin>>x;
cout<<"Lagrange插值结果:"<<Lagrange(xpoint, ypoint, n, x)<<endl;
system("pause");
return 0;
}
float Lagrange(float a[], float b[], int n, float x)
{//a,b:插值点(x,y) n:插值点个数 x:待计算的函数点
float y = 0;
for(int k=0; k<n; k++)//k控制Lagrange基函数序列
{
float tmp = 1;//tmp表示Lagrange基函数
for(int i=0;i<n;i++)
{
if(i!=k)
{
tmp = tmp * (x-a[i])/(a[k]-a[i]); //差集
}
}
y = y + b[k]*tmp;//f(x)
}
return y;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -