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

📄 lag.cpp

📁 lagrange求插值算法,这是数值分析方面的一种求值方法
💻 CPP
字号:
#include<iostream>
using namespace std;
#include<stdio.h>
#include<math.h>
#define n 4
#define pi 3.1415926
void main()
{double x[n+1],y[n+1],t,x1,y1; int i,j,k;
 x[0]=0;x[1]=pi/6;x[2]=pi/4;x[3]=pi/3;x[4]=pi/2;
 for(i=0;i<=n;i++)
 y[i]=sin(x[i]);
x1=pi/12;
 y1=0;k=0;
while(k<=n)
{ t=1;
for(j=0;j<=n;j++) if(j!=k) t=(x1-x[j])/(x[k]-x[j])*t;cout<<"t="<<t<<endl;
 y1=y1+t*y[k];
 k++;
}
cout<<"lag插值y是"<<y1<<endl;
x[0]=0;x[1]=pi/6;x[2]=pi/4;x[3]=pi/3;x[4]=pi/2;
 for(i=0;i<=n;i++)
 y[i]=sin(x[i]);
x1=pi/12;
 y1=y[0];t=1;
 for(j=1;j<=n;j++)
 { t=t*(x1-x[j-1]);
   for(i=0;i<=n-j;i++)
	   y[i]=(y[i+1]-y[i])/(x[j+i]-x[i]);
   y1=y1+y[0]*t;cout<<"yo="<<y[0]<<endl;
 }
 cout<<"newton插值"<<y1<<endl;
x[0]=0;x[1]=pi/6;x[2]=pi/4;x[3]=pi/3;x[4]=pi/2;
 for(i=0;i<=n;i++)
 y[i]=sin(x[i]);
x1=pi/12;
 k=1;
 while(k!=n+1)
 {
  for(i=k;i<=n;i++)
	y[i]=y[k-1]+(y[i]-y[k-1])*(x1-x[k-1])/(x[i]-x[k-1]);cout<<"p="<<y[k]<<endl;
	 k++;
 }
 cout<<"aitken插值y是"<<y[n];
}

⌨️ 快捷键说明

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