Jump to content

Recommended Posts

Posted

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.

Posted

from matlab:

 

>> format long

>> sin(10^40)

 

ans =

 

0.64678458842683

 

which isn't what you got. Don't know who's right though :)

Posted

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.

Posted

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.

Posted

"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

Posted

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.

Posted
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.

Posted

When I said 2pi, I should have said pi. I seem to be making a lot of mistakes this evening! But i still say my negative is correct.

  • 5 weeks later...
Posted

sigh.

 

Even when I type it into a calculator, I seem to get the answer wrong - not once, but twice. It's all great - seems to be the story of my life :)

Posted

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).

Posted

I might've somehow set it to degrees, but I can't remember. Nevermind, it's hardly like it's important.

  • 6 months later...
Posted

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

  • 2 weeks later...
Posted

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.

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.