[newbie] solving overspecified system of linear equations
Subject: [newbie] solving overspecified system of linear equations
From: Leo Butler
Date: Fri, 11 May 2012 19:55:21 +0000
Hugo Coolens <coolens at kahosl.be> writes:
> Coudl anyone on this list tell me how I can solve an overspecified system
> of linear equations in Maxima
How about
(%i1) linsolve([x+y+z=1,x+y=1,z=0,x=0],[x,y,z]);
solve: dependent equations eliminated: (2)
(%o1) [x = 0, y = 1, z = 0]
and
(%i2) linsolve([x+y+z=1,x+y=1,z=0,x+y=0],[x,y,z]);
(%o2) []
There are ways to 'solve', in an error minimizing sense, a system of
overdetermined and inconsistent equations. The most common way is least
squares regression. For example:
(%i1) load (lbfgs);
(%o1) /usr/share/maxima/5.27.0/share/lbfgs/lbfgs.mac
(%i2) eqs:[x+y+z=1,x+y=1,z=0,x+y=0]$
(%i3) fom:subst("="="-", eqs);
(%o3) [z + y + x - 1, y + x - 1, z, y + x]
(%i4) fom: fom.fom;
2 2 2 2
(%o4) (z + y + x - 1) + z + (y + x) + (y + x - 1)
(%i5) lbfgs(fom,[x,y,z],[0,0,0],1e-4,[1,0]);
*************************************************
N= 3 NUMBER OF CORRECTIONS=25
INITIAL VALUES
F= 2.000000000000000D+00 GNORM= 6.000000000000000D+00
*************************************************
I NFN FUNC GNORM STEPLENGTH
1 3 6.034482758620692D-01 1.462979547282512D-01
7.758620689655173D-02
2 4 6.019883621059441D-01 1.110925645530035D-01
1.000000000000000D+00
3 5 6.000000000000000D-01 5.606351459942525D-16
1.000000000000000D+00
THE MINIMIZATION TERMINATED WITHOUT DETECTING ERRORS.
IFLAG = 0
(%o5) [x = 0.3, y = 0.3, z = 0.2]
--
Leo Butler <l_butler at users.sourceforge.net>
SDF Public Access UNIX System - http://sdf.lonestar.org