/-------- 新的类 点 -------------/
public class cls_pointD
{
public decimal x { get; set; }
public decimal y { get; set; }
public PointF to_pf()
{
return new PointF((float)this.x, (float)this.y);
}
}
/----------- 线性方程 b,k,y ------------------------/
public decimal get_zxfc_k(List<<cls_pointD>> ls)
{
decimal k = 0;
var ax = ls.Average(s => s.x);
var ay = ls.Average(s => s.y);
decimal fm = 0;
decimal fz = 0;
foreach (var t in ls)
{
fz += (ax - t.x) * (ay - t.y);
fm += (decimal)Math.Pow((double)(ax - t.x), 2);
}
k = fz / fm;
return k;
}
public decimal get_zxfc_b(List ls<<cls_pointD>>, decimal k)
{
try
{
decimal b = 0;
var ax = ls.Average(s => s.x);
var ay = ls.Average(s => s.y);
b = ay - k * ax;
return b;
}
catch (Exception)
{ }
return 0;
}
public decimal get_zxfc(decimal x, decimal k, decimal b)
{
return k * x + b;
}
/------------ 趋势值 -------------------------------
var y = get_zxfc((ls.Count + 1) * ls[0].x, k, b);