Page 1 of 1

hjelp til oblig i mat-inf1100, trenger svar raskt!

Posted: 02/10-2008 20:35
by sirdrinkalot
jeg er i en litt dum situasjon nå, skal levere en oblig og dum som jeg er så glemmer jeg av det og sitter som vanlig med skjegget i postkassa dagen før levering..
hadde jeg kommet på dette litt før så kunne jeg ha fått hjelp av andre på skolen, men slenger inn en post her i håp om å få svar mens jeg jobber selv.

dette er obligen som skal gjøres:
http://www.uio.no/studier/emner/matnat/ ... oblig1.pdf

jeg trenger litt hjelp til å forstå hva "Uttrykk følgende tall som en sifferutvikling i 2-tallsystemet, det vil si skriv dem p ̊ formen (dn dn−1 . . . d1 d0 . d−1 d−2 . . .)2 " i oppg. 1 betyr. skal jeg skrive tallet aaf = 101010101111 eller 1*2^11+0*2^10+1*2^9+....

i oppg.3c er jeg ikke helt sikker på hva notasjonen {xi }.. betyr . hva tilsvarer "i" i differensiallikningen?

og oppg.4 er jeg helt blank, har ikke noen anelse akkurat nå om hvordan jeg bør gå fram. vaneligvis ville jeg tro at hvis utrykket under rottegnet ble mindre enn 0 så ville det ikke gi mening, men har jo lært om komplekse tall så kan ikke være det som er problemet...

håper jeg får noen gode svar før kl 14.30 i morgen. takk på forhånd :)

Posted: 02/10-2008 21:26
by Gnome
Jeg leverte min i dag, og kan gi et par hint:

Oppgave 1:
Notasjonen betyr altså bare at du skal oppgi svaret som et tall på formen 101111,1011, dva. som et vanlig desimaltall i totall-systemet

For øvrig har du rett i at aaf = 101010101111 :)

Oppgave 3:
Notasjonen der betyr bare at du skal beregne tallfølgen opptil tall nummer 3200, her er det kjekt å kunne python, så om du går mena eller lap er jo det dumt...

prøv:

x0 = 1
x1 = (1./2)
xn = 0

for i in range (2, 3200):
[tex] \ \ \ [/tex]xn = (5./2)*x1 - x0
[tex] \ \ \ [/tex]x0 = x1
[tex] \ \ \ [/tex]x1 = xn
[tex] \ \ \ [/tex]print 'Tall nummer %03d: %g' % (i, xn)

Det burde gjøre nytten, prøv med forskjellige verdier istedet for 3200, to hint er n = 1075, og n = 3173...hehe...

Oppgave 4:
Saken er at hvis et tall er for lite (som oftest mindre enn 10^-17 ish), så vil datamaskinen nulle ut tallet, dvs. datamaskinen mener at 0 er en mer korrekt tilnærming til tallet enn det datamaskinen selv klarer å produsere. Dette er forøvrig nøyaktig hva som skjer i oppgave 3c.

Sett at b^2 er tilnærmet lik 4ac, da har du et problem, og hvis a er altfor liten vil du få nulldivisjon som er et kjempeproblem, og ikke minst hvis a og c er veldig forskjellige, men en av dem rundes av til 0, vil jo 4ac bli fullstendig galt.

Noen alternative formler som vi kom fram til er jo selvsagt newtons metode (som forøvrig også er i inf1100-obligen denne uka), eller bisection-metoden, det står om begge i kompendiet.

Noe som kan rette opp den første feilen jeg nevnte er om du ganger inn den konjugerte av uttrykket inni rottegnet, da vil du oppnå større avstand mellom tallverdiene, og forhåpentligvis en differanse pc'en kan jobbe med.

Så, så har jeg nesten reprodusert min egen oblig her da, menmen...

Posted: 02/10-2008 22:20
by sirdrinkalot
1,8*10^308 takk for hjelpen ;) dette hjalp meg sånn at jeg får meg noen timer søvn i natt også :)

Posted: 02/10-2008 22:50
by Gnome
Tja, kommer litt ann på. Et 64-bits flyttall kan fortelle deg at et tall er ned til E-324 lite, men bare med 16 desimaler ;)

Så, det kommer litt ann på, rett og slett.

Posted: 03/10-2008 00:04
by FredrikM
Saken er at hvis et tall er for lite (som oftest mindre enn 10^-17 ish)
Nja. Utskriften min av tallene viste at den ble null etter omtrent [tex]10^{-300}[/tex]-ish.
Noen alternative formler som vi kom fram til er jo selvsagt newtons metode (som forøvrig også er i inf1100-obligen denne uka), eller bisection-metoden, det står om begge i kompendiet.
Strengt tatt er vel disse ikke formler, men algoritmer.

Posted: 03/10-2008 00:12
by Gnome
FredrikM wrote:
Saken er at hvis et tall er for lite (som oftest mindre enn 10^-17 ish)
Nja. Utskriften min av tallene viste at den ble null etter omtrent [tex]10^{-300}[/tex]-ish.

Som jeg nevnte over, du vil aldri få en datamaskin til å kunne regne med 300 desimaler, men du kan fint få den til å skrive ut

4.345362664526542E-324

Du ser forskjellen...?