Interpolation för att bestämma pendelns svängningstid
Hej!
Jag sitter med följande uppgift, som har en deluppgift som jag suttit fast på väldigt länge.
Uppgiften är att bestämma svängningstiden för en pendel (hela uppgiften finns bifogad nedan). Jag har löst själva differentialekvationen, som löses med hjälp av Runge-Kutta 4 (i Matlab). I plottningen visar den blå linjen själva svängningen av pendeln.
Deluppgift d) - bestämma ett interpolationspolynom - är nu det som jag gått och grubblat över.
Jag har frågat om hjälp på kursen (inga fler hjälpsessioner nu på ett tag, därav frågar jag här), och fått svaret att jag borde använda ett polynom som antingen är andragrads- eller förstagrads.
Där har jag problem vilka punkter jag ska välja att interpolera emellan. Det som jag också grubblar över, är att de rekommenderar "find", "max" och "min". Om jag använder de för att hitta min-värdet av respektive period, har jag inte hittat periodtiden då?
Min mest relevanta tanke nu är att man ska hitta maxpunkten inom t.ex. andra perioden med hjälp av max och sedan anpassa ett polynom till de punkter som ligger precis bredvid. Men jag vet inte om det är en smart idé, det känns som att det fortfarande inte riktigt ger något.
Alla tips är mycket högt värderade som vanligt!
(Fotnot: Detta är en inlämningsuppgift men det står explicit i lydelsen att "det är tillåtet att diskutera och fråga andra).
Jag kan försöka kommentera, men du får ta det som det är, det var väldigt länge sedan och jag använder inte matlab...
Det som jag också grubblar över, är att de rekommenderar "find", "max" och "min". Om jag använder de för att hitta min-värdet av respektive period, har jag inte hittat periodtiden då?
Jo det har du ju, men jag antar att matlab bara kan hitta ett talpar så steglängden i Runge-Kutta4 kommer att spela roll för noggrannheten om man gör på det sättet, och det är nog därför man vill att du ska interpolera.
Edit. Men jag kan egentligen inte förstå varför man inte kan minska steglängden i RK4 för att kunna uppnå den noggrannhet man vill uppnå? Men det kanske hör ihop med någon begränsning i matlab?
Min mest relevanta tanke nu är att man ska hitta maxpunkten inom t.ex. andra perioden med hjälp av max och sedan anpassa ett polynom till de punkter som ligger precis bredvid. Men jag vet inte om det är en smart idé, det känns som att det fortfarande inte riktigt ger något.
För mig så låter det som en rimlig ide. Frågan är vilket slags max-värde du ska söka efter? Ska du söka efter max , eller till exempel max-värdet för ? Det kan säkert spela roll för noggrannheten du sedan kan få när du interpolerar.
JohanF skrev:Jag kan försöka kommentera, men du får ta det som det är, det var väldigt länge sedan och jag använder inte matlab...
Det som jag också grubblar över, är att de rekommenderar "find", "max" och "min". Om jag använder de för att hitta min-värdet av respektive period, har jag inte hittat periodtiden då?
Jo det har du ju, men jag antar att matlab bara kan hitta ett talpar så steglängden i Runge-Kutta4 kommer att spela roll för noggrannheten om man gör på det sättet, och det är nog därför man vill att du ska interpolera.
Edit. Men jag kan egentligen inte förstå varför man inte kan minska steglängden i RK4 för att kunna uppnå den noggrannhet man vill uppnå? Men det kanske hör ihop med någon begränsning i matlab?
Min mest relevanta tanke nu är att man ska hitta maxpunkten inom t.ex. andra perioden med hjälp av max och sedan anpassa ett polynom till de punkter som ligger precis bredvid. Men jag vet inte om det är en smart idé, det känns som att det fortfarande inte riktigt ger något.
För mig så låter det som en rimlig ide. Frågan är vilket slags max-värde du ska söka efter? Ska du söka efter max , eller till exempel max-värdet för ? Det kan säkert spela roll för noggrannheten du sedan kan få när du interpolerar.
Tack för din input! Ja, jag tyckte också att man kan minska steglängden i Runge-Kutta 4 eller något liknande för att lösa problemet. I uppgiftslydelsen kräver de dock interpolation specifikt.
Jag ställde frågan parallellt på Stack Exchange och fick svar där: https://math.stackexchange.com/questions/4871966/finding-period-of-pendulum-through-interpolation?noredirect=1#comment10390962_4871966.
Tyvärr är jag mitt uppe i tentaplugg och massa andra uppgifter så hinner inte skriva så jätteutvecklat om vad jag gjorde, men det svaret jag markerat som lösningen på Stack Exchange är det jag valde att implementera.
Jag behöver därav ingen vidare hjälp just nu! Tror jag har löst det.
Tack för din input! Ja, jag tyckte också att man kan minska steglängden i Runge-Kutta 4 eller något liknande för att lösa problemet. I uppgiftslydelsen kräver de dock interpolation specifikt.
Om jag får gissa så tror jag att en nyckelmening i uppgiften är "minst 3 decimaler", och att man teoretiskt bara kan få en viss noggrannhet med RK4, som är lägre än dessa tre decimaler. (Det är ju lite inkonsekvent att begära den höga noggrannheten annars, då man anger pendelns längd och vinkelhastighet med så låg noggrannhet). Man kan kanske matematiskt visa att noggrannheten bli bättre med linjär interpolation (och ännu bättre med andragradspolynominterpolation). Men den matematiken kan inte jag hjälpa dig med.
Tack för att du delade med dig av stackexchangelänken, intressant hur andra svarar!
Jag tycker att man borde välja punkter vid nollgenomgången av , då är som störst (eller mest negativ). Lycka till på tentorna!