text:
# How big is a 50 gp diamond?

The material requirement for the spell chromatic orb is a diamond worth at least 50 gp, but in the Dungeon Master's Guide a diamond is listed under the 500 gp gem list. How small would a diamond be that is only worth 50 gp?

• – SevenSidedDie Jul 22 '16 at 18:53

## Not necessarily any smaller than the 500 GP diamond

In the real world, diamond value has as much to do with cut, clarity, and color as it does about size. So the price difference between a "regular" 500 GP diamond from the DM Guide and this 50 GP material component wouldn't necessarily denote a size difference at all.

(Maybe jewelers in the Forgotten Realms have bargain bins of ugly diamonds, which they get out when mages come to shop.)

Just a reference, a standard one-carat diamond is 200 mg and 6.5 mm in diameter. Compare this to a 9 gram coin - gems in general are pretty small.

Word from the expert

I consulted Diana Bogue, a multiclass gemologist / antiquarian (GIA AJP, Diamonds Graduate) about diamond prices in the past. She had this to say:

Diamond cutting was much more rudimentary...only a diamond could cut a diamond properly back then (they didn't have lasers), and there wasn't much in the way of cut design work.

A cloudy, inclusion-filled non-jewelry quality diamond is much cheaper than a smaller clear diamond.

At my local antique shop, there's a black and cloudy white, chipped diamond that's about one carat that is selling for 50 bucks. On the other hand, a 10 point clear diamond is over one hundred.

If you can buy a one carat diamond for US$50 now, I think 50 GP would also do it. • IIRC, some spells call for ground-up gems. How big is 500gp worth of diamond dust? – acbabis Jul 22 '16 at 19:10 • I wonder how small a gold coin would be today if it were worth$1 in D&D5e gold. And how much a D&D 5e gold piece's weight (1/50 pound) is worth today. Let's see, that's $1,324.00 per ounce x 16 ounces/pound, divided by 50 =$423.68. – Dronz Jul 23 '16 at 2:19
• @Mason: OTOH you have Milo Amastacia-Liadon's observation that salt has a fixed price explicitly listed in the player's handbook , and breaks the magic crafting monetary requirements by buying up tons (literally) of salt dirt cheap. – Hurkyl Jul 23 '16 at 9:45
• @Hurkyl In 3.5e, the flesh to salt spell was one of the more notorious money exploits, since it could easily produce hundreds or even thousands of pounds of salt in a casting. – KRyan Dec 27 '18 at 15:52

Let's take a pull in mathematics, economy and physics.

First, let's look up the weight of a gold piece. Google even answers that question:

In “Basic” D&D (and previous editions) and First Edition AD&D, despite the described weight, gold pieces are considered to weigh a tenth of a pound (1.6 standard ounces) each for encumbrance purposes, with 10 gp weighing one pound.

However dungeons.wikia says:

Starting in Second Edition AD&D and continuing through Third and Fourth Editions, gold pieces are considered to weigh approximately a third of a standard ounce (9 grams) each, which equal about fifty gp to a pound, while maintaining the size equal.

Well, that is disappointing, but not unbearable: the later D&D coins just are worth 1/5th of the earlier, so let's roll with the old coins first.

Now, 1.6 standard ounces of gold for the old D&D standard... what kind of diamond you would get for that? If gold is measured in standard ounces, then it is 22 karat gold, so let's convert to fine ounces, aka troy ounces: 1.45 fine ounces of 24 karat gold.

Now, Gold price nowadays fluctuates just like diamond prices, but for a rough estimate, the gold price has hung around 400 USD/oz (troy) from the 80s-200s, and is around 1250 USD/oz (troy) since about 2012. So... for calculations sake and to cut out inflation, let's guesstimate that the actual 'worth' of a gold piece if it would be struck in this world would come up to, let's say 1000 USD for first edition coins. Or, if we use the new coins: 200 USD.

Now, we have a 50gp diamond. What kind of diamond you get for 50 grand/10 grand? Now, I found a pretty nifty site that tells about diamond prices. The relevant snippet for my estimations is here:

$10,000 –$20,000 This is the lowest price range where you can reasonably expect to find a good selection of quality 1.5 carat stones (and the 1-carat stones in this price range will stir the heart of the toughest critic [=excellent quality]).

$30,000 –$50,000 - In this price range, you can expect to find excellent quality stones up to 2.50 carats.

$50,000 –$100,000 In this price range, you can expect to find excellent quality stones up to 4.0 carats.

So, assuming the 1000 USD/gp, the 50gp nets us a pretty nice, clear and almost perfect 2.5 carat stone, the 200 USD/gp gives us a shiny stone of a bit less than a carat of those traits. With the 100 gp we get an equal clear stone that is more like 4 carats or for the newer gold coin factor, a 1 carat stone. That is assuming excellent quality stones. Now, how large are 2.5 carats and 4 carats? They only weigh half a gramm and 8/10th of a gram (0.017 and 0.028 standard ounces for imperials), but that is a weight and weight not translate to radius and diameter well, as we all know:

• $V=d \times \pi \times r^2 \times f$

$d$ is the depth of the diamond, $r$ the radius (=$\frac{\text{diameter}}{2}$), $f$ is the formfactor and is derived from the actual shape: it is $1$ for a cylinder, 1/3 for a cone.

• $M=V \times \text{[density]}$

Most diamond distributors don't list dimensions, but I was lucky to find a carat-size chart: 1 carat stones have a diameter of 6.5 mm, 2.5 carat are roughly 8.8 mm and 4 carat stones tend to be 10.4 mm in diameter. This however is assuming the afforementioned perfect and excellent stones. Still, it shows quite nicely, that diamonds of larger value are not nessecarily that much larger: while size (and therefore weight) does play an important factor, the other factors (Color, Cut, Clarity) do also have a huge impact on the value.

Still, both diamonds in question are of a neglectable size in comparison to almost all other items. In comparison between the two (jewlery grade) stones it all boils down to:

100 gp carat stones do either have clarity, cut or color of better quality, or they are visibly larger than the 50 carat variant.

Up there I only calculated with the prices of Jewlery grade diamonds, taking a guesstimated price for a gold coin. Now, Maybe a comparison might be more worth it:

Let's take a fix-point of 1000 USD/gp, and consult the table again.

• 7.5 gp = 7,500 USD = 0.8 carat jewlery diamond
• 10 gp = 10,000 USD = 1.0 carat jewlery diamond
• 20 gp = 20,000 USD = 1.5 carat jewlery diamond
• 30 gp = 30,000 USD = 2.1 carat jewlery diamond
• 50 gp = 50,000 USD = 2.5 carat jewlery diamond
• 100 gp = 100,000 USD = 4 carat jewlery diamond

Plotting those in excel and putting a trend line into it that has to cut (0,0), the function for carat/gp I get is:

• $\text{weight in carat}=0.0454 \times \text{price in gp}$

Playing that game agian for 200 USD/gp, the formula is:

• $\text{weight in carat}=0.0119 \times \text{price in gp}$

Now, this still estimates jewlery grade diamonds. However, there are also industrial grade diamonds, that price at 0.3 to 10 USD/carat with large stones in the 200 USD/carat range, depending on grain size; synthetic diamonds range (depending on stability) from 0.4 to 4.50 USC/carat usually with large stones in the hundreds again. But taking huge natural industrial diamonds does not work because at some point their price jumps back to the jewlery grade prices just for sheer size. And the formula above does not work for named or huge jewlery gems either, as those tend to be priced for their story or previous owners to a large degree. Still, by comparison and using grain size as an indicator, the factor in the trendline above would be something like factor 10 (42) larger for industrial diamonds. So, by rule of thumb:

• If you can't use a diamond for jewlery, multiply its weight by 10 ("expensive coins" or low disparity between the price for "magic grade" and "jewlery grade" diamonds) to 42 ("cheap coins" or a high disparity) to gain the same value.
• +1 for the very useful chart and detailed answer. Would it be worth reminding that diamonds fall in two classes ? Jewelry diamonds have no use (in real world, this make their economics very special, ask De Beers how they manage stock, kill the offer by making diamond so emotional, or created the whole diamond wedding rings market in japan), but industrial/magic-user diamonds have and do not need the same quality, are more common, and cheaper. – Uriel Jul 22 '16 at 18:43
• Your calculation would be even more awesome if you had managed to find the approximate relative prices of gold and diamonds, and, as @Uriel mentioned, industrial diamonds, such as those used in cutting glass, rather than those used in jewelry. – Baskakov_Dmitriy Aug 5 '16 at 9:38
• @Baskakov_Dmitriy Did the math... actually in that low range the trend is pretty much doable as a linear progression, even if an exponetntial function can model it even better (but base 0.2419x with exponent 0.6105 is not handleable, and neither is base 0.0536x with exponent 0.7181). It's for rough estimates anyway. – Trish Aug 9 '16 at 7:56

This diamond. Its weight is negligible (in quantities short of a truckload), and its size is on the order of a sweet pea.

I was thinking about this again. It's perhaps shortsighted to say that a the same diamond in D&D is worth the same to two different characters (or conversely, that 50GP gets you the same diamond regardless of where you are in the realm).

For example, a farmer with no means of liquidation might find it worthless and prefer to spend his precious gold on seeds, tools, and beer. A noble might collect them for his wife and give you a "fair" 50GP for it. A spell caster far from civilization that needs it to save the world might give you anything you ask for.

To me, this is part of the fun of being DM. I think you might want to consider where the diamond is, who is holding it, what's around, and go as deep into the rabbit hole as you want. I like to add cost to more "high-tech" items when far from cities, and remove value from goods being sold to NPCs that might not see its worth or have no use for it. Just some additional food for thought.

This was a great question by the way!

### Dimensions

• Measurements: 7.54 × 6.67 × 4.57 mm [230 mm3]
• Weight: 2.00 carat
• Mass: 400 mg (0.0141096 oz)

# Explained

There are many variables in appraising gemstones. Size isn't really considered, being a derivative of weight. Weight is measured in carats (1 carat = 0.2 g).

Other variables may include:

• weight
• quality
• color
• location
• history/lore (Once belonged to a famous person... Ooooooo!)

For the purposes of gameplay, I'm assuming rough estimations rooted in current RL prices are acceptable.

Let:

Based on this chart, we can infer a size of 2 +/- 0.25 carats. The quality and color in inversely proportional to the weight; e.g. as the weight goes down, you can go up a notch in quality or color.

So, a single stone worth 50gp might looking a lot like the diamond linked above. 2.00 Carat, VS2 Quality, and D color. According to our chart, this diamond is valued at $21,390... pretty close! For reference, a 500gp diamond would be 10 carat, D color, round cut, and internally flawless. • Thanks for the edits, but I think the dimensions table looked better as a fixed width code block. No hard feelings, though. ^-^ – CaptainMarvel Jul 22 '16 at 19:35 • Interesting theory, but it relies on the modern valuation of Gold. Today it's about$1300/oz, 5 years ago almost $1700/oz. In 1980 it hit nearly$2000/oz, and between the two, it dropped to barely $350/oz in 2001. So we are forced to ask which of these is the correct currency conversion (if any)? You could easily argue$850/oz or \$575/oz too (rough prices when OD&D and AD&D 1E were released). Functionally, there is no practical method of converting D&D currency to a real world equivalent. – tzxAzrael Jul 23 '16 at 16:21
• You are correct, but I suppose I had the pre-20th century gold standard in mind. Markets fluctuate now more than ever. I was mostly just offering a way to think about it. – CaptainMarvel Aug 16 '16 at 19:25
• Yea, all I was trying to say was that at some point, you simply have to assign an arbitrary conversion value, and based on that, different tables may end up with wildly different values. – tzxAzrael Aug 18 '16 at 14:51

A 50gp diamond is exactly as large as a 50gp diamond.

Not terribly helpful, I'm aware, but unfortunately I've never seen any of the rules editions get into specifics about exactly how big or small a particular size of gem is.

In addition to all the variables that affect the value of real world gems (Color, Cut, Clarity, Carat, what kind of mood the jeweler's wife was in that morning, etc..), there are also all the details of the fantasy world that affect prices. Rarity, demand, other uses for the gem besides jewelry, access to the Elemental Plane of Earth, etc.

On top of that, the distinction between what we consider "precious" and "semi-precious" gems is not really made. All gems are potentially equally valuable.

Functionally, gems are simply a high-density monetary unit, useful for transporting great sums of money without dealing with the weight of dozens of chests of coins. The only practical measure of a gem's size is its value in GP.

Aside from that, the gem is exactly as big as the DM says it is.

This question depends on many variables, the most prominent being the 4 C's: Color, Cut, Clarity, and Carat. Carat corresponds back to the size, so that is irrelevant. Uncut diamonds with large defects that make even smaller diamonds flawed could fetch a lower price than much smaller diamonds. Diamonds with yellow in them can be worth far less than clear diamonds, while blue or pink are much more valuable and reds could fetch great prices due to rarity.

Running off Timster's idea of the bargain bins at apothecaries, the value of diamonds to PCs could vary greatly depending on what qualities give the base value of the diamond. Due to lower weight, PCs would likely prefer carefully cut, crystal-clear, and courageous crimson diamonds that are really tiny. Makes it much more compact to keep revival components handy. Now, if they needed to make change for a variety of different spells (Revivify), they might prefer more uniform diamonds that can be easily sorted off when someone needs to be revived.

Giving a system-agnostic answer here.

In fantasy, it's common to want gems to be "larger than life". However, one expects larger gems to be more valuable, ceteris paribus. I.e., other factors may matter, but we can hold them constant for our purposes.

Empirically, I recall looking at a chart of diamond prices once and finding that they vary as roughly the 4/3 power of mass - therefore, as the 4/3 power of volume, or 4th power of width/height/length (assuming uniform scaling).

Therefore, a 50gp gem is about $0.1^{0.25}$ (which conveniently is about 9/16) as big across as the DMG says the 500gp gem is.

• your formula ignores the formfactor of cut gems and that these gain most of their later value by cutting. It only holds true for uncut and roughly spherical gems. These generally are accounted for much less than the cut gems - to make 1 carat cut diamonds you need an uncut stone that is about 3.3 carat, as you have a loss ratio of up to 70% of the original. This means, uncut gems are worth much less than a quarter of cut gems. – Trish Jul 22 '16 at 12:24

### As large as two pinches, or as a modest diamond ring, while some very old rules say ¼ carat

By the 5e core rules, diamonds exist of various value.

Nolzur's Marvelous Pigments (DMG p.183) can't create anything worth more than 25 gp, including the example of a diamond, suggesting that even the least valuable diamonds are worth more than 25 gp.

It is implied that whole diamonds may exist as small as 50 gp (chromatic orb, PHB p.221), with other diamonds described as at least 500 gp (raise dead, PHB p.270), at least 1,000 gp (clone, PHB p.222; resurrection, PHB p.272), at least 5,000 gp (gate, PHB p.244), while true resurrection (PHB p.284) allows the 25,000 gp cost to be paid in multiple diamonds, suggesting that diamonds this valuable are rare.

The spell revivify (PHB p.272) cites a diamond worth precisely 300 gp, suggesting that diamonds worth less than the DMG treasure list's 5,000 gp actually exist.

However, the closest direct measurement of size is given by the spell nondetection (PHB p.263), which requires a pinch of diamond dust worth 25 gp. If we can assume that this is about the same mass as a diamond worth 25 gp, rather than dust having its own market value (e.g. flawed diamonds laboriously ground into powder for spell components), then a diamond the size of two pinches of salt is worth 50 gp.

The Helm of Brilliance (DMG p.173) is described as being inlaid with 1d10 diamonds, amongst other gems. We can at least infer here that diamonds exist small enough that up to ten can be inlaid on a helmet which already has around fifty other gems inlaid in it.

Now, if we're willing to consider lore from earlier editions of the game, Dragon #8 (July 1977) ran an article titled A Re-Evaluation of Gems & Jewelry in D&D, by Rob Kuntz. According to this article, which provides a more detailed breakdown than the standard rules at the time, a diamond is typically worth 200 gp per carat, with 1 or 2 carat gems being most common, and the largest having 1,000 carats or 200,000 gp.

According to that article, a 50 gp diamond weighs one quarter of a carat. This is small enough to be humbly inlaid in a ring, and this would be a convenient way for a wizard to carry it.

All these guidelines suggest that a 50 gp diamond is about as small as a diamond can reasonably be. Any much smaller and it would be too difficult to work or facet, and it would be hard to see or handle, which defeats the purpose of a diamond as a jewel or item of value for trade. A quick search suggests that while smaller ⅛ carat diamond rings exist in the real world, smaller one-sixteenth carat diamonds are uncommon.

This roughly matches the interpretation above, which is that one-eighth carat diamonds worth 25 gp are typically the smallest found (as per Nolzur), so I'm comfortable with the assertion that, based on both current and historical lore, a 50 gp diamond weighs around one quarter of a carat and at that size would need to be inlaid in a ring to be handled easily.


text:
# Why is solving of diagonal quadratic equations over $\mathbb R$ and $\mathbb C$ in $P$?

Let $\mathbb F\in\{\mathbb R, \mathbb C\}$ the field of real or complex numbers. Then [1, page 22 in the middle] claims that the following equation can easily be solved in deterministic polynomial time: $$\sum_{i=1}^n a_ix_i^2=b$$ with $a_i, b\in\mathbb F$. Some discussion suggests, that the algorithmical model assumed in the paper is that of a machine that can perform field operations in one step.

My question is: What is the algorithm? Is it multidimensional Newton? That would be weird because this algorithm only converges (in some cases) and does not give an exact solution. I'm quite unused to computational models over fields like the reals or complex numbers and maybe for someone who is more experienced this is cristal-clear?

• Can't you just solve a system of linear equations in $x_i^2$? – JeffE Jul 11 '12 at 19:57
• JeffE: This is not really a system of linear equations… – Tsuyoshi Ito Jul 12 '12 at 3:58
• What do you mean by solve? For $\mathbb{F} = \mathbb{C}$, it is easy to find some solution by taking any $a_i \neq 0$, letting $x_i = \sqrt{b/a_i}$, and $x_j = 0$ for $j \neq i$. For $\mathbb{F} = \mathbb{R}$ we only have to be slightly more careful. Are you worried about calculating the square root? – Yuval Filmus Jul 12 '12 at 4:57
• @Yuval: yeah, you are perfectly right really obvious... concerning the case of reals: is there an easy criterion for solvability? And the square root: I'm always a bit worried when it comes to working with reals ... but I think there is no better way than giving an algorithm that only converges to the square root. – born Jul 12 '12 at 8:51
• All you need in the real case is that $b=0$, or at least one $a_i$ has the same sign as $b$ (so that $b/a_i$ is nonnegative). – Klaus Draeger Jul 12 '12 at 10:53

We assume that we are allowed to take square roots in $\mathbb{F}$.
$\mathbb{F} = \mathbb{C}$: If $b = 0$ then $x_1 = \cdots = x_n = 0$ is a solution. If $b \neq 0$ and $a_1 = \cdots = a_n = 0$ then there is no solution. Otherwise, let $a_i \neq 0$, and then a solution is $x_i = \sqrt{b/a_i}$ and $x_j = 0$ for $j \neq i$.
$\mathbb{F} = \mathbb{R}$: If $b = 0$ then $x_1 = \cdots = x_n = 0$ is a solution. Otherwise, without loss of generality assume that $b > 0$ (otherwise, multiply all of $b,a_1,\ldots,a_n$ by $-1$). If $a_i \leq 0$ for all $i$ there is no solution. Otherwise, let $a_i > 0$, and then a solution is $x_i = \sqrt{b/a_i}$ and $x_j = 0$ for $j \neq i$.
• And what in the non-trivial case, i.e. the $x_i$ may not be zero? – Raphael Jul 17 '12 at 16:18
• It's similar to the trivial case, just put $x_i = \epsilon$. – Yuval Filmus Jul 18 '12 at 5:49

format: plain


text:
# Equivalence of different consistency sentences

Take any formal system $S$ that has a proof verifier program and interprets TC or PA$^-$. $\def\imp{\Rightarrow} \def\con{\text{Con}}$

Then the incompleteness theorems show that $S$ does not prove $\con_1(S)$, where the subscript denotes that it is based on a particular encoding of a particular proof verifier of $S$ into $S$. $S$ also does not prove $\con_2(S)$, for another choice of proof verifier and encoding. But...

Does $S$ always prove $( \con_1(S) \imp \con_2(S) )$ (regardless of the two choices)?

I think the answer is no, because it seems I need $S$ to support induction to establish such a proof, namely I seem to need $S$ to interpret either PA or TC+I (where I is an induction schema). So...

If my guess is wrong, how do we show that $S$ proves the equivalence?

If my guess is correct, what are two choices of $\con_1$ and $\con_2$ that witnesses it?

This is tricky. It is equivalent to the question of whether standard Gödel sentences for $S$ produced by two different encodings will be provably equivalent in $S$.

Suppose we define a Gödel sentence to be a fixed point of a "not-provable-in-$S$" predicate, then choose a coding which determines the details of the not-provable predicate. Then the fixed points of this one not-provable predicate will be interderivable. That's elementary, well-known, and in lots of textbooks.

But that doesn't help with your question, which comes to: if we vary the not-provable predicate by varying the coding, will the fixed ponts as we vary the predicate still stay interderivable? Presumbably there will have to be some restrictions on what counts as an acceptable coding: but I don't know what the restrictions are. Nor do the usual (or not-so-usual) textbooks tell us, again as far as I know. Which is why I asked a similar question at mathoverflow: the response was "I don’t think there are any useful criteria known that would guarantee the provable equivalence of two proof predicates that would not beg the question."

I too would be delighted to know if we can do better than that!

• Can you at least confirm my claim that if $S$ supports induction then we in fact have provable equivalence? My reasoning (but I was a bit lazy to formalize it) is that we ought to be able to prove within S by induction that if Con1(S) is false with proof length n then Con2(S) is false. And thanks for the link; I totally did not know that you had asked this before on MathOverflow! =) – user21820 Dec 10 '17 at 16:35
• I doubt whether the claim is true in general for PA (which has induction), unless you put some constraints on allowable codings. What constraints do you have in mind? – Peter Smith Dec 10 '17 at 16:38
• Hmm.. I had in mind that we start with any program that implements a proof verifier $V$ such that $V(p,x)$ always halts and outputs "yes" if $p$ is a proof of $x$ and "no" otherwise. This would vary drastically depending on the proof-style, and that also means that my attempt is doomed. We need some uniform computable interpretation of TC+I or PA with computable inverses... where "uniformly interprets" is like as defined here. Oh that seems insufficient too unless $S$ is simply TC+I or PA itself, which seems like "trivial" then. – user21820 Dec 10 '17 at 16:45
• By the way, I wrote a recent post sketching a computable procedure for extending any given $Σ_1$-sound system to one that is still $Σ_1$-sound but $Σ_3$-unsound. As I ask in my comment, can this be improved? I gave a non-constructive argument in my answer, but I doubt it can be made constructive. Any ideas? – user21820 Dec 13 '17 at 13:36
• Hmm do you think I should post my other question on MO? – user21820 Dec 16 '17 at 9:20


text:
## Saturday, May 13, 2006

### Climate CO2 sensitivity

...and editorial policies

RealClimate: saturated confusion (directly related)
CO2 - temperature relationship is the other way around
Climate sensitivity is defined as the average increase of the temperature of the Earth that you get (or expect) by doubling the amount of CO2 in the atmosphere - from 0.028% in the pre-industrial era to the future value of 0.056% (expected around 2100).

Recall that the contribution of carbon dioxide to the warming is expected because of the "greenhouse" effect and the main question is how large it is. The greenhouse effect is nothing else than the absorption (of mostly infrared radiation emitted by the Earth) by the "greenhouse" gases in the atmosphere, mainly water vapor - but in this case we are focusing on carbon dioxide, one of the five most important gases causing this effect after water vapor.

If you assume no feedback mechanisms and you just compute how much additional energy in the form of infrared rays emitted by (or reflected from) the surface will be absorbed by the carbon dioxide (refresh your knowledge about Earth's energy budget), you obtain the value of 1 Celsius degree or so for the climate sensitivity.

Dr Stephen Schwartz obtained 1.1 degrees for the full sensitivity, see also my reply to his critics
While the feedback mechanisms may shift the sensitivity in either direction, Prof. Richard Lindzen of MIT, a world's leader in the sensitivity issue, will convince you that the estimate is about right but the true value, with the mostly unknown feedback mechanisms, is likely to be lower than the simple calculation. One of the reasons, Lindzen's own, is a negative feedback by water vapor and clouds. There is however another issue here: The dependence of the temperature on the CO2 concentration is not linear but rather "sublinear". Why is it so?

You should realize that the carbon dioxide only absorbs the infrared radiation at certain frequencies, and it can only absorb the maximum of 100% of the radiation at these frequencies. By this comment, I want to point out that the "forcing" - the expected additive shift of the terrestrial equilibrium temperature - is not a linear function of the carbon dioxide concentration. Instead, the additional greenhouse effect becomes increasingly unimportant as the concentration increases: the expected temperature increase for a single frequency is something like
• 1.5 ( 1 - exp[-(concentration-280)/200 ppm] ) Celsius

The decreasing exponential tells you how much radiation at the critical frequencies is able to penetrate through the carbon dioxide and leave the planet. The numbers in the formula above are not completely accurate and the precise exponential form is not quite robust either but the qualitative message is reliable. When the concentration increases, additional CO2 becomes less and less important.

In particular, there exists nothing such as a "runaway effect" or a "point of no return" or a "tipping point" or any of the similar frightening fairy-tales promoted by Al Gore and his numerous soulmates. The formula above simply does not allow you more than 1.5 Celsius degrees of warming from the CO2 greenhouse effect. Similar formulae based on the Arrhenius' law predicts a decrease of the derivative "d Temperature / d Concentration" to be just a power law - not exponential decrease - but it is still a decrease.

One might also want to obtain a better formula by integrating the formula above over frequencies:

In all cases, such a possible warming distributed over centuries is certainly nothing that a person with IQ above 80 should be producing movies about and nothing that should convince him to stop the world economy.

When you substitute the concentration of 560 ppm (parts per million), you obtain something like 1 Celsius degree increase relatively to the pre-industrial era. But even if you plug in the current concentration of 380 ppm, you obtain about 0.76 Celsius degrees of "global warming". Although we have only completed about 40% of the proverbial CO2 doubling, we have already achieved about 75% of the warming effect that is expected from such a doubling: the difference is a result of the exponentially suppressed influence of the growing carbon dioxide concentration.

As Richard Lindzen likes to say, it is just like when you paint your bedroom. The first layer of white makes a lot of difference in the amount of light in that room; additional layers make a smaller contribution.

The first calculation of the climate sensitivity, based on the Stefan-Boltzmann law, was published by the Swedish chemist Arrhenius in 1896: it had some problems but it was a fair starting point. The Carbox Dioxide Calculator on junkscience.com is based on my simple exponential formula and you must take the exact resulting number with a grain of salt.

More exact treatment: Why is the greenhouse effect a logarithmic function of concentration?
However, my simple exponential formula agrees with the logarithmic Arrhenius formula plus minus 50% up to 1000 ppm or so, expected around 2300. The changes in the emission by the surface of the Earth can be linearized although they depend as "T^4" on the temperature because the expected increase of "T" is at most 2 degrees, less than one percent of the normal "room" temperatures of 290 degrees above the absolute zero.

In reality, the increase of the temperatures since the pre-industrial era was comparable or slightly smaller than 0.76 Celsius degrees - something like 0.6 Celsius degrees. It is consistent to assume that the no-feedback "college physics" calculation of the CO2 greenhouse effect is approximately right, and if it is not quite right, it is more likely to be an overestimate rather than an underestimate, given the observed data.

The numbers and calculations above are actually not too controversial. Gavin Schmidt, a well-known alarmist from RealClimate, more or less agrees with the calculated figures, even though he adds a certain amount of fog - he selectively constructs various minor arguments that have the capacity to "tilt" the calculation above in the alarmist direction.

Richard Lindzen would tell you a lot about likely negative (regulating) feedback mechanisms (the iris effect?). Your humble correspondent finds all these mechanisms - positive or negative - plausible but neither of them can really be justified by the available, rather inaccurate data.

But the figure of 1 Celsius degree - understood as a rough estimate - seems to be consistent with everything we see and Schmidt himself claims that only intellectually challenged climate scientists estimate the sensitivity to be around 5 Celsius degrees (I forgot Schmidt's exact wording). It is also near the result of 1.1 Celsius degrees obtained by Stephen Schwartz in 2007.

Three weeks ago, Hegerl et al. have published a text in Nature that claims that the 95 percent confidence interval for the climate sensitivity is between 1.5 and 6.2 Celsius degrees. James Annan decided to publish a reply (with J.C. Hargreaves). As you might know, James Annan - who likes to gamble and to make bets about the global warming - is

• an alarmist who believes all kinds of unreasonable things about the dangerous global warming;
• a staunch advocate of the Bayesian probabilistic reasoning.

However, he decided to publish a reply that

• the actual sensitivity is about 5 times smaller than the Hegerl et al. upper bound which means that the warming from the carbon dioxide won't be too interesting;
• Hegerl et al. have made errors in statistical reasoning; the error may be summarized as an application of rationally unjustified Bayesian priors which is an unscientific step.

The second point of Annan is based on the observation that Hegerl et al. simply use a "prior" (a random religious preconception that defines our "primordial state of ignorance" before the sin involving the apple, so to say) that is a crucial part of the Bayesian statistical reasoning. In this particular case, the Hegerl prior simply allows the sensitivity to be huge a priori - and such a dogma to start with is simply too strong and is not removed by the subsequent procedure of "Bayesian inference".

Such an outcome is a typical result of Bayesian methods in many cases: garbage in, garbage out. If your assumptions at the beginning are too bad, you won't obtain accurate results after any finite time spent by thinking. Although I don't want to claim that Annan's reply was a great paper, I am convinced that the fact that Annan was able to appreciate these incorrect points of Hegerl et al. is partially a result of my educational influence on James Annan. ;-)

Nevertheless, Annan's reply was rejected by Nicki Stevens of Nature without review with the following cute justification:

• We have regretfully decided that publication of this comment as a Brief Communication Arising is not justified, as the concerns you have raised apply more generally to a widespread methodological approach, and not solely to the Hegerl et al. paper.

In other words, Annan's reply could have the ability to catch errors that influence more than one paper, and such replies are not welcome. Imagine that Nicki Stevens is the editor of "Annals der Physik" instead of Max Planck who received Albert Einstein's paper on special relativity. Even better, you can also imagine that Nicki Stevens is the editor who receives the paper on General Relativity whose insights apply more generally. ;-) Or any other paper that has any scientific meaning, for that matter, because meaningful science simply must be general, at least a little bit.

When we apply my reasoning more generally to a widespread methodological approach of many editors (and journalists), we could also wonder whether the person named Nicki Stevens realized that one half of the internet was going to discuss how unusually profound her misunderstanding of the scientific method was. She seems to believe that scientists should be just little ants who are adding small pieces of dust to a pyramid whose shape has already been determined by someone else, outside science, for example by Al Gore.

Other frequently visited climate articles on The Reference Frame

1. Just an added anti-catastrophic factor. letr's say the increase was one degree, or whatever. The increase would occur mostly at the poles, and mostly in the winter, and mostly at night. That doesn't leave much to lose sleep over. It is probably desireable. Plus, the added C02 would make all vegetation increase, while using less water to do so, making our planet more lush, benefitting both wildlife and crops, and us. Cheer up!

2. no actually temperatures remain about the same near the equator and increase several times the global mean increase near the poles. ice melts, cities need to be evacuated, don't cheer up too much.

3. Wonderful article, thank you. Temperature increases decelerate -- the tipping point is really a plateau! ... Please keep writing on this subject. The time and money being wasted on global warming alarmism are shocking.

4. Great blog! Excellent insight into A.G.W. I think Dr. Lindzen is the leading authority on climate change after looking through all of the literature. You may well be headed that way. "Real Climate", what a joke. I wish I had found this blog months ago

5. Sorry to rain on the parade, but there is a tipping point, a point of no return. The thermohaline circulation is dependent on certain salinity levels and temperature ranges. Should these balances change, as a result of global warming or for whatever other reason, there is reason to believe that there may be a disruption of the thermohaline, the consequences of which we can't be fully certain (I personally doubt they'll be good).

6. I've written an analysis where I estimate climate sensitivity at 3.46C. I believe the methodology is straightforward. Comments and scrutiny are welcome.

7. Dear Joseph, sorry but I don't understand your derivation. More precisely, it looks like complete gibberish. You seem to be using input data that don't contain the information about the sensitivity - without other data - and you are dealing with them in very unclear ways.

Moreover, you are subtracting very large numbers of other very large numbers that would generate huge errors even if your method were otherwise correct, which also means that you haven't isolated the CO2 signal from other signals at all.

I am very surprised that the most sensible answers about climate sensitivity are not in your poll at all, despite having so many options. The climate sensitivity is almost certainly "none of the above", between 0.3 and 1.2 deg C, and there exist much more robust and transparent ways to derive it than your derivations. Many of them are on this blog.

8. So you don't believe that CO2 data combined with temperature and temperature change rate data is enough data to be able to derive sensitivity? Why not?

The results of the model I worked with are testable in ways that are rather clear. I'll come back with a link.

9. I confessed to PW that I am trickster, so only take my comment with a grain of salt

I can only really offer a simpler derivation of your algebra.

You have defined sensitivity as:

S = (equilibrium temp at twice the current carbon conc.) - (equilibrium temp at the current carbon conc.) = a log 2

or for simplicity

S = T'2 - T'1 = a log 2

in terms of a

a = (T'2 - T'1)*(1/log 2)

Imbalance has been defined as:

I = (equilibrium temp at the current carbon conc.) - (observed temp) = T'1 - Tobs

You have also defined the instantaneous change of I (dI), where k1 and k2 are constants, as:

dI = k1*J - k2

which after some manipulation turns out to be:

dI = k1*T'2*(log C / log 2) - k1*T'1*(log C / log 2) - k1*Tobs - k2

In my mind, it all seems to say that if we knew what the equilibrium temperatures were, we could compute the sensitivity and then we could compute the imbalance and instantaneous change in imbalance as a function of observed temperature and and carbon concentration.

So the question then becomes "What's the equilibrium temperature?"

I'm not sure that has been answered. There are a lot of other things that equilibrium temperature is dependent on. Constants a and b really are not constant (this is why you said "assuming all else is equal").

Having equilibrium temperature as a function of carbon concentration only is a "HUGE" assumption. This is the fundamental fallacy of most climate models.

10. Here's a hindcast based on my analysis. I'm making the spreadsheet available so that formulas can be verified.

Mathandphysics: Thanks for reading my analysis.

While in the formulas I do assume the effect of imbalance is instantaneous, in reality I did find this is not the case. There's a lag of 3 years, and this is taken into account to produce the results of the analysis, as well as the hindcast.

It should be noted that the concept of doubling is an approximation of reality. Consider what would happen if the CO2 concentration becomes zero. Or what if there's doubling from 0.0001 ppmv to 0.0002 ppmv? The math doesn't add up. So I'd suggest a better model is

T' = log (C + k) + b

The concept of doubling says k = 0. It can't be any other way if it were accurate.

Without getting into details, k is a small positive number relative to pertinent CO2 concentrations, so the concept of doubling is apparently a good approximation.

Of course, this equilibrium temperature calculation is based on the assumption that everything else is equal, which in reality is not. There are confounds, sure.

11. About lumo's range where sensitivity <= 1.2C, let me just say that's practically impossible.

If doubling causes an increase of 1.2C, consider what would happen if CO2 concentration goes from 285ppmv to 380ppmv. This would be:

1.2 * log (380 / 285) / log 2

Or

0.5 degrees

Already there has been a global warming since 1850 of about 0.7 to 0.8 degrees. It's really not possible for equilibrium temperatures to trail observed temperatures when net forcing is increasing, as it is.

A basic verification that should be done when people propose climate sensitivity estimates is to produce a time series of equilibrium temperatures and compare with observed temperatures. This is easy enough if you make an assumption about a point of equilibrium

12. Joseph, what you write is just completely stupid.

Concerning your question why temperature series and CO2 data themselves are not enough to derive the sensitivity, I think that the answer is completely obvious: a major part (most) of the changes of temperature is due to non-CO2-related thing.

Just look at the two graphs
: they're surely not proportional to each other. They're not proportional to each other even if you try to make the model more complicated by including lags and similar things.

That's an obviously true "negative" proposition that is trivial to prove in many other ways. Temperature changes analogous to the present ones existed even when CO2 levels were stable, and on the contrary, after the 1940s, when the CO2 levels grew intensely, there was a slight net cooling for 30 years. Obviously, the other factors that made the cooling possible (aerosols, oceans, Sun variations etc. etc.) had to be at least as strong as the greenhouse effect. And their total size was probably much stronger because some of them probably came with the same (warming) sign as the greenhouse effect.

The figure 1.2 K is the bare climate sensitivity calculated without feedbacks (it also happens to agree with one that can be extracted from the 0.7 K of warming since the Industrial Revolution, because we have already made 1/2 of the doubling effect), and the reality can be both higher or lower than 1.2 K because the feedbacks can be positive or negative.

I am convinced that most of the key feedbacks are negative in all systems that are as-stable-as-the-Earth, but even if you disagree, I think that it is indisputable that you haven't provided us with any evidence of your "inequality" that the sensitivity always has to be higher than the first number one calculates. What you're doing is just pure junk science: trying to get some number that might be fair and than to collect all possible dirty irrational pseudoarguments and arguments in one direction, to push the 1st number in the direction that you find more convenient.

As indicated above, I am pretty sure that the net sensitivity is lower than 1.2 K because the feedbacks are negative.

As explained recently in Roy Spencer, it is also impossible to imagine that the CO2-temperature relationship and cloud-temperature relationship is purely about the greenhouse effect plus feedbacks, even if you obtained a high correlation (which you don't) because the correlation between clouds and temperature can always be a consequence of the opposite causal relationship.

Clouds can e.g. amplify ocean-driven temperature variations which will increase the apparent simultaneous changes of the cloud cover and temperature - but it would be incorrect in this case to say that the clouds are strengthening the CO2 greenhouse effect because different driving forces can be amplified differently. Correlation is not causation.

I will be rejecting further comments of yours that will look as dumb as the recent ones.

13. Joseph

I think you might be getting into a trap using Excel's regression program. Regression analysis is a powerful tool, but I would caution you about using it without understanding its limitations.

14. Just to correct a minor detail in my derivation

Jason has used a d as a constant, which although stated in his article, threw me off (I thought he was confused and was equating differential element dI with the instantaneous rate of change dI/dt, but he was actually saying dTobs/dt = k*I). It is a minor correction.

He has defined the instantaneous rate of observed temperature change, with k3 a constant, as

R = dTobs / dt = k3*I = k3*(T'1- Tobs) = k3*T'1 - k3*Tobs = k1*J - k2

where

J = T'1 - Tobs - b

making

R = dTobs / dt = k1*(a log C + b) - k1*Tobs - k1*b -k2

which again becomes

R = dTobs / dt = k1*T'2*(log C / log 2) - k1*T'1* (log C / log 2) - k1*Tobs - k2

Sorry, just want to give the horse one last kick

15. I think I said Jason, I meant Joseph if I did

16. What were the CO2, Methane, Nitrogen, Aand Oxygen Atmospheric proportions in the Proterozoic and Phanerozoic geologic ages?

In particular what were the changes at the start and end of the Cambrian and of the Carboniferous?

What were the greenhouse gassses proportions going into and coming out of the "Ice House World" epochs?

17. Sir, why not chart the CO2 only scenario with recent satellite temps? It should show correlation, and make the climate science industry go nuts. No feedbacks, no crisis, no money.


text:
# Idea gas law applied to throttling process

1. Mar 6, 2013

### FrankJ777

Hi all.
I'm trying to become acquainted with thermal dynamics. I thought I had a fairly good handle on the idea gas law, PV=nRT, or PV=mRT, but I came across a problem involving the throttling of an idea gas, and the solution was totally not what I expected. Referring to picture where gas is forced through the valve I thought I tried using:

$\frac{P_{1}V_{1}}{T_{1}}$ = $\frac{P_{2}V_{2}}{T_{2}}$

Setting V$_{1}$ = V$_{2}$, then solving for T$_{2}$:

T$_{2}$ = $\frac{P_{2}T_{1}}{P_{1}}$

Of course I got the wrong answer. The solution explained that the throttling process produces no change in enthalpy for an idea gas, and therefore no temperature change. I'm trying to follow they're explanation, but what I'm more interested in understanding is why the application of the idea gas law is not valid for this situation. I would expect it to be valid in any situation with an idea gas, so obviously I'm misusing it. Could someone explain to me why it's not valid in this situation? Thanks a lot.

File size:
218.5 KB
Views:
128
2. Mar 6, 2013

### Andrew Mason

The ideal gas law IS applicable to this situation, once everything settles down and reaches equilibrium. I am not sure why you say that volume does not change. The gas rapidly expands since there is no external pressure.

This is essentially an adiabatic free expansion. The gas expands but does no work (W=0) since there is no external pressure. Since it is adiabatic, Q = 0. So by applying the first law: Q = ΔU + W, one has to conclude that ΔU = nCvΔT = 0, which means ΔT=0.

AM

3. Mar 7, 2013

### FrankJ777

OK. I was assuming that the volumes were the same based on the diagram. (In most throttling problems I see the diagrams are quite similar.) It seemed that judging by the diagrams, the volume, or at least the diameter of the pipe is assumed to be the same on both sides of the aperture. So I'm confused how the volume is different. I guess I'm confused in general what is meant by volume of the gas in that case. I know that we also use specific volume as a property of a gas. In this case I can see that the specific volume of the gas increases as it goes to the other side of the aperture, but I can't see how you determine that the Volume its self is greater for the gas on side 2 of the aperture.

4. Mar 7, 2013

### Andrew Mason

The volume is determined the amount of space occupied by the gas when it returns to equilibrium. Throttling occurs when a gas expands rapidly through a small aperture into a vacuum. As it passes through the throttle valve the gas is in a dynamic state. When it regains equilibrium its volume has increased but because it expanded against 0 external pressure, no work was done on the surroundings. So there has been no change in internal energy. That is just a consequence of the first law for an adiabatic free expansion (Q=W=0).

Since T is constant for an ideal gas undergoing a free expansion (real gases will cool because the increase in volume requires work in increasing the separation of the molecules) the pressure is inversely proportional to volume.

AM

5. Mar 8, 2013

### FrankJ777

OK. So does PV=mRT only apply at equilibrium? And for that matter is gas in the static state imply that it's in equilibrium, and visa verse?

6. Mar 8, 2013

### Andrew Mason

PV=nRT is the equation of state for an ideal gas in equilibrium. Pressure, volume and temperature are not necessarily defined under dynamic conditions.

AM

7. Mar 8, 2013

### FrankJ777

Thanks. That helps a lot. I'm taking the FE in a few weeks, and the only exposure to thermodynamics I've had was a couple of chapters in PHYS I and CHEM.

8. Mar 10, 2013

### Staff: Mentor

What we're dealing with here is a continuous flow system operating at steady state. A constant rate of mass flow is passing through the system from the high pressure inlet pipe to the low pressure outlet pipe. To analyze this system, we need to use a modified form of the first law that applies to such as situation. I'm sure you must have been studying the first law in your thermo course, and have advanced to the point where continuous flow systems at steady state are being addressed. I'm not going to go through the derivation because it is covered in your text book, but the final result is typically of the form:
$$h_{out}-h_{in}=\dot{Q}-\dot{W_S}$$
where $h_{out}$ is the enthalpy per unit mass of material exiting the system, $h_{in}$ is the enthalpy per unit mass of material entering the system, $\dot{Q}$ is the heat input per unit mass of material passing through the system, $\dot{W_S}$ is the so-called shaft work imposed per unit mass of material passing through the system.

In an adibatic throttling situation, $\dot{Q}$ and $\dot{W_S}$ are both equal to zero. Therefore, you have, $$h_{out}=h_{in}$$

Now, for your case, the enthalpy of your ideal gas is a function only of temperature. Therefore, you must have that:
$$T_{out}=T_{in}$$
The conclusion here is that, in the adiabatic throttling of an ideal gas, the change in temperature is equal to zero. This is the so-called Joule-Thompson effect. If you are operating at higher pressures, beyond the ideal gas region, the enthalpy of the gas is a weak function of the pressure, and there is a small change in temperature during throttling. This change in temperature can be calculated if you know the PVT behavior of your gas beyond the ideal gas region.

The ideal gas law still applies to the throttling situation you have described. Since the temperature does not change, you will have that:
$$P_2v_2=P_1v_1$$
where the lower case v's are the specific volumes of the gas at the two pressures and at temperature T.

I hope this helps.


text:
Automating Cross Compiling Go Programs on Linux

Programs written in Go can be compiled for a variety of different targets. Cross compiling is easy, but takes a lot of effort.

In order to automate cross compilation the following Ruby script is built to take that burden off you.

Save the script in a file (for example with the name compile.rb) in the directory where you would like to compile and run it using ruby compile.rb.

arch_targets = ["386","amd64"]
os_targets = ["darwin", "linux", "windows"]

program_name = 'main'
file_to_compile = './main.go'

os_targets.each do |os|
arch_targets.each do |arch|

file_name = program_name + '_' + os + '_' + arch
ENV['GOOS'] = os
ENV['GOARCH'] = arch

command = 'go build -o build/' + file_name + " " + file_to_compile

system(command)

if os == 'windows'
File.rename('./build/'+file_name, './build/'+file_name+'.exe')
end
end
end

• In the array arch_targets we specify which computer architectures we want to compile for. Some supported architectures are: arm, 386, arm64, amd64
• In the array os_targets we specify which operating system we want to compile for. Some supported operating systems are: android, darwin, freebsd, linux, openbsd, netbsd, windows.
• program_name is the name of the executable after compilation.
• file_to_compile is the name of the file you would like to compile, or your entry file containing your main function in case your program contains multiple files.


text:
# How do you evaluate log_(1/6) (1/6)?

Consider what power the base $\left(\frac{1}{6}\right)$ must be raised to, to obtain $\frac{1}{6}$
That is ${\left(\frac{1}{6}\right)}^{1} = \frac{1}{6}$ hence value is 1.
In general $\textcolor{red}{| \overline{\underline{\textcolor{w h i t e}{\frac{a}{a}} \textcolor{b l a c k}{{\log}_{b} \left(b\right) = 1} \textcolor{w h i t e}{\frac{a}{a}} |}}}$


text: Functional power - Printable Version +- Tetration Forum (https://math.eretrandre.org/tetrationforum) +-- Forum: Tetration and Related Topics (https://math.eretrandre.org/tetrationforum/forumdisplay.php?fid=1) +--- Forum: Mathematical and General Discussion (https://math.eretrandre.org/tetrationforum/forumdisplay.php?fid=3) +--- Thread: Functional power (/showthread.php?tid=1158) Functional power - Xorter - 03/11/2017 Let f and g be total functions (so e. g. C -> C) and N and M be complexes. Then (f o g)(x) and f o a = f(a) are so-called functional multiplications. But the interesting thing is the following: functional power: $f^{oN} = f o f o ... o f (N-times)$ When N is an integer, it is trivial, just look: $f^{o0} = x$ $f^{o1} = f$ $f^{o2} = f o f$ $f^{o3} = f o f o f$ ... $f^{o-1} = f^{-1}$ We have rules for it, like these ones: $(f^{oN}) o (f^{oM}) = f^{o N+ M}$ $(f^{oN})^{oM} = f^{o N M}$ $f o (f^{oN}) = (f^{oN}) o f = f^{o N+1}$ But for instance: $(f^{oN}) o (g)^{oN} != (f o g)^{oN}$ (Also functional tetration exists.) My theory is that if we can get an explicit formula for $f^{oN}$ with x and N, then N is extendable to any total function. For example: $(2x)^{oN} = 2^N x N := log_2 (x) (2x)^{o log_2 (x)} = x^2$ And in the same way, theoritacelly you could do the same with all the functions. But how? My concept is that by Carleman matrices. RE: Functional power - Catullus - 07/11/2022 What about functional addition? How would that work? Or, how about functional zeration or functional negative rank hyper-operations? RE: Functional power - Daniel - 07/11/2022 (07/11/2022, 01:50 AM)Catullus Wrote: $\mathbb{What \: about \: functional \: addition?}$  $\mathbb{How \: would \: that \: work?}$ $\mathbb{Or,\: How \: about \: functional \: zeration,\: or \: negative \: rank \: hyper-operations?}$ $\mathbb{Please\:remember\:to\:stay\:hydrated.}$ $\mathbb{Sincerely:Catullus}$ Catullus, are you trolling us? Do you have an issue with writing readable posts? Why didn't you try something readable in code and actually displaying tex, like the following? Code:```[tex]\mathbb{What \: about \: functional \: addition?}[/tex] [tex]\mathbb{How \: would \: that \: work?}[/tex] [tex]\mathbb{Or,\: How \: about \: functional \: zeration,\: or \: negative \: rank \: hyper-operations?}[/tex] [tex]\mathbb{Please\:remember\:to\:stay\:hydrated.}[/tex] [tex]\mathbb{Sincerely:Catullus}[/tex]``` This is a great community if you choose to be a part of it. But that requires more than just posting on the Tetration Forum. It means being considerate of the other members and working to communicate as effectively as possible. In exchange, you will find the members here to be responsive to your questions and posts. Please feel free to respond here or by private message. RE: Functional power - Catullus - 07/11/2022 Okay, I changed it.


text:
Math Help - Proof with common tangent

1. Proof with common tangent

For both circles, line AD is a common tangent.

Prove that $m\angle ABD + m\angle ACD = 180$

2. Re: Proof with common tangent

Hi,

I've attached a solution. I tilted your diagram so I could provide commentary.


text:
# Algorithm to minimize distance variance between 2D coordinates

I've been looking around for an algorithm that would optimize the distance between 2 list of coordinates and choose which coordinate should go together.

Say I have List 1:

205|200
220|210
200|220
200|180

List 2:

210|200
207|190
230|200
234|190

Calculated Distance between Coords:

205|200 to 210|200 == 5.00
205|200 to 207|190 == 10.20
205|200 to 230|200 == 25.00
205|200 to 234|190 == 30.68

220|210 to 210|200 == 14.14
220|210 to 207|190 == 23.85
220|210 to 230|200 == 14.14
220|210 to 234|190 == 24.41

200|220 to 210|200 == 22.36
200|220 to 207|190 == 30.81
200|220 to 230|200 == 36.06
200|220 to 234|190 == 45.34

200|180 to 210|200 == 22.36
200|180 to 207|190 == 12.21
200|180 to 230|200 == 36.06
200|180 to 234|190 == 35.44

This Algorithm would pick:

205|200 to 230|200 == 25.00
220|210 to 207|190 == 23.85
200|220 to 210|200 == 22.36
200|180 to 234|190 == 35.44

The Algorithm would pick these numbers as they would be the group that would have the littlest variance between the distance. Conditions:

1. A Coordinate may only be used ones from each list
2. If List 1 or List2 is larger than it still only uses each coordinate once, but it tries to get the smallest distance variance and does nothing with the unused coordinates.

P.S. I've looked at the Hungarian algorithm and it seems like it will sort of do the job, but not exactly how I was expecting. The Hungarian algorithm will only try and make the least distance from all the coordinates, which can mean the smallest variance, but not every time as variance is more important here then least distance optimization.

I will have an array of List1, List2, and then the distances:

Distance[List1_item_0][List2_item_0] = 5;
Distance[List1_item_0][List2_item_1] = 10.20;
Distance[List1_item_0][List2_item_2] = 25.00;
Distance[List1_item_0][List2_item_3] = 30.68;

Distance[List1_item_1][List2_item_0] = 14.14;
Distance[List1_item_1][List2_item_1] = 23.85;
Distance[List1_item_1][List2_item_2] = 14.14;
Distance[List1_item_1][List2_item_3] = 24.41;

Distance[List1_item_2][List2_item_0] = 22.36;
Distance[List1_item_2][List2_item_1] = 30.81;
Distance[List1_item_2][List2_item_2] = 36.06;
Distance[List1_item_2][List2_item_3] = 45.34;

Distance[List1_item_3][List2_item_0] = 22.36;
Distance[List1_item_3][List2_item_1] = 12.21;
Distance[List1_item_3][List2_item_2] = 36.06;
Distance[List1_item_3][List2_item_3] = 35.44;

From the Distance['List1_item_#] I would need to pick a distance. Once that distance is picked the [List2_item_#] CANNOT be picked by a different [List1_item_#]. The distances picked for each [List1_item_#] element would need to be picked in a way that the variance between them all is minimal. So distance for each [List1_item_#] should be as close as possible to each other without reusing a [List2_item_#] more than once.

• Any algorithm? There's a relatively simple brute force $O(N!)$ algorithm. ;) – edA-qa mort-ora-y May 26 '12 at 7:30
• Please specify formally what exactly the desired result is. It looks like you want a) a pairing of two coordinate lists that b) has minimal sample variance among all pairings. Is that correct? – Raphael May 26 '12 at 9:36
• I would have a function that takes List1 and List2 and finds the distance between them and stores in an array similar to the "Calculated Distance between Coords:" List and then the Algorithm would have to go through and select the best fit option from each section without re-using a coordinate from List 2. I've added more code to the bottom to hopefully clarify – Steven10172 May 26 '12 at 9:48
• To rephrase: please define your notion of "distance" rigorously (in a general way, not by example). I don't understand the second part of your comment. – Raphael May 26 '12 at 12:13
• The distance is just the distance formula for a 2D plain(a graph). The square Root of((x1-x2)^2 + (y1-y2)^2) – Steven10172 May 26 '12 at 16:35

So here is a rather simple approach to solve this problem. You know that there are $O(n^2)$ different distances that matter. You can characterize the solution of your problem by the smallest and the largest distance ($d_\min$,$d_\max$) between your matched points. This gives you a set of $O(n^4)$ candidates.
So suppose you want to test, if there exists a matching where all distances are between $d_\min$ and $d_\max$. In other words, you want to solve the decision problem. This can be modeled as a perfect matching in a bipartite graph. Let $(u_1,\ldots,u_n)$ be the points in the first list and $(v_1,\ldots,v_n)$ be the points in the second list. Consider the bipartite graph that has an edge $(u_i,v_j)$ if and only if the distance between $u_i$ and $v_j$ is contained inside $[d_\min,d_\max]$. If this graph has a perfect matching, then there is an point-to-point assignment for the given distance constraints. Such a test can be done by the Hopcroft-Kahn algorithm, which needs $O(n^{2.5})$. A slightly faster solution can be achieved with fast matrix multiplication.
So you are left with trying out the candidates. This gives a $O(n^{6.5})$ algorithm. You can save a bit of running time by trying out all $d_\min$ values but then do a binary search for each $d_\max$ value. Now you have to solve only $O(n^2 \log n)$ decision problems (you also have to sort all distances, which is dominated by the overall running time) and hence the running time is only $O(n^{4.5}\log n)$.


text:
Professor sent the following data to his students: Full Grade: 25, Max. grade: 22.5, Mean: 19.9, Median: 20

Assuming the number of students is n. Is it possible to calculate the minimum grade from the given data only?

-
PS: you may know some of other students' grades. For example you heard that student x1 got 21, another student x2 got 18 and so on .. but you don't know all the students' grades of course –  Osama Gamal Jan 9 '12 at 11:27
What does "full grade" mean? –  Dan Brumleve Jan 9 '12 at 11:29
@Dan Probably "Full Grade" is the maximum grade you can get in the exam. For instance there are 5 questions 5 points each. –  marvinthemartian Jan 9 '12 at 11:36
@marvinthemartian, is that information relevant? –  Dan Brumleve Jan 9 '12 at 11:38
@Dan Frankly, I do not think it is. But I do not know the answer yet, so maybe. –  marvinthemartian Jan 9 '12 at 11:41

The answer is no. Let us look for an easier example:

Assume $n=5$, our students are called "A","B","C","D","E" and the grades are given by:

\begin{array}{c|c|c|c|c} A&B&C&D&E\ \newline 2&1&1&1&0 \end{array}

Clearly Maximum, Median and Mean are given by {2,1,1}. But the dataset

\begin{array}{c|c|c|c|c} A&B&C&D&E\ \newline 2&1&1&1/2&1/2 \end{array}

Also has the same Mean, Median and Maximum. You can always do this by using a convex combination of the last two values as long as they stay below the median. They will not affect the median, nor the mean or the maximal element but they will change the minimal grade given.

Edit: Now with this knowledge we can come back to your question and easily construct a counterexample flor $n=5$:

\begin{array}{c|c|c|c|c} A&B&C&D&E\ \newline 22.5&20&20&20&17 \end{array}

\begin{array}{c|c|c|c|c} A&B&C&D&E\ \newline 22.5&20&20&19&18 \end{array}

Those do both fit to your data. For higher $n$ you can pad with the mean $19.9$ on the left and right side of the median (odd $n$). For even $n$ there is a similar counterexample. For $n \in \{3,4\}$ refer to the answer given by tom.

-

I don't believe so, not for general n at least. We can for some isolated cases:

For $n = 2$, the problem simply doesn't work

For $n = 3$, we need one student to get 22.5, another student to get 20, and the other to get $s_3$ so that:

$$\frac{22.5+20+s_3}{3}=19.9$$ Which works out for $s_3=17.2$, the minimum grade

For $n=4$, lets say we have 4 students with 4 grades $s_1 \geq s_2\geq s_3\geq s_4$. We know then that $s_1=22.5$, that: $$\frac{s_2+s_3}{2}=20$$

and $$\frac{22.5+s_2+s_3+s_4}{4}=19.9$$ We can then solve this for $s_4$ using the fact that $s_2+s_3=40$ to get $s_4=17.1$.

However, for $n=5$, we run into difficulties. We know (using the same system of notation) that $s_1=22.5$, and that $s_3=20$, but beyond that, the fact that

$$\frac{22.5+s_2+20+s_4+s_5}{5}=19.9$$

Will never allow us to say any more about $s_5$. Indeed, this is true for any $n\geq5$ (is this clear?).

-
Note that you are searching for integer numbers (for simplification since grades can only be x.0 or x.5) and note that s_2 > s_4 > s_5 –  Osama Gamal Jan 9 '12 at 12:17


text:
# Locally Residual Currents and Dolbeault Cohomology on Projective Manifolds

 COMPLEX ALGEBRAIC GEOMETRY Topic: Locally Residual Currents and Dolbeault Cohomology on Projective Manifolds Speaker: Bruno Fabre Affiliation: Stokholm University and Member, School of Mathematics Date: Wednesday, November 1 Time/Room: 1:00pm - 2:00pm/S-101

First we define, for any analytic manifold $X$ of dimension $n$, locally residual currents; $C^{q,p}$ denotes the sheaf of locally residual currents of bidegree $(q,p)$. Then, we have a fundamental resolution of the sheaf of holomorphic $q-$forms $0\to \Omega^q\to C^{q,0}\to C^{q,1}\to \dots,$ where the arrows $C^{q,i}\to C^{q,i+1}$ are given by $\overline\partial$. The situation is then the following: we assume that $X$ is irreducible projective in the projective space $P^N$, and let be given $n-p$ hyperplanes in $P^N$ intersecting properly on $X$. For a domain $U^*$ of the grassmannian $G(N-n+p,N)$, we define a domain $U\subset X$ as $\cup_{t\in U^*}{(H_t\cap X)}$. Then we have the following: {\bf Theorem.} {The cohomology $H^j(U,\Omega^q)$ for \$j


text:
A circular coil of radius 8.0 cm and 20 turns is rotated about its vertical diameter
Question:

A circular coil of radius $8.0 \mathrm{~cm}$ and 20 turns is rotated about its vertical diameter with an angular speed of 50 rad $\mathrm{s}^{-1}$ in a uniform horizontal magnetic field of magnitude $3.0 \times 10^{-2} \mathrm{~T}$. Obtain the maximum and average emf induced in the coil. If the coil forms a closed loop of resistance $10 \Omega$, calculate the maximum value of current in the coil. Calculate the average power loss due to Joule heating. Where does this power come from?

Solution:

Max induced emf = 0.603 V

Average induced emf = 0 V

Max current in the coil = 0.0603 A

Average power loss = 0.018 W

(Power comes from the external rotor)

Radius of the circular coil, r = 8 cm = 0.08 m

Area of the coil, $A=\pi r^{2}=\pi \times(0.08)^{2} \mathrm{~m}^{2}$

Number of turns on the coil, N = 20

Angular speed, ω = 50 rad/s

Magnetic field strength, B = 3 × 10−2 T

Resistance of the loop, R = 10 Ω

Maximum induced emf is given as:

e = Nω AB

= 20 × 50 × π × (0.08)2 × 3 × 10−2

= 0.603 V

The maximum emf induced in the coil is 0.603 V.

Over a full cycle, the average emf induced in the coil is zero.

Maximum current is given as:

$I=\frac{e}{R}$

$=\frac{0.603}{10}=0.0603 \mathrm{~A}$

Average power loss due to joule heating:

$P=\frac{e I}{2}$

$=\frac{0.603 \times 0.0603}{2}=0.018 \mathrm{~W}$

The current induced in the coil produces a torque opposing the rotation of the coil. The rotor is an external agent. It must supply a torque to counter this torque in order to keep the coil rotating uniformly. Hence, dissipated power comes from the external rotor.


text:
Technical note Open Access

Guidelines for the evaluation and combination of the assurance of external identities (AARC-G031)

AARC Consortium Partners; AppInt members

DataCite XML Export

<?xml version='1.0' encoding='utf-8'?>
<identifier identifierType="DOI">10.5281/zenodo.1308682</identifier>
<creators>
<creator>
<creatorName>AARC Consortium Partners</creatorName>
</creator>
<creator>
<creatorName>AppInt members</creatorName>
</creator>
</creators>
<titles>
<title>Guidelines for the evaluation and combination of the assurance of external identities (AARC-G031)</title>
</titles>
<publisher>Zenodo</publisher>
<publicationYear>2018</publicationYear>
<subjects>
<subject>assurance</subject>
<subject>identity</subject>
<subject>infrastructures</subject>
<subject>AARC</subject>
</subjects>
<dates>
<date dateType="Issued">2018-05-18</date>
</dates>
<language>en</language>
<resourceType resourceTypeGeneral="Text">Technical note</resourceType>
<alternateIdentifiers>
<alternateIdentifier alternateIdentifierType="url">https://zenodo.org/record/1308682</alternateIdentifier>
</alternateIdentifiers>
<relatedIdentifiers>
<relatedIdentifier relatedIdentifierType="DOI" relationType="IsVersionOf">10.5281/zenodo.1308681</relatedIdentifier>
</relatedIdentifiers>
<rightsList>
<rights rightsURI="info:eu-repo/semantics/openAccess">Open Access</rights>
</rightsList>
<descriptions>
<description descriptionType="Abstract">
The Research Infrastructures (from now on just Infrastructures) that follow the AARC Blueprint Architecture&nbsp; set up their own AAI to grant access to their services. The AAI is typically based on a central IdP-SP proxy that act as a gateway for the Infrastructure services and resources. In order to assign an identity to the users of the research collaboration or the community they serve, Infrastructures rely on external Identity Providers and employ identity linking strategies.

The Infrastructures also define one or more assurance profiles, or a combination of assurance components, tailored to a specific risk assessment.

In order to assign an assurance profile to a user, the Infrastructure shall evaluate the assurance components of the linked identity, or identities, used to register to the Infrastructure&rsquo;s AAI or used during authentication at the infrastructure proxy.&nbsp;These guidelines provide a method to combine assurance information and to compensate for the lack of it.
</description>
</descriptions>
<fundingReferences>
<fundingReference>
<funderName>European Commission</funderName>
<funderIdentifier funderIdentifierType="Crossref Funder ID">10.13039/501100000780</funderIdentifier>
<awardNumber awardURI="info:eu-repo/grantAgreement/EC/H2020/730941/">730941</awardNumber>
<awardTitle>Authentication and Authorisation For Research and Collaboration</awardTitle>
</fundingReference>
</fundingReferences>
</resource>

14
13
views


text:
# 1 Credentials

## 1.1 Auto authentication

You need to have a service account credentials to authenticate with Google Cloud Storage API. The credentials determines which data sources are accessable to you. Please follow the instructions on Google Authentication to create your credentials file and download it to your local machine(Note that it can be done in the Cloud Console). The package will search for the credentials file from the environment variable GOOGLE_APPLICATION_CREDENTIALS when it is loaded. If it fails to find the credentials, it will look for the environment variable GCS_AUTH_FILE instead. If both environment variables are empty, you will only be able to access public data. If you set the environment variables after the package is loaded, you can rerun the auto authentication by gcs_cloud_auth().

## 1.2 Manual authentication

The function gcs_cloud_auth provides two ways to authenticate with Google Cloud. When you have a service account credentials, you can authenticate with Google Cloud by calling gcs_cloud_auth(credentials_file_path). The second method is to get credentials from Cloud SDK. The package is able to interact with the command-line tool gcloud. Once the account has been set in the gcloud program, the package can be authenticated by gcs_cloud_auth(gcloud = TRUE). By default, the package will use the first account in gcloud to authenticate with Google. If there are multiple accounts in gcloud, you can switch the account by gcs_cloud_auth(gcloud = TRUE, email = "your email address").

## 1.3 Anouymous access

Not all the cloud buckets require a credentials to access. You can read public data without authenticating with Google. By default, if the package fails to find the credentials from the environment variables, it will use anouymous access method to query data from google cloud. Otherwise, you can switch to the anouymous mode by calling gcs_cloud_auth(json_file = NULL).

Once the credentials is set, you can check your token and authenticate type via:

gcs_get_cloud_auth()
#> Token:               NULL
#> Billing project ID:  NULL
#> Auth source:         JSON file

# 2 Manually create connections

Creating a connection to a file in a bucket is simple, you can simply provide an URL to gcs_connection. Below is an example to create a read connection to a public dataset on Google Cloud Platform.

## equivalent:
## file <- "genomics-public-data/NA12878.chr20.sample.DeepVariant-0.7.2.vcf"
file <- "gs://genomics-public-data/NA12878.chr20.sample.DeepVariant-0.7.2.vcf"
con <- gcs_connection(description = file, open = "r")
#> [1] "##fileformat=VCFv4.2"
#> [2] "##FILTER=<ID=PASS,Description=\"All filters passed\">"
close(con)

Note that you do not need a credentials for accessing the public data. the character “r” in the parameter open is an abbreviation of read, please see ?gcs_connection for more details.

It is also possible to specify file and bucket name separately. For example:

file_name <- "NA12878.chr20.sample.DeepVariant-0.7.2.vcf"
bucket_name <- "genomics-public-data"
con <- gcs_connection(
description = file_name, open = "r", bucket = bucket_name
)
#> [1] "##fileformat=VCFv4.2"
#> [2] "##FILTER=<ID=PASS,Description=\"All filters passed\">"
close(con)

The above code can create the same connection as the previous example. Note that you cannot provide both URI and bucket name to gcs_connection.

For the write connection, it can be made by specifying an appropriate open mode in the gcs_connection function. Please note that due to the limitation of the Google Cloud Storage, the write connection is not seekable, which means you cannot use the seek function to

navigate through the file. When the write connection is created. It always starts in the beginning of the file. If there exists a file with the same name, the old file will be deleted. After the write connection is closed, the file will become immutable and no further change on the file can be made.

# 3 create connections from the file manager

Besides manually creating a connection, the package provides a simple and convinent S4 class to manage files. You can list all files in a bucket/folder by

## These are equivalent
## x <- gcs_dir("gs://genomics-public-data/clinvar/")
## x <- gcs_dir("genomics-public-data/clinvar/")

x <- gcs_dir("gs://genomics-public-data/clinvar/")
x
#> 4 items in the folder genomics-public-data/clinvar/:
#> --------------------
#>                     Name   Size
#> 2      disease_names.txt  2.5MB
#> 3    variant_summary.txt 89.3MB
#> 4 variant_summary.txt.gz  8.3MB
#> --------------------
#> Total Size :  99.9MB

Note that for listing files in a bucket, the trailing slash does not make any differences. However, if you want to list files in a folder inside a bucket, it is recommended to explicitly add a / at the end. The trailing slash is not mandatory, but if no trailing slash presents, the package need one extra communication with the cloud to determine whether the path is a file or a folder, which can double your time cost.

In fact, there is no hierarchical structure in a bucket, all files are in the same level. By using the slash delimiter, the cloud makes the files appear as though they are stored in folders. Though the cloud does not have any restriction on the use of / in the file name, a good practice is to not use / at the end of a file name for it can cause unnecessary confusion.

Once obtaining a list of files, you can changes your current directory or view the detail of a file through $ or [[ operator ## equivalent: x$README.txt
myfile
#> Bucket: genomics-public-data
#> Size:   227B
#> Type:   text/plain
#> Billing project:

You can also use .. to go to the parent folder, ~ to go to the bucket root.

## equivalent: myfile$.. myfile[[".."]] #> 4 items in the folder genomics-public-data/clinvar/: #> -------------------- #> Name Size #> 1 README.txt 227B #> 2 disease_names.txt 2.5MB #> 3 variant_summary.txt 89.3MB #> 4 variant_summary.txt.gz 8.3MB #> -------------------- #> Total Size : 99.9MB ## myfile$~
myfile[["~"]]
#> 17 items in the bucket genomics-public-data:
#> --------------------
#>                                          Name   Size
#> 1  NA12878.chr20.sample.DeepVariant-0.7.2.vcf  7.2KB
#> 2                    NA12878.chr20.sample.bam 55.8KB
#> 4                       1000-genomes-phase-3/      *
#> 5                               1000-genomes/      *
#> 6                                    clinvar/      *
#> 7                               cwl-examples/      *
#> 8                     ftp-trace.ncbi.nih.gov/      *
#> 9                              gatk-examples/      *
#> 11                          platinum-genomes/      *
#> 12                             precision-fda/      *
#> 13                                references/      *
#> 14                                 resources/      *
#> 15           simons-genome-diversity-project/      *
#> 16                                 test-data/      *
#> 17                                      ucsc/      *
#> --------------------
#> Total Size :  63.4KB

The connection can be made by

## Equivalent: gcs_connection(myfile)
con <- myfile$get_connection(open = "r") con #> A connection with #> description "gs://genomics-public-data/clinvar/README.txt" #> class "google cloud storage" #> mode "r" #> text "text" #> opened "opened" #> can read "yes" #> can write "no" close(con) Note that you can pass a file object to the function gcs_connection. The function gcs_cp supports both file and folder objects. You can query file info, copy, delete files through via the file manager ## Get file name myfile$file_name

## copy file
## For the destination, you can specify a path to the file,
## or a path to a folder.
destination <-tempdir()
myfile$copy_to(destination) file.exists(file.path(destination,myfile$file_name))
#> [1] TRUE

## Delete file, the function is excutable
## only when you have the right to delete the file.
## Use quiet = TRUE to suppress the confirmation before deleting the file.
# x$README.txt$delete(quiet = FALSE)

Note that you cannot delete a folder since beforementioned file hierarchy issue. Once all files in a folder has been deleted, the folder will be removed.

# 4 Requester pays

Some buckets have requester pays enabled, which means you are responsible for the cost of accessing the data in the bucket. Therefore, you must have a valid billing project for reading the data in the bucket. By default, if you use JSON file to authenticate with Google Cloud, the billing project is the project listed in the JSON file, which is the project that you use to generate the JSON file. If you use gcloud, the billing project is the default project in your config file. You can view and change the default billing project via

gcs_get_billing_project()
#> character(0)
gcs_set_billing_project("your project ID")

For accessing the data in the bucket, you also need to pass the argument billing_project = TRUE to the gcs functions that you want to use. For example, if uri is a path to a file in a requester pays bucket, you can view its information via gcs_dir(uri, billing_project = TRUE). Please keep in mind that you will get charged if you send a billing project to a bucket which do not have requester pays enabled. Therefore, the default behavior of all gcs functions is to access the bucket without a billing project. If you want your billing project being involved in every gcs function, you can alter this setting by

gcs_set_requester_pays(TRUE)
gcs_get_requester_pays()
#> [1] TRUE

# 5 Buffer size

For reducing the number of network requests and speeding up the performance of the connection, there is a buffer associated with each connection. The default size is 1Mb for a buffer. You can set or get the buffer size via gcs_read_buff, gcs_write_buff, gcs_get_read_buff and gcs_get_write_buff functions:

gcs_get_read_buff()
#> [1] 1048576
gcs_get_write_buff()
#> [1] 1048576

Please note the minimum buffer size for a write connection is 256 Kb. Creating a connection with small buffer size may impact the performance.


text:
# A Bayesian neural network predicts the dissolution of compact planetary systems

Paper authors: Miles Cranmer, Daniel Tamayo, Hanno Rein, Peter Battaglia, Samuel Hadden, Philip J. Armitage, Shirley Ho, David N. Spergel

Three planets dance around a star in the vacuum of space. At each moment, they exert a gravitational pull on one another, obeying a simple rule to meticulous precision.

Though elementary, this system produces very complex patterns. Over long timescales it becomes impossible to predict in detail. This represents a variant of the three-body problem, the prototypical example of a chaotic system. For a broad range of planetary systems, shifting one planet by a centimeter could maintain the system’s stability for the remainder of its star’s lifetime, or result in an early ejection of its neighbor.

Such phenomena—where incredible complexity emerges from simple systems—remains what I consider the most beautiful aspect of all physics. This complexity arranges our universe as a sort of mysterious architect—in our case, setting up a chain of collisions, assembling the Earth from smaller bodies.

Can we predict what these chaotic systems will do far in the future? For an exoplanet system, what necessary ingredients in an orbital configuration produce stability? What systems go unstable and experience a collision or ejection, and at what time will this occur? Being able to answer these questions will help improve our understanding of planet formation, and help constrain the parameters of observed exoplanet systems.

Luckily, there exist limits to the chaotic nature of compact planetary systems (Hussain & Tamayo, 2020). For each system, a particular range of times determines when it could go unstable, and it should theoretically be possible to constrain this range. Consider this: though we cannot predict a single toss of a fair coin, we can still predict the accumulation of tosses. Though we cannot predict every single gravitational interaction between planets, we should be able to predict the accumulation of many planetary interactions required to reach collision trajectories.

## Problem

However, despite over three centuries of effort, no closed-form solutions exist for predicting the times over which a general planetary configuration may become unstable. One can simulate these dynamical systems, but the price of 10 CPU hours per initialization means that numerically exploring stable parameter regimes using $$\sim 10^6$$ different systems remains computationally intractable.

In recent years, significant theoretical work (e.g., Sessin & Ferraz-Mello, 1984; Cincotta et al., 2003; Deck et al., 2013; Hadden, 2019) has motivated metrics for instability in planetary systems. These metrics find use in simple machine learning models to compute the probability a system will remain stable a set time, using a simulated training dataset: Tamayo et al. (2020).

In our new paper, we learn instability metrics from scratch, using only the raw orbital parameters of a planetary system. Our model can accurately predict not only if, but also when a compact planetary system with three or more planets will go unstable. Despite lacking embedded domain knowledge, our model’s learned metrics improve predictive accuracy. It also shows robust generalization to a 5-planet dataset, even though we trained it only on 3-planet systems in a different part of parameter space.

## Inductive Biases and Bayesian Deep Learning

How did we get this to work? Early on, we encountered significant difficulty tackling this problem with models in the standard machine learning toolkit such as LSTMs, Gaussian Processes, and CNNs. Part of the issue is due to the existence of “resonances” in planetary systems: these points in parameter space allow tiny shifts in an input parameter to change the result by orders of magnitude. Such sharp boundaries do not typically exist in common machine learning datasets.

In deep learning, the “inductive bias” of a model often determines its success. The inductive bias can be loosely defined as the algorithmic motif of a neural network architecture. A convolutional neural network convolves filters over the pixels of an image. This gives us translational equivariance, and rough algorithmic similarity to a hand-engineered computer vision model, which might explain why CNNs remain the champion of computer vision models. Likewise, a graph neural network learns messages to pass between nodes on a graph. This inductive bias explains why graph nets dominate N-body problems: they show similar algorithmic structure to the physical model!

...common patterns in neural networks correspond to very natural, simple functional programs. These patterns are building blocks which can be combined together into larger networks. Like the building blocks, these combinations are functional programs, with chunks of neural network throughout. The functional program provides high level structure, while the chunks are flexible pieces that learn to perform the actual task within the framework provided by the functional program. These combinations of building blocks can do really, really remarkable things.

—Chris Olah on “A New Kind of Programming”

Our model has two essential inductive biases motivated by the problem:

Architecture. The first is in our architecture. Our model has a similar functional structure to successful ML models which use theoretically-derived metrics (spock.FeatureClassifier), but with added flexibility: hand-engineered functions are replaced with neural networks.

First, we record six orbital elements for each of three planets over 10,000 orbits, along with their mass.

A neural network takes these twenty-one parameters, and passes them through a learned mapping, converting them to another vector, for each time step. One can consider this essentially a learned coordinate transform.

Next, we do a non-standard pooling operation of these features over the time axis: we compute both the mean and variance of these learned coordinates over time. Common metrics used in dynamics motivated this inductive bias: these metrics are often in the form of means and variances of instantaneous metrics over time.

We then use these means and variances in a second neural network to predict instability time.

We train both neural networks at the same time with a single backpropagation. Accordingly, this means the metrics learned by the first network learns optimize the predictive power of the second network.

Parametrization.

The second inductive bias is in our parametrization. Because we deal with chaotic systems, we need to predict a distribution of instability times, not one point. We use Bayesian deep learning, and predict parameters of a lognormal distribution over instability time (the distribution motivated by Hussain & Tamayo, 2020), optimizing the log-likelihood of our simulation dataset.

Bayesian deep learning allows us to marginalize the parameters of our neural networks, giving us the ability to account for uncertainty due to extrapolation outside the training set:

We use the Multimodal version of Stochastic Weight Averaging Gaussian (MultiSWAG; Wilson & Izmailov, 2020), a Bayesian neural network which beautifully exploits the connection between stochastic gradient descent and MCMC sampling (see Mingard et al., 2020 and Mandt et al., 2017). This framework models a distribution over the neural network’s weights with a low-rank Gaussian mixture model. This algorithm works as follows:

1. Train the model with stochastic gradient descent until the parameters settle into a local minimum of the weight posterior.
2. Increase the learning rate and continue training. This causes the optimizer to take a random walk in parameter space near the local minimum, which is assumed to look like a high-dimensional Gaussian.
3. Accumulate the average parameters along this random walk and a low-rank approximation of the covariance matrix.
4. The average parameters not only provide better generalization performance (stochastic weight averaging or SWA; Izmailov et al., 2018), but we have additionally fit a Gaussian to a mode of the parameter posterior. We can thus sample weights from this Gaussian to marginalize over parameters. This is SWAG (Maddox et al., 2019).
5. The next step is to repeat this process from a different random initialization of the parameters. This will find another mode of the parameter posterior.
6. Fit 30 different modes of the parameter space. We can then sample weights from multiple modes of the parameter posterior, which gives us a more rigorous uncertainty estimate. This is MultiSWAG (Wilson & Izmailov, 2020).

Given this distribution of parameters, we can then make forward passes through our model to compute samples of an approximated posterior over instability time for a given system.

## Results and Generalization

We train on systems with three planets orbiting a central star. Each is mapped to a short time series of 21 features recorded at 100 time steps, with a corresponding instability time. Our training dataset is dominated by resonant systems. We test our model on an unseen fraction of this resonant dataset, and a non-resonant dataset. Finally, we also test on systems with five planets in circular orbits, a vastly different section of parameter space compared to our training data.

On the three planet train/test datasets, our model is two orders of magnitude more accurate than existing analytic estimators, while also reducing the bias of Tamayo et al. (2020) by a factor of three. Furthermore, all our estimates come with error bars, which allows one to detect sections of parameter space where the model’s predictions are uncertain.

One can adapt our model to systems with more than three planets: (1) estimate the instability time for each trio of adjacent planets in the system, then (2) consider only the most unstable group (further details given in paper). Our model performs with this strategy on the 5-planet dataset, surpassing even models designed for that particular dataset. The remarkable thing about this is that these systems are completely unlike those trained on, yet this model still performs accurately.

## API for Exoplanet Research

Our model is publicly available in the python package spock for efficiently computing instability estimates for planetary systems. Simulations which are parametrized with the rebound framework can be passed to the various functions to sample from our estimated posterior over instability time. An example is given below, which can be ran within our interactive online notebook here.

Which gives us:

meaning that our model’s median estimate is that systems with $$5\times 10^{-5}$$ planetary mass relative to their star experience an instability at $$10^{6.38}$$ orbits, $$4\times10^{-5}$$ at $$10^{7.13}$$ orbits, and so on.

## Conclusion

We have described a probabilistic machine learning model—a Bayesian neural network—that can accurately predict a distribution over possible instability times for a compact multi-planet exoplanet system. Our model learns instability metrics from scratch, and demonstrates large improvements in predictive accuracy to existing analytic and ML-based methods.

Our model gives a computational speedup over N-body integrations of up to $$10^5$$ times. This enables a broad range of applications: using stability constraints to rule out unphysical configurations and constrain orbital parameters, and for developing efficient terrestrial planet formation models.

Future work will also look at extracting analytic forms of this model from the perspective of existing dynamics theory, using methods from Cranmer et al., 2020.

#### Acknowledgements

Thanks to Dan Tamayo for helping me with this blog post, and Hanno Rein for creating the nice-looking gifs of some of our planetary systems used in training! Additional acknowledgements and references are given in the paper.

1. Book V, Ch. 7 as quoted in Arthur Koestler, The Sleepwalkers (1959)

Categories:

Updated:


text:
# A 10*g mass of carbon dioxide is obtained from the combustion of a 70.2*g mass of octane. What is the apparent yield?

May 2, 2017

We interrogate the stoichiometric combustion equation..............and the yield is under 5%.

#### Explanation:

${C}_{8} {H}_{18} \left(l\right) + \frac{25}{2} {O}_{2} \left(g\right) \rightarrow 8 C {O}_{2} \left(g\right) + 9 {H}_{2} O \left(l\right)$

$\text{Moles of octane} = \frac{70.2 \cdot g}{114.23 \cdot g \cdot m o {l}^{-} 1} = 0.614 \cdot m o l$

"Yield of carbon dioxide"=(10.0*gxx100%)/(8xx0.614*molxx44.01*g*mol^-1)=??%

Are sure you've copied down the appropriate data? The yield seems a little low.


text:
CaltechAUTHORS
A Caltech Library Service

# Astrophysical Observations of a Dark Matter-Baryon Fifth Force

Gresham, Moira I. and Lee, Vincent S. H. and Zurek, Kathryn M. (2022) Astrophysical Observations of a Dark Matter-Baryon Fifth Force. . (Unpublished) https://resolver.caltech.edu/CaltechAUTHORS:20220922-221813472

Full text is not posted in this repository. Consult Related URLs below.

Use this Persistent URL to link to this item: https://resolver.caltech.edu/CaltechAUTHORS:20220922-221813472

## Abstract

We consider the effects of an attractive, long-range Yukawa interaction between baryons and dark matter (DM), focusing in particular on temperature and pulsar timing observations of neutron stars (NSs). We show that such a fifth force, with strength modestly stronger than gravity at ranges greater than tens of kilometers (corresponding to mediator masses less than $10^{-11} \text{eV}$), can dramatically enhance dark matter kinetic heating, capture, and pulsar timing Doppler shifts relative to gravity plus short range interactions alone. Using the coldest observed NS and pulsar timing array (PTA) data, we derive limits on fifth force strength over a DM mass range spanning light dark matter up to order solar mass composite DM objects. We also consider an indirect limit by combining bullet cluster limits on the DM self-interaction with weak equivalence principle test limits on baryonic self-interactions. We find the combined indirect limits are moderately stronger than kinetic heating and PTA limits, except when considering a DM subcomponent.

Item Type:Report or Paper (Discussion Paper)
Related URLs:
URLURL TypeDescription
http://arxiv.org/abs/2209.03963arXivDiscussion Paper
ORCID:
AuthorORCID
Zurek, Kathryn M.0000-0002-2629-337X
Additional Information:Some of this work was performed at the Aspen Center for Physics, which is supported by National Science Foundation grant PHY-1607611. MG's work was also supported by the National Science Foundation under Grant No. 1719780. The work of VL and KZ is supported by the DoE under contract DE-SC0011632, and by a Simons Investigator award. This work is also supported by the Walker Burke Institute for Theoretical Physics
Group:Walter Burke Institute for Theoretical Physics
Funders:
Funding AgencyGrant Number
NSFPHY-1607611
NSFPHY-1719780
Department of Energy (DOE)DE-SC0011632
Simons FoundationUNSPECIFIED
Walter Burke Institute for Theoretical Physics, CaltechUNSPECIFIED
Other Numbering System:
Other Numbering System NameOther Numbering System ID
CALT-TH2022-032
Record Number:CaltechAUTHORS:20220922-221813472
Persistent URL:https://resolver.caltech.edu/CaltechAUTHORS:20220922-221813472
Usage Policy:No commercial reproduction, distribution, display or performance rights in this work are provided.
ID Code:117118
Collection:CaltechAUTHORS
Deposited By: Joy Painter
Deposited On:23 Sep 2022 16:07