Jump to content

Recommended Posts

Posted

Hi all,

 

 

(I wasn’t sure should I post this to Physic or Math forum. I decided to go for math.)

 

 

Can anyone help me understand ‘connection’ between value and a physical unit. Somehow I always assumed that there is ‘invisible times’ operator between them (anticipated multiplication). For example when I write ’20 kg’, a always assumed it actually means ‘twenty times a kilogram’. But now I am not so sure anymore – for example, you cannot write ‘kg 20’. It doesn’t mean the same (or does it?).

 

 

In some cases, it is beneficial to think about units as factors. For example one can write the following expression: ‘20 W * 3 s’ (twenty watts times three seconds) and this is equal to ’60 Ws’. However, it would be unusual (or incorrect?) to write the result like ‘W 60 s’.

 

 

On the other hand, the following expression is what really bothers me: ’20 m / 5 s’ (twenty meters per five seconds). The result is ‘4 m/s’. If units are understood as mere factors, then the result would be ‘4 m s’ (taking in account that multiplication and division have the same order of precedence).

 

 

What is correct then... Is there a stronger connection between value and a physical unit (stronger than multiplication) or should I actually write the above expression as: ’20 m / (5 s)’?

 

 

Thanks (I was developing a piece of math software when I realized that I don’t understand this issue).

 

 

Posted (edited)

As this is a mathematics forum, I guess I can answer quite mathematically minded here.

 

One way to think of physical units is as a "weight" or (even more loosely) a "grading" on a vector space. You can only add objects that are homogeneous in units*. This is where physical constants enter, they are required if one wants to add expressions that would otherwise be inhomogeneous.

 

Multiplication is ok. You multiply the appropriate units to get another unit. Multiplication by physical constants is fine, as is by "unweighted" constants, ie.just numbers.

 

All this resembles graded algebras. You should think of units as a extra assignment of a mathematical object to a number (or collection of numbers). A kind of "generalised grading". The units "follow the numbers". Thus it is probably best not to think of a number multiplied by a physical unit but a pairing of a number and a physical unit. (Though in practice thinking of multiplication can help you simplify the units involved).

 

We can think of the set of all physical units as an abelian group. We can multiply physical units, each has an inverse i.e. divide and we have a identity element. Let us call this group [math]G[/math]. The object we are then interested in is

 

[math]\mathbb{R} \oplus G[/math]

 

If we denote the elements of this group as [math]g,h,...[/math] and real numbers as [math]x,y,...[/math] then we have the formal pairing

 

[math](x, g)[/math]

 

Then, the rules

 

[math](x, g) \times (y,h) = (xy , gh)[/math]

 

[math](x,g) + (y,h) = (x+y, g)[/math] if [math]g=h[/math] otherwise it is not defined

 

Then we have the usual rules for numbers and abelian groups.

 

Sorry for the "overkill".

 

------------------------------------------------

Take care here, by unit we mean "physical units" and not an identity element in an algebra.

Edited by ajb
Posted

Thanks ajb. I believe that I can understand your answer.

 

 

Basically, you said that I should treat ‘value-unit’ pairs in my software as a class of ‘numbers’ and work with them. As a consequence, the expression ’20 m / 5 s’ has two members ’20 m’ and ‘5 s’ and the result of this division-like operation is ’20/5 m/s’.

 

 

It would be difficult to implement this in the software so I will probably do it by applying some tricks (like hidden grouping). But I understand your point – I have no right to force the user to enter above expression as ’20 m / (5 s)’.

 

 

Posted (edited)

Basically, you said that I should treat ‘value-unit’ pairs in my software as a class of ‘numbers’ and work with them. As a consequence, the expression ’20 m / 5 s’ has two members ’20 m’ and ‘5 s’ and the result of this division-like operation is ’20/5 m/s’.

 

I was not really thinking about how to implement this in a programme. However, I hope what I have said has been useful.

 

It would be difficult to implement this in the software so I will probably do it by applying some tricks (like hidden grouping). But I understand your point – I have no right to force the user to enter above expression as ’20 m / (5 s)’.

 

What you have written makes sense of course, but it is not the simplest way of writing it.

 

Anyway, I hope your programming goes well. Best of luck with it.

Edited by ajb

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.