public class Test {static double[][] format;
public static void main(String[] args) {// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
System.out.print("输入插入总点数:");
int n=in.nextInt();//插入点总数
double[][] xy=new double[2][n];//二维数组来存储x和y
for(int j=0;jSystem.out.print("输入第"+(j+1)+"个点的x:");
xy[0][j]=in.nextDouble();//第0行放各点的x值
System.out.print("输入第"+(j+1)+"个点的y:");
xy[1][j]=in.nextDouble();//第1行放各点的y值
}
creatformat(xy, n);
System.out.println("输入计算几个点:");
int v=in.nextInt();//所求点的总数
for(int i=0;iSystem.out.println("输入x= ");
double x=in.nextDouble();
System.out.print("f("+x+")≈"+"Nn("+x+")"+"=");
System.out.printf("%.5f", Nn(xy, n, x));
System.out.println();
}
}
static void creatformat(double[][] xy,int n) {format=new double[n-1][n-1];
for(int i=0;ifor(int j=0;jif(i==0) {format[i][j]=(xy[1][j]-xy[1][j+1])/(xy[0][j]-xy[0][j+1]);
}
else{format[i][j]=(format[i-1][j]-format[i-1][j+1])/(xy[0][j]-xy[0][j+i+1]);
}
}
}
}
static double Nn(double[][] xy,int n,double x) {//牛顿插值公式
double sum=xy[1][0];//求和的初始值为f(X0)
for(int i=0;idouble c=1;
for(int j=0;jc=(x-xy[0][j])*c;
}
sum=sum+format[i][0]*c;
}
return sum;
}
}
运行结果得:
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享文章:Java实现牛顿插值-创新互联
网页URL:https://www.cdcxhl.com/article4/doipie.html
成都网站建设公司_创新互联,为您提供网站设计公司、品牌网站建设、品牌网站制作、网站内链、建站公司、企业网站制作
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联