计算
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
插值法牛顿插值拉格朗日插值
实验三 插值法
四、实验题目:
龙格现象的发生、防止,插值效果的比较
,,,5,5将区间10等分,有函数:
5x(1)y,(3)y,24(2)y,arctanx1,x1,x; ; .
xy,f(x)k分别对上述函数计算点上的值,做出插值函数的图形并与的图形比较。
(1)做拉格朗日插值;
(2)做牛顿插值;
(3)做分段线性插值;
(4)做三次样条插值;
将计算结果与函数的准确值比较并对结果进行分析。 package shuzhifangfa;
public class lagelanri {
/**
* @param args
*/
public static void main(String[] args) {
double m=-2;
while(m<3){
double y=0;
double f[] =new double[11];
double x[] =new double[11];
for(int i=-5;i<6;i++){
x[i+5]=i;
}
//求出对于x的y值
for(int i=-5;i<6;i++){
f[i+5]=5.0/(1+i*i);
}
double l1[] =new double[11];
double l2[] =new double[11];
for(int i=0;i<11;i++){
l1[i]=1;
l2[i]=1;
}
for(int k=0;k<11;k++){
for(int p=0;p<11;p++){
if(p==k)
continue;
else{
l1[k]=l1[k]*(m-x[p]);
l2[k]=l2[k]*(x[k]-x[p]);
}
}
}
//多项式的每一项相加
for(int j=0;j<11;j++){
y=y+l1[j]*f[j]/l2[j];
}
double h=5.0/(1+m*m); //精确值
double r=Math.abs(y-h);
System.out.println(" 近似值y="+y+" 精确值h="+h+" 误差r="+r);
//for(int i=0;i<11;i++)
//System.out.println("l1["+(i-5)+"]="+f[i]);
m= m+0.2;
}
}
}
-------------------------------------------------------------------------------------
package shuzhifangfa;
public class niudun {
public static void main(String[] args) {
double m=0;
while(m<5){
double y=0;
double x[] =new double[11];
double f[] =new double[11];
double l[][] =new double[11][11];
double w[] =new double[11];
for(int i=-5;i<6;i++){
x[i+5]=i;
}
//求出对于x的y值
for(int i=-5;i<6;i++){
f[i+5]=5.0/(1+i*i);
}
//0阶差商
for(int i=0;i<11;i++){
l[i][0]=f[i];
}
//1阶差值
for(int j=1;j<11;j++){
l[j][1]=(f[j]-f[j-1])/(x[j]-x[j-1]);
}
//n阶差值
for(int i=1;i<10;i++){
for(int j=i;j<10;j++){
l[j][i]=(l[j][i]-l[j-1][i])/(x[j]-x[j-i]);
}
}
//多项式(x-x0)(x-x1)(x-x2)等
w[0]=1;
for(int i=1;i<11;i++){
for(int j=0;j
#include
using namespace std;
int main(){
int i,j;
double m=0;
while(m<5)
{
double y=0;
double x[100] ;
double f[100] ;
double l[100][100];
double w[100] ;
for(int i=-5;i<6;i++)
{
x[i+5]=i;
}
//求出对于x的y值
for( i=-5;i<6;i++)
{
f[i+5]=5.0/(1+i*i);
}
//0阶差商
for( i=0;i<11;i++)
{
l[i][0]=f[i];
}
//1阶差值
for( j=1;j<11;j++)
{
l[j][1]=(f[j]-f[j-1])/(x[j]-x[j-1]);
}
//n阶差值
for( i=1;i<10;i++)
{
for( j=i;j<10;j++)
{
l[j][i]=(l[j][i]-l[j-1][i])/(x[j]-x[j-i]);
}
}
//多项式(x-x0)(x-x1)(x-x2)等
w[0]=1;
for( i=1;i<11;i++)
{
for( j=0;j #include
using namespace std;
int main()
{
double m=-2;
int i, j, k , p, y=0;
while(m<3)
{
double y=0;
double f[100] ;
double x[100] ;
for(i=-5;i<6;i++)
{
x[i+5]=i;
}
//求出对于x的y值
for(i=-5;i<6;i++)
{
f[i+5]=5.0/(1+i*i);
}
double l1[100] ;
double l2[100] ;
for(i=0;i<11;i++)
{
l1[i]=1;
l2[i]=1;
}
for(k=0;k<11;k++)
{
for(p=0;p<11;p++)
{
if(p==k)
continue;
else{
l1[k]=l1[k]*(m-x[p]);
l2[k]=l2[k]*(x[k]-x[p]);
}
}
}
//多项式的每一项相加
y = 0
输入xi,yi,及
n,x,k=0
y = 0;
for(j=0;j<11;j++)
{
y=y+l1[j]*f[j]/l2[j];
}
double h=5.0/(1+m*m); //精确值
double r=fabs(y-h);
cout<<"近似值y="<
本文档为【计算方法插值法牛顿插值拉格朗日插值】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。