forked from johannesgerer/jburkardt-f
-
Notifications
You must be signed in to change notification settings - Fork 2
/
nl2sol.html
321 lines (286 loc) · 8.41 KB
/
nl2sol.html
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
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
<html>
<head>
<title>
NL2SOL - An Adaptive Nonlinear Least-Squares Algorithm
</title>
</head>
<body bgcolor="#EEEEEE" link="#CC0000" alink="#FF3300" vlink="#000055">
<h1 align = "center">
NL2SOL <br> An Adaptive Nonlinear Least-Squares Algorithm
</h1>
<hr>
<p>
<b>NL2SOL</b>
is a FORTRAN90 library which
implements an adaptive nonlinear least-squares algorithm,
by John Dennis, David Gay, Roy Welsch.
</p>
<p>
<b>NL2SOL</b> assumes that there are <b>NVAR</b> variables <b>X</b>,
and <b>MEQN</b> nonlinear "residual functions" <b>F(X)</b>, and that
the task is to find a solution <b>X</b> which minimizes the Euclidean
norm of <b>||F(X)||</b>.
</p>
<p>
<b>NL2SOL</b> is ACM TOMS algorithm 573.
The original, true, correct version of ACM TOMS 573 is available
in the TOMS subdirectory of
<a href = "http://www.netlib.org/">the NETLIB web site</a>.
</p>
<h3 align = "center">
Languages:
</h3>
<p>
<b>NL2SOL</b> is available in
<a href = "../../f77_src/nl2sol/nl2sol.html">a FORTRAN77 version</a> and
<a href = "../../f_src/nl2sol/nl2sol.html">a FORTRAN90 version</a>.
</p>
<h3 align = "center">
Related Data and Programs:
</h3>
<p>
<a href = "../../f_src/bvls/bvls.html">
BVLS</a>,
a FORTRAN90 library which
applies least squares methods to solve a linear system for which
lower and upper constraints may have been placed on every variable.
</p>
<p>
<a href = "../../f_src/dqed/dqed.html">
DQED</a>,
a FORTRAN90 library which
solves constrained least squares problems.
</p>
<p>
<a href = "../../f_src/minpack/minpack.html">
MINPACK</a>,
a FORTRAN90 library which
carries out the least squares minimization of the residual
of a set of linear or nonlinear equations.
</p>
<p>
<a href = "../../f_src/praxis/praxis.html">
PRAXIS</a>,
a FORTRAN90 library which
minimizes a scalar
function of several variables.
</p>
<p>
<a href = "../../f_src/test_opt/test_opt.html">
TEST_OPT</a>,
a FORTRAN90 library which
defines test problems
requiring the minimization of a scalar function of several variables.
</p>
<p>
<a href = "../../f_src/toms611/toms611.html">
TOMS611</a>,
a FORTRAN90 library which
can be used to seek the minimizer of a scalar functional
of multiple variables.
</p>
<h3 align = "center">
Author:
</h3>
<p>
John Dennis, David Gay, Roy Welsch
</p>
<h3 align = "center">
Reference:
</h3>
<p>
<ol>
<li>
K M Brown,<br>
A Quadratically Convergent Newton-like Method Based upon
Gaussian Elimination,<br>
SIAM Journal on Numerical Analysis,<br>
Volume 6, pages 560-569, 1969.
</li>
<li>
John Dennis, David Gay, Roy Welsch,<br>
Algorithm 573:<br>
An Adaptive Nonlinear Least-Squares Algorithm, <br>
ACM Transactions on Mathematical Software,<br>
Volume 7, Number 3, 1981, pages 367-383.
</li>
<li>
David Gay,<br>
Computing Optimal Locally Constrained Steps,<br>
SIAM Journal on Scientific and Statistical Computing, <br>
Volume 2, Number 2, pages 186-197, 1981.
</li>
<li>
Philip Gill, Walter Murray,<br>
Algorithms for the Solution of the
Non-linear Least-squares Problem, <br>
SIAM Journal on Numerical Analysis,<br>
Volume 15, Number 5, pages 977-991, 1978.<br>
</li>
<li>
Charles Lawson, Richard Hanson, <br>
Solving Least Squares Problems, <br>
Prentice-Hall.
</li>
</ol>
</p>
<h3 align = "center">
Source Code:
</h3>
<p>
<ul>
<li>
<a href = "nl2sol.f90">nl2sol.f90</a>, the source code.
</li>
<li>
<a href = "nl2sol.sh">nl2sol.sh</a>,
commands to compile the source code.
</li>
</ul>
</p>
<h3 align = "center">
Examples and Tests:
</h3>
<p>
<b>NL2SOL_PRB1</b> is a simple test.
<ul>
<li>
<a href = "nl2sol_prb1.f90">nl2sol_prb1.f90</a>,
a sample problem.
</li>
<li>
<a href = "nl2sol_prb1.sh">nl2sol_prb1.sh</a>,
commands to compile and run the problem.
</li>
<li>
<a href = "nl2sol_prb1_output.txt">nl2sol_prb1_output.txt</a>,
the output file.
</li>
</ul>
</p>
<p>
<b>NL2SOL_PRB2</b> is an extensive set of tests.
<ul>
<li>
<a href = "nl2sol_prb2.f90">nl2sol_prb2.f90</a>,
a sample problem.
</li>
<li>
<a href = "nl2sol_prb2.sh">nl2sol_prb2.sh</a>,
commands to compile and run the problem.
</li>
<li>
<a href = "nl2sol_prb2_output.txt">nl2sol_prb2_output.txt</a>,
the output file.
</li>
</ul>
</p>
<h3 align = "center">
List of Routines:
</h3>
<p>
<ul>
<li>
<b>NL2SOL</b> minimizes nonlinear sum of squares using analytic jacobian.
</li>
<li>
<b>NL2SNO</b> is like NL2SOL, but uses a finite difference jacobian.
</li>
<li>
<b>NL2ITR</b> carries out nl2sol (nonlinear least-squares) iterations.
</li>
<li>
<b>ASSESS</b> assesses a candidate step.
</li>
<li>
<b>COVCLC</b> computes the covariance matrix for NL2ITR.
</li>
<li>
<b>DFAULT</b> supplies default values to IV and V.
</li>
<li>
<b>DOTPRD</b> returns the inner product of the p-vectors x and y.
</li>
<li>
<b>DUPDAT</b> updates the scale vector D for NL2ITR.
</li>
<li>
<b>GQTSTP</b> computes the Goldfeld-Quandt-Trotter step by More-Hebden technique.
</li>
<li>
<b>ITSMRY</b> prints an iteration summary.
</li>
<li>
<b>LINVRT</b> computes the inverse of a lower triangular matrix.
</li>
<li>
<b>LITVMU</b> solves L' * X = Y, where L is a lower triangular matrix.
</li>
<li>
<b>LIVMUL</b> solves L * X = Y, where L is a lower triangular matrix.
</li>
<li>
<b>LMSTEP</b> computes the Levenberg-Marquardt step using More-Hebden technique.
</li>
<li>
<b>LSQRT</b> computes the Cholesky factor of a lower triangular matrix.
</li>
<li>
<b>LSVMIN</b> estimates the smallest singular value of a lower triangular matrix.
</li>
<li>
<b>LTSQAR</b> sets A to the lower triangle of L' * L.
</li>
<li>
<b>PARCHK</b> checks the NL2SOL parameters.
</li>
<li>
<b>QAPPLY</b> applies orthogonal transformation to the residual R.
</li>
<li>
<b>QRFACT</b> computes the QR decomposition of a matrix.
</li>
<li>
<b>RELDST</b> computes the relative difference between two real values.
</li>
<li>
<b>RPTMUL</b> computes R * P' * X or P * R' * R * P' * X or P * R' * X.
</li>
<li>
<b>SLUPDT</b> updates a symmetric matrix A so that A * STEP = Y.
</li>
<li>
<b>SLVMUL</b> sets Y = S * X, where S is a P by P symmetric matrix.
</li>
<li>
<b>STOPX</b> is called to stop execution.
</li>
<li>
<b>TIMESTAMP</b> prints the current YMDHMS date as a time stamp.
</li>
<li>
<b>VAXPY</b> sets W = A*X + Y where A is a scalar.
</li>
<li>
<b>VCOPY</b> copies a vector.
</li>
<li>
<b>VSCOPY</b> sets a vector to a scalar value.
</li>
<li>
<b>V2NORM</b> computes the L2 norm of a vector.
</li>
</ul>
</p>
<p>
You can go up one level to <a href = "../f_src.html">
the FORTRAN90 source codes</a>.
</p>
<hr>
<i>
Last revised on 01 February 2008.
</i>
<!-- John Burkardt -->
</body>
<!-- Initial HTML skeleton created by HTMLINDEX. -->
</html>