2013-07-17 51 views
0

我需要基于二维坐标系上给定的一组点样本对下一个点进行预测。如果最佳拟合直线是预测的最佳方法

我正在使用Best-Fit Straight Line方法进行此类预测。

请让我知道是否有比Best-Fit直线更好的方法?

我的代码如下:

public class LineEquation 
{ 
    public double m; //slope 
    public double c; //constant in y=mx+c 
} 
public class Point 
{ 
    public double x; 
    public double y; 
} 

public class BestFitLine 
{ 
    public Point[] points = new Point[7]; 

    public void InputPoints(Point[] points) 
    { 

     for (int i = 0; i < points.Length; i++) 
     { 
      points[i] = new Point(); 
     } 

     points[0].x = 12; 
     points[0].y = 13; 

     points[1].x = 22; 
     points[1].y = 23; 


     points[2].x = 32; 
     points[2].y = 33; 


     points[3].x = 42; 
     points[0].y = 23; 


     points[4].x = 52; 
     points[4].y = 33; 


     points[5].x = 62; 
     points[5].y = 63; 

     points[6].x = 72; 
     points[6].y = 63; 



    } 

    public LineEquation CalculateBestFitLine(Point[] points) 
    { 
     double constant = 0; 
     double slope=0; 
     for (int i = 0; i < points.Length - 1; i++) 
     { 
      for (int j = i + 1; j < points.Length; j++) 
      { 

       double m = (points[j].y - points[i].y)/(points[j].x - points[i].x); 
       double c = points[j].y - (m * points[j].x); 
       constant += c; 
       slope += m; 
      } 
     } 
     int lineCount =((points.Length-1)*points.Length)/2; 

     slope = slope/lineCount; 
     constant = constant/lineCount; 
     LineEquation eq = new LineEquation(); 
     eq.c = constant; 
     eq.m = slope; 
     return eq; 

    }} 
+1

请提供点的根本性质的更多信息您尝试预测坐标。当选择最佳逼近方法时,它非常依赖于您尝试近似的主题。 –

+1

这个问题似乎是题外话题,因为它是关于数学建模,而不是编程。 – Servy

回答

0

如果你的x坐标由的日期,您可以依靠具有以下组件的广义相加模型: - 趋势 - 年度配置文件 - 每周配置文件 - 日常简档

GAM模型中的R可用,所以我会建议你使用JRI为了与R.接口Java代码

干杯