最近在做一个算法,对数据进行状态估计,历史数据存在表中,以每5分钟取一次,我要做的工作的就是对每个时间点的数据进行估计,在纸上已经测试成功,需要用程序写出来,但是遇到了一个问题,就是如何在java中写一个等式方程。
      举个例子,我取出的某个时间点的一组数据如下:
         b1=22.0,  b2=22.0, b3=33.0 , b4=34.0, b5= 35.0,b6=44.0, s1=11.0  ,s2=12.0  ,s3=13.0  ,s4=14.0 
    估计目标函数
        S = (a-b1)^2+(b-b2)^2+(c-b3)^2+(d-b4)^2+(e-b5)^2+(f-b6)^2+(g-s1)^2+(h-s2)^2+(j-s3)^2+(k-s4)^2
    其中 a,b,c,d,e,f,g,h,j,k是方程中的变量,S 相当于f(x)也是一个变量
     但是,java中变量是需要赋初值的,因此我这么写的话 上述的变量必须初始化为0,我现在用的方法是直接写成String类型了,但是后面的操作就相当麻烦,因此希望能够求到一个简便的方法

解决方案 »

  1.   

    我想可以把变量封装到一个实体类里 通过get(),set()处理来解决
      

  2.   

    你这样写S = (a-b1)^2+(b-b2)^2+(c-b3)^2+(d-b4)^2+(e-b5)^2+(f-b6)^2+(g-s1)^2+(h-s2)^2+(j-s3)^2+(k-s4)^2 就相当于字符串相加,eg:s=3+5,那s的值就是35。
    建议你这样写
    public  void sum(int a,int b,int c,int d,int e,int f,int g,int h,int j,int k){
    Integer s=(a-b1)^2+(b-b2)^2+(c-b3)^2+(d-b4)^2+(e-b5)^2+(f-b6)^2+(g-s1)^2+(h-s2)^2+(j-s3)^2+(k-s4)^2 ;
    }