public Surface[] GetPanels() { Surface[] result = new Surface[Transformations.Count()]; for (int i = 0; i < Transformations.Count(); i++) { result[i] = GetPanel(i); } return(result); }
public double[] TryOptimizationTransform(int count = 1, double Scale = 1.0) { List <double> history = new List <double>(); for (int i = 0; i < count; i++) { var test = GetTest(); for (int j = 0; j < Transformations.Count(); j++) { var paraMatrix = Functions.ArrayToMatrix(this.Transformations[j].Paramaters.ToArray()); Matrix m = Functions.GaussNewtonMethod(GetJacobian(Transformations[j].Paramaters), Functions.ArrayToMatrix(test), paraMatrix); m.Scale(Scale); this.Transformations[j].Paramaters.Init(Functions.MatrixToArray(m + paraMatrix)); } history.Add(Functions.GetSquareSum(test)); } return(history.ToArray()); }