Om oppgave 14, oblig 7

I denne oppgaven så vi at løsninger av bølgelikningen er sterkt avhengige av hvordan initial- og randbetingelser velges. Her finner du noen (forhåpentligvis) oppklarende kommentarer til denne oppgaven.

Det grunnleggende

MATLAB-koden vår løser bølgelikningen numerisk. Altså, dersom programmet kjenner posisjon og tverrhastighet for alle punkt langs strengen ved et tidspunkt t, kan det v.h.a bølgelikingen beregne nye posisjoner og tverrhastigheter for tidspunktet t + Δt. For å sette igang denne prosessen må vi fortelle programmet posisjon og tverrhastighet for ethvert punkt på strengen ved t = 0. Vi må altså angi noen initialbetingelser. I MATLAB-koden skjer dette i linjene som begynner med u = [...] og dudt = [...]

Videre må programmet vite hvordan det skal behandle endepunktene på strengen. I vårt tilfelle valgte vi å holde dem fastlåst. Dette er våre randbetingelser. I koden kommer dette til uttrykk i linjene u_jplus1(1) = [...] og u_jplus1(n) = [...]. 

Merk: I den opprinnelige koden er det faktisk første og siste punkt utenfor x-aksen som er fastlåst. Dersom du heller vil låse fast første og siste punkt innenfor x-aksen kan du benytte linjene
u_jplus1(1) = 0;
u_jplus1(n) = 0;

Alt som gjenstår er nå å velge en bølgehastighet langs strengen. I virkeligheten vil denne være bestemt av de fysiske egenskapene til mediet bølgen går i. For en streng har vi sett at strekkraft og massetetthet påvirker v.

Når vi så kjører programmet løses bølgelikningen iterativt, og for hvert tidssteg får vi se hvordan løsningen u(x,t) ser ut ved dette tidspunktet.
 

Oppgave a) - c): Avhengighet av initialbetingelser

Utgangspunktet for oppgaven var egentlig et litt kunstig scenario: Vi hadde på forhånd bestemt oss for hvordan vi ville at løsningen u(x,t) skulle se ut, nemlig som en gaussisk puls som beveget seg mot høyre. For å få nettop denne løsningen av bølgelikningen måtte vi gi programmet de korrekte initialbetingelsene. (Husk: For et bestemt sett med initial- og randbetingelser finnes det bare én løsning av bølgelikningen). Startposisjon fant vi helt enkelt ved å sette t = 0 i vår valgte u(x,t), mens for å finne initielle tverrhastigheter måtte vi først ta den tidsderiverte av u(x,t) og så sette inn t = 0. Dette gav oss uttrykkene som vi benyttet for å angi u = [...] og dudt = [...] i koden vår. 

At det kun er akkurat dette settet med initialbetingelser som gir oss en puls som beveger seg pent og pyntelig mot høyre kan vi forstå som følger: For at pulsen skal beholde samme form fra et tidspunkt til det neste må hvert punkt på strengen flytter seg akkurat passe langt i vertikal retning. For å få til dette må hvert punkt ha akkurat passe tverrhastighet. (F.eks. må punkter til høyre for pulsens topp ha en hastighet rettet oppover (positiv), mens punkter til venstre for toppen må ha en hastighet rettet nedover.) Det er nettop disse tverrhastighetene vi fant når vi deriverte u(x,t). 

Når vi så i oppgave a) - c) velger nye initialbetingelser ved å endre den initielle tverrhastigheten (men bevarer startposisjonen) er det ikke annet å forvente enn at vi får helt nye løsninger av bølgelikningen. Men hvorfor ender vi opp med to gaussiske pulser som går hver sin vei?

Vel, fra kapittel 5 vet vi at en generell løsning av bølgelikningen kan skrives som en sum av to funksjoner: f(x-vt) + g(x+vt). Dette betyr at vi generelt må forvente én bølgeform i hver retning - akkurat slik vi ser! Videre vet vi at ved t = 0 har vi krevd at hele strengen skal ha form som èn enkelt gaussisk puls. Dersom summen av f(x-vt) og g(x+vt) skal være en gaussisk puls, må faktisk f og hver for seg være gaussiske pulser (med samme bredde). Så når vi gjør 'vilkårlige' valg for tverrhastigheten, men beholder den opprinnelige formen på strengen, ender vi opp med to like brede, gaussiske pulser - én mot venstre og én mot høyre. (De to pulsene beveger seg nøyaktig like fort bortover strengen ettersom dette bestemmes av den felles bølgehastigheten v.)

Amplitudene til de to pulsene bestemmes av følgende to krav:
1) Summen f(x-vt) + g(x+vt) må ved t = 0 være lik vår initielle gaussform.
2) Den tidsderiverte av f(x-vt) + g(x+vt) må ved t = 0 være lik vårt valg for tverrhastighet.

Så selv om resultatene i oppgave a) - c) kunne virke noe overraskende ved første øyekast, er det egentlig akkurat hva vi burde forvente fra bølgelikningen. (Men dette er ofte lettere å innse i etterkant av simuleringen...)
 

Oppgave d): Krav for stående bølger (og en liten beklagelse...)

I oppgave d) skulle vi avgjøre hva slags initialbetingelser som måtte velges for å få stående bølger. Og her kommer en liten illustrasjon på hvor lett det er å bli forvirret når man jobber med bølger: På regnegruppen foreslo jeg og Arnt Inge for noen av dere at dere kunne ta utgangspunkt i en funksjon på formen

u(x,t) = gauss(x) * cos(wt)

og finne de tilhørende initialbetingelsene til denne funksjonsformen. Vi foreslo denne funksjonsformen ettersom den beskriver nettopp en gaussisk puls som svinger rett-opp-og-ned når tiden går, uten noen bevegelse i x-retning. (Dersom du lager en animasjon av hvordan denne funksjonen oppfører seg vil du se nettopp dette.) Men vi hadde oversett et avgjørende moment: u(x,t) er ingen gyldig løsning av bølgelikningen! Altså vil programmet vårt, som gjør simuleringer basert på bølgelikningen, aldri komme fram til en slik funksjonsform, uansett hvilke initialbetingelser vi starter med.

For å faktisk få helt 'perfekte' stående bølger er nok det enkleste å både skifte initiell funksjonsform og tverrhastighet. En mulighet er å ta utgangspunkt i funksjonsformen

u(x,t) = sin(kx) * cos(wt)

der bølgetallet k (og dermed bølgelengden) er tilpasset slik at du får plass til et helt antall bøgelengder på strengen. Vi vet at denne funksjonen kan skrives som en sum av harmoniske bølger som går hver sin vei, altså vet vi at dette er en gyldig løsning av bølgelikningen. Og ganske riktig, dersom du angir u(x,0) og du/dt(x,0) som initialbetingelser i programmet, er det nettopp denne funksjonsformen du vil se som løsning. 

Dersom du heller ønsker å starte fra en gaussisk puls ved t = 0, kan du forsøke å sette tverrhastigheten lik 0 ved t = 0. Som vi har sett tidligere får vi da to pulser som går hver sin vei. At tverrhastigheten settes lik 0 fører til at disse pulsene blir nøyaktig like store. Med relativt smale pulser vil ikke dette likne så mye på en stående bølge, bortsett fra i de korte tidsrommene der de to pulsene overlapper hverandre. Men dersom du samtidig øker bredden på pulsene (sigma i programkoden) kan du med litt justeringer få noe som stort sett ser ut som en slags stående bølge. (Forsøk f.eks. med en bredde sigma = 5.0 og dudt = 0, og alle andre størrelser som i originalkoden.)

For å få en perfekt stående bølge må løsningen vår f(x-vt) + g(x+vt) av bølgelikningen kunne skrives om til en funksjonsform u(x)*v(t), altså en form der x- og t-avhengigheten er 'frakoblet'. Dette var eksakt tilfellet for de harmoniske stående bølgene over. For gaussiske pulser vil vi derimot ikke få til dette eksakt. Men selv i dette tilfellet ser vi at ved å justere initial- og randbetingelsene kan det oppstå bølger som i stor grad kan sies å være stående. 

Av Anders Kvellestad
Publisert 15. mars 2013 11:42 - Sist endret 15. mars 2013 15:15
Legg til kommentar

Logg inn for å kommentere

Ikke UiO- eller Feide-bruker?
Opprett en WebID-bruker for å kommentere