MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: simple modification of Solve

  • To: mathgroup at smc.vnet.net
  • Subject: [mg72722] Re: [mg72693] simple modification of Solve
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Tue, 16 Jan 2007 03:43:44 -0500 (EST)
  • Reply-to: hanlonr at cox.net

Rather than modify Solve which would make it difficult to subsequently apply Solve's output, I  recommend that you define your formatting as a wrapper.

formatSolve[soln_]:=TableForm[{First[#],ToString[Length[#]]<>"-ple root"}&/@
          (soln//Split)/."1-ple root":>"simple root",
      TableAlignments\[Rule]Center,
          TableHeadings->{None,{"root\n","multiplicity\n"}}];

(s=Solve[(x - 1)^2*x*(x - 3)^3*(x + 5)^5*(x + 2) == 0, x])//formatSolve

The Solve results are still available

s

{{x -> -5}, {x -> -5}, {x -> -5}, {x -> -5}, {x -> -5}, {x -> -2}, {x -> 0}, {x -> 1}, {x -> 1}, {x -> 3}, {x -> 3}, {x -> 3}}


Bob Hanlon

---- dimitris <dimmechan at yahoo.com> wrote: 
> I introduce the following trivial modification of (the output of) Solve
> 
> solveMod[eq_Equal, x_] :=
>    ({x -> #1[[1]], If[Length[#1] > 1, StringJoin[ToString[Length[#1]],
> "-ple root"], "simple root"]} & ) /@
>     Split[x /. Solve[eq, x]]//(TableForm[#1, TableAlignments -> Center,
> TableHeadings -> {None, {"root\n", "multiplicity\n"}}] & )
> 
> Here is a simple application
> 
> solveMod[(x - 1)^2*x*(x - 3)^3*(x + 5)^5*(x + 2) == 0, x]
> 
> I look for other possible similar one-liners.
> Any response will be greatly appreciate.
> 
> Dimitris
> 

--

Bob Hanlon
hanlonr at cox.net



  • Prev by Date: Re: Derivative recurrence
  • Next by Date: Re: speed of multiplying polynomials
  • Previous by thread: Re: simple modification of Solve
  • Next by thread: Convolution Integral