LABORATORIO DI CALCOLO, CANALE Q-Z ESERCITAZIONE 4, 5 NOVEMBRE 2015 Calcolodellaradicequadrata Cisonodiversialgoritmiitera0viperilcalcolodellaradicequadratadiunnumeroposi0voa. Inquestaesercitazioneimplementeremoduediques0metodi. ParteI:MetodoBabilonese Laradicequadratar = √adiunnumeroposi0voasipuòcalcolareconunmetodo itera0vocomeillimitedellasuccessione 1 a rn+1 = (rn + ) 2 rn Ilvaloredelprimoterminer0e`ininfluenteepuòesseresceltoapiacere.Infa=potete verificarechecambiandotalevaloreinizialeilrisultatononcambia!Ilcicloterminaquando ladifferenza|rn+1-rn|tradueterminisuccessivièminoredellaprecisioneεdesiderata. Scrivereunprogrammaesercitazione04.cpereseguireiseguen0passi 1.Scriveresulloschermounmessaggioinforma0voriguardoilprogramma 2.Acquisiredall’utenteilvaloredellaprecisioneepsiloncompresatra[1.E-6,0.1] everificarnelacorreMezza.Incasodierroreripeterel’operazione. 3.Acquisiredall’utenteilvaloredelterminer0 4.Acquisiredall’utenteilvalorediaeverificarechesiaposi0vo.Incasodierroreripetere l’operazione. 5.Implementareilmetododibabiloneseu0lizzandounopportunociclo. 1.inciascunaiterazionescriveresulloschermoilnumerodiiterazionieffeMuatee las0maaMualedelrisultatoconilformato%4.20lf 6.Alterminedelciclo,scriveresulloschermoilnumerodiiterazioniNtoteseguite 7.ScriveresulloschermoladifferenzatrailvaloreoMenutodavoiesqrt(a)u0lizzando ilformato%2.2Eperscrivereilrisultatoconlanotazionescien0ficaperapprezzare ancheledifferenzemoltopiccole 8.Poteteeseguireilprogrammaperlostessovalorediamavariandolaprecisione epsilonpervederecomecambiaNtotalvariarediepsilon. LABORATORIO DI CALCOLO, CANALE Q-Z ESERCITAZIONE 4, 5 NOVEMBRE 2015 ParteII:MetodoAlterna7vo L’inverso1/√adellaradicequadratadiunnumeroposi0voasio=enecomeillimitedella successione 3 a 3 yn+1 = 2 yn 2 yn Ancheselasceltadelterminey0e`arbitraria,tuMaviailmetodoe`piùsensibilealvalore sceltoepuòfacilmentedivergere(provarepercredere!).Occorrequindiavereunas0ma inizialedi y0 ~ 1/√aconilmetodobabilonese.Scrivereunprogramma esercitazione04bis.c: 1.Acquisiredall’utenteilvaloredellaprecisioneepsiloncompresatra[1.E-6,0.1] everificarnelacorreMezza.Incasodierroreripeterel’operazione. 2.Acquisiredall’utenteilvalorediaeverificarechesiaposi0vo.Incasodierroreripetere l’operazione. 3.U0lizzandounvaloreapiaceredir0,fare2iterazioniconilmetodobabiloneseper calcolarer2 4.Implementareilnuovometodoitera0voconlasuccessioneynconunopportunociclo cheu0lizzicomevaloreinizialey0 = 1/r2 5.ScriveresulloschermoilnumerodiiterazioniNtoteseguiteprimadiinterrompereil cicloquando| 1/yn+1 - 1/yn |<epsilon 6.Scriveresulloschermoladifferenzatrailvaloredi1/y esqrt(a)u0lizzandola notazionescien0fica. Suggerimen7 •U0lizzarevalorino0diaperverificarelacorreMezzadell’algoritmo •Commentarebrevementeipassipiu`importan0nelcodiceu0lizzandoicommen0del linguaggioCconlasintassi/* commento */ •Includeregliopportuniheaderfilenecessariperlacompilazioneecorreggerei warning •Percompilareecrearel’eseguibiledovetefare gcc -Wall -o app.exe programma.c -lm