/usr/share/doc/mathgl/mathgl_en/mathgl_en_45.html is in mathgl-doc-en 2.1.3.1-4ubuntu3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
<!-- This manual is for MathGL (version 2.1.2), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin@gmail.org.
Copyright C 2008-2012 Alexey A. Balakin.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
Texts. A copy of the license is included in the section entitled "GNU
Free Documentation License."
-->
<!-- Created on December 22, 2013 by texi2html 1.82
texi2html was written by:
Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
Olaf Bachmann <obachman@mathematik.uni-kl.de>
and many others.
Maintained by: Many creative people.
Send bugs and suggestions to <texi2html-bug@nongnu.org>
-->
<head>
<title>MathGL 2.1.2: 4.16 Nonlinear fitting</title>
<meta name="description" content="MathGL 2.1.2: 4.16 Nonlinear fitting">
<meta name="keywords" content="MathGL 2.1.2: 4.16 Nonlinear fitting">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="texi2html 1.82">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
pre.display {font-family: serif}
pre.format {font-family: serif}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: serif; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: serif; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.roman {font-family:serif; font-weight:normal;}
span.sansserif {font-family:sans-serif; font-weight:normal;}
ul.toc {list-style: none}
-->
</style>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Nonlinear-fitting"></a>
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="mathgl_en_44.html#Other-plotting" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="mathgl_en_46.html#Data-manipulation" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="mathgl_en_29.html#MathGL-core" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="mathgl_en_29.html#MathGL-core" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="mathgl_en_47.html#Widget-classes" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="mathgl_en_88.html#Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Nonlinear-fitting-1"></a>
<h2 class="section">4.16 Nonlinear fitting</h2>
<a name="index-Fit"></a>
<a name="index-FitS"></a>
<a name="index-PutsFit"></a>
<a name="index-mglFitPnts"></a>
<a name="index-Fit2"></a>
<a name="index-Fit3"></a>
<p>These functions fit data to formula. Fitting goal is to find formula parameters for the best fit the data points, i.e. to minimize the sum <em>\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2</em>. At this, approximation function ‘<samp>f</samp>’ can depend only on one argument ‘<samp>x</samp>’ (1D case), on two arguments ‘<samp>x,y</samp>’ (2D case) and on three arguments ‘<samp>x,y,z</samp>’ (3D case). The function ‘<samp>f</samp>’ also may depend on parameters. Normally the list of fitted parameters is specified by <var>var</var> string (like, ‘<samp>abcd</samp>’). Usually user should supply initial values for fitted parameters by <var>ini</var> variable. But if he/she don’t supply it then the zeros are used. Parameter <var>print</var>=<code>true</code> switch on printing the found coefficients to <var>Message</var> (see <a href="mathgl_en_31.html#Error-handling">Error handling</a>).
</p>
<p>Functions Fit() and FitS() do not draw the obtained data themselves. They fill the data <var>fit</var> by formula ‘<samp>f</samp>’ with found coefficients and return it. At this, the ‘<samp>x,y,z</samp>’ coordinates are equidistantly distributed in the axis range. Number of points in <var>fit</var> is selected as maximal value of <var>fit</var> size and the value of <var>mglFitPnts</var>. Note, that this functions use GSL library and do something only if MathGL was compiled with GSL support. See section <a href="mathgl_en_18.html#Nonlinear-fitting-sample">Nonlinear fitting hints</a>, for sample code and picture.
</p>
<p><a name="fits"></a>
</p><dl>
<dt><a name="index-fits"></a><u>MGL command:</u> <b>fits</b><i> res adat sdat 'func' 'var' [ini=0]</i></dt>
<dt><a name="index-fits-1"></a><u>MGL command:</u> <b>fits</b><i> res xdat adat sdat 'func' 'var' [ini=0]</i></dt>
<dt><a name="index-fits-2"></a><u>MGL command:</u> <b>fits</b><i> res xdat ydat adat sdat 'func' 'var' [ini=0]</i></dt>
<dt><a name="index-fits-3"></a><u>MGL command:</u> <b>fits</b><i> res xdat ydat zdat adat sdat 'func' 'var' [ini=0]</i></dt>
<dt><a name="index-FitS-1"></a><u>Method on <code>mglGraph</code>:</u> <code>mglData</code> <b>FitS</b><i> (<code>const mglDataA &</code>a, <code>const mglDataA &</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>const char *</code>opt=<code>""</code>)</i></dt>
<dt><a name="index-FitS-2"></a><u>Method on <code>mglGraph</code>:</u> <code>mglData</code> <b>FitS</b><i> (<code>const mglDataA &</code>a, <code>const mglDataA &</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &</code>ini, <code>const char *</code>opt=<code>""</code>)</i></dt>
<dt><a name="index-FitS-3"></a><u>Method on <code>mglGraph</code>:</u> <code>mglData</code> <b>FitS</b><i> (<code>const mglDataA &</code>x, <code>const mglDataA &</code>a, <code>const mglDataA &</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>const char *</code>opt=<code>""</code>)</i></dt>
<dt><a name="index-FitS-4"></a><u>Method on <code>mglGraph</code>:</u> <code>mglData</code> <b>FitS</b><i> (<code>const mglDataA &</code>x, <code>const mglDataA &</code>a, <code>const mglDataA &</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &</code>ini, <code>const char *</code>opt=<code>""</code>)</i></dt>
<dt><a name="index-FitS-5"></a><u>Method on <code>mglGraph</code>:</u> <code>mglData</code> <b>FitS</b><i> (<code>const mglDataA &</code>x, <code>const mglDataA &</code>y, <code>const mglDataA &</code>a, <code>const mglDataA &</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>const char *</code>opt=<code>""</code>)</i></dt>
<dt><a name="index-FitS-6"></a><u>Method on <code>mglGraph</code>:</u> <code>mglData</code> <b>FitS</b><i> (<code>const mglDataA &</code>x, <code>const mglDataA &</code>y, <code>const mglDataA &</code>a, <code>const mglDataA &</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &</code>ini, <code>const char *</code>opt=<code>""</code>)</i></dt>
<dt><a name="index-FitS-7"></a><u>Method on <code>mglGraph</code>:</u> <code>mglData</code> <b>FitS</b><i> (<code>const mglDataA &</code>x, <code>const mglDataA &</code>y, <code>const mglDataA &</code>z, <code>const mglDataA &</code>a, <code>const mglDataA &</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>const char *</code>opt=<code>""</code>)</i></dt>
<dt><a name="index-FitS-8"></a><u>Method on <code>mglGraph</code>:</u> <code>mglData</code> <b>FitS</b><i> (<code>const mglDataA &</code>x, <code>const mglDataA &</code>y, <code>const mglDataA &</code>z, <code>const mglDataA &</code>a, <code>const mglDataA &</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &</code>ini, <code>const char *</code>opt=<code>""</code>)</i></dt>
<dt><a name="index-mgl_005ffit_005fys"></a><u>C function:</u> <code>HMDT</code> <b>mgl_fit_ys</b><i> (<code>HMGL</code> gr, <code>HCDT</code> a, <code>HCDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini, <code>const char *</code>opt)</i></dt>
<dt><a name="index-mgl_005ffit_005fxys"></a><u>C function:</u> <code>HMDT</code> <b>mgl_fit_xys</b><i> (<code>HMGL</code> gr, <code>HCDT</code> x, <code>HCDT</code> a, <code>HCDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini, <code>const char *</code>opt)</i></dt>
<dt><a name="index-mgl_005ffit_005fxyzs"></a><u>C function:</u> <code>HMDT</code> <b>mgl_fit_xyzs</b><i> (<code>HMGL</code> gr, <code>HCDT</code> x, <code>HCDT</code> y, <code>HCDT</code> a, <code>HCDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini, <code>const char *</code>opt)</i></dt>
<dt><a name="index-mgl_005ffit_005fxyzas"></a><u>C function:</u> <code>HMDT</code> <b>mgl_fit_xyzas</b><i> (<code>HMGL</code> gr, <code>HCDT</code> x, <code>HCDT</code> y, <code>HCDT</code> z, <code>HCDT</code> a, <code>HCDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini, <code>const char *</code>opt)</i></dt>
<dd><p>Fit data along x-, y- and z-directions for array specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) with weight factor <var>s</var>[i,j,k].
</p></dd></dl>
<p><a name="fit"></a>
</p><dl>
<dt><a name="index-fit"></a><u>MGL command:</u> <b>fit</b><i> res adat sdat 'func' 'var' [ini=0]</i></dt>
<dt><a name="index-fit-1"></a><u>MGL command:</u> <b>fit</b><i> res xdat adat sdat 'func' 'var' [ini=0]</i></dt>
<dt><a name="index-fit-2"></a><u>MGL command:</u> <b>fit</b><i> res xdat ydat adat sdat 'func' 'var' [ini=0]</i></dt>
<dt><a name="index-fit-3"></a><u>MGL command:</u> <b>fit</b><i> res xdat ydat zdat adat sdat 'func' 'var' [ini=0]</i></dt>
<dt><a name="index-Fit-1"></a><u>Method on <code>mglGraph</code>:</u> <code>mglData</code> <b>Fit</b><i> (<code>const mglDataA &</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>const char *</code>opt=<code>""</code>)</i></dt>
<dt><a name="index-Fit-2"></a><u>Method on <code>mglGraph</code>:</u> <code>mglData</code> <b>Fit</b><i> (<code>const mglDataA &</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &</code>ini, <code>const char *</code>opt=<code>""</code>)</i></dt>
<dt><a name="index-Fit-3"></a><u>Method on <code>mglGraph</code>:</u> <code>mglData</code> <b>Fit</b><i> (<code>const mglDataA &</code>x, <code>const mglDataA &</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>const char *</code>opt=<code>""</code>)</i></dt>
<dt><a name="index-Fit-4"></a><u>Method on <code>mglGraph</code>:</u> <code>mglData</code> <b>Fit</b><i> (<code>const mglDataA &</code>x, <code>const mglDataA &</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &</code>ini, <code>const char *</code>opt=<code>""</code>)</i></dt>
<dt><a name="index-Fit-5"></a><u>Method on <code>mglGraph</code>:</u> <code>mglData</code> <b>Fit</b><i> (<code>const mglDataA &</code>x, <code>const mglDataA &</code>y, <code>const mglDataA &</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>const char *</code>opt=<code>""</code>)</i></dt>
<dt><a name="index-Fit-6"></a><u>Method on <code>mglGraph</code>:</u> <code>mglData</code> <b>Fit</b><i> (<code>const mglDataA &</code>x, <code>const mglDataA &</code>y, <code>const mglDataA &</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &</code>ini, <code>const char *</code>opt=<code>""</code>)</i></dt>
<dt><a name="index-Fit-7"></a><u>Method on <code>mglGraph</code>:</u> <code>mglData</code> <b>Fit</b><i> (<code>const mglDataA &</code>x, <code>const mglDataA &</code>y, <code>const mglDataA &</code>z, <code>const mglDataA &</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>const char *</code>opt=<code>""</code>)</i></dt>
<dt><a name="index-Fit-8"></a><u>Method on <code>mglGraph</code>:</u> <code>mglData</code> <b>Fit</b><i> (<code>const mglDataA &</code>x, <code>const mglDataA &</code>y, <code>const mglDataA &</code>z, <code>const mglDataA &</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &</code>ini, <code>const char *</code>opt=<code>""</code>)</i></dt>
<dt><a name="index-mgl_005ffit_005fy"></a><u>C function:</u> <code>HMDT</code> <b>mgl_fit_y</b><i> (<code>HMGL</code> gr, <code>HCDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini, <code>const char *</code>opt)</i></dt>
<dt><a name="index-mgl_005ffit_005fxy"></a><u>C function:</u> <code>HMDT</code> <b>mgl_fit_xy</b><i> (<code>HMGL</code> gr, <code>HCDT</code> x, <code>HCDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini, <code>const char *</code>opt)</i></dt>
<dt><a name="index-mgl_005ffit_005fxyz"></a><u>C function:</u> <code>HMDT</code> <b>mgl_fit_xyz</b><i> (<code>HMGL</code> gr, <code>HCDT</code> x, <code>HCDT</code> y, <code>HCDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini, <code>const char *</code>opt)</i></dt>
<dt><a name="index-mgl_005ffit_005fxyza"></a><u>C function:</u> <code>HMDT</code> <b>mgl_fit_xyza</b><i> (<code>HMGL</code> gr, <code>HCDT</code> x, <code>HCDT</code> y, <code>HCDT</code> z, <code>HCDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini, <code>const char *</code>opt)</i></dt>
<dd><p>Fit data along x-, y- and z-directions for array specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) with weight factor 1.
</p></dd></dl>
<dl>
<dt><a name="index-Fit2-1"></a><u>Method on <code>mglGraph</code>:</u> <code>mglData</code> <b>Fit2</b><i> (<code>const mglDataA &</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>const char *</code>opt=<code>""</code>)</i></dt>
<dt><a name="index-Fit2-2"></a><u>Method on <code>mglGraph</code>:</u> <code>mglData</code> <b>Fit2</b><i> (<code>mglData &</code>fit, <code>const mglDataA &</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &</code>ini, <code>const char *</code>opt=<code>""</code>)</i></dt>
<dt><a name="index-Fit3-1"></a><u>Method on <code>mglGraph</code>:</u> <code>mglData</code> <b>Fit3</b><i> (<code>mglData &</code>fit, <code>const mglDataA &</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>const char *</code>opt=<code>""</code>)</i></dt>
<dt><a name="index-Fit3-2"></a><u>Method on <code>mglGraph</code>:</u> <code>mglData</code> <b>Fit3</b><i> (<code>mglData &</code>fit, <code>const mglDataA &</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &</code>ini, <code>const char *</code>opt=<code>""</code>)</i></dt>
<dt><a name="index-mgl_005ffit_005f2"></a><u>C function:</u> <code>HMDT</code> <b>mgl_fit_2</b><i> (<code>HMGL</code> gr, <code>HCDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini, <code>const char *</code>opt)</i></dt>
<dt><a name="index-mgl_005ffit_005f3"></a><u>C function:</u> <code>HMDT</code> <b>mgl_fit_3</b><i> (<code>HMGL</code> gr, <code>HCDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini, <code>const char *</code>opt)</i></dt>
<dd><p>Fit data along all directions for 2d or 3d arrays <var>a</var> with <var>s</var>=1 and <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
</p></dd></dl>
<p><a name="putsfit"></a>
</p><dl>
<dt><a name="index-putsfit"></a><u>MGL command:</u> <b>putsfit</b><i> <code>x y</code> ['pre'='' 'fnt'='' <code>size=-1</code>]</i></dt>
<dt><a name="index-PutsFit-1"></a><u>Method on <code>mglGraph</code>:</u> <code>void</code> <b>PutsFit</b><i> (<code>mglPoint</code> p, <code>const char *</code>prefix=<code>""</code>, <code>const char *</code>font=<code>""</code>, <code>mreal</code> size=<code>-1</code>)</i></dt>
<dt><a name="index-mgl_005fputs_005ffit"></a><u>C function:</u> <code>void</code> <b>mgl_puts_fit</b><i> (<code>HMGL</code> gr, <code>mreal</code> x, <code>mreal</code> y, <code>mreal</code> z, <code>const char *</code>prefix, <code>const char *</code>font, <code>mreal</code> size)</i></dt>
<dd><p>Print last fitted formula with found coefficients (as numbers) at position <var>p0</var>. The string <var>prefix</var> will be printed before formula. All other parameters are the same as in <a href="mathgl_en_36.html#Text-printing">Text printing</a>.
</p></dd></dl>
<dl>
<dt><a name="index-GetFit"></a><u>Method on <code>mglGraph</code>:</u> <code>const char *</code> <b>GetFit</b><i> ()</i></dt>
<dt><a name="index-mgl_005fget_005ffit"></a><u>C function:</u> <code>const char *</code> <b>mgl_get_fit</b><i> (<code>HMGL</code> gr)</i></dt>
<dd><p>Get last fitted formula with found coefficients (as numbers).
</p></dd></dl>
<hr size="6">
<table cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="mathgl_en_44.html#Other-plotting" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="mathgl_en_46.html#Data-manipulation" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="mathgl_en_29.html#MathGL-core" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="mathgl_en_29.html#MathGL-core" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="mathgl_en_47.html#Widget-classes" title="Next chapter"> >> </a>]</td>
</tr></table>
<p>
<font size="-1">
This document was generated by <em>Build Daemon user</em> on <em>December 22, 2013</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
</font>
<br>
</p>
</body>
</html>
|