This file is indexed.

/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"> &lt; </a>]</td>
<td valign="middle" align="left">[<a href="mathgl_en_46.html#Data-manipulation" title="Next section in reading order"> &gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="mathgl_en_29.html#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </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"> &gt;&gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left"> &nbsp; </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 &lsquo;<samp>f</samp>&rsquo; can depend only on one argument &lsquo;<samp>x</samp>&rsquo; (1D case), on two arguments &lsquo;<samp>x,y</samp>&rsquo; (2D case) and on three arguments &lsquo;<samp>x,y,z</samp>&rsquo; (3D case). The function &lsquo;<samp>f</samp>&rsquo; also may depend on parameters. Normally the list of fitted parameters is specified by <var>var</var> string (like, &lsquo;<samp>abcd</samp>&rsquo;). Usually user should supply initial values for fitted parameters by <var>ini</var> variable. But if he/she don&rsquo;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 &lsquo;<samp>f</samp>&rsquo; with found coefficients and return it. At this, the &lsquo;<samp>x,y,z</samp>&rsquo; 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 &amp;</code>a, <code>const mglDataA &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>const char *</code>opt=<code>&quot;&quot;</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 &amp;</code>a, <code>const mglDataA &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>const char *</code>opt=<code>&quot;&quot;</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 &amp;</code>x, <code>const mglDataA &amp;</code>a, <code>const mglDataA &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>const char *</code>opt=<code>&quot;&quot;</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 &amp;</code>x, <code>const mglDataA &amp;</code>a, <code>const mglDataA &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>const char *</code>opt=<code>&quot;&quot;</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 &amp;</code>x, <code>const mglDataA &amp;</code>y, <code>const mglDataA &amp;</code>a, <code>const mglDataA &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>const char *</code>opt=<code>&quot;&quot;</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 &amp;</code>x, <code>const mglDataA &amp;</code>y, <code>const mglDataA &amp;</code>a, <code>const mglDataA &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>const char *</code>opt=<code>&quot;&quot;</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 &amp;</code>x, <code>const mglDataA &amp;</code>y, <code>const mglDataA &amp;</code>z, <code>const mglDataA &amp;</code>a, <code>const mglDataA &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>const char *</code>opt=<code>&quot;&quot;</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 &amp;</code>x, <code>const mglDataA &amp;</code>y, <code>const mglDataA &amp;</code>z, <code>const mglDataA &amp;</code>a, <code>const mglDataA &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>const char *</code>opt=<code>&quot;&quot;</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 &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>const char *</code>opt=<code>&quot;&quot;</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 &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>const char *</code>opt=<code>&quot;&quot;</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 &amp;</code>x, <code>const mglDataA &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>const char *</code>opt=<code>&quot;&quot;</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 &amp;</code>x, <code>const mglDataA &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>const char *</code>opt=<code>&quot;&quot;</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 &amp;</code>x, <code>const mglDataA &amp;</code>y, <code>const mglDataA &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>const char *</code>opt=<code>&quot;&quot;</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 &amp;</code>x, <code>const mglDataA &amp;</code>y, <code>const mglDataA &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>const char *</code>opt=<code>&quot;&quot;</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 &amp;</code>x, <code>const mglDataA &amp;</code>y, <code>const mglDataA &amp;</code>z, <code>const mglDataA &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>const char *</code>opt=<code>&quot;&quot;</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 &amp;</code>x, <code>const mglDataA &amp;</code>y, <code>const mglDataA &amp;</code>z, <code>const mglDataA &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>const char *</code>opt=<code>&quot;&quot;</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 &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>const char *</code>opt=<code>&quot;&quot;</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 &amp;</code>fit, <code>const mglDataA &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>const char *</code>opt=<code>&quot;&quot;</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 &amp;</code>fit, <code>const mglDataA &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>const char *</code>opt=<code>&quot;&quot;</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 &amp;</code>fit, <code>const mglDataA &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>const char *</code>opt=<code>&quot;&quot;</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>&quot;&quot;</code>, <code>const char *</code>font=<code>&quot;&quot;</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"> &lt; </a>]</td>
<td valign="middle" align="left">[<a href="mathgl_en_46.html#Data-manipulation" title="Next section in reading order"> &gt; </a>]</td>
<td valign="middle" align="left"> &nbsp; </td>
<td valign="middle" align="left">[<a href="mathgl_en_29.html#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </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"> &gt;&gt; </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>