Эти функции подбирают параметры функции для наилучшей аппроксимации данных, т.е. минимизируют сумму \sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2. При этом аппроксимирующая функция ‘f’ может зависеть от одного аргумента ‘x’ (1D случай), от двух аргументов ‘x,y’ (2D случай) или от трех аргументов ‘x,y,z’ (3D случай). Функция ‘f’ также может зависеть от параметров. Список параметров задается строкой var (например, ‘abcd’). Если строка var содержит цифры 1,2,3 или 4, то используется робастная аппроксимация с заменой нормы |df|^2 на следующие: ‘1’ - sqrt(1+|df|^2)-1, ‘2’ - |df|^4, ‘3’ - Andrew sine (1-cos(df)), ‘4’ - Tukey biweight (|df|^2*(1-C*|df|^2)). Обычно пользователь должен предоставить начальные значения параметров в переменной ini. Однако, при его отсутствии используются нулевые значения. Параметр print=true включает вывод найденной формулы в Message (см. Обработка ошибок).
Функции Fit() и FitS() не рисуют полученные массивы. Они заполняют массив fit по формуле ‘f’ с найденными коэффициентами и возвращают \chi^2 ошибку аппроксимации. При этом, координаты ‘x,y,z’ равно распределены в диапазоне осей координат. Число точек в fit определяется опцией value (по умолчанию mglFitPnts=100). Функции используют библиотеку GSL. См. раздел Nonlinear fitting hints, для примеров кода и графика.
res adat sdat 'func' 'var' [ini=0] ¶res xdat adat sdat 'func' 'var' [ini=0] ¶res xdat ydat adat sdat 'func' 'var' [ini=0] ¶res xdat ydat zdat adat sdat 'func' 'var' [ini=0] ¶mglGraph: mglData FitS (const mglDataA &a, const mglDataA &s, const char *func, const char *var, const char *opt="") ¶mglGraph: mglData FitS (const mglDataA &a, const mglDataA &s, const char *func, const char *var, mglData &ini, const char *opt="") ¶mglGraph: mglData FitS (const mglDataA &x, const mglDataA &a, const mglDataA &s, const char *func, const char *var, const char *opt="") ¶mglGraph: mglData FitS (const mglDataA &x, const mglDataA &a, const mglDataA &s, const char *func, const char *var, mglData &ini, const char *opt="") ¶mglGraph: mglData FitS (const mglDataA &x, const mglDataA &y, const mglDataA &a, const mglDataA &s, const char *func, const char *var, const char *opt="") ¶mglGraph: mglData FitS (const mglDataA &x, const mglDataA &y, const mglDataA &a, const mglDataA &s, const char *func, const char *var, mglData &ini, const char *opt="") ¶mglGraph: mglData FitS (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &a, const mglDataA &s, const char *func, const char *var, const char *opt="") ¶mglGraph: mglData FitS (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &a, const mglDataA &s, const char *func, const char *var, mglData &ini, const char *opt="") ¶HMDT mgl_fit_ys (HMGL gr, HCDT a, HCDT s, const char *func, const char *var, HMDT ini, const char *opt) ¶HMDT mgl_fit_xys (HMGL gr, HCDT x, HCDT a, HCDT s, const char *func, const char *var, HMDT ini, const char *opt) ¶HMDT mgl_fit_xyzs (HMGL gr, HCDT x, HCDT y, HCDT a, HCDT s, const char *func, const char *var, HMDT ini, const char *opt) ¶HMDT mgl_fit_xyzas (HMGL gr, HCDT x, HCDT y, HCDT z, HCDT a, HCDT s, const char *func, const char *var, HMDT ini, const char *opt) ¶"Подгоняют" формулу вдоль x-, y- и z-направлений для 3d массива заданного параметрически a[i,j,k](x[i,j,k], y[i,j,k], z[i,j,k]) с весовым множителем s[i,j,k]. Если строка var содержит цифры, то меняется норма ошибки, используемая при аппроксимации: ’1’ для нормы sqrt(1+|a|^2), ’2’ для нормы |a|^4, ’3’ для нормы 1-cos(a), ’4’ для нормы |a|^2*(2-|a|^2/6^2), норма по умолчанию |a|^2.
res adat 'func' 'var' [ini=0] ¶res xdat adat 'func' 'var' [ini=0] ¶res xdat ydat adat 'func' 'var' [ini=0] ¶res xdat ydat zdat adat 'func' 'var' [ini=0] ¶mglGraph: mglData Fit (const mglDataA &a, const char *func, const char *var, const char *opt="") ¶mglGraph: mglData Fit (const mglDataA &a, const char *func, const char *var, mglData &ini, const char *opt="") ¶mglGraph: mglData Fit (const mglDataA &x, const mglDataA &a, const char *func, const char *var, const char *opt="") ¶mglGraph: mglData Fit (const mglDataA &x, const mglDataA &a, const char *func, const char *var, mglData &ini, const char *opt="") ¶mglGraph: mglData Fit (const mglDataA &x, const mglDataA &y, const mglDataA &a, const char *func, const char *var, const char *opt="") ¶mglGraph: mglData Fit (const mglDataA &x, const mglDataA &y, const mglDataA &a, const char *func, const char *var, mglData &ini, const char *opt="") ¶mglGraph: mglData Fit (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &a, const char *func, const char *var, const char *opt="") ¶mglGraph: mglData Fit (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &a, const char *func, const char *var, mglData &ini, const char *opt="") ¶HMDT mgl_fit_y (HMGL gr, HCDT a, const char *func, const char *var, HMDT ini, const char *opt) ¶HMDT mgl_fit_xy (HMGL gr, HCDT x, HCDT a, const char *func, const char *var, HMDT ini, const char *opt) ¶HMDT mgl_fit_xyz (HMGL gr, HCDT x, HCDT y, HCDT a, const char *func, const char *var, HMDT ini, const char *opt) ¶HMDT mgl_fit_xyza (HMGL gr, HCDT x, HCDT y, HCDT z, HCDT a, const char *func, const char *var, HMDT ini, const char *opt) ¶"Подгоняют" формулу вдоль x-, y- и z-направлений для 3d массива заданного параметрически a[i,j,k](x[i,j,k], y[i,j,k], z[i,j,k]) с весовым множителем 1. Если строка var содержит цифры, то меняется норма ошибки, используемая при аппроксимации: ’1’ для нормы sqrt(1+|a|^2), ’2’ для нормы |a|^4, ’3’ для нормы 1-cos(a), ’4’ для нормы |a|^2*(2-|a|^2/6^2), норма по умолчанию |a|^2.
mglGraph: mglData Fit2 (const mglDataA &a, const char *func, const char *var, const char *opt="") ¶mglGraph: mglData Fit2 (mglData &fit, const mglDataA &a, const char *func, const char *var, mglData &ini, const char *opt="") ¶mglGraph: mglData Fit3 (mglData &fit, const mglDataA &a, const char *func, const char *var, const char *opt="") ¶mglGraph: mglData Fit3 (mglData &fit, const mglDataA &a, const char *func, const char *var, mglData &ini, const char *opt="") ¶HMDT mgl_fit_2 (HMGL gr, HCDT a, const char *func, const char *var, HMDT ini, const char *opt) ¶HMDT mgl_fit_3 (HMGL gr, HCDT a, const char *func, const char *var, HMDT ini, const char *opt) ¶"Подгоняют" формулу вдоль всех направлений для 2d или 3d массива a с s=1 и x, y, z равно распределёнными в диапазоне осей координат.
x y ['pre'='' 'fnt'='' size=-1] ¶mglGraph: void PutsFit (mglPoint p, const char *prefix="", const char *font="", mreal size=-1) ¶void mgl_puts_fit (HMGL gr, mreal x, mreal y, mreal z, const char *prefix, const char *font, mreal size) ¶Печатает последнюю подобранную формулу с найденными коэффициентами в точке p0. Строка prefix будет напечатана перед формулой. Все другие параметры такие же как в Вывод текста.
mglGraph: const char *GetFit () ¶const char * mgl_get_fit (HMGL gr) ¶ mgl_get_fit (long gr, char *out, int len) ¶Возвращает последнюю подобранную формулу с найденными коэффициентами.