How can I tell Maxima to solve the following problem? (The "solve" part):
I did:
load(distrib);
fpprec: 100;
bftorat:true;
solve(2*bfloat(cdf_normal(x,0,1))-1=0.99999999999999999968130594071b0, [x]);
%,numer
Got:
(%o1) "/usr/share/maxima/5.32.1/share/distrib/distrib.mac"
(%o2) 100
(%o3) true
`rat' replaced -1.99999999999999999968130594071B0 by -199999999999999999968130594071/100000000000000000000000000000 = -1.99999999999999999968130594071B0
`rat' replaced 5.0B-1 by 1/2 = 5.0B-1
`rat' replaced 5.0B-1 by 1/2 = 5.0B-1
`rat' replaced 7.071067811865475244008443621048490392848359376884740365883398689953662392310535194251937671638207864B-1 by 118807941462947422469655519336079782367473013592460/168019802134529020067676914738440478110633605571601 = 7.071067811865475244008443621048490392848359376884740365883398689953662392310535194251937671638207864B-1
`rat' replaced 7.071067811865475244008443621048490392848359376884740365883398689953662392310535194251937671638207864B-1 by 118807941462947422469655519336079782367473013592460/168019802134529020067676914738440478110633605571601 = 7.071067811865475244008443621048490392848359376884740365883398689953662392310535194251937671638207864B-1
(%o4) [x=
(168019802134529020067676914738440478110633605571601*inverse_erf(99999999999999999968130594071/100000000000000000000000000000))/118807941462947422469655519336079782367473013592460]
inverse_erf: inverse_erf(1.0) is undefined.
-- an error. To debug this try: debugmode(true);
Further tried (to see if the rational replacement affects inverse_erf):
inverse_erf(9.9999999999999999968130594071b−1);
gamma_incomplete: continued fractions failed for gamma_incomplete(5.0b-1, 1.675965338889773975600843228854238162008399514002414970690458801529039878850010279559673197036592113916729947593696740535214189646774061729913734402353264492788885098143556404059170138591463120333687838496039284224858192931635551067412157341539627014907074717352945374476804912353312948754404927014555821149803440423871160460111635311071245528519256957555845418916034380535359079516879576795825857468710891474077746896341697834315575814989209244705740463652472196503944998297956825510866851943203353716451062616549067258800559231646552924469724160521456041856694702333938138297284123098699530288993519920353577729741393726951293645734447176179175560311787410907660921783058989196733914852345086206761158383783714360001646880454976428470630991611033582649957934844195398077660932657131767136966243415075424193909691302431604307524134764326959890911322928113456129784004060990585972427799869290459688878023964671879763390452043333273689436077956597199441415992202082578463153853017929328667898523224007b0).
-- an error. To debug this try: debugmode(true);
Actually, after a bit of further study, replacing:
%,numer
with
%,bfloat
at the end of the original problem does the trick. I thought numer
works with bfloats, but it only uses rational approximations, and that is why I received errors. However, using bfloat
gives the correct answer.