Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package regression2;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Scanner;
- public class Functions
- {
- public void printMatrix(double[][] matrix,int n)
- {
- for(int i=1;i<=n;i++)
- {
- for(int j=1;j<=n+1;j++)
- {
- System.out.print(matrix[i][j]+"\t");
- }
- System.out.println("");
- }
- }
- public void printList(List<Double> list)
- {
- int listSize = list.size();
- for(int i=0;i<listSize;i++)
- {
- System.out.println("Item "+(i+1)+" : "+list.get(i));
- }
- }
- public void printList(String listName,List<Double> list)
- {
- int listSize = list.size();
- System.out.println("In "+listName+" : ");
- for(int i=0;i<listSize;i++)
- {
- System.out.println("Item "+(i+1)+" : "+list.get(i));
- }
- }
- public double sumOfList(List<Double> list)
- {
- int listSize = list.size();
- double sum = 0;
- for(int i=0;i<listSize;i++)
- {
- sum=sum+list.get(i);
- }
- return sum;
- }
- public List<Double> makeSumOfSquareList(List<Double> list)
- {
- List<Double> newList = new ArrayList();
- int listSize = list.size();
- for(int i=0;i<listSize;i++)
- {
- double x = list.get(i);
- double newX = Math.pow(x,2);
- newList.add(newX);
- }
- return newList;
- }
- public List<Double> makeSumOfCubeList(List<Double> list)
- {
- List<Double> newList = new ArrayList();
- int listSize = list.size();
- for(int i=0;i<listSize;i++)
- {
- double x = list.get(i);
- double newX = Math.pow(x,3);
- newList.add(newX);
- }
- return newList;
- }
- public List<Double> makeSumOfPower4List(List<Double> list)
- {
- List<Double> newList = new ArrayList();
- int listSize = list.size();
- for(int i=0;i<listSize;i++)
- {
- double x = list.get(i);
- double newX = Math.pow(x,4);
- newList.add(newX);
- }
- return newList;
- }
- public List<Double> makeSumOfYXList(List<Double> listX,List<Double> listY)
- {
- List<Double> newList = new ArrayList();
- int listSize = listX.size();
- for(int i=0;i<listSize;i++)
- {
- double x = listX.get(i);
- double y = listY.get(i);
- double w = y*x;
- newList.add(w);
- }
- return newList;
- }
- public List<Double> makeSumOfYXSquareList(List<Double> listX,List<Double> listY)
- {
- List<Double> newList = new ArrayList();
- int listSize = listX.size();
- for(int i=0;i<listSize;i++)
- {
- double x = Math.pow(listX.get(i),2);
- double y = listY.get(i);
- double w = y*x;
- newList.add(w);
- }
- return newList;
- }
- public double[][] makeMatrix(List<Double> listX,List<Double> listY,int n)
- {
- double[][] x = new double[n+1][n+2];
- x[1][1]=n;
- x[1][2]=sumOfList(listX);
- x[1][3]=sumOfList(makeSumOfSquareList(listX));
- x[1][4]=sumOfList(listY);
- x[2][1]=sumOfList(listX);
- x[2][2]=sumOfList(makeSumOfSquareList(listX));
- x[2][3]=sumOfList(makeSumOfCubeList(listX));
- x[2][4]=sumOfList(makeSumOfYXList(listX,listY));
- x[3][1]=sumOfList(makeSumOfSquareList(listX));
- x[3][2]=sumOfList(makeSumOfCubeList(listX));
- x[3][3]=sumOfList(makeSumOfPower4List(listX));
- x[3][4]=sumOfList(makeSumOfYXSquareList(listX,listY));
- for(int i=1;i<=3;i++)
- {
- for(int j=1;j<=4;j++)
- {
- System.out.print(x[i][j]+"\t");
- }
- System.out.println("");
- }
- return x;
- }
- public List<Double> solutionGJM(double[][] matrix,int n)
- {
- List<Double> list = new ArrayList();
- double Matrix[][] = matrix;
- double pivotSafe=0,pivotOwn=0;
- for(int k=1;k<=n;k++)
- {
- for(int i=1;i<=n;i++)
- {
- if(i!=k)
- {
- pivotSafe = Matrix[k][k];
- pivotOwn = Matrix[i][k];
- for(int j=1;j<=n+1;j++)
- {
- Matrix[i][j]=(pivotSafe*Matrix[i][j])-(pivotOwn*Matrix[k][j]);
- }
- }
- }
- }
- //printMatrix(Matrix,n);
- for(int i=1;i<=n;i++)
- {
- double pivot = Matrix[i][i];
- for(int j=1;j<=n+1;j++)
- {
- Matrix[i][j]=Matrix[i][j]/pivot;
- }
- }
- // printMatrix(Matrix,n);
- for(int i = 1;i<=n;i++)
- {
- list.add(Matrix[i][n+1]);
- }
- return list;
- }
- /*
- public double[][] elimination1(double[][] matrix,int n)
- {
- double Matrix[][] = matrix;
- double pivotSafe=0,pivotOwn=0;
- for(int k=1;k<=n;k++)
- {
- for(int i=1;i<=n;i++)
- {
- if(i!=k)
- {
- pivotSafe = Matrix[k][k];
- pivotOwn = Matrix[i][k];
- for(int j=1;j<=n+1;j++)
- {
- Matrix[i][j]=(pivotSafe*Matrix[i][j])-(pivotOwn*Matrix[k][j]);
- }
- }
- }
- }
- //printMatrix(Matrix,n);
- for(int i=1;i<=n;i++)
- {
- double pivot = Matrix[i][i];
- for(int j=1;j<=n+1;j++)
- {
- Matrix[i][j]=Matrix[i][j]/pivot;
- }
- }
- return Matrix;
- }
- */
- }
- public class Main
- {
- public static List<Double> listX = new ArrayList();
- public static List<Double> listY = new ArrayList();
- public static void inputData2D(int totalDataSize)
- {
- Scanner scanner = new Scanner(System.in);
- for(int i=0;i<totalDataSize;i++)
- {
- System.out.print("Enter x"+(i+1)+" : ");
- double x = scanner.nextDouble();
- listX.add(x);
- System.out.print("Enter y"+(i+1)+" : ");
- double y = scanner.nextDouble();
- listY.add(y);
- }
- }
- public static void main(String[] args)
- {
- Functions functions = new Functions();
- Scanner scanner = new Scanner(System.in);
- System.out.print("How many (x,y) inputs : ");
- int totalData = scanner.nextInt();
- inputData2D(totalData);
- double[][] matrix = functions.makeMatrix(listX,listY,totalData);
- List<Double> listA = functions.solutionGJM(matrix,3);
- System.out.println("The straight line is : y="+listA.get(0)+"+"+listA.get(1)+"x"+"+"+listA.get(2)+"x2");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement