【java】利用NEWTON插值多项式计算河北秦皇岛某一日的日照时长

【java】利用NEWTON插值多项式计算河北秦皇岛某一日的日照时长,第1张

import java.util.Scanner;
public class qinhuangSun {
	public static void main(String[] args) {
		int i, j, xx = 0; 
		int x[]=new int[3];
		int hr[]=new int[3];
		int mr[]=new int[3];
		int hf[]=new int[3];
		int mf[]=new int[3];
		float time[]=new float[3];
		System.out.println("请输入日期");
		Scanner scanx=new Scanner(System.in);
		for(int i1=0;i1<3;i1++) {
			x[i1]=scanx.nextInt();
		}
		scanx.close();
		System.out.println("请输入太阳升起的时间(小时)");
		Scanner scanhr=new Scanner(System.in);
		for(int i1=0;i1<3;i1++) {
			hr[i1]=scanhr.nextInt();
		}
		  scanhr.close();
		System.out.println("请输入太阳升起的时间(分钟)");
		Scanner scanmr=new Scanner(System.in);
		for(int i1=0;i1<3;i1++) {
			mr[i1]=scanhr.nextInt();
		}
		 scanmr.close();
		System.out.println("请输入太阳落下的时间(小时)");
		Scanner scanhf=new Scanner(System.in);
		for(int i1=0;i1<3;i1++) {
			hf[i1]=scanhr.nextInt();
		}
		 scanhf.close();
		System.out.println("请输入太阳落下的时间(分钟)");
		Scanner scanmf=new Scanner(System.in);
		for(int i1=0;i1<3;i1++) {
			mf[i1]=scanhr.nextInt();
		}
		 scanmf.close();
		for(int j1=0;j1<3;j1++) {
			time[j1]=hf[j1]-hr[j1]+(mf[j1]-mr[j1])/60;
		}
		float N[][]=new float[3][3], yy, temp;
		  
		 for (i = 0; i < 3; i++) {
			 N[i][0] = time[i];
		 }
		 for (j = 1; j < 3; j++) {
		 
		  for (i = j; i < 3; i++) {
			  N[i][j] = (N[i][j - 1] - N[i - 1][j - 1]) / (x[i] -x[i - j]); 
			  xx = 10;
		  }
		 }
		  yy = 0.0f; temp = 1;
		  for (i = 0; i < 3; i++) {
			  yy = yy +N[i][i] * temp; 
			  temp = temp * (xx - x[i]); 
			  }
		  System.out.println("\n2022年4月"+xx+"日河北秦皇岛日照时长为"+yy+"小时.");
		  System.out.println("即"+(int)yy+"小时"+(int)((yy%1)*60)+"分");
		
	}
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/868664.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-13
下一篇2022-05-13

发表评论

登录后才能评论

评论列表(0条)

    保存