MathGroup Archive 2005

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

Search the Archive

Re: Reduce bug report

  • To: mathgroup at
  • Subject: [mg56293] Re: Reduce bug report
  • From: Peter Pein <petsie at>
  • Date: Thu, 21 Apr 2005 05:36:11 -0400 (EDT)
  • References: <d45aqd$ij2$>
  • Sender: owner-wri-mathgroup at

Chris Chiasson wrote:
> I am sending this to MathGroup first in the hope that I am wrong.
> In the code below, I give two sets of equations. On Mathematica 5.0
> for Windows, the Reduce command does not finish evaluation if Most@ is
> removed from the second equation set.
> I have done my best to make sure the problem is well posed by making
> sure there are exactly as many equations as unknowns (less unit
> variables) and by telling Mathematica that all units are nonzero.
> Reduce can easily handle it if the last equation of the "defining
> equations" (prob2[defineqns]) is separate system from the rest of the
> equations, but this should be unnecessary.
> I realize that it is possible I have made a mistake in posing the
> problem to Mathematica; if so, please enlighten me.
> prob2[given]={\[ScriptCapitalN][3600]\[Equal](3600*Circle)/Minute,
>     BT[max,3600]\[Equal](236*Meter*Newton)/Radian,\[ScriptCapitalN][
>         5500]\[Equal](5500*Circle)/Minute,BP[max,5500]\[Equal]100*Kilo*Watt,
>     z\[Equal](2*Circle)/Cycle,Vd\[Equal]3*Liter,\[Eta][mech]\[Equal]9/10,
>     sfc\[Equal](9*Kilogram)/(100*Joule*Mega),
>     LHV\[Equal](44*Joule*Mega)/Kilogram,CR\[Equal]89/10,k\[Equal]7/5}
> prob2[defineqns]=
>   Most@{BP[max,3600]\[Equal]BT[max,3600]*\[ScriptCapitalN][3600],
>       BP[max,5500]\[Equal]BT[max,5500]*\[ScriptCapitalN][5500],
>       BMEP[max,3600]\[Equal](2*Pi*Radian*z*BT[max,3600])/(Circle*Vd),
>       BMEP[max,3600]/IMEP[max,3600]\[Equal]\[Eta][mech],
>       BMEP[max,5500]\[Equal](2*Pi*Radian*z*BT[max,5500])/(Circle*Vd),
>       BMEP[max,5500]/IMEP[max,5500]\[Equal]\[Eta][mech],\[Eta][
>           ind]\[Equal]1/(LHV*sfc),\[Eta][otto]\[Equal]1-(CR^(-1))^(-1+k)}
> prob2[units]={Circle,Cycle,Joule,Kilo,Kilogram,Liter,Mega,Meter,Minute,Newton,
>     Radian,Watt}
> prob2[redvars]={CR,k,LHV,sfc,Vd,z,BMEP[max,3600],BMEP[max,5500],BP[max,3600],
>     BP[max,5500],BT[max,3600],BT[max,5500],IMEP[max,3600],
>     IMEP[max,5500],\[ScriptCapitalN][3600],\[ScriptCapitalN][5500],\[Eta][
>       ind],\[Eta][mech],\[Eta][otto]}
> prob2[numsoln]=
>   Refine[Reduce[Flatten@{prob2[given],prob2[defineqns]},prob2[redvars],
>       Backsubstitution->True],#!=0&/@prob2[units]]
> Regards,

Hi Chris,

Reduce does too much work and uses too much time and memory in this
case. Simply try in place of your assignment to prob2[numsoln]:

prob2[presoln] = Solve[Flatten[{prob2[given], Most[prob2[defineqns]]}],

prob2[numsoln] = {Join[prob2[presoln][[1]],
    Simplify[First[Solve[Last[prob2[defineqns] /. prob2[presoln]],

This ends almost immediately and the memory usage is moderate compared
to Refine/Reduce.

Peter Pein

  • Prev by Date: Re: (x-y) DiracDelta[x-y] does not simplify to 0
  • Next by Date: Re: (x-y) DiracDelta[x-y] does not simplify to 0
  • Previous by thread: Re: Reduce bug report
  • Next by thread: Guide to get tex-stuff working in Suse 9.2