RIES - Find Algebraic Equations, Given Their Solution  


First page . . . Back to page 3 . . . Forward to page 5 . . . Last page (page 6)


Semiserious Math Tricks

Formal Hypothesis

Some fairly serious maths has been done partly with the aid of RIES. For example, it was recently asked if there is a closed form for

SIGMAk=1..inf [ -1(k+1) ζ(2k) / 2(2k-1) ] = ζ(2)/2 - ζ(4)/23 + ζ(6)/25 - ...

where ζ() is the Riemann Zeta function. The series converges quickly and ries was used to find a guess for the answer:

$ ries 0.712688574959647755609169086586   Your target value: T = 0.712688574959647756 mrob.com/ries   x = sqrt(1/2) for x = T - 0.00558179 {44} x = e^-(1/3) for x = T + 0.00384274 {57} x = sqrt(5)/pi for x = T - 0.000926032 {60} [...] x = pi/(e^pi-1)-(1-pi/2) ('exact' match) {128} [...] --LHS-- --RHS-- -Total- max complexity: 67 62 129 dead-ends: 2785473 5271937 8057410 Time: 0.557 expressions: 187907 320749 508656 distinct: 95554 94028 189582 Memory: 14848KiB Total equations tested: 8984751512 (8.985e+09)

The answer is π/2 coth(π/2) - 1 = π/(e^π-1) + π/2 - 1, and can be proven reasonably easily using the series sum definition of the Zeta function, an identity (based on the calculus of residues) for the cotangent, and the simple identity coth x = i cot(ix).

Wild Guessing

This is ostensibly the primary purpose of ries: using some approximate measurement or calculation as the basis of a "wild guess" at an exact solution.

Here is an example: xkcd 356 presents an "infinite grid of resistors" problem that looks like it should have a closed-form solution, but with no partucularly obvious way to find it.

Matthew Beckler performed circuit simulations of a number of grids ranging in size from the minimal set of 7 resistors up to 80 thousand. As the size of the simulated grid grows, the answer gets closer to what it should be for an infinite grid. His last 4 answers were: ..., 0.7743, 0.7735, 0.7733, 0.7733. One might guess that the limit, and true answer to the resistor problem, is somewhere around 0.7732 or 0.7733. Let's tell ries to search around 0.77325, with a maximum error of 0.0001:

ries 0.77325 --max-match-distance 0.0001 -x   First match must be closer than 0.0001.   Your target value: T = 0.77325 mrob.com/ries   x+1/2 = 4/pi for x = 0.773239544735163 {74} (x+phi)^2 = 3+e for x = 0.773258931086369 {81} 1/x+1/3 = 4"/7 for x = 0.773249747663235 {89} ...

Thus the simplest "wild guess" answer seems to be 4/π-1/2 = 0.773239... ohms. As others eventually showed, that is indeed the answer.

However this was a pretty lucky guess. We could have guessed that the answer is within 0.001 of the final measurement 0.7733, and ries would have told us the answer was √π-1 = 0.772453... To someone making a wild guess, this appears at least as believable as 4/π-1/2, which illustrates why wild guessing with ries isn't actually all that useful.

Successive Refinement (Newton-Raphson Method)

Because ries uses derivatives to report how far an inequality deviates from an (exact) equality, you can use it to iterate Newton's Method. Suppose you know that the cube root of 3 starts with the digits 1.442, and want to find more digits. ries 1.442 yields the result:

x^3 = 3         for X = T + 0.00024957 {51}

To get a better approximation, add 1.442 and 0.00024957:

ries 1.44224957
(other answers not shown)
x^3 = 3         for x = T + 3.07408e-10 {51}

Then add 3.07408×10-10 (notice you have to add a zero):

ries 1.442249570307408
(other answers not shown)
x^3 = 3         for x = T + 2.22045e-16 {51}
 
(and so on...)

ries uses about 16 digits in its internal calculations, so this is about as precise as you can get. The actual value of the cube root of 3 (to 25 digits) is 1.4422495703074083823216383... Although this specific example is a case of extreme computational overkill, the same method can be used for things that cannot be computed directly, such as the value of x for which xx=10.

Forgotten Identities

If you're like most people who took Trigonometry in high school, you remember that there was something called "trigonometric identities", but nothing more. Maybe you remember that sine could be turned into cosine somehow, but that's about it.

With ries you can rediscover all the identities, and probably a few more you never knew existed. For this example we'll use a profile called "rad.ries":

# rad.ries: Use trigonometry functions in radians --trig-argument-scale 1 # radians -NLleEv # No log, ln, e, e^x or arbitrary roots

Using a calculator (or a command like ries -prad.ries 1 --eval-expression 1S) you can find out the sine of 1 radian, which is 0.841470984807897. Naturally, if you give ries this number, it will tell you:

ries -prad.ries 0.841470984807897 x = sin(1) for x = T - 4.44089e-16 {38}

We want to discover other ways to get the same value without using the sine function. To do this we simply tell ries that sin() is not allowed using the -NS option:

ries -prad.ries 0.841470984807897 -NS x/cos(1) = tan(1) for x = T - 4.44089e-16 {66}

So ries has told us that our number x (which we know to be the sine of 1) divided by the cosine of 1 is equal to the tangent of 1. Therefore sin(1)/cos(1) = tan(1). Going back to your calculator, you can verify that sin(x)/cos(x) = tan(x) for lots of values of x. This is our first trigonometric identity.

Let's find another one: while still using the target value 0.841470984807897, exclude the tangent function too:

ries -prad.ries 0.841470984807897 -NST x^2-1 = -(cos(1)^2) for x = T - 4.44089e-16 {78}

Move things around a bit with a little algebra, and this tells us that sin(1)2 + cos(1)2 = 1, which generalizes into another identity: sin2x+cos2x=1. (The square of a trig function is usually written "sin2x" rather than "sin(x)2" or "(sin(x))2" because the latter is a bit cluttered and the other might be confused with "sin(x2)").


First page . . . Back to page 3 . . . Forward to page 5 . . . Last page (page 6)



Contents: ries overview Benchmarks History   Stupid Math Tricks   Semiserious Math Tricks   Links and miscellaneous


Robert Munafo's home pages on HostMDS   © 1996-2015 Robert P. Munafo.   about   contact    mrob    mrob27    @mrob_27
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. Details here.
s.11