NullPointerException

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • geenie
    New Member
    • May 2007
    • 5

    NullPointerException

    i`m developind my second program using java which is supposed to solve a system of ordinary differential equations(S'=-beta*S*I-alfa*I;I'=beta* S*I+alfa*I) using runge kutta method;my first program was supposde to solve a single eq and worked just great(after a initial nullpointer exception error ,which reading some things on the internet i managed to eliminate).now i get the same error and i figure it has something to do with dereferencing ,but no matter how hard i tried i haven`t solved the problem;
    the code source looks like that(actually it`s now the final implementation of my algorithm,i`m just trying to test some things):
    -------------------------------------------------------------------------------------------------------------------
    [import java.io.*;
    import java.util.Array List;



    class SolutiiDeTe{

    double timp;
    double[] solutie;

    public static double[] inmultireVector CuScalar(double a, double[] b){

    double[] x=new double[b.length];
    for(int i=0;i<b.length; i++)
    x[i]=b[i]*a;
    return x;
    }

    public static double[] AdunareVectori( double[] a, double[] b){

    double[] x=new double[b.length];
    for(int i=0;i<b.length; i++)
    x[i]=b[i]+a[i];
    return x;
    }



    public static double[] definireSIS(dou ble[] y,double xi,double alfa,double beta){

    xi=(double)0;
    double[] dy=new double[2];
    dy[0]=-beta*y[0]*y[1]+alfa*y[1];
    dy[1]=beta*y[0]*y[1]-alfa*y[1];
    return dy;
    }

    //public double[] definireSIRS(do uble[] y,double alfa,double beta){
    // double[] dy=new double[3];
    // dy[0]=-beta*y[0]*y[1];
    // dy[1]=beta*y[0]*y[1]-alfa*y[1];
    // dy[2]=alfa*y[1];
    // return dy;
    //}

    public static SolutiiDeTe[] RK_SIS(int an1,int an2,int N,double pas,double a,double b,int inf) {

    double[] k1,k2,k3,k4,k;

    int nr_pasi=(int)(( an2-an1)/pas);

    SolutiiDeTe[] y=new SolutiiDeTe[nr_pasi+1];

    for (int i=0;i<nr_pasi;i ++)
    {y[i]=new SolutiiDeTe();
    y[i].solutie=new double[2];
    }

    double[] dy=new double[nr_pasi+1];


    y[0].timp=an1;
    y[0].solutie[0]=(double)(N-inf);
    y[0].solutie[1]=(double)inf;

    for (int i=0;i<nr_pasi;i ++){
    k1=new double[2];
    k2=new double[2];
    k3=new double[2];
    k4=new double[2];
    k=new double[2];
    k1=SolutiiDeTe. inmultireVector CuScalar(pas,So lutiiDeTe.defin ireSIS(y[i].solutie,y[i].timp,a,b));

    k=SolutiiDeTe.i nmultireVectorC uScalar(0.5,k1) ;
    k=SolutiiDeTe.A dunareVectori(y[i].solutie,k);

    k2=SolutiiDeTe. inmultireVector CuScalar(pas,So lutiiDeTe.defin ireSIS(k,y[i].timp+0.5*pas,a ,b));

    k=SolutiiDeTe.i nmultireVectorC uScalar(0.5,k2) ;
    k=SolutiiDeTe.A dunareVectori(y[i].solutie,k);
    k3=SolutiiDeTe. inmultireVector CuScalar(pas,So lutiiDeTe.defin ireSIS(k,y[i].timp+0.5*pas,a ,b));
    k=SolutiiDeTe.A dunareVectori(y[i].solutie,k3);
    k4=SolutiiDeTe. inmultireVector CuScalar(pas,So lutiiDeTe.defin ireSIS(k,y[i].timp+pas,a,b)) ;
    k=SolutiiDeTe.i nmultireVectorC uScalar(2,k2);
    dy=SolutiiDeTe. AdunareVectori( k1,k);
    k=SolutiiDeTe.i nmultireVectorC uScalar(2,k2);
    dy=SolutiiDeTe. AdunareVectori( dy,k);
    dy=SolutiiDeTe. AdunareVectori( dy,k4);
    dy=SolutiiDeTe. inmultireVector CuScalar(1/6,dy);


    y[i+1].solutie=Soluti iDeTe.AdunareVe ctori(dy,y[i].solutie);

    y[i+1].timp=((double) (Math.round((y[0].timp+pas*(i+1) )*10)))/10;
    }

    return y;}

    public static void main(String[] args) {

    SolutiiDeTe[] x=new SolutiiDeTe[21];

    for (int i=0;i<21;i++)

    {x[i]=new SolutiiDeTe();
    x[i].solutie=new double[2];
    }



    x=SolutiiDeTe.R K_SIS(1,3,50,0. 1,0.2,0.1,2);
    for (int i=0;i<21;i++)
    System.out.prin tln(x[i].timp+" "+x[i].solutie);

    }
    }
    ---------------------------------------------------------------------------------------------------------------

    the exact error i get is

    Exception in thread "main" java.lang.NullP ointerException
Working...