awips2/pythonPackages/scientific/Doc/Reference/Scientific.Functions.LeastSquares-module.html
root 8e80217e59 Initial revision of AWIPS2 11.9.0-7p5
Former-commit-id: a02aeb236c [formerly 9f19e3f712] [formerly 06a8b51d6d [formerly 64fa9254b946eae7e61bbc3f513b7c3696c4f54f]]
Former-commit-id: 06a8b51d6d
Former-commit-id: 3360eb6c5f
2012-01-06 08:55:05 -06:00

279 lines
11 KiB
HTML
Executable file

<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Scientific.Functions.LeastSquares</title>
<link rel="stylesheet" href="epydoc.css" type="text/css" />
<script type="text/javascript" src="epydoc.js"></script>
</head>
<body bgcolor="white" text="black" link="blue" vlink="#204080"
alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
<tr valign="middle">
<!-- Home link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="Scientific-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Tree link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Index link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Help link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Project homepage -->
<th class="navbar" align="right" width="100%">
<table border="0" cellpadding="0" cellspacing="0">
<tr><th class="navbar" align="center"
><a class="navbar" target="_top" href="http://dirac.cnrs-orleans.fr/ScientificPython/">Scientific Python</a></th>
</tr></table></th>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
<tr valign="top">
<td width="100%">
<span class="breadcrumbs">
<a href="Scientific-module.html">Package&nbsp;Scientific</a> ::
<a href="Scientific.Functions-module.html">Package&nbsp;Functions</a> ::
Module&nbsp;LeastSquares
</span>
</td>
<td>
<table cellpadding="0" cellspacing="0">
<!-- hide/show private -->
<tr><td align="right"><span class="options"
>[<a href="frames.html" target="_top">frames</a
>]&nbsp;|&nbsp;<a href="Scientific.Functions.LeastSquares-module.html"
target="_top">no&nbsp;frames</a>]</span></td></tr>
</table>
</td>
</tr>
</table>
<!-- ==================== MODULE DESCRIPTION ==================== -->
<h1 class="epydoc">Module LeastSquares</h1><p class="nomargin-top"></p>
<p>Non-linear least squares fitting</p>
<p>Usage example:</p>
<pre class="literalblock">
from Scientific.N import exp
def f(param, t):
return param[0]*exp(-param[1]/t)
data_quantum = [(100, 3.445e+6),(200, 2.744e+7),
(300, 2.592e+8),(400, 1.600e+9)]
data_classical = [(100, 4.999e-8),(200, 5.307e+2),
(300, 1.289e+6),(400, 6.559e+7)]
print leastSquaresFit(f, (1e13,4700), data_classical)
def f2(param, t):
return 1e13*exp(-param[0]/t)
print leastSquaresFit(f2, (3000.,), data_quantum)
</pre>
<!-- ==================== FUNCTIONS ==================== -->
<a name="section-Functions"></a>
<table class="summary" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
<td align="left" colspan="2" class="table-header">
<span class="table-header">Functions</span></td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"><code>(list, float)</code></span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a href="Scientific.Functions.LeastSquares-module.html#leastSquaresFit" class="summary-sig-name">leastSquaresFit</a>(<span class="summary-sig-arg">model</span>,
<span class="summary-sig-arg">parameters</span>,
<span class="summary-sig-arg">data</span>,
<span class="summary-sig-arg">max_iterations</span>=<span class="summary-sig-default">None</span>,
<span class="summary-sig-arg">stopping_limit</span>=<span class="summary-sig-default">0.005</span>)</span><br />
General non-linear least-squares fit using the <a
name="index-Levenberg_Marquardt"></a><i
class="indexterm">Levenberg-Marquardt</i> algorithm and <a
name="index-automatic_differentiation"></a><i
class="indexterm">automatic differentiation</i>.</td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a href="Scientific.Functions.LeastSquares-module.html#polynomialLeastSquaresFit" class="summary-sig-name">polynomialLeastSquaresFit</a>(<span class="summary-sig-arg">parameters</span>,
<span class="summary-sig-arg">data</span>)</span><br />
Least-squares fit to a polynomial whose order is defined by the
number of parameter values.</td>
<td align="right" valign="top">
</td>
</tr>
</table>
</td>
</tr>
</table>
<!-- ==================== FUNCTION DETAILS ==================== -->
<a name="section-FunctionDetails"></a>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
<td align="left" colspan="2" class="table-header">
<span class="table-header">Function Details</span></td>
</tr>
</table>
<a name="leastSquaresFit"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">leastSquaresFit</span>(<span class="sig-arg">model</span>,
<span class="sig-arg">parameters</span>,
<span class="sig-arg">data</span>,
<span class="sig-arg">max_iterations</span>=<span class="sig-default">None</span>,
<span class="sig-arg">stopping_limit</span>=<span class="sig-default">0.005</span>)</span>
</h3>
</td><td align="right" valign="top"
>&nbsp;
</td>
</tr></table>
<p>General non-linear least-squares fit using the <a
name="index-Levenberg_Marquardt"></a><i
class="indexterm">Levenberg-Marquardt</i> algorithm and <a
name="index-automatic_differentiation"></a><i class="indexterm">automatic
differentiation</i>.</p>
<dl class="fields">
<dt>Parameters:</dt>
<dd><ul class="nomargin-top">
<li><strong class="pname"><code>model</code></strong> (callable) - the function to be fitted. It will be called with two parameters:
the first is a tuple containing all fit parameters, and the
second is the first element of a data point (see below). The
return value must be a number. Since automatic differentiation
is used to obtain the derivatives with respect to the parameters,
the function may only use the mathematical functions known to the
module FirstDerivatives.</li>
<li><strong class="pname"><code>parameters</code></strong> (<code>tuple</code> of numbers) - a tuple of initial values for the fit parameters</li>
<li><strong class="pname"><code>data</code></strong> (<code>list</code>) - a list of data points to which the model is to be fitted. Each
data point is a tuple of length two or three. Its first element
specifies the independent variables of the model. It is passed to
the model function as its first parameter, but not used in any
other way. The second element of each data point tuple is the
number that the return value of the model function is supposed to
match as well as possible. The third element (which defaults to
1.) is the statistical variance of the data point, i.e. the
inverse of its statistical weight in the fitting procedure.</li>
</ul></dd>
<dt>Returns: <code>(list, float)</code></dt>
<dd>a list containing the optimal parameter values and the
chi-squared value describing the quality of the fit</dd>
</dl>
</td></tr></table>
</div>
<a name="polynomialLeastSquaresFit"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">polynomialLeastSquaresFit</span>(<span class="sig-arg">parameters</span>,
<span class="sig-arg">data</span>)</span>
</h3>
</td><td align="right" valign="top"
>&nbsp;
</td>
</tr></table>
<p>Least-squares fit to a polynomial whose order is defined by the number
of parameter values.</p>
<dl class="fields">
<dt>Parameters:</dt>
<dd><ul class="nomargin-top">
<li><strong class="pname"><code>parameters</code></strong> (<code>tuple</code>) - a tuple of initial values for the polynomial coefficients</li>
<li><strong class="pname"><code>data</code></strong> (<code>list</code>) - the data points, as for <a
href="Scientific.Functions.LeastSquares-module.html#leastSquaresFit"
class="link">leastSquaresFit</a></li>
</ul></dd>
</dl>
<div class="fields"> <p><strong>Note:</strong>
This could also be done with a linear least squares fit from <code
class="link">Scientific.LA</code>
</p>
</div></td></tr></table>
</div>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
<tr valign="middle">
<!-- Home link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="Scientific-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Tree link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Index link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Help link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Project homepage -->
<th class="navbar" align="right" width="100%">
<table border="0" cellpadding="0" cellspacing="0">
<tr><th class="navbar" align="center"
><a class="navbar" target="_top" href="http://dirac.cnrs-orleans.fr/ScientificPython/">Scientific Python</a></th>
</tr></table></th>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0 on Tue Oct 28 14:15:59 2008
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
>http://epydoc.sourceforge.net</a>
</td>
</tr>
</table>
<script type="text/javascript">
<!--
// Private objects are initially displayed (because if
// javascript is turned off then we want them to be
// visible); but by default, we want to hide them. So hide
// them unless we have a cookie that says to show them.
checkCookie();
// -->
</script>
</body>
</html>