精密星历Lagrange插值法java实现..docx
文本预览下载声明
Lagrange算法程序设计专业:测绘工程班级:1班姓名:陈斯铭语言:java实现代码import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.util.Scanner;publicclass Lagrange {publicstaticvoid main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); System.out.println(请输入文件名:); String fileName = sc.nextLine();readFileByLines(fileName);}publicstaticdoubleLagrange(int[] X,double[] Y,intX0){inta,b;doublet,u;t = 0;for (a = 0;a9;a++){u = 1;for(b = 0;b9;b++){if(b!= a){u = u*(X0 - X[b])/(X[a]-X[b]); } }u = u*Y[a];t = t + u;}returnt;}publicstaticvoid readFileByLines(String fileName) { File file = new File(fileName); BufferedReader reader = null;try { System.out.println(以行为单位读取文件内容,一次读一整行:);reader = new BufferedReader(new FileReader(file));int[][] time1 = newint[5][96];int[] time11 = newint[9];double[][] satelite = newdouble[3][96];double[] satelite1 = newdouble[9];double[] satelite2 = newdouble[9];double[] satelite3 = newdouble[9];double[] time2 = newdouble[96]; String s1; String tempString = null;intline = 1;inti=0,n = 0,j=0,k=0,h=0; Scanner input = new Scanner(System.in); System.out.println(需要读取卫星的编号:); String numb = input.nextLine();// 一次读入一行,直到读入null为文件结束while ((tempString = reader.readLine()) != null) {// 显示行号if(j96){ String m = tempString.substring(1,4).trim();if(m.equals(numb)){ String ss1 = tempString.substring(4,18).trim();satelite[0][j] = Double.parseDouble(ss1);//System.out.println(satelite[0][j]); //读取所需X坐标 String ss2 = tempString.substring(19,33).trim();satelite[1][j] = Double.parseDouble(ss2);//System.out.println(satelite[1][j]); //读取所需Y坐标 String ss3 = tempString.substring(33,47).trim();satelite[2][j] = Double.parseDouble(ss3);//System.out.println(satelite[2][j]); //读取所需Y坐标j++; } }if(line==3){ String s = tempString.substring(4,6).trim();n = Integer.parseInt(s);//System.out.println(n); }if((line ==23 + i*(n+1)) i96){s1
显示全部