On 4/2/07, Stavros Macrakis <macrakis at alum.mit.edu> wrote:
> On 4/2/07, Kostas Oikonomou <ko at research.att.com> wrote:
> > However, is the result "Inconsistent equations" really appropriate for [x=2,y=3], [x]?
> > I think it would mystify the average user (e.g. me)!
> > Shouldn't the result be [x=2]?
>
> I agree that the message is confusing. However, it *is* actually
> consistent with the basic meaning of "solve". solve(eqs,vars) means
> "return the values of vars which make eqs true". If eqs contain
> parameters (i.e. variables which are not members of vars), the
> solution must be true for all values of the parameters.
I'm sorry, I don't agree with this at all.
"Return the values of vars which make eqs true" is one interpretation of
solving eqs for var, but another, which seems no less natural,
is "conclude what you can about vars given eqs". If eqs includes
enough to draw conclusions about vars plus some irrelevant stuff,
the presence of the irrelevant stuff is no need for us to fail.
Maybe linsolve was written with "return the values of vars which make
eqs true" in mind, and if so I suppose that should be reflected in
the documentation, but it seems unwarranted to treat that as
"THE basic meaning of solve" (emphasis added).
FWIW
Robert