> restart;
Här fixeras b till 0.1
Positivt b innebär att karakteristiska ekvationens lösningar
blir negativa (för små a) eller får negativa realdelar.
Detta medför i sin tur att diffekvationens lösningarna blir stabila,
dvs konvergerar mot 0 då x -> +oändligheten.
>
b:=.1;
Differentialekvationen definieras m.hj.a. kommandot 'diff'.
Vi definierar ekvationen för a=0 separat eftersom den får
en lösning av avvikande typ.
>
eqa:=diff(y(x),x,x) + 2*b*diff(y(x),x)+b^2*(1+a)*y(x)=0;
eq0:=diff(y(x),x,x) + 2*b*diff(y(x),x)+b^2*y(x)=0;
Lösningen sker med kommandot 'dsolve'.
Vi för in begynnelsevärdena y'(0)=0 och y(0)=1 i kommandot.
Obs. hur parenteserna används!
(Vill man ha en allmän lösning utan beg.värden, skriver man
' sallm := dsolve(eqa, y(x)); ' )
>
sa:=dsolve({eqa,D(y)(0)=0,y(0)=1},y(x));
s0:=dsolve({eq0,D(y)(0)=0,y(0)=1},y(x));
Man ser att för a > 0 innehåller lösningen sa komplexa tal.
Dock är lösningen reell eftersom de komplexa inslagen tar ut varandra,
Lösningen s0 (svarande mot dubbelrötterna) innehåller en faktor x i en av termerna,
vilket inte sa har.
sa har parametern a i nämnarna vilket gör att sa inte är definierat för a=0.
Man kan dock undersöka om gränsvärdet för sa då a->0 överensstämmer med s0.
Output från dsolve-kommandot är en ekvation (y(x) = funktion av x).
Vi behöver plocka ut högerledsfunktionen från ekvationen för att kunna
hantera lösningen med limit- och plot-kommandona,
Detta görs med 'rhs' (right hand side):
> lsa:=rhs(sa);ls0:=rhs(s0);
Här bildar vi gränsvärdet för sa då a -> 0 och konstaterar att vi verkligen får s0:
> lsx:=limit(lsa,a=0);
Nu fixerar vi två a-värden, ett > 0 och ett < 0 för att få två
lösningskurvor som kan jämföras med dubbelrotslösningen s0.
>
ls0m:=eval(lsa,a=-0.2);
ls0p:=eval(lsa,a=0.8);
ls0p kan visas vara reell med termer av typ e-bxcos(cx) och e-bxsin(cx), dvs. dämpade svängningar.
Vi plottar nu de tre kurvorna, där dubbelrotslösningen ls0 (blå) kan ses ligga emellan de två övriga,
För att se ls0p:s (svart kurva) karaktär av dämpad svängning plottar vi dessutom kurvorna över
ett större x-intervall men mindre y-intervall.
>
plot({ls0m,ls0,ls0p} ,x=-1..30,y=0..1,color=[black,blue,red]);
plot({ls0m,ls0,ls0p} ,x=10..60,y=-0.5..0.5,color=[black,blue,red]);
>
Denna session studerar resonansfenomenet.
Genom att variera parametrarna a och b
i ekvationen
y'' + b2(1+a)2y = sin(bx)
kan man studera skillnader mellan ren
resonans (a=0) och 'nästanresonans' (a skild från 0) då resonansfrekvensen är b.
Vi väljer här b=1.
> restart;
> b:=1;
Vi utgår från en ekvation (eqba) med högerledet sin bx och med egenfrekvensen b(1+a).
Dessutom definieras separat den ekvation (eqb0) som svarar mot a=0 och som alltså ger ren resonans.
>
eqba:=diff(y(x),x,x) + b^2*(1+a)^2*y(x)=sin(b*x);
eqb0:=diff(y(x),x,x) + b^2*y(x)=sin(b*x);
Ekvationerna löses med dsolve. Begynnelsevillkoren y(0)=1, y'(0)=0 sätts in
(Observera hur parenteserna används!)
Vi gör också 'simplify' på resonanslösningen för att få denna så enkel som möjligt.
>
sba:=dsolve({eqba,D(y)(0)=0,y(0)=1},y(x));
sb0:=dsolve({eqb0,D(y)(0)=0,y(0)=1},y(x));
simplify(sb0);
Output från dsolve är som synes en ekvation: y(x)= funktion av x.
För att kunna plotta lösningsfunktionerna behöver vi namn på högerleden i ekvationerna sba och sb0
och tar därför 'rhs' (right hand side) av dessa ekvationer.
> lsba:=rhs(sba):lsb0:=rhs(sb0):
Man noterar att lösningen sba inte är definierad för a=0.
Det är frestande att testa om gränsvärdet av sba då a->0 överensstämmer med resonanslösningen sb0.
Vi tar gränsvärdet av lösningsfunktionen lsba:
> lsbx:=limit(lsba,a=0);
Det gör den! Gränsvärdet är = den förenklade versionen av sb0.
Vi fixerar nu a (a=0.10) för att få en 'nästanresonanslösning' som kan jämföras med resonanslösningen lsb0:
> lsbp:=eval(lsba,a=0.1);
>
Nu plottar vi de båda lösningskurvorna.
Man ser att resonanskurvan (röd) får linjärt växande amplituder
medan den andra kurvan är begränsad.
I början är dock överensstämmelsen mellan kurvorna ganska stor,
>
plot( {lsb0,lsbp},x=0..50,y=-25..25,color=[blue,red]);
ÖvningKopiera de viktigaste kommandona från Del 1 och Del 2 till ett eget Maple worksheet. Du får då en sorts diffekvationslaboratorium där du kan experimentera genom att variera värdena på parametrarna.Du kan exempelvis pröva följande:
|