Math::Amoeba(3pm)
πΈ NAME πΈ
Math::Amoeba β Multidimensional Function Minimisation π
okay so bestie, this is the perl documentation for Math::Amoeba β it lives in the User Contributed Perl Documentation section, aka manual page 3pm. it finds minimums. in many dimensions. she's versatile like that. β¨
π¦ SYNOPSIS π¦
use Math::Amoeba qw(ConstructVertices EvaluateVertices Amoeba MinimiseND);
my ($vertice,$y)=MinimiseND(\@guess,\@scales,\&func,$tol,$itmax,$verbose);
my @vertices=ConstructVertices(\@vector,\@offsets);
my @y=EvaluateVertices(\@vertices,\&func);
my ($vertice,$y)=Amoeba(\@vertices,\@y,\&func,$tol,$itmax,$verbose);
π DESCRIPTION π
ok so this is an implementation of the Downhill Simplex Method in Multidimensions (Nelder and Mead) for finding the (local) minimum of a function. yes, "local" β she's not promising you the whole globe, just the neighborhood. π«Ά
and here's the iconic part: doing it in Perl makes it easy for that function to literally just be the output of another program, like a simulator. main character behaviour fr fr. π
one more thing before we go: arrays and the function are passed by reference to the routines. that's the vibe. that's the rule. periodt. π
π "MinimiseND" π
the simplest use is the MinimiseND function. she takes:
- a reference to an array of guess values for the parameters at the function minimum
- a reference to an array of scales for these parameters (aka sensible ranges around the guess in which to look π)
- a reference to the function
- a convergence tolerence for the minimum
- the maximum number of iterations to be taken
- and the verbose flag (default ON, she's chatty π£οΈ)
she returns an array consisting of a reference to the function parameters at the minimum and the value there. iconic return shape. β¨
π₯ "Amoeba" π₯
the Amoeba function is the actual implimentation of the Downhill Simpex Method in Multidimensions. the real one. the blueprint. π
she takes:
- a reference to an array of references to arrays which are the initial n+1 vertices (where n is the number of function parameters)
- a reference to the function valuation at these vertices
- a reference to the function
- a convergence tolerence for the minimum
- the maximum number of iterations to be taken
- and the verbose flag (default ON)
she returns an array consisting of a reference to the function parameters at the minimum and the value there. same energy as her sister, different starting point π
π§ "ConstructVertices" π§
ConstructVertices is used by MinimiseND to construct the initial vertices for Amoeba as the initial guess plus the parameter scale parameters as vectors along the parameter axis. she's the little prep squad building the setup before the main event π
π "EvaluateVertices" π
EvaluateVertices takes these set of vertices, calling the function for each one and returning the vector of results. one vertex, one call, collect the receipts. π§Ύβ¨
π EXAMPLE π
use Math::Amoeba qw(MinimiseND);
sub afunc {
my ($a,$b)=@_;
print "$a\t$b\n";
return ($a-7)**2+($b+3)**2;
}
my @guess=(1,1);
my @scale=(1,1);
($p,$y)=MinimiseND(\@guess,\@scale,\&afunc,1e-7,100);
print "(",join(',',@{$p}),")=$y\n";
and this little cutie produces the output:
(6.99978191653352,-2.99981241563247)=1.00000008274829
look at that. she found it. no cap. ππ
π LICENSE π
PERL
π HISTORY π
See "REAME". (yes, spelled exactly like that π β i am simply relaying the message, bestie)
π BUGS π
Let me know.
(that's it. that's the whole section. she's confident, she's humble, she's available. π«Ά)
π AUTHOR π
John A.R. Williams <J.A.R.Williams@aston.ac.uk>
Tom Chau <tom@cpan.org>
β SEE ALSO β
"Numerical Recipies: The Art of Scientific Computing" W.H. Press, B.P. Flannery, S.A. Teukolsky, W.T. Vetterling. Cambridge University Press. ISBN 0 521 30811 9.
πΈ COPYRIGHT πΈ
Copyright (c) 1995 John A.R. Williams. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Since 2005, this module was co-developed with Tom.
okay that's the whole page, bestie π¦β¨ this was Math::Amoeba(3pm) from perl v5.40.1, dated 2025-05-04. now go minimise something. mwah ππ
π¦ where this page comes from
- debian trixie: libmath-amoeba-perl 0.05-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libmath-amoeba-perl 0.05-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libmath-amoeba-perl 0.05-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms