Flin Skrevet 14. september 2010 Del Skrevet 14. september 2010 (endret) Sitter å jobber med pyton her nå, men jeg har møtt et lite problem. Jeg har nemmelig en funksjon F(n,x) = n*f(x).(Veldig forenklet) Så vil jeg kjøre en loop og finne de 1000 første funksjonene og legge de sammen, problemet er at jeg ikke klarer å definere resultat funksjonen på en godt måte. Tenkte på å legge funksjoenen inn i en array slik at vi får noe sånt her 0 | 0*f(x) 1 | 1*f(x) 2 | 2*f(x) Og så summe alle disse funksjonene, men jeg får ikke dette til. Noen som kan hjelpe? LØSTE DET SELV. Endret 14. september 2010 av Flin Lenke til kommentar
Wattengård Skrevet 17. september 2010 Del Skrevet 17. september 2010 Og løsningen var? Lenke til kommentar
Flin Skrevet 17. september 2010 Forfatter Del Skrevet 17. september 2010 Kjørte en map(). Det løste problemet, selv om jeg ikke tror det var noe problem i det hele tatt. Jeg slet med programmet og fikk ikke det svaret jeg viste jeg skulle få. Så jeg tenkte naturligvis at jeg hadde gjort noe feil og at av en eller annen grunn så taklet ikke "list" funksjoner. Når jeg da byttet til map() løsningen fikk jeg fremdeles feil svar. Begynte å tenke at det måtte være noe rart her. Så jeg testet med et sett med mye enklere funksjoner og da fikk jeg rett svar! Så hva pokker er feil? Nå tror jeg endelig at jeg har løst det, problemet ligger i selve python eller selve PCen der jeg kjører programmet. Variablene i programmet takler ikke mange nok desimaler og når jeg overstiger den grensen så velger programmet en verdi som ikke har veldig mye med den matten jeg driver med. Slik at resultatet blir feil. Så når jeg da satt ned antall gjentagelser fra 100 til 30 fikk jeg rett svar! Hvis noen har en måte å fikse dette på så blir jeg glad. Lenke til kommentar
Terrasque Skrevet 18. september 2010 Del Skrevet 18. september 2010 (endret) Kanskje http://numpy.scipy.org/ har noe med større presisjon? Også, etter en rask googling, kanskje http://docs.python.org/tutorial/floatingpoint.html er relevant. Edit : Rask google poppet også opp http://docs.python.org/library/decimal.html, http://packages.python.org/bigfloat/ og http://code.google.com/p/mpmath/ Endret 18. september 2010 av Terrasque Lenke til kommentar
Flin Skrevet 18. september 2010 Forfatter Del Skrevet 18. september 2010 Kanskje http://numpy.scipy.org/ har noe med større presisjon? Også, etter en rask googling, kanskje http://docs.python.org/tutorial/floatingpoint.html er relevant. Edit : Rask google poppet også opp http://docs.python.org/library/decimal.html og http://code.google.com/p/mpmath/ Problemet ligger jo akkurat i det den siste linken handler om, men nå har det seg slik at jeg trenger ikke å ha med tall som er av størrelsen 10^-52 når svaret jeg typisk vil være et sted mellom 1 og 0. Så er kanskje ikke nødvendig å løse problemet. Ser at LONGDOUBLE fra scipy kanskje kan være en løsning, mulig jeg må se på det, takk for innspill. Problemet var i grunn at jeg ikke viste at python ville spytte ut støy når man gikk over grensen på hvor mange desimaler man kunne ha. Jeg regnet bare med at man da ville få null ut slik at det ikke påvirket resultatet. Noe som hadde vært greit. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå