# HG changeset patch # User carandraug # Date 1333120488 0 # Node ID d30cfca46e8a49d2e3dc25ea4fa6e748ce45abcb # Parent df50d0ae107fc8a0e6c7da5d1d43f0bcfede0148 optim: upgrade license to GPLv3+ and mention on DESCRIPTION the other package licenses diff -r df50d0ae107f -r d30cfca46e8a main/optim/COPYING --- a/main/optim/COPYING Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/COPYING Fri Mar 30 15:14:48 2012 +0000 @@ -1,337 +1,1 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see . - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. +See individual files for licenses diff -r df50d0ae107f -r d30cfca46e8a main/optim/DESCRIPTION --- a/main/optim/DESCRIPTION Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/DESCRIPTION Fri Mar 30 15:14:48 2012 +0000 @@ -7,5 +7,5 @@ Description: Non-linear optimization toolkit. Depends: octave (>= 2.9.7), miscellaneous (>= 1.0.10), struct (>= 1.0.9) Autoload: no -License: GPL version 2 or later and GFDL +License: GFDL, GPLv3+, modified BSD, public domain Url: http://octave.sf.net diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/LinearRegression.m --- a/main/optim/inst/LinearRegression.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/LinearRegression.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,41 +1,40 @@ -function [p,y_var,r,p_var]=LinearRegression(F,y,weight) +## Copyright (C) 2007 Andreas Stahel +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. +## +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. +## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . -% general linear regression -% -% [p,y_var,r,p_var]=LinearRegression(F,y) -% [p,y_var,r,p_var]=LinearRegression(F,y,weight) -% -% determine the parameters p_j (j=1,2,...,m) such that the function -% f(x) = sum_(i=1,...,m) p_j*f_j(x) fits as good as possible to the -% given values y_i = f(x_i) -% -% parameters -% F n*m matrix with the values of the basis functions at the support points -% in column j give the values of f_j at the points x_i (i=1,2,...,n) -% y n column vector of given values -% weight n column vector of given weights -% -% return values -% p m vector with the estimated values of the parameters -% y_var estimated variance of the error -% r weighted norm of residual -% p_var estimated variance of the parameters p_j +## general linear regression +## +## [p,y_var,r,p_var]=LinearRegression(F,y) +## [p,y_var,r,p_var]=LinearRegression(F,y,weight) +## +## determine the parameters p_j (j=1,2,...,m) such that the function +## f(x) = sum_(i=1,...,m) p_j*f_j(x) fits as good as possible to the +## given values y_i = f(x_i) +## +## parameters +## F n*m matrix with the values of the basis functions at the support points +## in column j give the values of f_j at the points x_i (i=1,2,...,n) +## y n column vector of given values +## weight n column vector of given weights +## +## return values +## p m vector with the estimated values of the parameters +## y_var estimated variance of the error +## r weighted norm of residual +## p_var estimated variance of the parameters p_j - -## Copyright (C) 2007 Andreas Stahel -## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2 of the License, or -## (at your option) any later version. -## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with this program; If not, see . +function [p,y_var,r,p_var]=LinearRegression(F,y,weight) if (nargin < 2 || nargin >= 4) usage('wrong number of arguments in [p,y_var,r,p_var]=LinearRegression(F,y)'); diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/__bracket_min.m --- a/main/optim/inst/__bracket_min.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/__bracket_min.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,3 +1,19 @@ +## Copyright (C) 2002 Etienne Grossmann +## Copyright (C) 2009 Levente Torok +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. +## +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. +## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . + ## [a, b, ga, gb, nev] = semi_bracket (f, dx, a, narg, args) ## ## Find an interval containing a local minimum of the function @@ -6,10 +22,6 @@ ## a < b. ## nev is the number of function evaluations -## Author : Etienne Grossmann -## Modified by: Levente Torok -## This software is distributed under the terms of the GPL - function [a, b, ga, gb, n] = __bracket_min (f, dx, narg, args) [a,b, ga,gb, n] = __semi_bracket (f, dx, 0, narg, args); diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/__poly_2_extrema.m --- a/main/optim/inst/__poly_2_extrema.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/__poly_2_extrema.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,3 +1,19 @@ +## Copyright (C) 2002 Etienne Grossmann +## Copyright (C) 2009 Levente Torok +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. +## +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. +## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . + ## ex = poly_2_ex (l, f) - Extremum of a 1-var deg-2 polynomial ## ## l : 3 : variable values @@ -7,10 +23,9 @@ ## ## Assuming that f(i) = a*l(i)^2 + b* l(i) + c = P(l(i)) for some a, b, c, ## ex is the extremum of the polynome P. -## + function ex = __poly_2_extrema (l, f) - ### This somewhat helps if solution is very close to one of the points. [f,i] = sort (f); l = l(i); @@ -36,4 +51,4 @@ # ex - ex0 # end ex = l(1) + ex; -end \ No newline at end of file +end diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/__semi_bracket.m --- a/main/optim/inst/__semi_bracket.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/__semi_bracket.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,3 +1,19 @@ +## Copyright (C) 2002 Etienne Grossmann +## Copyright (C) 2009 Levente Torok +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. +## +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. +## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . + ## [a, b, ga, gb, nev] = semi_bracket (f, dx, a, narg, args) ## ## Find an interval containing a local minimum of the function @@ -7,10 +23,6 @@ ## a < b. ## nev is the number of function evaluations. -## Author : Etienne Grossmann -## Modified by: Levente Torok -## This software is distributed under the terms of the GPL - function [a,b,ga,gb,n] = __semi_bracket (f, dx, a, narg, args) step = 1; diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/adsmax.m --- a/main/optim/inst/adsmax.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/adsmax.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,44 +1,57 @@ -function [x, fmax, nf] = adsmax(f, x, stopit, savit, P, varargin) -%ADSMAX Alternating directions method for direct search optimization. -% [x, fmax, nf] = ADSMAX(FUN, x0, STOPIT, SAVIT, P) attempts to -% maximize the function FUN, using the starting vector x0. -% The alternating directions direct search method is used. -% Output arguments: -% x = vector yielding largest function value found, -% fmax = function value at x, -% nf = number of function evaluations. -% The iteration is terminated when either -% - the relative increase in function value between successive -% iterations is <= STOPIT(1) (default 1e-3), -% - STOPIT(2) function evaluations have been performed -% (default inf, i.e., no limit), or -% - a function value equals or exceeds STOPIT(3) -% (default inf, i.e., no test on function values). -% Progress of the iteration is not shown if STOPIT(5) = 0 (default 1). -% If a non-empty fourth parameter string SAVIT is present, then -% `SAVE SAVIT x fmax nf' is executed after each inner iteration. -% By default, the search directions are the co-ordinate directions. -% The columns of a fifth parameter matrix P specify alternative search -% directions (P = EYE is the default). -% NB: x0 can be a matrix. In the output argument, in SAVIT saves, -% and in function calls, x has the same shape as x0. -% ADSMAX(fun, x0, STOPIT, SAVIT, P, P1, P2,...) allows additional -% arguments to be passed to fun, via feval(fun,x,P1,P2,...). +%% Copyright (C) 2002 N.J.Higham +%% Copyright (C) 2003 Andy Adler +%% +%% This program is free software; you can redistribute it and/or modify it under +%% the terms of the GNU General Public License as published by the Free Software +%% Foundation; either version 3 of the License, or (at your option) any later +%% version. +%% +%% This program is distributed in the hope that it will be useful, but WITHOUT +%% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +%% details. +%% +%% You should have received a copy of the GNU General Public License along with +%% this program; if not, see . + +%%ADSMAX Alternating directions method for direct search optimization. +%% [x, fmax, nf] = ADSMAX(FUN, x0, STOPIT, SAVIT, P) attempts to +%% maximize the function FUN, using the starting vector x0. +%% The alternating directions direct search method is used. +%% Output arguments: +%% x = vector yielding largest function value found, +%% fmax = function value at x, +%% nf = number of function evaluations. +%% The iteration is terminated when either +%% - the relative increase in function value between successive +%% iterations is <= STOPIT(1) (default 1e-3), +%% - STOPIT(2) function evaluations have been performed +%% (default inf, i.e., no limit), or +%% - a function value equals or exceeds STOPIT(3) +%% (default inf, i.e., no test on function values). +%% Progress of the iteration is not shown if STOPIT(5) = 0 (default 1). +%% If a non-empty fourth parameter string SAVIT is present, then +%% `SAVE SAVIT x fmax nf' is executed after each inner iteration. +%% By default, the search directions are the co-ordinate directions. +%% The columns of a fifth parameter matrix P specify alternative search +%% directions (P = EYE is the default). +%% NB: x0 can be a matrix. In the output argument, in SAVIT saves, +%% and in function calls, x has the same shape as x0. +%% ADSMAX(fun, x0, STOPIT, SAVIT, P, P1, P2,...) allows additional +%% arguments to be passed to fun, via feval(fun,x,P1,P2,...). +%% Reference: +%% N. J. Higham, Optimization by direct search in matrix computations, +%% SIAM J. Matrix Anal. Appl, 14(2): 317-333, 1993. +%% N. J. Higham, Accuracy and Stability of Numerical Algorithms, +%% Second edition, Society for Industrial and Applied Mathematics, +%% Philadelphia, PA, 2002; sec. 20.5. % From Matrix Toolbox % Copyright (C) 2002 N.J.Higham % www.maths.man.ac.uk/~higham/mctoolbox -% distributed under the terms of the GNU General Public License -% % Modifications for octave by A.Adler 2003 -% $Id$ -% Reference: -% N. J. Higham, Optimization by direct search in matrix computations, -% SIAM J. Matrix Anal. Appl, 14(2): 317-333, 1993. -% N. J. Higham, Accuracy and Stability of Numerical Algorithms, -% Second edition, Society for Industrial and Applied Mathematics, -% Philadelphia, PA, 2002; sec. 20.5. +function [x, fmax, nf] = adsmax(f, x, stopit, savit, P, varargin) x0 = x(:); % Work with column vector internally. n = length(x0); diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/battery.m --- a/main/optim/inst/battery.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/battery.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,33 +1,32 @@ -# Copyright (C) 2004 Michael Creel -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; If not, see . -# (c) Michael Creel +## Copyright (C) 2004 Michael Creel +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. +## +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. +## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . -# battery.m: repeatedly call bfgs using a battery of -# start values, to attempt to find global min -# of a nonconvex function +## battery.m: repeatedly call bfgs using a battery of +## start values, to attempt to find global min +## of a nonconvex function +## +## INPUTS: +## func: function to mimimize +## args: args of function +## minarg: argument to minimize w.r.t. (usually = 1) +## startvals: kxp matrix of values to try for sure (don't include all zeros, that's automatic) +## max iters per start value +## number of additional random start values to try +## +# OUTPUT: theta - the best value found - NOT iterated to convergence -# INPUTS: -# func: function to mimimize -# args: args of function -# minarg: argument to minimize w.r.t. (usually = 1) -# startvals: kxp matrix of values to try for sure (don't include all zeros, that's automatic) -# max iters per start value -# number of additional random start values to try - -# OUTPUT: theta - the best value found - NOT iterated to convergence - function theta = battery(func, args, minarg, startvals, maxiters) # setup diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/bfgsmin.m --- a/main/optim/inst/bfgsmin.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/bfgsmin.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,18 +1,17 @@ -## Copyright (C) 2006 Michael Creel +## Copyright (C) 2006 Michael Creel ## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2 of the License, or -## (at your option) any later version. +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## bfgsmin: bfgs or limited memory bfgs minimization of function ## diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/bfgsmin_example.m --- a/main/optim/inst/bfgsmin_example.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/bfgsmin_example.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,18 +1,17 @@ -# Copyright (C) 2004,2005,2006 Michael Creel -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## Copyright (C) 2004,2005,2006 Michael Creel +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. +## +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. +## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . # usage: bfgsmin_example (to run) or edit bfgsmin_example (to examine) ## diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/brent_line_min.m --- a/main/optim/inst/brent_line_min.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/brent_line_min.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,3 +1,18 @@ +## Copyright (C) 2009 Levente Torok +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. +## +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. +## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . + ## -*- texinfo -*- ## @deftypefn {Function File} {[@var{s},@var{v},@var{n}]} brent_line_min ( @var{f},@var{df},@var{args},@var{ctl} ) ## Line minimization of f along df @@ -32,7 +47,6 @@ ## given. ## @end deftypefn - function [s,gs,nev] = brent_line_min( f,dx,args,ctl ) verbose = 0; diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/cdiff.m --- a/main/optim/inst/cdiff.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/cdiff.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,14 +1,17 @@ -## Copyright (C) 2002 Etienne Grossmann. All rights reserved. +## Copyright (C) 2002 Etienne Grossmann +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## This is distributed in the hope that it will be useful, but WITHOUT -## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## c = cdiff (func,wrt,N,dfunc,stack,dx) - Code for num. differentiation ## = "function df = dfunc (var1,..,dvar,..,varN) .. endfunction @@ -42,7 +45,7 @@ ## Default:10*sqrt(eps) ## ## See also : ndiff, eval, todisk -## + function c = cdiff (func,wrt,nargs,dfunc,stack,dx) if nargin<2, diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/cg_min.m --- a/main/optim/inst/cg_min.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/cg_min.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,3 +1,19 @@ +## Copyright (C) 2002 Etienne Grossmann +## Copyright (C) 2009 Levente Torok +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. +## +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. +## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . + ## -*- texinfo -*- ## @deftypefn {Function File} {[@var{x0},@var{v},@var{nev}]} cg_min ( @var{f},@var{df},@var{args},@var{ctl} ) ## NonLinear Conjugate Gradient method to minimize function @var{f}. @@ -54,10 +70,6 @@ ## @seealso{ bfgsmin, http://en.wikipedia.org/wiki/Nonlinear_conjugate_gradient } ## @end deftypefn -## Author : Etienne Grossmann -## Modified by: Levente Torok -## This software is distributed under the terms of the GPL - function [x,v,nev] = cg_min (f, dfn, args, ctl) verbose = 0; diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/cpiv_bard.m --- a/main/optim/inst/cpiv_bard.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/cpiv_bard.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,42 +1,41 @@ -%% Copyright (C) 2010, 2011 Olaf Till +%% Copyright (C) 2010, 2011 Olaf Till +%% +%% This program is free software; you can redistribute it and/or modify it under +%% the terms of the GNU General Public License as published by the Free Software +%% Foundation; either version 3 of the License, or (at your option) any later +%% version. %% -%% This program is free software; you can redistribute it and/or modify -%% it under the terms of the GNU General Public License as published by -%% the Free Software Foundation; either version 2 of the License, or (at -%% your option) any later version. +%% This program is distributed in the hope that it will be useful, but WITHOUT +%% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +%% details. +%% +%% You should have received a copy of the GNU General Public License along with +%% this program; if not, see . + +%% [lb, idx, ridx, mv] = cpiv_bard (v, m[, incl]) %% -%% This program is distributed in the hope that it will be useful, but -%% WITHOUT ANY WARRANTY; without even the implied warranty of -%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%% General Public License for more details. -%% -%% You should have received a copy of the GNU General Public License -%% along with this program; if not, write to the Free Software -%% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301USA +%% v: column vector; m: matrix; incl (optional): index. length (v) +%% must equal rows (m). Finds column vectors w and l with w == v + m * +%% l, w >= 0, l >= 0, l.' * w == 0. Chooses idx, w, and l so that +%% l(~idx) == 0, l(idx) == -inv (m(idx, idx)) * v(idx), w(idx) roughly +%% == 0, and w(~idx) == v(~idx) + m(idx, ~idx).' * l(idx). idx indexes +%% at least everything indexed by incl, but l(incl) may be < 0. lb: +%% l(idx) (column vector); idx: logical index, defined above; ridx: +%% ~idx & w roughly == 0; mv: [m, v] after performing a Gauss-Jordan +%% 'sweep' (with gjp.m) on each diagonal element indexed by idx. +%% Except the handling of incl (which enables handling of equality +%% constraints in the calling code), this is called solving the +%% 'complementary pivot problem' (Cottle, R. W. and Dantzig, G. B., +%% 'Complementary pivot theory of mathematical programming', Linear +%% Algebra and Appl. 1, 102--125. References for the current +%% algorithm: Bard, Y.: Nonlinear Parameter Estimation, p. 147--149, +%% Academic Press, New York and London 1974; Bard, Y., 'An eclectic +%% approach to nonlinear programming', Proc. ANU Sem. Optimization, +%% Canberra, Austral. Nat. Univ.). function [lb, idx, ridx, m] = cpiv_bard (v, m, incl) - %% [lb, idx, ridx, mv] = cpiv_bard (v, m[, incl]) - %% - %% v: column vector; m: matrix; incl (optional): index. length (v) - %% must equal rows (m). Finds column vectors w and l with w == v + m * - %% l, w >= 0, l >= 0, l.' * w == 0. Chooses idx, w, and l so that - %% l(~idx) == 0, l(idx) == -inv (m(idx, idx)) * v(idx), w(idx) roughly - %% == 0, and w(~idx) == v(~idx) + m(idx, ~idx).' * l(idx). idx indexes - %% at least everything indexed by incl, but l(incl) may be < 0. lb: - %% l(idx) (column vector); idx: logical index, defined above; ridx: - %% ~idx & w roughly == 0; mv: [m, v] after performing a Gauss-Jordan - %% 'sweep' (with gjp.m) on each diagonal element indexed by idx. - %% Except the handling of incl (which enables handling of equality - %% constraints in the calling code), this is called solving the - %% 'complementary pivot problem' (Cottle, R. W. and Dantzig, G. B., - %% 'Complementary pivot theory of mathematical programming', Linear - %% Algebra and Appl. 1, 102--125. References for the current - %% algorithm: Bard, Y.: Nonlinear Parameter Estimation, p. 147--149, - %% Academic Press, New York and London 1974; Bard, Y., 'An eclectic - %% approach to nonlinear programming', Proc. ANU Sem. Optimization, - %% Canberra, Austral. Nat. Univ.). - n = length (v); if (n > size (v, 1)) error ('first argument is no column vector'); % the most typical mistake diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/curvefit_stat.m --- a/main/optim/inst/curvefit_stat.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/curvefit_stat.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,20 +1,19 @@ ## Copyright (C) 2011 Olaf Till ## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 3 of the License, or -## (at your option) any later version. +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## You should have received a copy of the GNU General Public License -## along with this program; If not, see . +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## -*- texinfo -*- -## ## @deftypefn {Function File} {@var{info} =} residmin_stat (@var{f}, @var{p}, @var{x}, @var{y}, @var{settings}) ## ## Frontend for computation of statistics for fitting of values, @@ -30,7 +29,6 @@ ## also a second obligatory argument which will be set to @var{x}. ## ## @seealso {residmin_stat} -## ## @end deftypefn function ret = curvefit_stat (f, pfin, x, y, settings) diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/d2_min.m --- a/main/optim/inst/d2_min.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/d2_min.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,18 +1,17 @@ - -## Copyright (C) 2002 Etienne Grossmann. All rights reserved. +## Copyright (C) 2002 Etienne Grossmann ## -## This program is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This is distributed in the hope that it will be useful, but WITHOUT +## This program is distributed in the hope that it will be useful, but WITHOUT ## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## Changelog: -## 2002 / 05 / 09 : Heuristic for negative hessian +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## [x,v,nev,h,args] = d2_min(f,d2f,args,ctl,code) - Newton-like minimization ## @@ -82,9 +81,6 @@ function [xbest,vbest,nev,hbest,args] = d2_min (f,d2f,args,ctl,code) -## Author : Etienne Grossmann -## - maxout = inf; maxinner = 30 ; diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/dcdp.m --- a/main/optim/inst/dcdp.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/dcdp.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,29 +1,29 @@ %% Copyright (C) 2010, 2011 Olaf Till %% -%% This program is free software; you can redistribute it and/or modify -%% it under the terms of the GNU General Public License as published by -%% the Free Software Foundation; either version 2 of the License, or -%% (at your option) any later version. +%% This program is free software; you can redistribute it and/or modify it under +%% the terms of the GNU General Public License as published by the Free Software +%% Foundation; either version 3 of the License, or (at your option) any later +%% version. +%% +%% This program is distributed in the hope that it will be useful, but WITHOUT +%% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +%% details. %% -%% This program is distributed in the hope that it will be useful, -%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -%% GNU General Public License for more details. +%% You should have received a copy of the GNU General Public License along with +%% this program; if not, see . + +%% function prt = dcdp (f, p, dp, func[, bounds]) %% -%% You should have received a copy of the GNU General Public License -%% along with this program; If not, see . +%% This is an interface to __dfdp__.m, similar to dfdp.m, but for +%% functions only of parameters 'p', not of independents 'x'. See +%% dfdp.m. +%% +%% dfpdp is more general and is meant to be used instead of dcdp in +%% optimization. function prt = dcdp (f, p, dp, func, bounds) - %% function prt = dcdp (f, p, dp, func[, bounds]) - %% - %% This is an interface to __dfdp__.m, similar to dfdp.m, but for - %% functions only of parameters 'p', not of independents 'x'. See - %% dfdp.m. - %% - %% dfpdp is more general and is meant to be used instead of dcdp in - %% optimization. - if (ischar (func)) func = str2func (func); end @@ -40,3 +40,4 @@ hook.diff_onesided = dp < 0; prt = __dfdp__ (p, func, hook); +end diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/de_min.m --- a/main/optim/inst/de_min.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/de_min.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,22 +1,18 @@ +## Copyright (C) 1996, 1997 R. Storn ## Copyright (C) 2009-2010 Christian Fischer -## Copyright (C) 1996, 1997 R. Storn ## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 3 of the License, or -## (at your option) any later version. +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## You should have received a copy of the GNU General Public -## License along with Octave; see the file COPYING. If not, -## see . -## -## Changelog: -## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## de_min: global optimisation using differential evolution ## @@ -121,7 +117,6 @@ ## ctl.XVmax = [ 2 2]; ## [x, obj_value, nfeval, convergence] = de_min (@f, ctl); ## -## Author : Christian Fischer ## Keywords: global-optimisation optimisation minimisation function [bestmem, bestval, nfeval, convergence] = de_min(fcn, varargin) diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/deriv.m --- a/main/optim/inst/deriv.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/deriv.m Fri Mar 30 15:14:48 2012 +0000 @@ -2,15 +2,18 @@ ## Copyright (C) 2011 Joaquín Ignacio Aramendía ## Copyright (C) 2011 Carnë Draug ## -## This program is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 3, or (at your option) any -## later version. +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This is distributed in the hope that it will be useful, but WITHOUT +## This program is distributed in the hope that it will be useful, but WITHOUT ## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. +## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## -*- texinfo -*- ## @deftypefn {Function File} {@var{dx} =} deriv (@var{f}, @var{x0}) diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/dfdp.m --- a/main/optim/inst/dfdp.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/dfdp.m Fri Mar 30 15:14:48 2012 +0000 @@ -3,43 +3,43 @@ %% Copyright (C) 1992-1994 Ray Muzic %% Copyright (C) 2010, 2011 Olaf Till %% -%% This program is free software; you can redistribute it and/or modify -%% it under the terms of the GNU General Public License as published by -%% the Free Software Foundation; either version 2 of the License, or -%% (at your option) any later version. +%% This program is free software; you can redistribute it and/or modify it under +%% the terms of the GNU General Public License as published by the Free Software +%% Foundation; either version 3 of the License, or (at your option) any later +%% version. +%% +%% This program is distributed in the hope that it will be useful, but WITHOUT +%% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +%% details. %% -%% This program is distributed in the hope that it will be useful, -%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -%% GNU General Public License for more details. +%% You should have received a copy of the GNU General Public License along with +%% this program; if not, see . + +%% function prt = dfdp (x, f, p, dp, func[, bounds]) +%% numerical partial derivatives (Jacobian) df/dp for use with leasqr +%% --------INPUT VARIABLES--------- +%% x=vec or matrix of indep var(used as arg to func) x=[x0 x1 ....] +%% f=func(x,p) vector initialsed by user before each call to dfdp +%% p= vec of current parameter values +%% dp= fractional increment of p for numerical derivatives +%% dp(j)>0 central differences calculated +%% dp(j)<0 one sided differences calculated +%% dp(j)=0 sets corresponding partials to zero; i.e. holds p(j) fixed +%% func=function (string or handle) to calculate the Jacobian for, +%% e.g. to calc Jacobian for function expsum prt=dfdp(x,f,p,dp,'expsum') +%% bounds=two-column-matrix of lower and upper bounds for parameters +%% If no 'bounds' options is specified to leasqr, it will call +%% dfdp without the 'bounds' argument. +%%----------OUTPUT VARIABLES------- +%% prt= Jacobian Matrix prt(i,j)=df(i)/dp(j) +%%================================ %% -%% You should have received a copy of the GNU General Public License -%% along with this program; If not, see . +%% dfxpdp is more general and is meant to be used instead of dfdp in +%% optimization. function prt = dfdp (x, f, p, dp, func, bounds) - %% function prt = dfdp (x, f, p, dp, func[, bounds]) - %% numerical partial derivatives (Jacobian) df/dp for use with leasqr - %% --------INPUT VARIABLES--------- - %% x=vec or matrix of indep var(used as arg to func) x=[x0 x1 ....] - %% f=func(x,p) vector initialsed by user before each call to dfdp - %% p= vec of current parameter values - %% dp= fractional increment of p for numerical derivatives - %% dp(j)>0 central differences calculated - %% dp(j)<0 one sided differences calculated - %% dp(j)=0 sets corresponding partials to zero; i.e. holds p(j) fixed - %% func=function (string or handle) to calculate the Jacobian for, - %% e.g. to calc Jacobian for function expsum prt=dfdp(x,f,p,dp,'expsum') - %% bounds=two-column-matrix of lower and upper bounds for parameters - %% If no 'bounds' options is specified to leasqr, it will call - %% dfdp without the 'bounds' argument. - %%----------OUTPUT VARIABLES------- - %% prt= Jacobian Matrix prt(i,j)=df(i)/dp(j) - %%================================ - %% - %% dfxpdp is more general and is meant to be used instead of dfdp in - %% optimization. - %% This is just an interface. The original code has been moved to %% __dfdp__.m, which is used with two different interfaces by %% leasqr.m. diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/dfpdp.m --- a/main/optim/inst/dfpdp.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/dfpdp.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,47 +1,46 @@ %% Copyright (C) 2010, 2011 Olaf Till %% -%% This program is free software; you can redistribute it and/or modify -%% it under the terms of the GNU General Public License as published by -%% the Free Software Foundation; either version 2 of the License, or -%% (at your option) any later version. +%% This program is free software; you can redistribute it and/or modify it under +%% the terms of the GNU General Public License as published by the Free Software +%% Foundation; either version 3 of the License, or (at your option) any later +%% version. +%% +%% This program is distributed in the hope that it will be useful, but WITHOUT +%% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +%% details. +%% +%% You should have received a copy of the GNU General Public License along with +%% this program; if not, see . + +%% function jac = dfpdp (p, func[, hook]) +%% +%% Returns Jacobian of func (p) with respect to p with finite +%% differencing. The optional argument hook is a structure which can +%% contain the following fields at the moment: %% -%% This program is distributed in the hope that it will be useful, -%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -%% GNU General Public License for more details. +%% hook.f: value of func(p) for p as given in the arguments +%% +%% hook.diffp: positive vector of fractional steps from given p in +%% finite differencing (actual steps may be smaller if bounds are +%% given). The default is .001 * ones (size (p)). %% -%% You should have received a copy of the GNU General Public License -%% along with this program; If not, see . +%% hook.diff_onesided: logical vector, indexing elements of p for +%% which only one-sided differences should be computed (faster); even +%% if not one-sided, differences might not be exactly central if +%% bounds are given. The default is false (size (p)). +%% +%% hook.fixed: logical vector, indexing elements of p for which zero +%% should be returned instead of the guessed partial derivatives +%% (useful in optimization if some parameters are not optimized, but +%% are 'fixed'). +%% +%% hook.lbound, hook.ubound: vectors of lower and upper parameter +%% bounds (or -Inf or +Inf, respectively) to be respected in finite +%% differencing. The consistency of bounds is not checked. function ret = dfpdp (varargin) - %% function jac = dfpdp (p, func[, hook]) - %% - %% Returns Jacobian of func (p) with respect to p with finite - %% differencing. The optional argument hook is a structure which can - %% contain the following fields at the moment: - %% - %% hook.f: value of func(p) for p as given in the arguments - %% - %% hook.diffp: positive vector of fractional steps from given p in - %% finite differencing (actual steps may be smaller if bounds are - %% given). The default is .001 * ones (size (p)). - %% - %% hook.diff_onesided: logical vector, indexing elements of p for - %% which only one-sided differences should be computed (faster); even - %% if not one-sided, differences might not be exactly central if - %% bounds are given. The default is false (size (p)). - %% - %% hook.fixed: logical vector, indexing elements of p for which zero - %% should be returned instead of the guessed partial derivatives - %% (useful in optimization if some parameters are not optimized, but - %% are 'fixed'). - %% - %% hook.lbound, hook.ubound: vectors of lower and upper parameter - %% bounds (or -Inf or +Inf, respectively) to be respected in finite - %% differencing. The consistency of bounds is not checked. - - %% This is an interface to __dfdp__.m. if (ischar (varargin{2})) @@ -49,3 +48,5 @@ end ret = __dfdp__ (varargin{:}); + +end diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/dfxpdp.m --- a/main/optim/inst/dfxpdp.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/dfxpdp.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,47 +1,46 @@ %% Copyright (C) 2010, 2011 Olaf Till %% -%% This program is free software; you can redistribute it and/or modify -%% it under the terms of the GNU General Public License as published by -%% the Free Software Foundation; either version 2 of the License, or -%% (at your option) any later version. +%% This program is free software; you can redistribute it and/or modify it under +%% the terms of the GNU General Public License as published by the Free Software +%% Foundation; either version 3 of the License, or (at your option) any later +%% version. +%% +%% This program is distributed in the hope that it will be useful, but WITHOUT +%% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +%% details. +%% +%% You should have received a copy of the GNU General Public License along with +%% this program; if not, see . + +%% function jac = dfxpdp (x, p, func[, hook]) +%% +%% Returns Jacobian of func (p, x) with respect to p with finite +%% differencing. The optional argument hook is a structure which can +%% contain the following fields at the moment: %% -%% This program is distributed in the hope that it will be useful, -%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -%% GNU General Public License for more details. +%% hook.f: value of func(p, x) for p and x as given in the arguments +%% +%% hook.diffp: positive vector of fractional steps from given p in +%% finite differencing (actual steps may be smaller if bounds are +%% given). The default is .001 * ones (size (p)); %% -%% You should have received a copy of the GNU General Public License -%% along with this program; If not, see . +%% hook.diff_onesided: logical vector, indexing elements of p for +%% which only one-sided differences should be computed (faster); even +%% if not one-sided, differences might not be exactly central if +%% bounds are given. The default is false (size (p)). +%% +%% hook.fixed: logical vector, indexing elements of p for which zero +%% should be returned instead of the guessed partial derivatives +%% (useful in optimization if some parameters are not optimized, but +%% are 'fixed'). +%% +%% hook.lbound, hook.ubound: vectors of lower and upper parameter +%% bounds (or -Inf or +Inf, respectively) to be respected in finite +%% differencing. The consistency of bounds is not checked. function ret = dfxpdp (varargin) - %% function jac = dfxpdp (x, p, func[, hook]) - %% - %% Returns Jacobian of func (p, x) with respect to p with finite - %% differencing. The optional argument hook is a structure which can - %% contain the following fields at the moment: - %% - %% hook.f: value of func(p, x) for p and x as given in the arguments - %% - %% hook.diffp: positive vector of fractional steps from given p in - %% finite differencing (actual steps may be smaller if bounds are - %% given). The default is .001 * ones (size (p)); - %% - %% hook.diff_onesided: logical vector, indexing elements of p for - %% which only one-sided differences should be computed (faster); even - %% if not one-sided, differences might not be exactly central if - %% bounds are given. The default is false (size (p)). - %% - %% hook.fixed: logical vector, indexing elements of p for which zero - %% should be returned instead of the guessed partial derivatives - %% (useful in optimization if some parameters are not optimized, but - %% are 'fixed'). - %% - %% hook.lbound, hook.ubound: vectors of lower and upper parameter - %% bounds (or -Inf or +Inf, respectively) to be respected in finite - %% differencing. The consistency of bounds is not checked. - - %% This is an interface to __dfdp__.m. if (ischar (varargin{3})) @@ -52,3 +51,5 @@ end ret = __dfdp__ (varargin{2:end}); + +end diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/expfit.m --- a/main/optim/inst/expfit.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/expfit.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,3 +1,19 @@ +## Copyright (C) 2000 Gert Van den Eynde +## Copyright (C) 2002 Rolf Fabian +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. +## +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. +## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . + ## USAGE [alpha,c,rms] = expfit( deg, x1, h, y ) ## ## Prony's method for non-linear exponential fitting @@ -41,31 +57,12 @@ ## roots of a polynomial. I used 'roots.m', if there is ## something better please use that code. ## -## Copyright (C) 2000 Gert Van den Eynde -## SCK-CEN (Nuclear Energy Research Centre) -## Boeretang 200 -## 2400 Mol -## Belgium -## na.gvandeneynde@na-net.ornl.gov -## -## This code is under the GNU Public License (GPL) version 2 or later. -## I hope that it is useful, but it is WITHOUT ANY WARRANTY, without -## even the implied warranty of MERCHANTABILITY or FITNESS FOR A -## PARTICULAR PURPOSE. -## __________________________________________________________________ -## Modified for full compatibility with complex fit-functions by -## Rolf Fabian 2002-Sep-23 -## Brandenburg University of Technology Cottbus -## Dep. of Air Chemistry and Pollution Control -## ## Demo for a complex fit-function: ## deg= 2; N= 20; x1= -(1+i), x= linspace(x1,1+i/2,N).'; ## h = x(2) - x(1) ## y= (2+i)*exp( (-1-2i)*x ) + (-1+3i)*exp( (2+3i)*x ); ## A= 5e-2; y+= A*(randn(N,1)+randn(N,1)*i); % add complex noise ## [alpha,c,rms]= expfit( deg, x1, h, y ) -## __________________________________________________________________ - function [a,c,rms] = expfit(deg,x1,h,y) diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/fmin.m --- a/main/optim/inst/fmin.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/fmin.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,22 +1,21 @@ -## Copyright (C) 2001 Paul Kienzle -## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2 of the License, or -## (at your option) any later version. -## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with this program; If not, see . +## Copyright (C) 2001 Paul Kienzle +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. +## +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. +## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . function ret=fmin(varargin) ## alias for fminbnd - - ret = fminbnd(varargin{:}); + ret = fminbnd(varargin{:}); endfunction diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/fmins.m --- a/main/optim/inst/fmins.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/fmins.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,17 +1,17 @@ -## Copyright (C) 2003 Andy Adler -## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2 of the License, or -## (at your option) any later version. -## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with this program; If not, see . +## Copyright (C) 2003 Andy Adler +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. +## +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. +## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## -*- texinfo -*- ## @deftypefn {Function File} {[@var{x}] =} fmins(@var{f},@var{X0},@var{options},@var{grad},@var{P1},@var{P2}, ...) diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/fminsearch.m --- a/main/optim/inst/fminsearch.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/fminsearch.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,20 +1,20 @@ -## Copyright (C) 2006 Sylvain Pelissier +## Copyright (C) 2006 Sylvain Pelissier ## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2 of the License, or -## (at your option) any later version. +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## You should have received a copy of the GNU General Public License -## along with this program; If not, see . +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## -*- texinfo -*- -## @deftypefn {Function File} {[@var{x}] =} fminsearch(@var{f},@var{X0},@var{options},@var{grad},@var{P1},@var{P2}, ...) +## @deftypefn {Function File} {[@var{x}] =} fminsearch(@var{f},@var{X0},@var{options},@var{grad},@var{P1},@var{P2}, @dots{}) ## ## Find the minimum of a funtion of several variables. ## By default the method used is the Nelder&Mead Simplex algorithm diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/fminunc_compat.m --- a/main/optim/inst/fminunc_compat.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/fminunc_compat.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,14 +1,17 @@ -## Copyright (C) 2002 Etienne Grossmann. All rights reserved. +## Copyright (C) 2002 Etienne Grossmann +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## This is distributed in the hope that it will be useful, but WITHOUT -## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## [x,v,flag,out,df,d2f] = fminunc_compat (f,x,opt,...) - M*tlab-like optimization ## diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/gjp.m --- a/main/optim/inst/gjp.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/gjp.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,38 +1,37 @@ -%% Copyright (C) 2010, 2011 Olaf Till +%% Copyright (C) 2010, 2011 Olaf Till %% -%% This program is free software; you can redistribute it and/or modify -%% it under the terms of the GNU General Public License as published by -%% the Free Software Foundation; either version 2 of the License, or (at -%% your option) any later version. +%% This program is free software; you can redistribute it and/or modify it under +%% the terms of the GNU General Public License as published by the Free Software +%% Foundation; either version 3 of the License, or (at your option) any later +%% version. +%% +%% This program is distributed in the hope that it will be useful, but WITHOUT +%% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +%% details. %% -%% This program is distributed in the hope that it will be useful, but -%% WITHOUT ANY WARRANTY; without even the implied warranty of -%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%% General Public License for more details. +%% You should have received a copy of the GNU General Public License along with +%% this program; if not, see . + +%% m = gjp (m, k[, l]) +%% +%% m: matrix; k, l: row- and column-index of pivot, l defaults to k. %% -%% You should have received a copy of the GNU General Public License -%% along with this program; if not, write to the Free Software -%% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301USA +%% Gauss-Jordon pivot as defined in Bard, Y.: Nonlinear Parameter +%% Estimation, p. 296, Academic Press, New York and London 1974. In +%% the pivot column, this seems not quite the same as the usual +%% Gauss-Jordan(-Clasen) pivot. Bard gives Beaton, A. E., 'The use of +%% special matrix operators in statistical calculus' Research Bulletin +%% RB-64-51 (1964), Educational Testing Service, Princeton, New Jersey +%% as a reference, but this article is not easily accessible. Another +%% reference, whose definition of gjp differs from Bards by some +%% signs, is Clarke, R. B., 'Algorithm AS 178: The Gauss-Jordan sweep +%% operator with detection of collinearity', Journal of the Royal +%% Statistical Society, Series C (Applied Statistics) (1982), 31(2), +%% 166--168. function m = gjp (m, k, l) - %% m = gjp (m, k[, l]) - %% - %% m: matrix; k, l: row- and column-index of pivot, l defaults to k. - %% - %% Gauss-Jordon pivot as defined in Bard, Y.: Nonlinear Parameter - %% Estimation, p. 296, Academic Press, New York and London 1974. In - %% the pivot column, this seems not quite the same as the usual - %% Gauss-Jordan(-Clasen) pivot. Bard gives Beaton, A. E., 'The use of - %% special matrix operators in statistical calculus' Research Bulletin - %% RB-64-51 (1964), Educational Testing Service, Princeton, New Jersey - %% as a reference, but this article is not easily accessible. Another - %% reference, whose definition of gjp differs from Bards by some - %% signs, is Clarke, R. B., 'Algorithm AS 178: The Gauss-Jordan sweep - %% operator with detection of collinearity', Journal of the Royal - %% Statistical Society, Series C (Applied Statistics) (1982), 31(2), - %% 166--168. - if (nargin < 3) l = k; end @@ -51,3 +50,4 @@ m([1:k-1, k+1:end], l) * m(k, [1:l-1, l+1:end]); m([1:k-1, k+1:end], l) = - m([1:k-1, k+1:end], l) / p; % pivot column m(k, l) = 1 / p; +end diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/jacobs.m --- a/main/optim/inst/jacobs.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/jacobs.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,17 +1,17 @@ ## Copyright (C) 2011 Fotios Kasolis ## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 3 of the License, or -## (at your option) any later version. +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## You should have received a copy of the GNU General Public License -## along with this program; if not, see . +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## -*- texinfo -*- ## @deftypefn {Function File} {Df =} jacobs (@var{x}, @var{f}) diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/leasqr.m --- a/main/optim/inst/leasqr.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/leasqr.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,152 +1,156 @@ %% Copyright (C) 1992-1994 Richard Shrager -%% Copyright (C) 1992-1994 Arthur Jutan -%% Copyright (C) 1992-1994 Ray Muzic +%% Copyright (C) 1992-1994 Arthur Jutan +%% Copyright (C) 1992-1994 Ray Muzic %% Copyright (C) 2010, 2011 Olaf Till %% -%% This program is free software; you can redistribute it and/or modify -%% it under the terms of the GNU General Public License as published by -%% the Free Software Foundation; either version 2 of the License, or -%% (at your option) any later version. +%% This program is free software; you can redistribute it and/or modify it under +%% the terms of the GNU General Public License as published by the Free Software +%% Foundation; either version 3 of the License, or (at your option) any later +%% version. +%% +%% This program is distributed in the hope that it will be useful, but WITHOUT +%% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +%% details. +%% +%% You should have received a copy of the GNU General Public License along with +%% this program; if not, see . + +%%function [f,p,cvg,iter,corp,covp,covr,stdresid,Z,r2]= +%% leasqr(x,y,pin,F,{stol,niter,wt,dp,dFdp,options}) +%% +%% Levenberg-Marquardt nonlinear regression of f(x,p) to y(x). %% -%% This program is distributed in the hope that it will be useful, -%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -%% GNU General Public License for more details. +%% Version 3.beta +%% Optional parameters are in braces {}. +%% x = vector or matrix of independent variables. +%% y = vector or matrix of observed values. +%% wt = statistical weights (same dimensions as y). These should be +%% set to be proportional to (sqrt of var(y))^-1; (That is, the +%% covariance matrix of the data is assumed to be proportional to +%% diagonal with diagonal equal to (wt.^2)^-1. The constant of +%% proportionality will be estimated.); default = ones( size (y)). +%% pin = vec of initial parameters to be adjusted by leasqr. +%% dp = fractional increment of p for numerical partial derivatives; +%% default = .001*ones(size(pin)) +%% dp(j) > 0 means central differences on j-th parameter p(j). +%% dp(j) < 0 means one-sided differences on j-th parameter p(j). +%% dp(j) = 0 holds p(j) fixed i.e. leasqr wont change initial guess: pin(j) +%% F = name of function in quotes or function handle; the function +%% shall be of the form y=f(x,p), with y, x, p of the form y, x, pin +%% as described above. +%% dFdp = name of partial derivative function in quotes or function +%% handle; default is 'dfdp', a slow but general partial derivatives +%% function; the function shall be of the form +%% prt=dfdp(x,f,p,dp,F[,bounds]). For backwards compatibility, the +%% function will only be called with an extra 'bounds' argument if the +%% 'bounds' option is explicitely specified to leasqr (see dfdp.m). +%% stol = scalar tolerance on fractional improvement in scalar sum of +%% squares = sum((wt.*(y-f))^2); default stol = .0001; +%% niter = scalar maximum number of iterations; default = 20; +%% options = structure, currently recognized fields are 'fract_prec', +%% 'max_fract_change', 'inequc', 'bounds', and 'equc'. For backwards +%% compatibility, 'options' can also be a matrix whose first and +%% second column contains the values of 'fract_prec' and +%% 'max_fract_change', respectively. +%% Field 'options.fract_prec': column vector (same length as 'pin') +%% of desired fractional precisions in parameter estimates. +%% Iterations are terminated if change in parameter vector (chg) +%% relative to current parameter estimate is less than their +%% corresponding elements in 'options.fract_prec' [ie. all (abs +%% (chg) < abs (options.fract_prec .* current_parm_est))] on two +%% consecutive iterations, default = zeros(). +%% Field 'options.max_fract_change': column vector (same length as +%% 'pin) of maximum fractional step changes in parameter vector. +%% Fractional change in elements of parameter vector is constrained to +%% be at most 'options.max_fract_change' between sucessive iterations. +%% [ie. abs(chg(i))=abs(min([chg(i) +%% options.max_fract_change(i)*current param estimate])).], default = +%% Inf*ones(). +%% Field 'options.inequc': cell-array containing up to four entries, +%% two entries for linear inequality constraints and/or one or two +%% entries for general inequality constraints. Initial parameters +%% must satisfy these constraints. Either linear or general +%% constraints may be the first entries, but the two entries for +%% linear constraints must be adjacent and, if two entries are given +%% for general constraints, they also must be adjacent. The two +%% entries for linear constraints are a matrix (say m) and a vector +%% (say v), specifying linear inequality constraints of the form +%% `m.' * parameters + v >= 0'. If the constraints are just bounds, +%% it is suggested to specify them in 'options.bounds' instead, +%% since then some sanity tests are performed, and since the +%% function 'dfdp.m' is guarantied not to violate constraints during +%% determination of the numeric gradient only for those constraints +%% specified as 'bounds' (possibly with violations due to a certain +%% inaccuracy, however, except if no constraints except bounds are +%% specified). The first entry for general constraints must be a +%% differentiable vector valued function (say h), specifying general +%% inequality constraints of the form `h (p[, idx]) >= 0'; p is the +%% column vector of optimized paraters and the optional argument idx +%% is a logical index. h has to return the values of all constraints +%% if idx is not given, and has to return only the indexed +%% constraints if idx is given (so computation of the other +%% constraints can be spared). If a second entry for general +%% constraints is given, it must be a function (say dh) which +%% returnes a matrix whos rows contain the gradients of the +%% constraint function h with respect to the optimized parameters. +%% It has the form jac_h = dh (vh, p, dp, h, idx[, bounds]); p is +%% the column vector of optimized parameters, and idx is a logical +%% index --- only the rows indexed by idx must be returned (so +%% computation of the others can be spared). The other arguments of +%% dh are for the case that dh computes numerical gradients: vh is +%% the column vector of the current values of the constraint +%% function h, with idx already applied. h is a function h (p) to +%% compute the values of the constraints for parameters p, it will +%% return only the values indexed by idx. dp is a suggestion for +%% relative step width, having the same value as the argument 'dp' +%% of leasqr above. If bounds were specified to leasqr, they are +%% provided in the argument bounds of dh, to enable their +%% consideration in determination of numerical gradients. If dh is +%% not specified to leasqr, numerical gradients are computed in the +%% same way as with 'dfdp.m' (see above). If some constraints are +%% linear, they should be specified as linear constraints (or +%% bounds, if applicable) for reasons of performance, even if +%% general constraints are also specified. +%% Field 'options.bounds': two-column-matrix, one row for each +%% parameter in 'pin'. Each row contains a minimal and maximal value +%% for each parameter. Default: [-Inf, Inf] in each row. If this +%% field is used with an existing user-side function for 'dFdp' +%% (see above) the functions interface might have to be changed. +%% Field 'options.equc': equality constraints, specified the same +%% way as inequality constraints (see field 'options.inequc'). +%% Initial parameters must satisfy these constraints. +%% Note that there is possibly a certain inaccuracy in honoring +%% constraints, except if only bounds are specified. +%% _Warning_: If constraints (or bounds) are set, returned guesses +%% of corp, covp, and Z are generally invalid, even if no constraints +%% are active for the final parameters. If equality constraints are +%% specified, corp, covp, and Z are not guessed at all. +%% Field 'options.cpiv': Function for complementary pivot algorithm +%% for inequality constraints, default: cpiv_bard. No different +%% function is supplied. %% -%% You should have received a copy of the GNU General Public License -%% along with this program; If not, see . +%% OUTPUT VARIABLES +%% f = column vector of values computed: f = F(x,p). +%% p = column vector trial or final parameters. i.e, the solution. +%% cvg = scalar: = 1 if convergence, = 0 otherwise. +%% iter = scalar number of iterations used. +%% corp = correlation matrix for parameters. +%% covp = covariance matrix of the parameters. +%% covr = diag(covariance matrix of the residuals). +%% stdresid = standardized residuals. +%% Z = matrix that defines confidence region (see comments in the source). +%% r2 = coefficient of multiple determination, intercept form. +%% +%% Not suitable for non-real residuals. +%% +%% References: +%% Bard, Nonlinear Parameter Estimation, Academic Press, 1974. +%% Draper and Smith, Applied Regression Analysis, John Wiley and Sons, 1981. function [f,p,cvg,iter,corp,covp,covr,stdresid,Z,r2]= ... leasqr(x,y,pin,F,stol,niter,wt,dp,dFdp,options) - %%function [f,p,cvg,iter,corp,covp,covr,stdresid,Z,r2]= - %% leasqr(x,y,pin,F,{stol,niter,wt,dp,dFdp,options}) - %% - %% Levenberg-Marquardt nonlinear regression of f(x,p) to y(x). - %% - %% Version 3.beta - %% Optional parameters are in braces {}. - %% x = vector or matrix of independent variables. - %% y = vector or matrix of observed values. - %% wt = statistical weights (same dimensions as y). These should be - %% set to be proportional to (sqrt of var(y))^-1; (That is, the - %% covariance matrix of the data is assumed to be proportional to - %% diagonal with diagonal equal to (wt.^2)^-1. The constant of - %% proportionality will be estimated.); default = ones( size (y)). - %% pin = vec of initial parameters to be adjusted by leasqr. - %% dp = fractional increment of p for numerical partial derivatives; - %% default = .001*ones(size(pin)) - %% dp(j) > 0 means central differences on j-th parameter p(j). - %% dp(j) < 0 means one-sided differences on j-th parameter p(j). - %% dp(j) = 0 holds p(j) fixed i.e. leasqr wont change initial guess: pin(j) - %% F = name of function in quotes or function handle; the function - %% shall be of the form y=f(x,p), with y, x, p of the form y, x, pin - %% as described above. - %% dFdp = name of partial derivative function in quotes or function - %% handle; default is 'dfdp', a slow but general partial derivatives - %% function; the function shall be of the form - %% prt=dfdp(x,f,p,dp,F[,bounds]). For backwards compatibility, the - %% function will only be called with an extra 'bounds' argument if the - %% 'bounds' option is explicitely specified to leasqr (see dfdp.m). - %% stol = scalar tolerance on fractional improvement in scalar sum of - %% squares = sum((wt.*(y-f))^2); default stol = .0001; - %% niter = scalar maximum number of iterations; default = 20; - %% options = structure, currently recognized fields are 'fract_prec', - %% 'max_fract_change', 'inequc', 'bounds', and 'equc'. For backwards - %% compatibility, 'options' can also be a matrix whose first and - %% second column contains the values of 'fract_prec' and - %% 'max_fract_change', respectively. - %% Field 'options.fract_prec': column vector (same length as 'pin') - %% of desired fractional precisions in parameter estimates. - %% Iterations are terminated if change in parameter vector (chg) - %% relative to current parameter estimate is less than their - %% corresponding elements in 'options.fract_prec' [ie. all (abs - %% (chg) < abs (options.fract_prec .* current_parm_est))] on two - %% consecutive iterations, default = zeros(). - %% Field 'options.max_fract_change': column vector (same length as - %% 'pin) of maximum fractional step changes in parameter vector. - %% Fractional change in elements of parameter vector is constrained to - %% be at most 'options.max_fract_change' between sucessive iterations. - %% [ie. abs(chg(i))=abs(min([chg(i) - %% options.max_fract_change(i)*current param estimate])).], default = - %% Inf*ones(). - %% Field 'options.inequc': cell-array containing up to four entries, - %% two entries for linear inequality constraints and/or one or two - %% entries for general inequality constraints. Initial parameters - %% must satisfy these constraints. Either linear or general - %% constraints may be the first entries, but the two entries for - %% linear constraints must be adjacent and, if two entries are given - %% for general constraints, they also must be adjacent. The two - %% entries for linear constraints are a matrix (say m) and a vector - %% (say v), specifying linear inequality constraints of the form - %% `m.' * parameters + v >= 0'. If the constraints are just bounds, - %% it is suggested to specify them in 'options.bounds' instead, - %% since then some sanity tests are performed, and since the - %% function 'dfdp.m' is guarantied not to violate constraints during - %% determination of the numeric gradient only for those constraints - %% specified as 'bounds' (possibly with violations due to a certain - %% inaccuracy, however, except if no constraints except bounds are - %% specified). The first entry for general constraints must be a - %% differentiable vector valued function (say h), specifying general - %% inequality constraints of the form `h (p[, idx]) >= 0'; p is the - %% column vector of optimized paraters and the optional argument idx - %% is a logical index. h has to return the values of all constraints - %% if idx is not given, and has to return only the indexed - %% constraints if idx is given (so computation of the other - %% constraints can be spared). If a second entry for general - %% constraints is given, it must be a function (say dh) which - %% returnes a matrix whos rows contain the gradients of the - %% constraint function h with respect to the optimized parameters. - %% It has the form jac_h = dh (vh, p, dp, h, idx[, bounds]); p is - %% the column vector of optimized parameters, and idx is a logical - %% index --- only the rows indexed by idx must be returned (so - %% computation of the others can be spared). The other arguments of - %% dh are for the case that dh computes numerical gradients: vh is - %% the column vector of the current values of the constraint - %% function h, with idx already applied. h is a function h (p) to - %% compute the values of the constraints for parameters p, it will - %% return only the values indexed by idx. dp is a suggestion for - %% relative step width, having the same value as the argument 'dp' - %% of leasqr above. If bounds were specified to leasqr, they are - %% provided in the argument bounds of dh, to enable their - %% consideration in determination of numerical gradients. If dh is - %% not specified to leasqr, numerical gradients are computed in the - %% same way as with 'dfdp.m' (see above). If some constraints are - %% linear, they should be specified as linear constraints (or - %% bounds, if applicable) for reasons of performance, even if - %% general constraints are also specified. - %% Field 'options.bounds': two-column-matrix, one row for each - %% parameter in 'pin'. Each row contains a minimal and maximal value - %% for each parameter. Default: [-Inf, Inf] in each row. If this - %% field is used with an existing user-side function for 'dFdp' - %% (see above) the functions interface might have to be changed. - %% Field 'options.equc': equality constraints, specified the same - %% way as inequality constraints (see field 'options.inequc'). - %% Initial parameters must satisfy these constraints. - %% Note that there is possibly a certain inaccuracy in honoring - %% constraints, except if only bounds are specified. - %% _Warning_: If constraints (or bounds) are set, returned guesses - %% of corp, covp, and Z are generally invalid, even if no constraints - %% are active for the final parameters. If equality constraints are - %% specified, corp, covp, and Z are not guessed at all. - %% Field 'options.cpiv': Function for complementary pivot algorithm - %% for inequality constraints, default: cpiv_bard. No different - %% function is supplied. - %% - %% OUTPUT VARIABLES - %% f = column vector of values computed: f = F(x,p). - %% p = column vector trial or final parameters. i.e, the solution. - %% cvg = scalar: = 1 if convergence, = 0 otherwise. - %% iter = scalar number of iterations used. - %% corp = correlation matrix for parameters. - %% covp = covariance matrix of the parameters. - %% covr = diag(covariance matrix of the residuals). - %% stdresid = standardized residuals. - %% Z = matrix that defines confidence region (see comments in the source). - %% r2 = coefficient of multiple determination, intercept form. - %% - %% Not suitable for non-real residuals. - %% The following two blocks of comments are chiefly from the original %% version for Matlab. For later changes the logs of the Octave Forge %% svn repository should also be consulted. @@ -217,11 +221,6 @@ %% constraints also implemented. Olaf Till %% Now split into files leasqr.m and __lm_svd__.m. - %% - %% References: - %% Bard, Nonlinear Parameter Estimation, Academic Press, 1974. - %% Draper and Smith, Applied Regression Analysis, John Wiley and Sons, 1981. - %% needed for some anonymous functions if (exist ('ifelse') ~= 5) ifelse = @ scalar_ifelse; diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/line_min.m --- a/main/optim/inst/line_min.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/line_min.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,14 +1,19 @@ -## Copyright (C) 2000 Ben Sapp. All rights reserved. +## Copyright (C) 2000 Ben Sapp +## Copyright (C) 2002 Etienne Grossmann +## Copyright (C) 2011 Nir Krakauer nkrakauer@ccny.cuny.edu ## -## This program is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This is distributed in the hope that it will be useful, but WITHOUT +## This program is distributed in the hope that it will be useful, but WITHOUT ## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. +## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## [a,fx,nev] = line_min (f, dx, args, narg, h, nev_max) - Minimize f() along dx ## @@ -27,25 +32,8 @@ ## nev : integer : Number of function evaluations ## ## (*) The notation f(x+a*dx) assumes that args == {x}. - -## Author: Ben Sapp +## ## Reference: David G Luenberger's Linear and Nonlinear Programming -## -## Changelog : ----------- -## 2002-01-28 Paul Kienzle -## * save two function evaluations by inlining the derivatives -## * pass through varargin{:} to the function -## 2002-03-13 Paul Kienzle -## * simplify update expression -## 2002-04-17 Etienne Grossmann -## * Rename nrm.m to line_min.m (in order not to break dfp, which uses nrm) -## * Use list of args, suppress call to __pseudo_func__ -## * Add nargs argument, assume args is a list -## * Change help text -## 2011-11-27 Nir Krakauer -## * made step size h configurable -## * modified to limit the number of function evaluations -## * added a check to ensure that the function value returned was never more than the initial value function [a,fx,nev] = line_min (f, dx, args, narg, h, nev_max) velocity = 1; @@ -92,4 +80,4 @@ endfunction ## Rem : Although not clear from the code, the returned a always seems to -## correspond to (nearly) optimal fx. \ No newline at end of file +## correspond to (nearly) optimal fx. diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/linprog.m --- a/main/optim/inst/linprog.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/linprog.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,17 +1,17 @@ ## Copyright (C) 2009 Luca Favatella ## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2 of the License, or -## (at your option) any later version. +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## You should have received a copy of the GNU General Public License -## along with this program; If not, see . +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## -*- texinfo -*- ## @deftypefn{Function File} {@var{x} =} linprog (@var{f}, @var{A}, @var{b}) @@ -44,9 +44,6 @@ ## @seealso{glpk} ## @end deftypefn -## Author: Luca Favatella -## Version: 0.5 - function [x fval] = linprog (f, A, b, Aeq = [], beq = [], lb = [], ub = []) @@ -117,7 +114,6 @@ endfunction - %!test %! f = [1; -1]; %! A = []; @@ -129,7 +125,6 @@ %! x_exp = [2; 0]; %! assert (linprog (f, A, b, Aeq, beq, lb, ub), x_exp); - %!shared f, A, b, lb, ub, x_exp, fval_exp %! f = [21 25 31 34 23 19 32 36 27 25 19]'; %! @@ -161,4 +156,4 @@ %!test %! Aeq = zeros (1, rows (f)); %! beq = 0; -%! assert (linprog (f, A, b, Aeq, beq, lb, ub), x_exp); \ No newline at end of file +%! assert (linprog (f, A, b, Aeq, beq, lb, ub), x_exp); diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/mdsmax.m --- a/main/optim/inst/mdsmax.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/mdsmax.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,52 +1,66 @@ -function [x, fmax, nf] = mdsmax(fun, x, stopit, savit, varargin) -%MDSMAX Multidirectional search method for direct search optimization. -% [x, fmax, nf] = MDSMAX(FUN, x0, STOPIT, SAVIT) attempts to -% maximize the function FUN, using the starting vector x0. -% The method of multidirectional search is used. -% Output arguments: -% x = vector yielding largest function value found, -% fmax = function value at x, -% nf = number of function evaluations. -% The iteration is terminated when either -% - the relative size of the simplex is <= STOPIT(1) -% (default 1e-3), -% - STOPIT(2) function evaluations have been performed -% (default inf, i.e., no limit), or -% - a function value equals or exceeds STOPIT(3) -% (default inf, i.e., no test on function values). -% The form of the initial simplex is determined by STOPIT(4): -% STOPIT(4) = 0: regular simplex (sides of equal length, the default), -% STOPIT(4) = 1: right-angled simplex. -% Progress of the iteration is not shown if STOPIT(5) = 0 (default 1). -% If a non-empty fourth parameter string SAVIT is present, then -% `SAVE SAVIT x fmax nf' is executed after each inner iteration. -% NB: x0 can be a matrix. In the output argument, in SAVIT saves, -% and in function calls, x has the same shape as x0. -% MDSMAX(fun, x0, STOPIT, SAVIT, P1, P2,...) allows additional -% arguments to be passed to fun, via feval(fun,x,P1,P2,...). +%% Copyright (C) 2002 N.J.Higham +%% Copyright (C) 2003 Andy Adler +%% +%% This program is free software; you can redistribute it and/or modify it under +%% the terms of the GNU General Public License as published by the Free Software +%% Foundation; either version 3 of the License, or (at your option) any later +%% version. +%% +%% This program is distributed in the hope that it will be useful, but WITHOUT +%% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +%% details. +%% +%% You should have received a copy of the GNU General Public License along with +%% this program; if not, see . -% This implementation uses 2n^2 elements of storage (two simplices), where x0 -% is an n-vector. It is based on the algorithm statement in [2, sec.3], -% modified so as to halve the storage (with a slight loss in readability). +%%MDSMAX Multidirectional search method for direct search optimization. +%% [x, fmax, nf] = MDSMAX(FUN, x0, STOPIT, SAVIT) attempts to +%% maximize the function FUN, using the starting vector x0. +%% The method of multidirectional search is used. +%% Output arguments: +%% x = vector yielding largest function value found, +%% fmax = function value at x, +%% nf = number of function evaluations. +%% The iteration is terminated when either +%% - the relative size of the simplex is <= STOPIT(1) +%% (default 1e-3), +%% - STOPIT(2) function evaluations have been performed +%% (default inf, i.e., no limit), or +%% - a function value equals or exceeds STOPIT(3) +%% (default inf, i.e., no test on function values). +%% The form of the initial simplex is determined by STOPIT(4): +%% STOPIT(4) = 0: regular simplex (sides of equal length, the default), +%% STOPIT(4) = 1: right-angled simplex. +%% Progress of the iteration is not shown if STOPIT(5) = 0 (default 1). +%% If a non-empty fourth parameter string SAVIT is present, then +%% `SAVE SAVIT x fmax nf' is executed after each inner iteration. +%% NB: x0 can be a matrix. In the output argument, in SAVIT saves, +%% and in function calls, x has the same shape as x0. +%% MDSMAX(fun, x0, STOPIT, SAVIT, P1, P2,...) allows additional +%% arguments to be passed to fun, via feval(fun,x,P1,P2,...). +%% +%% This implementation uses 2n^2 elements of storage (two simplices), where x0 +%% is an n-vector. It is based on the algorithm statement in [2, sec.3], +%% modified so as to halve the storage (with a slight loss in readability). +%% +%% References: +%% [1] V. J. Torczon, Multi-directional search: A direct search algorithm for +%% parallel machines, Ph.D. Thesis, Rice University, Houston, Texas, 1989. +% [2] V. J. Torczon, On the convergence of the multidirectional search +%% algorithm, SIAM J. Optimization, 1 (1991), pp. 123-145. +%% [3] N. J. Higham, Optimization by direct search in matrix computations, +%% SIAM J. Matrix Anal. Appl, 14(2): 317-333, 1993. +%% [4] N. J. Higham, Accuracy and Stability of Numerical Algorithms, +%% Second edition, Society for Industrial and Applied Mathematics, +%% Philadelphia, PA, 2002; sec. 20.5. % From Matrix Toolbox % Copyright (C) 2002 N.J.Higham % www.maths.man.ac.uk/~higham/mctoolbox -% distributed under the terms of the GNU General Public License -% % Modifications for octave by A.Adler 2003 -% $Id$ -% References: -% [1] V. J. Torczon, Multi-directional search: A direct search algorithm for -% parallel machines, Ph.D. Thesis, Rice University, Houston, Texas, 1989. -% [2] V. J. Torczon, On the convergence of the multidirectional search -% algorithm, SIAM J. Optimization, 1 (1991), pp. 123-145. -% [3] N. J. Higham, Optimization by direct search in matrix computations, -% SIAM J. Matrix Anal. Appl, 14(2): 317-333, 1993. -% [4] N. J. Higham, Accuracy and Stability of Numerical Algorithms, -% Second edition, Society for Industrial and Applied Mathematics, -% Philadelphia, PA, 2002; sec. 20.5. +function [x, fmax, nf] = mdsmax(fun, x, stopit, savit, varargin) x0 = x(:); % Work with column vector internally. n = length(x0); diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/minimize.m --- a/main/optim/inst/minimize.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/minimize.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,14 +1,17 @@ -## Copyright (C) 2002 Etienne Grossmann. All rights reserved. +## Copyright (C) 2002 Etienne Grossmann +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## This is distributed in the hope that it will be useful, but WITHOUT -## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## [x,v,nev,...] = minimize (f,args,...) - Minimize f ## @@ -104,7 +107,7 @@ ## or, if a 2nd order method is used : ## ## [x,v,nev] = feval (backend, control.d2f, args, control) -## + function [x,v,nev,varargout] = minimize (f,args,varargin) ## Oldies diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/nelder_mead_min.m --- a/main/optim/inst/nelder_mead_min.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/nelder_mead_min.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,17 +1,17 @@ -## Copyright (C) 2002-2008 Etienne Grossmann. All rights reserved. +## Copyright (C) 2002-2008 Etienne Grossmann ## -## This program is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This is distributed in the hope that it will be useful, but WITHOUT +## This program is distributed in the hope that it will be useful, but WITHOUT ## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## Changelog: -## 2002 / 05 / 09 : Default is no restart next to solution +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## [x0,v,nev] = nelder_mead_min (f,args,ctl) - Nelder-Mead minimization ## @@ -80,11 +80,9 @@ ## mind not getting a true minimum. <0> ## ## verbose, v Be more or less verbose (quiet=0) <0> + function [x,v,nev] = nelder_mead_min (f, args, varargin) -## Author : Etienne Grossmann - - verbose = 0; # Default control variables diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/nmsmax.m --- a/main/optim/inst/nmsmax.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/nmsmax.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,46 +1,59 @@ -function [x, fmax, nf] = nmsmax(fun, x, stopit, savit, varargin) -%NMSMAX Nelder-Mead simplex method for direct search optimization. -% [x, fmax, nf] = NMSMAX(FUN, x0, STOPIT, SAVIT) attempts to -% maximize the function FUN, using the starting vector x0. -% The Nelder-Mead direct search method is used. -% Output arguments: -% x = vector yielding largest function value found, -% fmax = function value at x, -% nf = number of function evaluations. -% The iteration is terminated when either -% - the relative size of the simplex is <= STOPIT(1) -% (default 1e-3), -% - STOPIT(2) function evaluations have been performed -% (default inf, i.e., no limit), or -% - a function value equals or exceeds STOPIT(3) -% (default inf, i.e., no test on function values). -% The form of the initial simplex is determined by STOPIT(4): -% STOPIT(4) = 0: regular simplex (sides of equal length, the default) -% STOPIT(4) = 1: right-angled simplex. -% Progress of the iteration is not shown if STOPIT(5) = 0 (default 1). -% STOPIT(6) indicates the direction (ie. minimization or -% maximization.) Default is 1, maximization. -% set STOPIT(6)=-1 for minimization -% If a non-empty fourth parameter string SAVIT is present, then -% `SAVE SAVIT x fmax nf' is executed after each inner iteration. -% NB: x0 can be a matrix. In the output argument, in SAVIT saves, -% and in function calls, x has the same shape as x0. -% NMSMAX(fun, x0, STOPIT, SAVIT, P1, P2,...) allows additional -% arguments to be passed to fun, via feval(fun,x,P1,P2,...). +%% Copyright (C) 2002 N.J.Higham +%% Copyright (C) 2003 Andy Adler +%% +%% This program is free software; you can redistribute it and/or modify it under +%% the terms of the GNU General Public License as published by the Free Software +%% Foundation; either version 3 of the License, or (at your option) any later +%% version. +%% +%% This program is distributed in the hope that it will be useful, but WITHOUT +%% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +%% details. +%% +%% You should have received a copy of the GNU General Public License along with +%% this program; if not, see . + +%%NMSMAX Nelder-Mead simplex method for direct search optimization. +%% [x, fmax, nf] = NMSMAX(FUN, x0, STOPIT, SAVIT) attempts to +%% maximize the function FUN, using the starting vector x0. +%% The Nelder-Mead direct search method is used. +%% Output arguments: +%% x = vector yielding largest function value found, +%% fmax = function value at x, +%% nf = number of function evaluations. +%% The iteration is terminated when either +%% - the relative size of the simplex is <= STOPIT(1) +%% (default 1e-3), +%% - STOPIT(2) function evaluations have been performed +%% (default inf, i.e., no limit), or +%% - a function value equals or exceeds STOPIT(3) +%% (default inf, i.e., no test on function values). +%% The form of the initial simplex is determined by STOPIT(4): +%% STOPIT(4) = 0: regular simplex (sides of equal length, the default) +%% STOPIT(4) = 1: right-angled simplex. +%% Progress of the iteration is not shown if STOPIT(5) = 0 (default 1). +%% STOPIT(6) indicates the direction (ie. minimization or +%% maximization.) Default is 1, maximization. +%% set STOPIT(6)=-1 for minimization +%% If a non-empty fourth parameter string SAVIT is present, then +%% `SAVE SAVIT x fmax nf' is executed after each inner iteration. +%% NB: x0 can be a matrix. In the output argument, in SAVIT saves, +%% and in function calls, x has the same shape as x0. +%% NMSMAX(fun, x0, STOPIT, SAVIT, P1, P2,...) allows additional +%% arguments to be passed to fun, via feval(fun,x,P1,P2,...). +%% References: +%% N. J. Higham, Optimization by direct search in matrix computations, +%% SIAM J. Matrix Anal. Appl, 14(2): 317-333, 1993. +%% C. T. Kelley, Iterative Methods for Optimization, Society for Industrial +%% and Applied Mathematics, Philadelphia, PA, 1999. % From Matrix Toolbox % Copyright (C) 2002 N.J.Higham % www.maths.man.ac.uk/~higham/mctoolbox -% distributed under the terms of the GNU General Public License -% % Modifications for octave by A.Adler 2003 -% $Id$ -% References: -% N. J. Higham, Optimization by direct search in matrix computations, -% SIAM J. Matrix Anal. Appl, 14(2): 317-333, 1993. -% C. T. Kelley, Iterative Methods for Optimization, Society for Industrial -% and Applied Mathematics, Philadelphia, PA, 1999. +function [x, fmax, nf] = nmsmax(fun, x, stopit, savit, varargin) x0 = x(:); % Work with column vector internally. n = length(x0); diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/nonlin_curvefit.m --- a/main/optim/inst/nonlin_curvefit.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/nonlin_curvefit.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,24 +1,21 @@ ## Copyright (C) 2010, 2011 Olaf Till ## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 3 of the License, or -## (at your option) any later version. +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## You should have received a copy of the GNU General Public License -## along with this program; If not, see . +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## -*- texinfo -*- -## ## @deftypefn {Function File} {[@var{p}, @var{fy}, @var{cvg}, @var{outp}] =} nonlin_curvefit (@var{f}, @var{pin}, @var{x}, @var{y}) -## ## @deftypefnx {Function File} {[@var{p}, @var{fy}, @var{cvg}, @var{outp}] =} nonlin_curvefit (@var{f}, @var{pin}, @var{x}, @var{y}, @var{settings}) -## ## Frontend for nonlinear fitting of values, computed by a model ## function, to observed values. ## @@ -35,7 +32,6 @@ ## which will be set to @var{x}. ## ## @seealso {nonlin_residmin} -## ## @end deftypefn function [p, fy, cvg, outp] = nonlin_curvefit (f, pin, x, y, settings) diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/nonlin_residmin.m --- a/main/optim/inst/nonlin_residmin.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/nonlin_residmin.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,26 +1,25 @@ ## Copyright (C) 2010, 2011 Olaf Till ## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 3 of the License, or -## (at your option) any later version. +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## You should have received a copy of the GNU General Public License -## along with this program; If not, see . +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## -*- texinfo -*- -## ## @deftypefn {Function File} {[@var{p}, @var{resid}, @var{cvg}, @var{outp}] =} nonlin_residmin (@var{f}, @var{pin}) -## ## @deftypefnx {Function File} {[@var{p}, @var{resid}, @var{cvg}, @var{outp}] =} nonlin_residmin (@var{f}, @var{pin}, @var{settings}) +## Frontend for nonlinear minimization of residuals returned by a model +## function. ## -## Frontend for nonlinear minimization of residuals returned by a model -## function. The functions supplied by the user have a minimal +## The functions supplied by the user have a minimal ## interface; any additionally needed constants (e.g. observed values) ## can be supplied by wrapping the user functions into anonymous ## functions. @@ -259,7 +258,6 @@ ## method, with descent in each gradient component; for testing only. ## ## @seealso {nonlin_curvefit} -## ## @end deftypefn function [p, resid, cvg, outp] = nonlin_residmin (varargin) diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/nrm.m --- a/main/optim/inst/nrm.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/nrm.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,30 +1,27 @@ -## Copyright (C) 2000 Ben Sapp. All rights reserved. +## Copyright (C) 2000 Ben Sapp +## Copyright (C) 2002 Paul Kienzle +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## This is distributed in the hope that it will be useful, but WITHOUT -## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## -*- texinfo -*- ## @deftypefn {Function File} {@var{xmin} =} nrm(@var{f},@var{x0}) ## Using @var{x0} as a starting point find a minimum of the scalar -## function @var{f}. The Newton-Raphson method is used. +## function @var{f}. The Newton-Raphson method is used. ## @end deftypefn -## Author: Ben Sapp ## Reference: David G Luenberger's Linear and Nonlinear Programming -## 2002-01-28 Paul Kienzle -## * save two function evaluations by inlining the derivatives -## * pass through varargin{:} to the function -## 2002-03-13 Paul Kienzle -## * simplify update expression - function x = nrm(f,x,varargin) velocity = 1; acceleration = 1; diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/optim_problems.m --- a/main/optim/inst/optim_problems.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/optim_problems.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,25 +1,24 @@ -%% Copyright (C) 2010 Olaf Till %% Copyright (C) 2007 Paul Kienzle (sort-based lookup in ODE solver) %% Copyright (C) 2009 Thomas Treichl -%% (ode23 code) +%% Copyright (C) 2010 Olaf Till %% -%% This program is free software; you can redistribute it and/or modify -%% it under the terms of the GNU General Public License as published by -%% the Free Software Foundation; either version 3 of the License, or (at -%% your option) any later version. +%% This program is free software; you can redistribute it and/or modify it under +%% the terms of the GNU General Public License as published by the Free Software +%% Foundation; either version 3 of the License, or (at your option) any later +%% version. %% -%% This program is distributed in the hope that it will be useful, but -%% WITHOUT ANY WARRANTY; without even the implied warranty of -%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%% General Public License for more details. +%% This program is distributed in the hope that it will be useful, but WITHOUT +%% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +%% details. %% -%% You should have received a copy of the GNU General Public License -%% along with this program; If not, see . +%% You should have received a copy of the GNU General Public License along with +%% this program; if not, see . + +%% Problems for testing optimizers. Documentation is in the code. function ret = optim_problems () - %% Problems for testing optimizers. Documentation is in the code. - %% As little external code as possible is called. This leads to some %% duplication of external code. The advantages are that thus these %% problems do not change with evolving external code, and that @@ -1256,4 +1255,4 @@ %! verbose = false; %! [cy, cp, cvg, iter] = leasqr (p_t.data.x, p_t.data.y, p_t.init_p, p_t.f) %! disp (p_t.result.p) -%! sumsq (cy - p_t.data.y) \ No newline at end of file +%! sumsq (cy - p_t.data.y) diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/optimset_compat.m --- a/main/optim/inst/optimset_compat.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/optimset_compat.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,14 +1,17 @@ -## Copyright (C) 2002 Etienne Grossmann. All rights reserved. +## Copyright (C) 2002 Etienne Grossmann +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## This is distributed in the hope that it will be useful, but WITHOUT -## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## opt = optimset_compat (...) - manipulate m*tlab-style options structure ## @@ -32,7 +35,7 @@ ## backend optimization function that is used and the ## optional arguments that will be passed to it. See ## the 'backend' option of minimize(). -## + function opt = optimset_compat (varargin) ## Diagnostics , ["on"|{"off"}] : diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/polyconf.m --- a/main/optim/inst/polyconf.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/polyconf.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,3 +1,6 @@ +## Author: Paul Kienzle +## This program is granted to the public domain. + ## [y,dy] = polyconf(p,x,s) ## ## Produce prediction intervals for the fitted y. The vector p @@ -31,8 +34,6 @@ ## plot(xf,yf,'g-;fit;',xf,yf+dyf,'g.;;',xf,yf-dyf,'g.;;',x,y,'xr;data;'); ## plot(x,y-polyval(p,x),';residuals;',xf,dyf,'g-;;',xf,-dyf,'g-;;'); -## Author: Paul Kienzle -## This program is granted to the public domain. function [y,dy] = polyconf(p,x,varargin) alpha = s = []; typestr = 'pi'; @@ -45,7 +46,7 @@ end end if (nargout>1 && (isempty(s)||nargin<3)) || nargin < 2 - usage("[y,dy] = polyconf(p,x,s,alpha,['ci'|'pi'])"); + print_usage; end if isempty(s) diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/polyfitinf.m --- a/main/optim/inst/polyfitinf.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/polyfitinf.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,27 +1,28 @@ ## Copyright (c) 1998-2011 Andrew V. Knyazev ## All rights reserved. ## -## Redistribution and use in source and binary forms, with or without +## Redistribution and use in source and binary forms, with or without", ## modification, are permitted provided that the following conditions are met: -## * Redistributions of source code must retain the above copyright -## notice, this list of conditions and the following disclaimer. -## * Redistributions in binary form must reproduce the above copyright +## +## 1 Redistributions of source code must retain the above copyright notice, +## this list of conditions and the following disclaimer. +## 2 Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in the ## documentation and/or other materials provided with the distribution. -## * Neither the name of the nor the -## names of its contributors may be used to endorse or promote products -## derived from this software without specific prior written permission. +## 3 Neither the name of the author nor the names of its contributors may be +## used to endorse or promote products derived from this software without +## specific prior written permission. ## -## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -## ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -## WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -## DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -## DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -## (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -## LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -## SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' +## AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +## ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR +## ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +## DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +## SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +## CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. % function [A,REF,HMAX,H,R,EQUAL] = polyfitinf(M,N,K,X,Y,EPSH,MAXIT,REF0) % diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/powell.m --- a/main/optim/inst/powell.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/powell.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,21 +1,21 @@ -## Copyright (C) 2011 Nir Krakauer +## Copyright (C) 2011 Nir Krakauer ## -## This program is free software: you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation, either version 3 of the License, or -## (at your option) any later version. +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## You should have received a copy of the GNU General Public License -## along with this program. If not, see . +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## -*- texinfo -*- ## @deftypefn {Function File} [@var{p}, @var{obj_value}, @var{convergence}, @var{iters}, @var{nevs}] = powell (@var{f}, @var{p0}, @var{control}) -##powell: implements a direction-set (Powell's) method for multidimensional minimization of a function without calculation of the gradient [1, 2] +## Multidimensional minimization (direction-set method). Implements a direction-set (Powell's) method for multidimensional minimization of a function without calculation of the gradient [1, 2] ## ## @subheading Arguments ## @@ -79,9 +79,6 @@ ## @end enumerate ## @end deftypefn -## Author: Nir Krakauer -## Description: Multidimensional minimization (direction-set method) - ## PKG_ADD: __all_opts__ ("powell"); function [p, obj_value, convergence, iters, nevs] = powell (f, p0, options); diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/private/__dfdp__.m --- a/main/optim/inst/private/__dfdp__.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/private/__dfdp__.m Fri Mar 30 15:14:48 2012 +0000 @@ -3,18 +3,18 @@ %% Copyright (C) 1992-1994 Ray Muzic %% Copyright (C) 2010, 2011 Olaf Till %% -%% This program is free software; you can redistribute it and/or modify -%% it under the terms of the GNU General Public License as published by -%% the Free Software Foundation; either version 2 of the License, or -%% (at your option) any later version. +%% This program is free software; you can redistribute it and/or modify it under +%% the terms of the GNU General Public License as published by the Free Software +%% Foundation; either version 3 of the License, or (at your option) any later +%% version. %% -%% This program is distributed in the hope that it will be useful, -%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -%% GNU General Public License for more details. +%% This program is distributed in the hope that it will be useful, but WITHOUT +%% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +%% details. %% -%% You should have received a copy of the GNU General Public License -%% along with this program; If not, see . +%% You should have received a copy of the GNU General Public License along with +%% this program; if not, see . function prt = __dfdp__ (p, func, hook) diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/private/__lm_svd__.m --- a/main/optim/inst/private/__lm_svd__.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/private/__lm_svd__.m Fri Mar 30 15:14:48 2012 +0000 @@ -3,18 +3,18 @@ %% Copyright (C) 1992-1994 Ray Muzic %% Copyright (C) 2010, 2011 Olaf Till %% -%% This program is free software; you can redistribute it and/or modify -%% it under the terms of the GNU General Public License as published by -%% the Free Software Foundation; either version 2 of the License, or -%% (at your option) any later version. +%% This program is free software; you can redistribute it and/or modify it under +%% the terms of the GNU General Public License as published by the Free Software +%% Foundation; either version 3 of the License, or (at your option) any later +%% version. %% -%% This program is distributed in the hope that it will be useful, -%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -%% GNU General Public License for more details. +%% This program is distributed in the hope that it will be useful, but WITHOUT +%% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +%% details. %% -%% You should have received a copy of the GNU General Public License -%% along with this program; If not, see . +%% You should have received a copy of the GNU General Public License along with +%% this program; if not, see . function [p, resid, cvg, outp] = __lm_svd__ (F, pin, hook) diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/residmin_stat.m --- a/main/optim/inst/residmin_stat.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/residmin_stat.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,22 +1,20 @@ ## Copyright (C) 2011 Olaf Till ## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 3 of the License, or -## (at your option) any later version. +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## You should have received a copy of the GNU General Public License -## along with this program; If not, see . +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## -*- texinfo -*- -## ## @deftypefn {Function File} {@var{info} =} residmin_stat (@var{f}, @var{p}, @var{settings}) -## ## Frontend for computation of statistics for a residual-based ## minimization. ## @@ -81,10 +79,8 @@ ## elements (being @code{1} or @code{-1}), if any, in @code{corp}. ## ## @seealso {curvefit_stat} -## ## @end deftypefn - function ret = residmin_stat (varargin) if (nargin == 1) @@ -100,4 +96,4 @@ ret = __residmin_stat__ (varargin{:}); -endfunction \ No newline at end of file +endfunction diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/rosenbrock.m --- a/main/optim/inst/rosenbrock.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/rosenbrock.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,24 +1,24 @@ -# Copyright (C) 2004 Michael Creel -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; If not, see . +## Copyright (C) 2004 Michael Creel +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. +## +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. +## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . -# Rosenbrock function - used to create example obj. fns. -# -# Function value and gradient vector of the rosenbrock function -# The minimizer is at the vector (1,1,..,1), -# and the minimized value is 0. -# +## Rosenbrock function - used to create example obj. fns. +## +## Function value and gradient vector of the rosenbrock function +## The minimizer is at the vector (1,1,..,1), +## and the minimized value is 0. + function [obj_value, gradient] = rosenbrock(x); dimension = length(x); obj_value = sum(100*(x(2:dimension)-x(1:dimension-1).^2).^2 + (1-x(1:dimension-1)).^2); diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/samin_example.m --- a/main/optim/inst/samin_example.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/samin_example.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,17 +1,17 @@ -# Copyright (C) 2004 Michael Creel -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; If not, see . +## Copyright (C) 2004 Michael Creel +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. +## +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. +## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . # samin_example: example script that contains examples of how to call # samin for minimization using simulated annealing. diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/test_d2_min_1.m --- a/main/optim/inst/test_d2_min_1.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/test_d2_min_1.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,14 +1,17 @@ -## Copyright (C) 2002 Etienne Grossmann. All rights reserved. +## Copyright (C) 2002 Etienne Grossmann +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## This is distributed in the hope that it will be useful, but WITHOUT -## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## Test whether d2_min() functions correctly ## @@ -18,8 +21,6 @@ ## ## If a variables "verbose" is set, then some comments are output. -## Author: Etienne Grossmann - 1 ; if ! exist ("verbose"), verbose = 0; end diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/test_d2_min_2.m --- a/main/optim/inst/test_d2_min_2.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/test_d2_min_2.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,14 +1,17 @@ -## Copyright (C) 2002 Etienne Grossmann. All rights reserved. +## Copyright (C) 2002 Etienne Grossmann +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## This is distributed in the hope that it will be useful, but WITHOUT -## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## Test whether d2_min() functions correctly, with two args ## @@ -18,8 +21,6 @@ ## ## If a variables "verbose" is set, then some comments are output. -## Author: Etienne Grossmann - 1 ; ok = 0; diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/test_d2_min_3.m --- a/main/optim/inst/test_d2_min_3.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/test_d2_min_3.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,14 +1,17 @@ -## Copyright (C) 2002 Etienne Grossmann. All rights reserved. +## Copyright (C) 2002 Etienne Grossmann +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## This is distributed in the hope that it will be useful, but WITHOUT -## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## Test whether d2_min() functions correctly ## @@ -18,9 +21,6 @@ ## ## If a variables "verbose" is set, then some comments are output. -## Author: Etienne Grossmann - - 1 ; ok = 0; diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/test_fminunc_1.m --- a/main/optim/inst/test_fminunc_1.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/test_fminunc_1.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,14 +1,17 @@ -## Copyright (C) 2002 Etienne Grossmann. All rights reserved. +## Copyright (C) 2002 Etienne Grossmann +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## This is distributed in the hope that it will be useful, but WITHOUT -## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## test_fminunc_compat_1 - Test that fminunc_compat and optimset_compat work ## diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/test_min_1.m --- a/main/optim/inst/test_min_1.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/test_min_1.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,20 +1,20 @@ -## Copyright (C) 2002 Etienne Grossmann. All rights reserved. +## Copyright (C) 2002 Etienne Grossmann +## Copyright (C) 2004 Michael Creel ## -## This program is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This is distributed in the hope that it will be useful, but WITHOUT +## This program is distributed in the hope that it will be useful, but WITHOUT ## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. - +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. +## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . -## ## Test an optimization function with the same synopsis as bfgs.m -## -## modified 2004-05-20 by Michael Creel to adapt to bfgsmin if ! exist ("optim_func"), optim_func = "bfgsmin"; end diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/test_min_2.m --- a/main/optim/inst/test_min_2.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/test_min_2.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,14 +1,18 @@ -## Copyright (C) 2002 Etienne Grossmann. All rights reserved. +## Copyright (C) 2002 Etienne Grossmann +## Copyright (C) 2004 Michael Creel +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## This is distributed in the hope that it will be useful, but WITHOUT -## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## test_min_2 - Test that bfgs works ## @@ -18,8 +22,6 @@ ## ## Sets 'ok' to 1 if success, 0 otherwise -## The name of the optimizing function -## modified 2004-05-20 by Michael Creel to adapt to bfgsmin if ! exist ("optim_func"), optim_func = "bfgsmin"; end ok = 1; diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/test_min_3.m --- a/main/optim/inst/test_min_3.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/test_min_3.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,15 +1,18 @@ -## Copyright (C) 2002 Etienne Grossmann. All rights reserved. +## Copyright (C) 2002 Etienne Grossmann +## Copyright (C) 2004 Michael Creel +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## This is distributed in the hope that it will be useful, but WITHOUT -## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. - +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## ok - Test that bfgs works with extra ## arguments @@ -19,8 +22,6 @@ ## ## Sets 'ok' to 1 if success, 0 otherwise -## The name of the optimizing function -## modified 2004-05-20 by Michael Creel to adapt to bfgsmin if ! exist ("optim_func"), optim_func = "bfgsmin"; end ok = 1; diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/test_min_4.m --- a/main/optim/inst/test_min_4.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/test_min_4.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,14 +1,17 @@ -## Copyright (C) 2002 Etienne Grossmann. All rights reserved. +## Copyright (C) 2002 Etienne Grossmann +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## This is distributed in the hope that it will be useful, but WITHOUT -## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## test_bfgs - Test that bfgs works ## diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/test_minimize_1.m --- a/main/optim/inst/test_minimize_1.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/test_minimize_1.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,17 +1,19 @@ -## Copyright (C) 2002 Etienne Grossmann. All rights reserved. +## Copyright (C) 2002 Etienne Grossmann +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This program is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## This is distributed in the hope that it will be useful, but WITHOUT -## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## ok = test_minimize - Test that minimize works -## ok = 1; # Remains set if all ok. Set to 0 otherwise cnt = 0; # Test counter diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/test_nelder_mead_min_1.m --- a/main/optim/inst/test_nelder_mead_min_1.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/test_nelder_mead_min_1.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,23 +1,20 @@ - -## Copyright (C) 2002 Etienne Grossmann. All rights reserved. +## Copyright (C) 2002 Etienne Grossmann ## -## This program is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This is distributed in the hope that it will be useful, but WITHOUT +## This program is distributed in the hope that it will be useful, but WITHOUT ## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. +## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . - -## ## Checks wether the function 'nelder_mead_min' works, by making it minimize a ## quadratic function. -## - -## Author: Etienne Grossmann ok = 1; cnt = 1; diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/test_nelder_mead_min_2.m --- a/main/optim/inst/test_nelder_mead_min_2.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/test_nelder_mead_min_2.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,21 +1,19 @@ -## Copyright (C) 2002 Etienne Grossmann. All rights reserved. +## Copyright (C) 2002 Etienne Grossmann ## -## This program is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) any -## later version. +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## This is distributed in the hope that it will be useful, but WITHOUT +## This program is distributed in the hope that it will be useful, but WITHOUT ## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -## for more details. - - +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . + ## Checks wether the function 'nelder_mead_min' accepts options properly -## - -## Author: Etienne Grossmann ok = 1; cnt = 1; diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/test_wpolyfit.m --- a/main/optim/inst/test_wpolyfit.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/test_wpolyfit.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,11 +1,11 @@ +## Author: Paul Kienzle +## This program is granted to the public domain. + ## Tests for wpolyfit. ## ## Test cases are taken from the NIST Statistical Reference Datasets ## http://www.itl.nist.gov/div898/strd/ -## Author: Paul Kienzle -## This program is public domain - 1; function do_test(n,x,y,p,dp,varargin) diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/vfzero.m --- a/main/optim/inst/vfzero.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/vfzero.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,22 +1,18 @@ ## Copyright (C) 2008, 2009 VZLU Prague, a.s. -## -## This file is part of Octave. +## Copyright (C) 2010 Olaf Till ## -## Octave is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 3 of the License, or (at -## your option) any later version. +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. ## -## Octave is distributed in the hope that it will be useful, but -## WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## General Public License for more details. +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. ## -## You should have received a copy of the GNU General Public License -## along with Octave; see the file COPYING. If not, see -## . -## -## Author: Jaroslav Hajek +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . ## -*- texinfo -*- ## @deftypefn {Function File} {} vfzero (@var{fun}, @var{x0}) @@ -83,7 +79,7 @@ ## the need for external functions and error handling. The algorithm has ## also been slightly modified. -## Vectorized by Olaf Till. +## Author: Jaroslav Hajek ## PKG_ADD: __all_opts__ ("vfzero"); diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/wpolyfit.m --- a/main/optim/inst/wpolyfit.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/wpolyfit.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,3 +1,5 @@ +## Author: Paul Kienzle +## This program is granted to the public domain. ## -*- texinfo -*- ## @deftypefn {Function File} {[@var{p}, @var{s}] =} wpolyfit (@var{x}, @var{y}, @var{dy}, @var{n}) @@ -90,12 +92,8 @@ ## New Jersey: John Wiley and Sons, Inc. ## ## @end deftypefn -## ## @seealso{polyfit,polyconf} -## This program is in the public domain. -## Author: Paul Kienzle - function [p_out, s, mu] = wpolyfit (varargin) ## strip 'origin' of the end diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/wrap_f_dfdp.m --- a/main/optim/inst/wrap_f_dfdp.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/wrap_f_dfdp.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,29 +1,29 @@ %% Copyright (C) 2010 Olaf Till %% -%% This program is free software; you can redistribute it and/or modify -%% it under the terms of the GNU General Public License as published by -%% the Free Software Foundation; either version 3 of the License, or (at -%% your option) any later version. +%% This program is free software; you can redistribute it and/or modify it under +%% the terms of the GNU General Public License as published by the Free Software +%% Foundation; either version 3 of the License, or (at your option) any later +%% version. +%% +%% This program is distributed in the hope that it will be useful, but WITHOUT +%% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +%% details. %% -%% This program is distributed in the hope that it will be useful, but -%% WITHOUT ANY WARRANTY; without even the implied warranty of -%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%% General Public License for more details. +%% You should have received a copy of the GNU General Public License along with +%% this program; if not, see . + +%% [ret1, ret2] = wrap_f_dfdp (f, dfdp, varargin) %% -%% You should have received a copy of the GNU General Public License -%% along with this program; If not, see . +%% f and dftp should be the objective function (or "model function" in +%% curve fitting) and its jacobian, respectively, of an optimization +%% problem. ret1: f (varagin{:}), ret2: dfdp (varargin{:}). ret2 is +%% only computed if more than one output argument is given. This +%% manner of calling f and dfdp is needed by some optimization +%% functions. function [ret1, ret2] = wrap_f_dfdp (f, dfdp, varargin) - %% [ret1, ret2] = wrap_f_dfdp (f, dfdp, varargin) - %% - %% f and dftp should be the objective function (or "model function" in - %% curve fitting) and its jacobian, respectively, of an optimization - %% problem. ret1: f (varagin{:}), ret2: dfdp (varargin{:}). ret2 is - %% only computed if more than one output argument is given. This - %% manner of calling f and dfdp is needed by some optimization - %% functions. - if (nargin < 3) print_usage (); end @@ -41,3 +41,5 @@ if (nargout > 1) ret2 = dfdp (varargin{:}); end + +end diff -r df50d0ae107f -r d30cfca46e8a main/optim/inst/wsolve.m --- a/main/optim/inst/wsolve.m Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/inst/wsolve.m Fri Mar 30 15:14:48 2012 +0000 @@ -1,3 +1,6 @@ +## Author: Paul Kienzle +## This program is granted to the public domain. + ## [x,s] = wsolve(A,y,dy) ## ## Solve a potentially over-determined system with uncertainty in @@ -49,8 +52,6 @@ ## you should expect a corresponding increase in the scatter of ## the data, which will increase the variance computed by the fit. -## This program is public domain. - function [x_out,s]=wsolve(A,y,dy) if nargin < 2, usage("[x dx] = wsolve(A,y[,dy])"); end if nargin < 3, dy = []; end diff -r df50d0ae107f -r d30cfca46e8a main/optim/src/__bfgsmin.cc --- a/main/optim/src/__bfgsmin.cc Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/src/__bfgsmin.cc Fri Mar 30 15:14:48 2012 +0000 @@ -1,18 +1,17 @@ -// Copyright (C) 2004,2005,2006,2007,2010 Michael Creel +// Copyright (C) 2004,2005,2006,2007,2010 Michael Creel // -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. +// This program is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free Software +// Foundation; either version 3 of the License, or (at your option) any later +// version. // -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. +// This program is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. // -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +// You should have received a copy of the GNU General Public License along with +// this program; if not, see . // the functions defined in this file are: // __bfgsmin_obj: bulletproofed objective function that allows checking for availability of analytic gradient @@ -21,15 +20,12 @@ // __newtonstep: default stepsize algorithm // __bfgsmin: the DLD function that does the minimization, to be called from bfgsmin.m - - #include #include #include #include #include #include "error.h" - int __bfgsmin_obj(double &obj, const std::string f, const octave_value_list f_args, const ColumnVector theta, const int minarg) { diff -r df50d0ae107f -r d30cfca46e8a main/optim/src/__disna_optim__.cc --- a/main/optim/src/__disna_optim__.cc Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/src/__disna_optim__.cc Fri Mar 30 15:14:48 2012 +0000 @@ -1,24 +1,17 @@ -/* - -Copyright (C) 2011 Olaf Till - -This file is part of Octave. - -Octave is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 3 of the License, or (at your -option) any later version. - -Octave is distributed in the hope that it will be useful, but WITHOUT -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License -along with Octave; see the file COPYING. If not, see -. - -*/ +// Copyright (C) 2011 Olaf Till +// +// This program is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free Software +// Foundation; either version 3 of the License, or (at your option) any later +// version. +// +// This program is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// You should have received a copy of the GNU General Public License along with +// this program; if not, see . // This function has also been submitted to Octave (bug #33503). diff -r df50d0ae107f -r d30cfca46e8a main/optim/src/numgradient.cc --- a/main/optim/src/numgradient.cc Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/src/numgradient.cc Fri Mar 30 15:14:48 2012 +0000 @@ -1,17 +1,17 @@ -// Copyright (C) 2004, 2006 Michael Creel +// Copyright (C) 2004, 2006 Michael Creel // -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. +// This program is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free Software +// Foundation; either version 3 of the License, or (at your option) any later +// version. // -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. +// This program is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. // -// You should have received a copy of the GNU General Public License -// along with this program; If not, see . +// You should have received a copy of the GNU General Public License along with +// this program; if not, see . // numgradient: numeric central difference gradient diff -r df50d0ae107f -r d30cfca46e8a main/optim/src/numhessian.cc --- a/main/optim/src/numhessian.cc Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/src/numhessian.cc Fri Mar 30 15:14:48 2012 +0000 @@ -1,17 +1,17 @@ -// Copyright (C) 2004, 2006 Michael Creel +// Copyright (C) 2004, 2006 Michael Creel // -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. +// This program is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free Software +// Foundation; either version 3 of the License, or (at your option) any later +// version. // -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. +// This program is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. // -// You should have received a copy of the GNU General Public License -// along with this program; If not, see . +// You should have received a copy of the GNU General Public License along with +// this program; if not, see . // numhessian: numeric second derivative diff -r df50d0ae107f -r d30cfca46e8a main/optim/src/samin.cc --- a/main/optim/src/samin.cc Fri Mar 30 15:02:12 2012 +0000 +++ b/main/optim/src/samin.cc Fri Mar 30 15:14:48 2012 +0000 @@ -1,19 +1,18 @@ -// Copyright (C) 2004, 2006 Michael Creel +// Copyright (C) 2004, 2006 Michael Creel // -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. +// This program is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free Software +// Foundation; either version 3 of the License, or (at your option) any later +// version. // -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. +// This program is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. // -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -// +// You should have received a copy of the GNU General Public License along with +// this program; if not, see . + // References: // // The code follows the article