Re: managing order of magnitude instead of numbers

*To*: mathgroup at smc.vnet.net*Subject*: [mg56685] Re: managing order of magnitude instead of numbers*From*: dh <dh at metrohm.ch>*Date*: Wed, 4 May 2005 00:32:50 -0400 (EDT)*References*: <d57gvv$p8a$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Hi Roberto, you could define a new data type that encapsulates the order of magnitude. From your example I take it, that by order of magnitude you do not mean powers of a variable, but powers of 10. Therefore we may define a new type called e.g. ord and inside ord we specify the power of 10: ord[n] where n must ne an integer. We must now give the rules for ord, e.g.: ord /: ord[x_Integer] + ord[y_Integer] := ord[Round[Log[10, 10^x + 10^y]]]; ord /: ord[x_Integer] - ord[y_Integer] := ord[Round[Log[10, Abs[10^x - 10^y]]]]; ord /: ord[x_Integer]*ord[y_Integer] := ord[x + y]; ord /: ord[x_Integer]/ord[y_Integer] := ord[x - y]; we are now ready to calculate. E.g. a=ord[0]; (*this specifies an number of the order 1*) b=ord[1]; (*this specifies an number of the order 10*) and we get: a+b --> ord[1] a-b --> ord[1] a*b --> ord[1] a/b --> ord[-1] Sincerely, Daniel foice wrote: > i need to make calculation without specifing the exact values of my > parameters, i want only to specify their order of magnitude. > obviously i need only order of magnitudes as result. > > now the problem is that > > O(1) - O(1) = O(1) > > while > > 1-1 = 0 > > so it's clear i cannot use numbers to make this "order of magintude > calculation" > > at the present stage i let mathematica do the calculation in a fully > simbolic way and then, by hand calculation, i get my result by > susbstitution of the order of magnitudes in place of the symobls used. > > making a very simple example: > > i ask to mathematica to do > > a - b > > and then i substitute > > a=O(1) > > b=O(0.002) > > and calculate > > a - b = O(1) > > in this way i'm making operation between magnitues not values, but i > have to do it on my own, while doing calculation with mathematica will > be much better. > > is there any way to make calculation betwwen order of magnitues > instead of between numbers? > > thanks. > roberto. >