package examensarbete;import java.util.*;import java.lang.Math.*;import java.awt.Color;public class Main { static ArrayList<Jama.Matrix> matrixP; static ArrayList<Jama.Matrix> matrixX; static ArrayList<Jama.Matrix> matrixK; static ArrayList<Jama.Matrix> matrixH; static ArrayList<Jama.Matrix> matrixZ; public Main() { } public static void main(String[] args) { double gaussian = nextGaussian(); //skapa graf... Plotter graph = new Plotter(0,0,7000,11000); matrixP = new ArrayList(); matrixX = new ArrayList(); matrixK = new ArrayList(); matrixH = new ArrayList(); matrixZ = new ArrayList();//matrix to carry standard dev...default 100 Jama.Matrix p = new Jama.Matrix(4,4); p.set(0,0, 100); p.set(1,1, 100); p.set(2,2, 100); p.set(3,3, 100); matrixP.add(p);//matrix to carry X Jama.Matrix x = new Jama.Matrix(4,1); matrixX.add(x); //matrix to carry h & h Jama.Matrix k = new Jama.Matrix(4,1); matrixK.add(k); Jama.Matrix h = new Jama.Matrix(1,4); matrixH.add(h); int r = 1; int e = 1; for (int i = 1; i<=5003; i++) { matrixZ.add(new Jama.Matrix(1,1)); r = r+1; e = e+1; int randomInt = r + (int)(Math.random() * e); matrixZ.get(i-1).set(0,0,randomInt); }//matrixes to keep values of calculations Jama.Matrix h_transpose = new Jama.Matrix(4,1); Jama.Matrix hxp = new Jama.Matrix(1,4); Jama.Matrix hxpresult = new Jama.Matrix(1,1); Jama.Matrix v = new Jama.Matrix(1,1); Jama.Matrix pxhT = new Jama.Matrix(4,1); Jama.Matrix tempK = new Jama.Matrix(4,1); Jama.Matrix kxh = new Jama.Matrix(4,4); Jama.Matrix kxhxp = new Jama.Matrix(4,4); Jama.Matrix XxH = new Jama.Matrix(1,1); Jama.Matrix zminushx = new Jama.Matrix(1,1); Jama.Matrix kXzminushx = new Jama.Matrix(4,1); //radera denna sen..bara for test. double t = 1.0; for (int i = 0; i<=5000; i++) { graph.drawPoint(t, matrixZ.get(i).get(0,0)); ///////////////////////////line1////////////////////////// matrixH.add(h = new Jama.Matrix(1,4)); //set all t to preliminar measure times matrixH.get(i+1).set(0,0,1); matrixH.get(i+1).set(0,1,t); matrixH.get(i+1).set(0,2,Math.pow(t,2)); matrixH.get(i+1).set(0,3,Math.pow(t,3)); hxp = matrixH.get(i+1).times(matrixP.get(i)); h_transpose = matrixH.get(i+1).transpose(); hxpresult = hxp.times(h_transpose); v.set(0,0,1 / (hxpresult.get(0,0) + 2)); pxhT = matrixP.get(i).times(h_transpose); matrixK.add(pxhT.times(v)); /////////////////////////line2/////////////////////////// kxh = matrixK.get(i+1).times(matrixH.get(i+1)); kxhxp = kxh.times(matrixP.get(i)); matrixP.add(matrixP.get(i).minus(kxhxp)); /////////////////////////line3/////////////////////////// XxH = matrixH.get(i+1).times(matrixX.get(i)); zminushx = matrixZ.get(i+1).minus(XxH); kXzminushx = matrixK.get(i+1).times(zminushx); matrixX.add(matrixX.get(i).plus(kXzminushx)); //matrixX.get(i).print(10,4); t = t+1; } double plottvalue; double xx = 0.0; //a_0 + a_1x + a_2x^2 + a_3x^3 for (int ii = 0; ii<=5000; ii++) { plottvalue = matrixX.get(ii+1).get(0,0) + (matrixX.get(ii+1).get(1,0)*xx) + matrixX.get(ii+1).get(2,0)* Math.pow(xx,2) + matrixX.get(ii+1).get(3,0)* Math.pow(xx,3); //System.out.println(plottvalue); graph.setPenColor(Color.RED); graph.drawPoint(xx,plottvalue); xx = xx +1; } } }