If I want to find the value of sin(60 degrees), I can calculate from the exact value
and calculate 100 decimal places using
const decimalplaces = 100
const numofbits = Int(ceil(log(2,10) * decimalplaces))
setprecision(numofbits)
result = sqrt(big(3))/big(2)
println("sin(60 deg) = $result")
with output
sin(60 deg) = 0.86602540378443864676372317075293618347140262690519031402790348972596650845440001854057309337862437
But how do I find the value of sin(50 degrees) to 100 decimal places using the exact value where I is the sqrt(-1.0)? No cheating by calling the sin function.
Something like
julia> a = -1/16;
julia> b = 1/16 * im * sqrt(big(3));
julia> c = 1 / big(3);
julia> real((a + b)^c + (a - b)^c)
0.7660444431189780352023926505554166739358324570803952458540452846421553888568742
maybe? But maybe I am missing the point?
What’s the purpose of the exercise? Is this homework?
Yes, the purpose is unclear. Why not simply
const decimalplaces = 100
const numofbits = Int(ceil(log(2,10) * decimalplaces))
setprecision(numofbits)
sind(big(50))
?
1 Like
Assuming you are interested in the result (and do not necessarily need Julia for it):
Wolfram alpha is quite good at this too.
click on ‘more digits’ and then ‘plaintext’ in the link below
0.7660444431189780352023926505554166739358324570803952458540452846421553888568747235282292766805484934499624883998700455341954248316333490711841864889023860281082594782010899261924361273893782904078770273006354688599137325083942815336330350954685107618325549288375883429890386354276785479071197343786221265745844798601091903854036409358705798621426631952466977531043261972745910816640595291004784330497183410104807025160539738339882790832858732629391480897657539603952497173690488784768527075866522481047541645808795123966392345773943563388083848396701961681348379456980904427582362573317984311518696512834851104919855096784185294162424820133028323621286860806014406303017834545192236924816164399454116865865343693163091111786595547334133957510051373483198345016130092476664617072759979544411418825323224370590915697195648516145831336019005572620396906869462462153536867484966465346283413886306432238648089602001616782454076738446234936149618504927414257528123025355272619970273797965168688313968628259350041085177572293906508974040852910529230930337444518498374084440612562375609620798789469552249214217724827181867789326600291202986926609100110402544166517891369887594891650270286604640009655281994959398671707335024850936759841809545428347519797179468939976779803956309448510333557653386389690007527399363474193623333813052883037883114530932337820629075265970256835517551206853286462908442062747124547659855819120412402635907474928733402990202473132352200631818732050877170316228352452375668060154443573442409170239780537038365773940581346779787945266342041494432025486697008463950027835023675365349541006050505314465623344532967370397989428087025615972392793652087528541719950567575887579412118934757757840836944030778788635286906166475280769021161944831568917358334382281464401862484864551283763324615953384823733680487532793077104432682990945290063088889819054987220305409514381226755893477023371910831602165326726614226796275846255323364745641837629791503447193570326001315714435037387646117687115307494800697881153538243414451517563865320603699324156154032783047667022025895806955230713443494530949503766402404968731370676476736695560468960885296784972940796806197559179541575992487561597252217789459506574210649661092184323948753212511360100448284393155493947571471934550881124592160233397485015531273639384425248541156247997969163538012218780687204431683783546704821380001688719446193149145436976760147575829451472282131986353434842246351449850191904650566435804635955199055406483735117318978738562692938812290977480543409946315652699885206520846229736560256693691950479466731361445503661449956257961856105789670920737242933585758465288261079590228755894985853517069719458076363394906303314050145427661034014864585853131913795406966702675200534452755932245095924892323348421305270750574234840385973059640108939111291694318557771781370598136051366709054910495023400590972514763217178279037556917208098650295525510235861769723340600125780948712450716994004305781460105805855621204657518988493096221068336632836451804883450187236655445142444663394257439975186603276261439803265780303235941582524987700009819386823123493733152496638336512941165588060479094024854435438556251500524761667338269044469420365903050710914210313848636595637131817603648365177634558670362989846688940637092927116001407422333726462398711266783222095795832627255112547446881988803942435759986615725217224399269338150831159722176954884914844821365543730180216822872665944116559610010963833111368981871308515998380128800478572127941216845008151379807852290746586696122972142992810694929162749725498720253631200540404736457518305630453571411714059374192893220904697270516
kristoffer.carlsson:
(a + b)^c + (a - b)^c
It actually does work. I am surprised that you can use bigfloat with complex numbers. The documentation on complex numbers for Julia seems to say that only Float64 and Int64 can be used for complex numbers. see Complex and Rational Numbers · The Julia Language
const decimalplaces = 100
const numofbits = Int(ceil(log(2,10) * decimalplaces))
setprecision(numofbits)
result = sqrt(big(3))/big(2)
println("sin(60 deg) = $result")
a = big(-1)/big(16);
b = big(1)/big(16) * im * sqrt(big(3));
c = big(1)/big(3);
println("sin(50 deg) = ",(a + b)^c + (a - b)^c |> real )
Starting Julia...
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _ | |
| | |_| | | | (_| | | Version 1.1.1 (2019-05-16)
_/ |\__ _|_|_|\__ _| | Official https://julialang.org/ release
|__/ |
sin(60 deg) = 0.866025403784438646763723170752936183471402626905190314027903489725966508454400018540573093378624287827
sin(50 deg) = 0.7660444431189780352023926505554166739358324570803952458540452846421553888568747235282292766805484935
1 Like