how to get precise conversion in matlab?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Mudasir Ahmed
el 22 de Dic. de 2015
Comentada: Mudasir Ahmed
el 24 de Dic. de 2015
hi
when i want to convert degrees(89.999999999999668207879992402105) into radians matlab gives 1.5707963267948966192313216916398 value as a output. but when i reverse the process it gives round off figure 90. but i need actual and accurate conversion value not the round off.*
vpa(89.999999999999668207879992402105*pi/180)
ans = 1.5707963267948966192313216916398
but when re-convert back to original form
vpa(1.5707963267948966192313216916398*180/pi)
ans = 90.0
i also change the the number of digits like vpa(1.5707963267948966192313216916398*180/pi,100) etc but observe the same results. kindly help me i will be highly thankful to you for this act of kindness
with best regards mudasir ahmed
0 comentarios
Respuesta aceptada
Walter Roberson
el 22 de Dic. de 2015
Every time you use a literal number in MATLAB that is not inside a string, MATLAB is going to evaluate the number as double precision before the Symbolic toolbox gets control. You need to quote your numbers. You should also get in the habit of sym()'ing them
vpa('89.999999999999668207879992402105*pi/180')
vpa('1.5707963267948966192313216916398*180/pi')
but better
vpa(sym('89.999999999999668207879992402105*pi/180'))
vpa(sym('1.5707963267948966192313216916398*180/pi'))
6 comentarios
Walter Roberson
el 23 de Dic. de 2015
Editada: Walter Roberson
el 23 de Dic. de 2015
Where are those numbers coming from? What is class(angles) ?
As far as double precision numbers are concerned, 89.999999999999667479426986067257 and 89.999999999999668207879992402105 are the same number, both of them being 89.9999999999996731503415503539144992828369140625 . That is something that cannot be changed with double precision numbers. You need to use some kind of extended precision numbers if you want them to be different, and using extended precision numbers will require a different syntax to enter the numbers.
angles= [
sym('88.25292994445806042220189637777'), sym('89.999999999999667479426986067257'), sym('89.999999999999668207879992402105');
sym('86.472119235585302296157262009321'), sym('89.999999999981123270039862159233'), sym('89.999999999999993121983558088696');
sym('84.665084516953164820028709815801'), sym('89.999988086384753274282238804303'), sym('89.999999999999999806246175977474');
sym('82.83552790044595696067282049508'), sym('89.999999999999991112449117158209'), sym('89.999999999999993100744665396289');
sym('80.986484951716410032164762120977'), sym('89.999999999959332692365063960468'), sym('89.999999999999993122476505390389');
sym('79.121948083059506104642254539888'), sym('89.999999975262684086292374865148'), sym('89.999999975262721970224316791639');
sym('77.244683750911755612284108834821'), sym('89.999999986727214128999425244292'), sym(' 89.999999999999993118675432116');
sym('75.357853348492194774432573472921'), sym('89.999999996394470554515857407735'), sym('89.999999999999993122326059745969');
sym('73.464609154556051725140093954363'), sym('89.999999999999992753073655039909'), sym(' 89.99999999999999312244662902997');
sym('71.567882600107703152375030768898'), sym('89.999999999999992581194507627371'), sym('89.999999999999903122444226118167');
sym('69.670377917650110578302342213061'), sym(' 89.99999999999999253319867704809'), sym('89.999999999999993122506541238628');
sym('67.774518693860294741798881967926'), sym('89.999999999741931635361989813778'), sym(' 89.99999999999999311361444679491');
sym('65.8822150925780553458648880066'), sym('89.999999999999993098178222946334'), sym('89.999999999999993098179444490446');
sym('63.995531641271152333402009895049'), sym(' 89.99999999999998928710524083006'), sym('89.999999999999989287200958233939');
sym('62.11650712167783271029169712539'), sym('89.999999999999992778649497157995'), sym('89.999999999999993114151872373191');
sym('60.248879494097092226691703377443'), sym('89.999999714196263418663102999409'), sym('89.999999714228313385429057755702');
sym('58.403778779168425376458768895025'), sym('89.999999999137259749938314739589'), sym('89.999999999137259749982719609229');
sym('56.981178198306788453173114217814'), sym('89.762868470688394985205767662633'), sym('89.762868476395663591421156348161');
sym('55.797765504938677490457342932495'), sym('89.373318780644193165202171792606'), sym('89.373318781818103518674315233533');
sym('54.587935182089116272733342933166'), sym('88.990431406326516856547028587032'), sym('88.990431406591153148197145112555');
sym('53.354014335890068423930796964625'), sym('88.614043918721599881539781770388'), sym('88.614043920256183958551643928488');
sym('52.102828587990070160284343107814'), sym(' 88.2428950103448063709444005364'), sym('88.242895010344837842115341055113');
sym('50.847370222094078935464371138828'), sym('87.874480590803891405154343446749'), sym('87.874480590804517899382996732148');
sym('49.608305531180989583106115411603'), sym('87.505432535307217476773269948055'), sym('87.505432535865023730893742717288');
sym('48.415797409309773763494041129682'), sym('87.133249369666402388158308284657'), sym(' 87.13324953896692912915248042765');
sym('47.319006419412375441482463740122'), sym('86.762822149627226035956852057888'), sym('86.762822149627228080575948403545');
sym('46.582079859159937061510793780591'), sym('85.719451610184566072659221879479'), sym('87.244618123174325584003266671315');
sym('46.066041618599459232573510370179'), sym('82.026624770981104993564747832309'), sym('89.000000000000003122506798154241');
sym('45.386778108921029448330688915442'), sym('81.056639804856155393782241508934'), sym(' 89.00000000000000312247901974552');
sym('44.810709922770479654022899731807'), sym(' 79.85140653285072910261889475959'), sym('89.000000000000003121517090477509');
sym('44.407994718303529322012130356452'), sym('78.406341220762609832287704998145'), sym('89.000000000000003122506695222577');
sym('44.177863358331681247268470314704'), sym('76.663658074969014950975482110977'), sym('89.000000000000003122362329641815');
sym('43.959810840916627632291752292788'), sym('73.526831898059132595944316095278'), sym('89.000000000000003122504187530516');
sym('43.694419499184883392828891264002'), sym(' 71.75826883167902918068982670604'), sym('89.000000000000003121788745062828');
sym('43.251027741546380039207997137945'), sym('70.234204727031649621801943389907'), sym('89.000000000000003122474996583343');
sym('42.637418116998151402898983978727'), sym('68.912769676021656973403748785698'), sym('89.000000000000003032880353561533');
sym('41.898435136021901434977609783495'), sym('67.773923707251102112336590588202'), sym('89.000000000000003122504697427467');
sym('41.184836475454770526169624685702'), sym('66.903523494547958673973603864466'), sym('89.999999999999833536432947613648');
sym('40.862428381239072388102799260482'), sym('66.084460073179689509157465280485'), sym('89.522829700704316787172015822126');
sym('40.540636516266952240290820560618'), sym('65.126856819772530912519556002545'), sym('88.885960217714551629279716649383');
sym('40.255659784465259598431523791579'), sym('64.179840758641944635799072580719'), sym('88.207464330630301643708029281103');
sym('40.010850945561494237717302179161'), sym('63.241575921375690128896697217686'), sym('87.487400817245291516764549854452');
sym('39.808713467498020600905167414088'), sym('62.310121158268191017439073675237'), sym('86.724205099590538795832209618294');
sym('39.651235699137941154002866223805'), sym('61.387356173012999132998791694196'), sym(' 85.91804512572354531908684362598');
sym('39.538165194430280277915644799375'), sym('60.474250224993075081920867482213'), sym('85.067062469592128985115362682617');
sym('39.466960110666933148365305580884'), sym('59.573532356428610582620723516641'), sym('84.169326156839994722851898365978');
sym('39.432015845884450041682328081975'), sym('58.691141415603703186188852732795'), sym('83.224154081908098098508638307682');
sym('39.423721721040762557018620661906'), sym('57.835912725846163986993181391419'), sym('82.231710005217201980940318929372');
sym('39.427854203804045936737648421399'), sym('57.017100025090666114824479945582'), sym('81.189279997945968027347943050819');
sym('39.42505232601452888509690209578'), sym('56.249739658269332912940637300166'), sym('80.096660166863752270670416837442');
sym('39.390647447196684122821808748718'), sym('55.554432288866649394544143908114'), sym('78.956794112988051435129100678996');
sym('39.295485434138460655069960782315'), sym('54.953114909013826829509310430046'), sym('77.770798037323940758694874186351');
sym('39.106436458825812238377876015907'), sym('54.466546953908171183194461748773'), sym('76.532876400986841674072654241597');
sym('38.793346478561563885338769852014'), sym('54.120399281175709446322937865147'), sym('75.254931673637856533630653734693');
sym('38.330331127711641851815067265581'), sym('53.927323291318870022982211863696'), sym('73.937833541301955656658610212964');
sym('17.088336490954339743320153482257'), sym('49.063555853518496847132695282611'), sym('86.047629575645551833491762427327');
sym('16.138569401829393302518657353023'), sym('47.609081651809559546929063777857'), sym('85.687450126216674276932334350917');
sym('15.006475424769433438288650255401'), sym('45.977935577213604395403971235973'), sym('85.458978723833229830146633948827');
sym('13.619921345600788002490770721217'), sym('44.078709299048245947591214648017'), sym('85.426302992581532156656023919662');
sym('11.8267650623723926497981201656'), sym('41.712142445713757074070877012241'), sym('85.715080131695754408779817641065');
sym('9.2245296243075231345408544818852'), sym('38.299037256485604674692363795935'), sym('86.666411504850157482944820068921');
sym('5.1388074134133179210918029726465'), sym('30.843701804839442708201058844684'), sym('89.000000000000003122351467095414');
sym('28.959785727621613973517205409994'), sym('54.325495430170720034364047354408'), sym('64.413455707717931471957842514634');
sym('27.300263679611003321724553761333'), sym(' 53.40589763966739257758376287618'), sym('64.201206002843651134925162070302');
sym('25.62282243403643143500417851977'), sym('52.123521237961941855752478708157'), sym('64.256742505487985426401814667469');
sym('23.974934495670188034831815641503'), sym('50.610887465555046818907822300253'), sym(' 64.42902804551721983255616881651');
sym('22.393617675833419721572977100908'), sym('48.983754817517843921699882905277'), sym(' 64.58777051075157160282839204065');
sym('20.9136705221437470819555683003'), sym('47.330951777057346264087673835005'), sym('64.649303247434845792310399744472');
sym('19.552736292111277733563303438249'), sym('45.704802598671202874024285901832'), sym(' 64.57638555534845735610850884807');
sym('18.303004911231574024589890716086'), sym('44.115175486918536557716106802083'), sym(' 64.36236010002650130446682268459');
sym('17.162176457503987920893415185285'), sym('42.570027260737358172789268488225'), sym('64.017828883422816119207996253756');
sym('16.120123743171187924138480960379'), sym('41.060901322245796730887839713783'), sym('63.558787904260808428485984774223');
sym('15.166787409098382995826927992926'), sym(' 39.57207210327954701605610969234'), sym('62.999463759677363774229270520181');
sym('14.301439336879539867450684659215'), sym('38.094384784038862633711645600066'), sym('62.354253677110472521393429410139');
sym('13.526832297231141653098236378403'), sym('36.616770587520529103625710863017'), sym('61.634524238867484228443610224466');
sym('12.850501310778781306222068328247'), sym('35.126883705709719841402168873312'), sym('60.848444575878857649176841110459');
sym('12.284397912758216491110610479016'), sym(' 33.60675249292420351290535089423'), sym('59.998875787093948993659901232047');
sym('11.850657253299977011459150618238'), sym('32.043625573573381396489406033223'), sym('59.090265841925510609666078241094');
sym('11.578458542097010605365011465385'), sym('30.422986869093006618461491586559'), sym('58.126530416235207016291855738527');
sym('11.504263485735878495047308258173'), sym(' 28.71572390735581123066212518705'), sym('57.105329541189146473954034925919');
sym('11.678732472807425838154168030856'), sym('26.886189539992739528140603212764'), sym('56.027010863763760399102906686034');
sym('12.181306720144578013295213987822'), sym('24.859896939437277868477685302965'), sym('54.886481012736021475711619783746');
sym('13.184370198537854836016299301885'), sym('22.468617738031179119546537731579'), sym('53.681045085177236860613126547676');
sym('15.642414758797712348570085462682'), sym('18.748259766124868423160203703476'), sym('52.401564526560994561415411772799');
sym('16.9508665100419632846198400422'), sym('16.950866510041963793699713245751'), sym('51.740960676360972733385568307922');
sym('16.498212382502374803847658602886'), sym('16.498212382692138566414870516934'), sym('50.402561559214755262635615502243');
sym('15.919905061949010353340137349393'), sym('15.919905061949010413452495414692'), sym('48.674082816172438711434825843997');
sym('15.183925314231711540908280773759'), sym('15.183925314261638594109821471355'), sym('46.476547248247282760657883572379');
sym('13.412731496284297607231295000985'), sym('13.412731496523672719107295235403'), sym('41.252575359960835968731759787589');
sym('12.714440699371424835588987115622'), sym('12.714440699371426022738711185432'), sym('39.141116126870159748204294086147');
sym('12.186838895206284480010663039331'), sym('12.186838895238221924881752059544'), sym('37.452396542858788255661055148553');
sym('7.600148345944255809874815387914'), sym('15.556265751981246969820316657954'), sym('36.289755985020056214898092792324');
sym('0.0000000000000031922172083790895440123007852701'), sym('17.921422936799498618476457878867'), sym('34.872114308935505260139893222266');
sym('0.000000000000013161458532581005948154928445771'), sym('17.434764669812986472753895945526'), sym('33.670396354896374198562337436628');
sym('0.00000000028643072306544462460669910260623'), sym('16.913669506785211610166569111438'), sym('32.006505847327203996890387585791');
sym('0.00000000025303621218320715713595039830793'), sym('16.561564817383445960663272025325'), sym('30.002218759573927269136189010233');
sym('0.00000000049538621296507250113310323848921'), sym('16.603361740208815054040574393569'), sym('27.558765435517896448831430971234');
sym('0.00000000022796327950043512563397227058782'), sym('17.631108143238673261963545038128'), sym('24.170514514119890139717605257263');
sym('4.018646510795218826538722177555'), sym('19.438461505599588429240452317561'), sym('19.439167200283906564736128157213');
sym('0.0000000000000000031052008141318308720142949148162'), sym('19.653908916254078761677904582833'), sym('19.653908916254078763091318017406]');
Más respuestas (0)
Ver también
Categorías
Más información sobre Conversion Between Symbolic and Numeric en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!