Update: I have modified the Optimize and Eigen and Solve methods to reflect changes. All now return the \"same\" vector allowing for machine precision.
The normal vector of a plane a*x + b*y +c*z = 0, equals (a,b,c)
The optimize method finds a values for a and b such that a*x+b*y~z (~ denotes approximates) It omits to use the value of c in the calculation at all. I don't have numpy installed on this machine but I expect that changing the model to (a*x+b*y)/c should fix this method. It will not give the same result for all data-sets. This method will always assume a plane that goes through the origin.
produce the same results. (The difference is about the size of machine precision).
The wrong eigenvector is chosen. The eigenvector corresponding to the greatest eigenvalue (lambda = 1.50
) is x=[0, sqrt(2)/2, sqrt(2)/2]
just as in the SVD and LTSQ.
I have no clue how this is supposed to work.