Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   numerical computation contest (http://www.chiefdelphi.com/forums/showthread.php?t=110034)

Ether 14-12-2012 14:55

numerical computation contest
 
1 Attachment(s)

A diversion, for anyone so inclined.



Jon Stratis 14-12-2012 15:24

Re: numerical computation contest
 
Does the answer have to be completely numerical, or can it contain known variables/equations (for example, could I say pi/8 versus 0.392699..., or 2*sin (1) were either of those the actual answer. Disclaimer: I have done no math at this point, and I highly doubt that I randomly picked the answer :P)

Ether 14-12-2012 15:25

Re: numerical computation contest
 
Quote:

Originally Posted by Jon Stratis (Post 1201879)
Does the answer have to be completely numerical, or can it contain known variables/equations (for example, could I say pi/8 versus 0.392699..., or 2*sin (1) were either of those the actual answer. Disclaimer: I have done no math at this point, and I highly doubt that I randomly picked the answer :P)

Looking for a numerical answer, in decimal form. Winner is person who gets answer correct to the most decimal digits.

edit:
If you can find an exact explicit closed-form analytical solution using only add, subtract, multiply, divide, powers, roots, exponentiation, logarithms, trig functions, and inverse trig functions, you will be declared the winner.


k4mc 14-12-2012 15:45

Re: numerical computation contest
 
I believe the answer is 44.4984550191007992545541 feet

(although I used a "wolfram alpha method":) , not an analytic one to solve the equation)

Christopher149 14-12-2012 15:53

Re: numerical computation contest
 
Is this close?

h = (in ft)
44.49845501910079925455416001673359894996896435222 95612116880595546581686999560519753347236106529250 14422691969000110577445163659978002373921158891281 96107912233956035279094688973264141285038352833979 92808923081071616667853526325563707812597289771290 34979416624799668990733212350734392869697893501318 89111943559177977405431271912121416410363234025409 52753032492871047810149624788135594125012352228840 06058879524106347465534347539833791041297948729285 69084156937833895515653679687331260207084213606326 0

AGPapa 14-12-2012 16:24

Re: numerical computation contest
 
Quote:

Originally Posted by Christopher149 (Post 1201887)
Is this close?

h = (in ft)
44.49845501910079925455416001673359894996896435222 95612116880595546581686999560519753347236106529250 14422691969000110577445163659978002373921158891281 96107912233956035279094688973264141285038352833979 92808923081071616667853526325563707812597289771290 34979416624799668990733212350734392869697893501318 89111943559177977405431271912121416410363234025409 52753032492871047810149624788135594125012352228840 06058879524106347465534347539833791041297948729285 69084156937833895515653679687331260207084213606326 0

The arc is only one foot longer than the chord. How could the answer possibly be larger than one?

EDIT: Anyway, here is my work. SPOILERS!
/http://i.imgur.com/2IYR8.png

So my guess is zero. It's not exact, but close.

Ether 14-12-2012 16:32

Re: numerical computation contest
 
Quote:

Originally Posted by Christopher149 (Post 1201887)
Is this close?

h = (in ft)
44.49845501910079925455416001673359894996896435222 95612116880595546581686999560519753347236106529250 14422691969000110577445163659978002373921158891281 96107912233956035279094688973264141285038352833979 92808923081071616667853526325563707812597289771290 34979416624799668990733212350734392869697893501318 89111943559177977405431271912121416410363234025409 52753032492871047810149624788135594125012352228840 06058879524106347465534347539833791041297948729285 69084156937833895515653679687331260207084213606326 0

Close enough. Tell the folks how you did it.



Jon Stratis 14-12-2012 16:37

Re: numerical computation contest
 
Quote:

Originally Posted by AGPapa (Post 1201895)
The arc is only one foot longer than the chord. How could the answer possibly be larger than one?

Create a simple approximation. Imagine a point C that lies at the top of the line H. You can then create a triangle ABC, where length AB is known (5280 ft) and length BC = AC = 5281/2 = 2640.5.

We know that h bisects line AB - lets call the intersection between AB and h to be H. we know that the length AH = BH = 5280/2 = 2640.

So, now we know two sides to the right triangle AHC - AH and AC. Taking the square of the hypotenuse minus the square of one side gives us the square of the other side. In other words, 2640.5^2 - 2640^2 = h^2 (the pythagorean theorem).

So, in this extremely rough approximation, we get h = 51.383. Given that, it's not hard to imagine that Christopher's answer could be correct, to some number of decimal places.

AGPapa 14-12-2012 16:48

Re: numerical computation contest
 
Quote:

Originally Posted by Jon Stratis (Post 1201900)
Create a simple approximation. Imagine a point C that lies at the top of the line H. You can then create a triangle ABC, where length AB is known (5280 ft) and length BC = AC = 5281/2 = 2640.5.

We know that h bisects line AB - lets call the intersection between AB and h to be H. we know that the length AH = BH = 5280/2 = 2640.

So, now we know two sides to the right triangle AHC - AH and AC. Taking the square of the hypotenuse minus the square of one side gives us the square of the other side. In other words, 2640.5^2 - 2640^2 = h^2 (the pythagorean theorem).

So, in this extremely rough approximation, we get h = 51.383. Given that, it's not hard to imagine that Christopher's answer could be correct, to some number of decimal places.

Thanks!

Ether 14-12-2012 16:51

Re: numerical computation contest
 
Quote:

Originally Posted by Jon Stratis (Post 1201900)
it's not hard to imagine that Christopher's answer could be correct, to some number of decimal places.

498 decimal places :)

I checked them. They appear to be correct.



Christopher149 14-12-2012 16:56

Re: numerical computation contest
 
Quote:

Originally Posted by Ether (Post 1201897)
Close enough. Tell the folks how you did it.



Since this is a circular arc, I start with a circle. Based off of a diagram like this, I draw a triangle and take theta to be as is shown in that picture. From the right triangle, we know radius * sin(theta) = 5280 / 2. From the definition of arc length, we also know that radius * 2 * theta = 5281. We have two equations and two unknowns, so I substituted one into the other and let Mathematica determine theta. From theta, we easily get the radius. Next, we use this equation relating chord length and the height to the radius. Again, I let Mathematica handle the equation to a ridiculous number of decimal places.

Mathematica Code
Code:

Clear[t, h, r, c, a]
c = 5280
a = 5281
t = t /.
  FindRoot[a/(2 t) * Sin[t] == c/2, {t, 1.8},
  AccuracyGoal -> 100000, PrecisionGoal -> 100000,
  WorkingPrecision -> 500]
r = a/(2 t)
FindRoot[r == c^2/(8 h) + h/2, {h, 100}, AccuracyGoal -> 100000,
 PrecisionGoal -> 100000, WorkingPrecision -> 500]

EDIT: I can get more decimal places ... :)

BigJ 14-12-2012 16:57

Re: numerical computation contest
 
I was bored and tried to find a closed form by hand, it didn't work out by the time I refreshed it and it was over :p


Ether 14-12-2012 17:16

Re: numerical computation contest
 
Quote:

Originally Posted by Christopher149 (Post 1201908)
Mathematica Code
Code:

Clear[t, h, r, c, a]
c = 5280
a = 5281
t = t /.
  FindRoot[a/(2 t) * Sin[t] == c/2, {t, 1.8},
  AccuracyGoal -> 100000, PrecisionGoal -> 100000,
  WorkingPrecision -> 500]
r = a/(2 t)
FindRoot[r == c^2/(8 h) + h/2, {h, 100}, AccuracyGoal -> 100000,
 PrecisionGoal -> 100000, WorkingPrecision -> 500]


Here's Maxima code:
Code:

fpprec: 600$
L:5280$ eps:1$
y: x/sin(x)-(L+eps)/L$
a: bf_find_root(y,x,1/1000,4/100);
h: (L/2)*(1-cos(a))/sin(a);

Quote:

EDIT: I can get more decimal places ... :)
So can I :)
Code:

Maxima 5.27.0 http://maxima.sourceforge.net
using Lisp GNU Common Lisp (GCL) GCL 2.6.8 (a.k.a. GCL)
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.

(%i1) fpprec: 600$
L:5280$ eps:1$
y: x/sin(x)-(L+eps)/L$
a: bf_find_root(y,x,1/1000,4/100);
h: (L/2)*(1-cos(a))/sin(a);

4.4498455019100799254554160016733598949968964352229561211688059554658168\
699956051975334723610652925014422691969000110577445163659978002373921158891281\
961079122339560352790946889732641412850383528339799280892308107161666785352632\
556370781259728977129034979416624799668990733212350734392869697893501318891119\
435591779774054312719121214164103632340254095275303249287104781014962478813559\
412501235222884006058879524106347465534347539833791041297948729285690841569378\
338955156536796873312602070842136063260258182278201500825791387457906343098887\
9258590281352783951539842610751922916884732140489864979154825b1
(%i7)


Christopher149 14-12-2012 17:28

Re: numerical computation contest
 
Quote:

Originally Posted by Ether (Post 1201911)
Code:

4.4498455019100799254554160016733598949968964352229561211688059554658168\
699956051975334723610652925014422691969000110577445163659978002373921158891281\
961079122339560352790946889732641412850383528339799280892308107161666785352632\
556370781259728977129034979416624799668990733212350734392869697893501318891119\
435591779774054312719121214164103632340254095275303249287104781014962478813559\
412501235222884006058879524106347465534347539833791041297948729285690841569378\
338955156536796873312602070842136063260258182278201500825791387457906343098887\
9258590281352783951539842610751922916884732140489864979154825b1
(%i7)


4.4498 ... I thought it was 44.498 ... ;)

Ether 14-12-2012 17:53

Re: numerical computation contest
 
Quote:

Originally Posted by Christopher149 (Post 1201913)
4.4498 ... I thought it was 44.498 ... ;)

Um... The exponent is at the end of those 600 digits :)




All times are GMT -5. The time now is 02:12.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi