What is $5^\circ \mathrm{F}$ minus $5^\circ \mathrm{F}$?

2.2k Views Asked by At

Is it $0^\circ \mathrm{F}$ or is it $0\,\mathrm{K}$ (Kelvin)?

From an arithmetic standpoint, it seems like it should be $0^\circ \mathrm{F}$, but that seems inconsistent because the result represents a delta ($0 \,\Delta^\circ \mathrm{F}$ perhaps) which is conceptually completely different. Doing math with units like $^\circ\mathrm{F}/s$ completely breaks down.

From a natural sciences standpoint, it's 0 K, because an amount of heat minus the same amount of heat is no heat, but that seems inconsistent because everyone knows that $5 - 5 = 0$, and this would instead yield $5^\circ \mathrm{F} - 5^\circ\mathrm{F} = -459.67^\circ\mathrm{F}$, which may be surprising.

Is there a convention for doing arithmetic on Interval Scale measurements? That same page suggests there is a difference operation for them in its comparison table.

For context, I'm working on a Python library for doing dimensioned arithmetic (with an eye towards the natural sciences) and interval scales are making things complicated. For instance, $^\circ\mathrm{F}\cdot s$ doesn't seem to represent a meaningful physical dimension; it can't be converted to $\mathrm{K}\cdot s$. For example, trying to convert $6^\circ\mathrm{C}\cdot s$ by visualizing temperature and time as axes:

Temperature and time as axes

11

There are 11 best solutions below

1
On

If the temperature is $5^\circ \text{F}$, and then the temperature drops 5 degrees (F), the temperature is now $0^\circ \text{F}$.

4
On

You seem to have the correct idea that it's important to distinguish between temperatures and temperature changes. So to answer your question, you'll need to first decide what the question is, i.e., do those two occurrences of $5^\circ F$ in the question refer to temperatures or to temperature changes?

For example, if they're both temperatures, then subtracting produces a temperature change of $0^\circ F$, which is the same as a temperature change of $0\ K$.

For another example, if the first $5^\circ F$ is a temperature and the second is a temperature change, then subtracting produces a temperature of $0^\circ F$, which is very different from a temperature of $0\ K$.

8
On

For context, I'm working on a Python library for doing dimensioned arithmetic (with an eye towards the natural sciences) and interval scales are making things complicated.

I recommend refraining from giving the impression that subtracting temperatures is a correct thing to do.

Per @EllieKesselman's physics-based answer on can subtract temperatures in a meaningful way in basic physics or related science.

Before calculus is taught, we do use $\Delta T$.

The example given in that answer assumes heat capacity $c$ as a constant, which for a real system it isn't. So while we might do this as a short-cut on the back of an envelope, we really don't subtract temperatures for serious results. We integrate various thermodynamic expressions with various constraints.

Relevant to the addition addition of temperatures is the reaction of Richard Feynman.

While the current example asks about subtraction

which is ~okay when done on envelope backs, once you've allowed for that it will be hard to avoid the temptation to then allow addition of temperatures as well.

From What Can We Learn from Richard Feynman’s Approach to Education?:

Then comes the list of problems. It says, "John and his father go out to look at the stars. John sees two blue stars and a red star. His father sees a green star, a violet star, and two yellow stars. What is the total temperature of the stars seen by John and his father?" – and I would explode in horror.

My wife would talk about the volcano downstairs. That's only an example: it was perpetually like that. Perpetual absurdity! There's no purpose whatsoever in adding the temperature of two stars. Nobody ever does that except, maybe, to then take the average temperature of the stars, but not to find out the total temperature of all the stars! It was awful! All it was was a game to get you to add, and they didn't understand what they were talking about. It was like reading sentences with a few typographical errors, and then suddenly a whole sentence is written backwards. The mathematics was like that. Just hopeless!

0
On
  • Heat is energy that is transferred from one body to another as the result of a difference in temperature.
  • Temperature is a measure of hotness or coldness expressed in terms of scales like Celsius and Fahrenheit.
  • Kelvin is a thermodynamic scale. Zero Kelvin ($0 K$) is ABSOLUTE ZERO. It is absolute because to go any lower would require that a gas exert negative pressure. At $0 K$, all particles stop moving and all disorder disappears, i.e. there no motion and no heat.

So, to answer the question: $5 ℉ - 5 ℉ = 0 ℉$ NOT zero K (Kelvin)

This part of the question is incorrect, that the answer is 0 K from a natural sciences context:

From a natural sciences standpoint, it's 0 K, because an amount of heat minus the same amount of heat is no heat, but that seems inconsistent because everyone knows that 5 - 5 = 0, and this would instead yield 5 ℉ - 5 ℉ = -459.67 5 ℉, which may be surprising.

The relationship between heat transfer and temperature change is $Q = mcΔT$ where Q = heat transfer, m is mass of whatever you're making colder or hotter, c = specific heat capacity, and ΔT is the change in temperature. It is a thermodynamic process, not an arithmetic one. That is where I think the confusion is. You mentioned delta, but you need to decide whether you want to calculate a delta (change) in temperature, or heat transfer.

0
On

Conceptually you will need new units to express temperature differences. Let's use Δ℉ as you hinted. Then 5 ℉ minus 5 ℉ will be equal to 0 Δ℉ which in turn will be equal to 0 ΔK.

Temperature differences will form a vector space over the reals. You can add them, multiply them with a scalar and take their inverse. This is in contrast with temperature values themselves, where these operations are not meaningful. However, now you can add a temperature and a temperature difference to get a temperature.

0
On

One of the following (well, both are true, but they're different statements):

5°F - 5Δ°F = 0°F.
5°F - 5°F = 0Δ°F.

If we treat these two things as basically different units, then we can make relatively sane mathematical statements. We can also distinguish, e.g.:

32°F = 0°C, but
32Δ°F ≅ 17.8Δ°C.

4
On

This seems more like a physics question than a mathematics question. The way that I learned this (in physics class) was $$5^\circ \text{F} - 5^\circ \text{F} = 0 \text{F}^\circ$$Meaning that the difference between two temperatures measured in Fahrenheit such that both are 5 is zero degrees of Fahrenheit. Note that the degree symbol moves. That's how we know that the first two numbers are temperatures and the third number is a temperature difference.

We could also have $$5^\circ \text{F} - 0 \text{F}^\circ = 5^\circ \text{F}$$That means that changing a temperature by zero degrees results in the same temperature. Or $$5 \text{F}^\circ + 5 \text{F}^\circ = 10 \text{F}^\circ$$

What we can't do, is say $$\color{red} {5^\circ \text{F} - 5^\circ \text{F} = 0^\circ \text{F}}$$That's just nonsense. When you subtract two temperatures, you don't get a temperature but a temperature difference. Also $$\color{red}{5^\circ \text{F} + 5^\circ \text{F} = 10^\circ \text{F}}$$Again nonsense. You can't meaningfully add temperatures. I don't know what units that would produce, but it is neither a temperature nor a temperature difference.

It's a bit confusing, as the only difference in the units is the position of the degree symbol. Degrees Fahrenheit is a temperature while Fahrenheit degrees is a temperature difference. This also works for Celsius and Rankine. My book when I learned it was old enough that it used the same thing for Kelvin, but that hasn't been true since 1968 (so I learned it incorrectly and will not try to explain the correct notation for a temperature difference in the Kelvin scale).

I also would try to avoid mixing Kelvin and Fahrenheit. Either use Rankine and Fahrenheit or Kelvin and Celsius. Convert whichever is necessary. Because $$275 \text{K} - 1 \text{C}^\circ = 274 \text{K}$$but $$275 \text{K} - 1 \text{F}^\circ = 274.\overline{4} \text{K}$$But if we adjust for significant digits, that would be $$274\text{K}$$ The same as $$275 \text{K} - 2 \text{F}^\circ = 273.\overline{8} \text{K} \approx 274\text{K}$$It would be less bad to mix Rankine temperatures and Celsius differences (as Celsius degrees are larger than Rankine degrees), but of no purpose. Anyone who knows what the Rankine scale is also knows Kelvin.

In terms of your library, I think that you need at least three separate functions. One should allow addition of a temperature and temperature difference (which can be negative) and produce a temperature as the result. The second should subtract two temperatures and produce a temperature difference as the result. The last should allow the addition of temperature differences and result in a temperature difference. You might also implement temperature difference subtraction and statistical operations on temperatures (which would take a list of temperatures and produce a temperature statistic). Note that some statistics won't have meaningful units (e.g. variance) while others will (mean, median, standard deviation, etc.).

It might be easier to write this library with strong types. I'm not sure how difficult that is in Python. You want it to treat adding two temperatures like it would adding a number and a string, as an error condition. Meanwhile, adding a temperature difference is fine. Or subtracting two temperatures, although weirdly that would change the type.

0
On

While others touched the physics aspect, that's not that relevant for you actually. You are a developer, and what matters is what your users will expect.

If I was a user of that library you develop, I would expect 0℉. Simply because if anyone would deal with absolute temperatures, he should use kelvins automatically. when I write 5℉ - 5℉, what anyone would naturally mean is "what is the temperature that is 5℉ lower than 5℉?"

0
On

There have been great answers so far, but I'd like to focus on the practical implementation side of this. Which operations do you implement and how?

Temperature forms an affine line, no matter which unit you're using. It is much like with dates and time: you cannot add last Tuesday to 17 October of 2015, what would that even mean? And so Python does not let you add two instances of datetime. You can subtract them, though, giving you a timedelta object.

Similarly, you would need to implement a delta-temperature unit to represent differences in temperature. This delta-temperature can then implement the same operations as timedelta: you can add them together or subtract them, you can scale them by a scalar, you can divide two delta-temperatures to get a scalar value, and you can add or subtract from a temperature value.

0
On

Your question is analogous to how we deal with time, and it is like asking "If you subtract 3 PM from 5 PM, do you get 2 PM or 2 AM?"

The answer is neither. The correct answer is 2 Hours.

In Python, there is a distinction between datetimes and timedeltas. Subtract a datetime from a datetime and you get a timedelta. Subtract a timedelta from a datetime and you get a datetime.

It sounds like your library needs something like that. Subtract a temperaturedelta from a temperature to get another temperature. Subtract a temperature from another temperature to get a temperaturedelta. No more ambiguity.

0
On

Fahrenheit (degree F) is a scale, kelvin (K, without the word "degree") is a measurement unit (and may be used as a scale as well).

Kelvins are additive. They can be added and subtracted and the results have direct physical meaning as long as one doesn't get a negative temperatures (and in some cases, even then).

Degrees F are additive to an extent. Differences between temperatures are additive, the temperatures themselves - not much, as is visible in the question.


If you looks for a measurement unit that is sized to the Fahrenheit scale, but has this useful property of the kelvin unit, look at the Rankine scale.

0 degrees Rankine are 0K (the absolute zero temperature), but the scale unit is equal to degree Fahrenheit rather than degree Celsius.