Jump to content

problem: sin(10^40)


hamzah

Recommended Posts

I've been looking at the problem, and I can't really see a solution of the top of my head apart from just plugging it into Matlab/Mathematica. I've got a hunch that you could use the fact that 1/10^40 = 10^(-40) is such a small angle that you can use small angle approximation, but I'm probably totally wrong.

Link to comment
Share on other sites

Imagine a graph of sin(x). It's positive for 2pi radians, then negative for the next 2pi radians, then positive, etc.

When you go along the x axis to the point 10^40, the graph must just turn out to be below the axis there. The angle (x) isn't negative, but the sin(x) value is; like when you have sin 210 degrees = -0.5.

Link to comment
Share on other sites

Sin(10^40 - 2pi*10^39)

 

So pi has to be at least 40 digits accurate to have some result in the right direction.

 

A calculator only has pi up to 15 digits? so can't be done with a normal calculator.

 

maybe with a mathematical trick you can solve it on a normal calculator.

Link to comment
Share on other sites

"So pi has to be at least 40 digits accurate to have some result in the right direction."

 

He was not after accuracy he was after a method of solution.

 

Thus:

 

Find 10^40 mod 2pi, since sin(2pi+x) = sin x.

 

Thus:

 

-0.569633400953636327308034181573569 +- (1e-12)

 

To compute use windows scientific calculator

Link to comment
Share on other sites

wolfson said in post # :

Imagine a graph of sin(x). It's positive for 2pi radians, then negative for the next 2pi radians, then positive, etc.

 

I think you mean every pi radians there, not 2pi.

 

windows calculator (scientific mode) 'only' has pi up to 32 digit so you need an other method/program.

 

this accuracy is part of the solution method.

 

Indeed. I suspect that this isn't the most efficient method you can use. I think the correct answer is the one I quoted above, since I've now verified it with matlab and mathematica - both of which are very capable of producing numbers to arbritary precision.

Link to comment
Share on other sites

  • 5 weeks later...

Yes, I know. I wouldn't really expect a normal handheld calculator (apart from perhaps my TI-89) to be able to work it out.

 

My point is, I said above:

 

from matlab:

 

>> format long

>> sin(10^40)

 

ans =

 

0.64678458842683

 

and then proceeded to type it into mathematica and get the same answer (somehow).

Link to comment
Share on other sites

  • 6 months later...

For those interested: I kept the calculation accuracy of it high but added a pi that wasn't that accurate you can see that only at accuracy 41 we are getting close/stable.

with maple 8:

you get pi followed with the result of the calculation.

 

sin(10^40-2*p*10^39) with p=Pi > p:=evalf(Pi,70) accuracy=70

 

> p:=evalf(Pi,70);

> evalf(sin(10^40-2*evalf(p,70)*10^39),70);

p:=3.141592653589793238462643383279502884197169399375105820974944592307816

-0.5696334009536363273080341815742365755028674749735871234233590307534688

 

> p:=evalf(Pi,50);

> evalf(sin(10^40-2*evalf(p,50)*10^39),50);

 

p := 3.1415926535897932384626433832795028841971693993751

-0.56963340096320483302155351446748255175004957983385

 

> p:=evalf(Pi,46);

> evalf(sin(10^40-2*evalf(p,50)*10^39),50);

 

p := 3.141592653589793238462643383279502884197169399

-0.56963401755159324178758070546326680727163521628658

 

> p:=evalf(Pi,44);

> evalf(sin(10^40-2*evalf(p,50)*10^39),50);

 

p := 3.1415926535897932384626433832795028841971694

-0.56963237375352485248115648847294557616382230212022

 

> p:=evalf(Pi,43);

> evalf(sin(10^40-2*evalf(p,50)*10^39),50);

 

p := 3.141592653589793238462643383279502884197169

-0.57028971108410160238203260125675586427898889887725

 

> p:=evalf(Pi,42);

> evalf(sin(10^40-2*evalf(p,50)*10^39),50);

 

p := 3.14159265358979323846264338327950288419717

-0.56864568433037894515920937125020327441117069451661

 

> p:=evalf(Pi,41);

> evalf(sin(10^40-2*evalf(p,50)*10^39),50);

 

p := 3.1415926535897932384626433832795028841972

-0.51829708252841365579298072494084993238214196173488

 

> p:=evalf(Pi,40);

> evalf(sin(10^40-2*evalf(p,50)*10^39),50);

 

p := 3.141592653589793238462643383279502884197

-0.81041404149828340893644116133287541019985461015021

 

> p:=evalf(Pi,39);

> evalf(sin(10^40-2*evalf(p,50)*10^39),50);

 

p := 3.14159265358979323846264338327950288420

-0.94183316470675507802643727766602357848601285229868

 

> p:=evalf(Pi,37);

> evalf(sin(10^40-2*evalf(p,50)*10^39),50);

 

p := 3.141592653589793238462643383279502884

0.78071915409033291423119565202296953326898213238585

Link to comment
Share on other sites

  • 2 weeks later...

there appears to be two steps:

 

1) compute 10^40 mod 2pi to sufficient accuracy (say 15 significant digits). To do this, start with say 10 sig dig and compute, then keep increasing the sd until no change is observed in the value. there ought to be tables on the internet of the digits of pi which ought to help you. You need to use an arbitrary precision integer package such as probably the one in mathematica or another open source.

 

2) use an ordinary calculator to compute sin of the result.

Link to comment
Share on other sites

Create an account or sign in to comment

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

Create an account

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

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

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