MathGroup Archive 2008

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

Search the Archive

Re: issues with unit package

Jay Ortiz wrote:
> Why won't Mathematica when using the Units package eliminate reciprocal units?   Consider an example from E&M, finding the wavelength corresponding to a frequency:
> <<Units`
> <<PhysicalConstants`
> In[1]:=
>  Freq=100*^6 Hertz;
>   Wavelength=SpeedOfLight/Freq
> Out[1]=(149896229*Meter)/(50000000*Hertz*Second)
> In[2]:=N[Wavelength]
> Out[2]=(0.299792*Meter)/(Hertz*Second)
> i.e. Mathematica doesn't know that Meter/(Hertz Second) should reduce to Meter.   Shouldn't this be handled?
> Another example; shouldn't Mathematica reduce expressions in consistent units to a single result?    Example:
> In[5]:=3 Ohm + 1 Volt/Ampere
> Out[5] =  3 Ohm + 1 Volt/Ampere
> Why not 4 Ohm, or 4 Volt/Ampere?   After all, the documentation entry for Ohm says it's equivalent to Volt / Ampere, so it's reasonable that Mathematica would be aware of that relationship.  Doing SI[] or MKS[] on those expressions doesn't change anything.
> Maybe the Units package doesn't extend to manipulating variables with quantities that have units.  Am I missing something here?

I don't think that a completely automatic "reduction" of units would be 
possible.  But it would be nice if the Units package provided a function 
to convert units to one or more canonical forms.

This will work in many (but not all) cases:

toCanonical[expr_] := SI[expr] //. Units`Private`$ToFundamental

In[5]:= toCanonical[3 Ohm + 1 Volt/Ampere]
Out[5]= (4 Kilogram Meter^2)/(Ampere^2 Second^3)

In[6]:= toCanonical[(0.299792*Meter)/(Hertz*Second)]
Out[6]= 0.299792 Meter

It is not always clear what the appropriate unit is in certain 
situations.  For example what is the appropriate unit for the torque? 
Joule is certainly correct dimensionally, but is it reasonable to use it?

  • Prev by Date: Re: issues with unit package
  • Next by Date: Re: Intersection of surfaces
  • Previous by thread: Re: issues with unit package
  • Next by thread: Re: issues with unit package