Fysik

Excel Euler til løsning af luftmodstand

27. november 2014 af Larspeter1 (Slettet) - Niveau: A-niveau

Hey, er der nogen der har lavet en excel fil, hvor i har regnet luftmodstanden af en projektil ved hjælp af Eulers numeriske metode? Hvis ja, kan du sende mig den så jeg kan se, hvordan det skal laves?

På forhånd tak!


Brugbart svar (0)

Svar #1
27. november 2014 af hesch (Slettet)

Læs her:

http://www.google.dk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CB8QFjAA&url=http%3A%2F%2Fwww.jacob9.dk%2FMatematik%2FAnalyse%2FNumerisk%2520int%2520Diff%2520lign%2520221010.pdf&ei=fZp3VPeLDafiywPT64LoBw&usg=AFQjCNHUEULkv_nH3dSh5eYde5G-cVturQ

Det fremgår, at der skal anvendes meget små tidsstep, hvilket medfører at Excel tager 100 år om at beregne det, og du har ikke styr på Excels regnepræcision (afrundingsfejl).

Nu ved jeg ikke, om du er i stand til selv at skrive et program i fx C ? Men et sådant program vil foretage dine beregninger på få sekunder, og du har styr på regnenøjagtigheden.

Det er jo et meget enkelt program at skrive, altså hvis man kan programmere.


Brugbart svar (0)

Svar #2
28. november 2014 af OliverGlue

#1 Er du sikker på excel bruger lang tid på det? 

Se. f.eks. 

http://www.mathcs.richmond.edu/~jad/232s07/euler_lab3.pdf

Det kræver da intet computerkraft. 


Brugbart svar (0)

Svar #3
28. november 2014 af Andersen11 (Slettet)

#2

Det har du helt ret i. At integrere med en 1.-ordens metode kræver blot simple additioner og multiplikationer, og man kan lave mange hundrede step på få sekunder.

Der er ikke noget galt med Excels regnepræcision, og man kan udmærket have styr på integrationsfejlen i en 1.-ordens metode.


Brugbart svar (0)

Svar #4
28. november 2014 af hesch (Slettet)

##2,3:  "Mange hundrede step på få sekunder":  Er det hundrede step pr. sekund ?

Nu ved jeg ikke, hvor lang tid dette projektil skal flyve afsted, men lad os sige 20 sek. For at opnå tilstrækkelig god tilnærmelse, ville jeg vælge et tidsstep på 1ms, altså 20000 tidsstep ialt, hvilket så giver en regnetid på over 3 min. pr. skud.

Lad os nu sige, at man vil finde frem til den optimale skudvinkel (størst flyvelængde), hvilket indebærer gennemregning af 50 "testskud", så er den samlede regnetid 2½ time med Excel.

Jeg vil gætte på, at et program, skrevet i C, klarer denne beregning på 1 - 2 min. 

Men jeg kan jo prøve       :)


Brugbart svar (0)

Svar #5
28. november 2014 af hesch (Slettet)

#4:  Jeg kommer ind på skudvinkler, skudlængde, fordi trådstarter tidligere har stillet spørgsmål omkring "skrå kast med luftmodstand", og i nærværende tråd nævnes "projektil".


Brugbart svar (0)

Svar #6
28. november 2014 af OliverGlue

#5: som 3# siger, hvis det kun er sum og produkter du skal beregne, er tiden ikke en faktor, som du skal bekymre dig om i excel. Det eneste problem er begrænsningen på antal cifre i excel, men det er umiddelbart ikke et problem for #0.


Brugbart svar (0)

Svar #7
28. november 2014 af hesch (Slettet)

#6:  Neej, jeg bekymrer mig heller ikke. Benjamin er blot 18 år:  Der er tid nok endnu.

Jeg kender ikke excel (særligt godt), men har været inde at google omkring talformater her. Det er jo ikke særligt detaljeret, hvad de vil oplyse her, blot at man kan vælge et antal betydende decimaler. Jeg "lurer" så på, om talformatet kunne betstå af "nibbles" ( 4 bit ), hvor hver nibble indeholder et decimalt ciffer fra 0 - 10 ? Så stiger tiden for en multiplikation jo drastisk. Sprog som C kan regne i  64-bit floating point format ( IEEE ), og det er en helt eksakt oplysning. Coprocessorer er hardwaremæssigt bygget til at udføre regneoperationer i dette format. Problemet med antal betydende cifre er omvendt proportionalt med længden af et tidsstep: Størrelser som hastighed og længde pr. tidsstep mindskes jo.

Men det er ikke tiden for disse additioner og multiplikationer, der er så afgørende. Det er adresseringer af de forskellige felter i Excel-arket, der tager tid. Excel skal regne ud, hvor feltet D6 ligger placeret i memory, hver gang feltet skal læses/skrives, og det tager også tid.

Hvis jeg har ret i min formodning om, at #0 skal lave beregninger for et "skråt kast" skal der jo regnes lidt på vinkler/hældninger for hastighed/luftmodstand. Det gør jo ikke regnetiden kortere.

Men jeg har arbejdet rigtig meget med digital regulering af servomotorer. Min tilgang til afviklingshastigheden for en algoritme til regulering af strømmene i 3 motorviklinger, hver med en opdateringsfrekvens på 10 - 15 kHz, er bestemt blevet påvirket af dette arbejde. Det er real-tid. Man skal nå det på en tiendedel af den samlede regnetid til rådighed. Her programmerer man ikke i C. Her assemblerprogrammerer man.       :)


Brugbart svar (0)

Svar #8
29. november 2014 af Eksperimentalfysikeren

Det vil ikke være særlig smart at udføre beregningerne i selve Excelarket. Der skal bruges temmelig mange felter, og de fleste indeholder blot mellemregninger. Men Excel er aligevel anvendeligt. Inde bag Excel ligger nemlig Visual Basic, der kan klare opgaven. Her bortfalder overheaded fra feltadresseringen undtagen for di få felter, hvorfra startværdierne hentes og hvor resultaterne afleveres.

Godt nok er BASIC normalt et fortolket sprog og dermed ikke verdens hurtigste, men det kan sagtens nå det regnearbejde, der her er tale om.

Jeg har for mange år siden vejledt i nogle øvelser, hvoraf én gik ud på at sammenligne tre teorier for luftmodstanden på en falden kugle med de målte værdier. Det foregik på en computer, der var født med BASIC. Det, der tog tiden var ikke beregningerne, men programmeringen og fejlretning. Alle gennemførte  indenfor de tre timer, der var afsat til opgaven.

Den opgave, det ser ud til, at trådstarter ønsker at arbejde med, indeholder ud over faldet en starthastighed og en vandret komponent i bevægelsen. Det vil efter mit skøn give en faktor 2 til 3 i førøget køretid, hvis programmet ikke skrives for kompliceret. Dette sammenlignet med den udvikling, der er sket med hardwaren siden 1977, siger mig, at det sagtens kan lade sig gøre med Excel.


Brugbart svar (0)

Svar #9
29. november 2014 af hesch (Slettet)

#8:  Jeg har lavet et testprogram, som antydet i slutningen af  #4. Det er ikke programmeret i C, men i Borland Turbo Pascal.  Programmet kan udføre 50 "testskud" med henblik på at finde optimal skudvinkel (største skudvidde):

Testresultater:

Samlet beregningstid, 50 skud:  6,25 sek.

Cirka 34000 tidsstep pr. skud a' 1 ms.      ( flyvetid ca. 34 sek. ).

Regnepræcision:  64 bit floating point  (IEEE).

Øgedes tidssteppet til 2 ms, ædredes skudvidden med ca. 0,1 promille. Øgedes tidssteppet til 4 ms, begyndte beregningerne at "skride" i nøjagtighed.


Skriv et svar til: Excel Euler til løsning af luftmodstand

Du skal være logget ind, for at skrive et svar til dette spørgsmål. Klik her for at logge ind.
Har du ikke en bruger på Studieportalen.dk? Klik her for at oprette en bruger.