Эти функции подбирают параметры функции для наилучшей аппроксимации данных, т.е. минимизируют сумму \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)
¶Возвращает последнюю подобранную формулу с найденными коэффициентами.