A quadratic equation solver is, in J, simply using*p. c a b*  to find the roots of a single quadratic equation ax^2+bx+c=0 . This and most of the Wiki solvers deal with this form for which there is a straightforward solution(even by hand). IF and ONLY IF a, b, and c are constant. I suspect that this is not what Scott wanted. For cases involving multiple quadratic functions of multiple variables, the Newton-Raphson method   can be extended using the Jacobean matrix. This is done in power system "power flow" solutions where, often, hundreds of non-linear simultaneous and complex equations are involved and need to be solved quickly. Your reference does note the N-R method.

What you have suggested may well be much more useful to Scott.

Don Kelly


On 2017-12-05 4:36 PM, Scott Locklin wrote:
On Dec 04, 2017; 7:37pm Devon McCormick wrote:

I searched the J wiki for "quadratic" and found a mention from a 2005
NYCJUG meeting where we were lamenting that other environments simply
have
quadratic solvers available but J does not.  Looking into it more, I was
unsure "quadratic" means in "quadratic solver"; from "Numerical
Recipes", I
gather that it may refer to quadratic convergence.  On further
reflection,
I'm not exactly sure what this means either but suspect it means
something
like O(sqrt(n)) solution time but am not sure.  I'm also unclear if this
non-linear solver in J - http://code.jsoftware.com/wiki/Scripts/nlls - is
an example of a quadratic solver (with this follow-up page I put
together -
http://code.jsoftware.com/wiki/NYCJUG/2010-11-09/Levenberg-MarquardtAlgorithm
).
Perhaps someone more acquainted with this domain can shed some light.
My ultimate goal for these sort of tools is to do something with the
million or so photos I have but I'm seeing from what I've learned so far
that the real work is in feature-extraction, so that at least is
something
where I can use J to good effect.

Image processing is one of the reasons people have moved to GPUs; it's
pretty heavy duty stuff for regular processors. Particularly on full
sized photographic quality images. "Do something with photos" is also a
REALLY open ended statement. What do you want to do? Identify faces in
the images? Identify similar shapes in an image database? SVM isn't very
good at any of these things, though it's OK at small stuff like MNIST
(classifying tiny cropped images of handwritten number digits).

Identifying something is a face: use Viola-Jones (adaboost on Haar
wavelet summaries).
https://en.wikipedia.org/wiki/Viola%E2%80%93Jones_object_detection_framework

Identifying a specific face in a bag of faces; after you've identified
the faces in your images, Eigenfaces is actually pretty easy to code up
in J:
https://en.wikipedia.org/wiki/Eigenface

Identifying similar images... I dunno, maybe locality sensitive hashing.

Feature extraction, maybe SIFT or HOG descriptors (along with Haar
wavelets):
https://en.wikipedia.org/wiki/Histogram_of_oriented_gradients

If you still want to build a native J SVM (which you shouldn't try to
use on large photographic data), the appropriate quadratic programming
is this thing:
https://en.wikipedia.org/wiki/Quadratic_programming

Most ML (and optimization such as QP) algorithms are fiddley and hard
enough to code up, people almost always use libraries. I mean, people
still use LAPACK which is more or less code from the 60s! Pretty sure
the quadprog algo in R is of similarly ancient vintage.

flann is a good example of this: there are basically three useful open
source general purpose KD-tree-like data structures available to the
general public for doing low dimensional KNN kinds of things. It was a
Ph.D. thesis worth of work. It would be brilliant to have one in
native-J, but FFIing out isn't cheating! It's what everyone does!

-SL

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to