Maple: Simplifikation af udtryk og løsning af ligninger
Maple: Simplifikation af udtryk og løsning af ligninger
Maple: Simplifikation af udtryk og løsning af ligninger
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Databehandling 2005<br />
Forelæsning 19, tirsdag 26. april 2005<br />
Oversigt<br />
• Sekvenser, lister <strong>og</strong> mængder<br />
• <strong>Simplifikation</strong> <strong>og</strong> manipulation <strong>af</strong> <strong>udtryk</strong><br />
• Løsning <strong>af</strong> <strong>ligninger</strong><br />
• Løsning <strong>af</strong> differential<strong>ligninger</strong><br />
• Et eksempel fra Matematisk Grundkursus<br />
Databehandling 2005 KVL Side 19-1<br />
Sekvenser<br />
N<strong>og</strong>le <strong>af</strong> <strong>Maple</strong>s funktioner giver svar i form <strong>af</strong> en sekvens <strong>af</strong> <strong>udtryk</strong>.<br />
En sekvens er simpelt hen en række <strong>udtryk</strong> adskilt <strong>af</strong> kommaer. Man kan selv indtaste sekvenser:<br />
> 10, x, sin(x);<br />
10, x, sin(x)<br />
Man kan binde en sekvens til et navn med en tildeling:<br />
> sekvens:=10, x, sin(x);<br />
sekvens := 10, x, sin(x)<br />
Man kan udtage enkelte elementer eller delsekvenser med indeksoperatoren [ ]:<br />
> sekvens[1]; sekvens[2..3];<br />
10<br />
x, sin(x)<br />
Databehandling 2005 KVL Side 19-2<br />
Lister<br />
Ofte har man brug for at give en liste <strong>af</strong> værdier eller <strong>udtryk</strong> til <strong>Maple</strong>s funktioner.<br />
Somme tider får man <strong>og</strong>så resultater i form <strong>af</strong> lister.<br />
En liste er en sekvens "pakket ind" i kantede parenteser:<br />
> liste1:=[a,b,c,d];<br />
liste1 := [a, b, c, d]<br />
Man kan konvertere en sekvens til en liste simpelt hen ved at komme kantede parenteser om:<br />
> liste2:=[sekvens];<br />
liste2 := [10, x, sin(x)]<br />
Man kan udtage enkelte elementer <strong>og</strong> dellister med indeksoperatoren:<br />
> liste1[2..3]; liste2[2];<br />
[b, c]<br />
x<br />
Databehandling 2005 KVL Side 19-3<br />
Mængder<br />
Man kan <strong>og</strong>så have brug for at give en mængde <strong>af</strong> værdier eller <strong>udtryk</strong> til <strong>Maple</strong>s funktioner eller man kan få<br />
resultater i form <strong>af</strong> mængder.<br />
Man skriver en mængde som en sekvens "pakket ind" i krøllede (mængde) parenteser <strong>og</strong> kan konvertere<br />
sekvenser til mængder på den forventede måde:<br />
> mængde1:={a,b,c,d}; mængde2:={sekvens};<br />
mængde1 := {a, b, c, d}<br />
mængde2 := {10, x, sin(x)}<br />
I modsætning til for lister <strong>og</strong> sekvenser bevares rækkefølgen <strong>af</strong> elementer ikke i en mængde, <strong>og</strong> eventuelle<br />
gentagelser fjernes.<br />
<strong>Maple</strong>s mængdebegreb svarer dermed til de mængder man kender fra matematik.<br />
Det er muligt at tage fællesmængde, foreningsmængde <strong>og</strong> mængdedifferens:<br />
> mængde1 union {d,e,f}; mængde1 intersect {d,e,f};<br />
> mængde1 minus {d,e,f};<br />
{a, b, f, c, e, d}<br />
{d}<br />
{a, b, c}<br />
Databehandling 2005 KVL Side 19-4
<strong>Simplifikation</strong> <strong>af</strong> <strong>udtryk</strong> med simplify<br />
Som nævnt ved sidste forelæsning konverterer <strong>Maple</strong> ikke automatisk indtastede <strong>udtryk</strong> til den simpleste form,<br />
men man kan bruge simplify til at forsimple med:<br />
> exp(a+ln(b*exp(c)));<br />
> simplify(%);<br />
> cos(x)^2+sin(x)^2;<br />
> simplify(%);<br />
> x*(x+4)+x^2+(x+1)*(x-3)+2;<br />
> simplify(%);<br />
e (a+ln(b ec ))<br />
b e (a+c)<br />
cos(x) 2 + sin(x) 2<br />
1<br />
x (x + 4) + x 2 + (x + 1) (x − 3) + 2<br />
3 x 2 + 2 x − 1<br />
Ved første øjekast kan simplify synes som den mest nyttige funktion i <strong>Maple</strong> overhovedet. Men den har sine<br />
begrænsninger.<br />
Det er nemlig ikke veldefineret hvad der er den "simpleste form" <strong>af</strong> ethvert matematisk <strong>udtryk</strong> – den bedste form<br />
<strong>af</strong>hænger <strong>af</strong> hvad man skal bruge <strong>udtryk</strong>ket til.<br />
Databehandling 2005 KVL Side 19-5<br />
Manipulation <strong>af</strong> <strong>udtryk</strong> med expand <strong>og</strong> factor<br />
Funktionen expand ændrer et <strong>udtryk</strong> ved at gange alle parenteser ud (distribuere produkter over summer) <strong>og</strong><br />
derefter samle led <strong>af</strong> samme potenser.<br />
> expand(x*(x+4)+x^2+(x+1)*(x-3)+2);<br />
3 x 2 + 2 x − 1<br />
Den modsatte <strong>af</strong> at ekspandere et <strong>udtryk</strong> er at forsøge at faktorisere det til et produkt <strong>af</strong> polynomier <strong>af</strong> mindst<br />
mulig grad.<br />
Dette gøres med funktionen factor:<br />
> factor(%);<br />
(x + 1)(3 x − 1)<br />
Denne form <strong>af</strong> polynomiet er nyttig for nu kan vi direkte se at rødderne er -1 <strong>og</strong> 1 3 .<br />
Det er muligt at bede expand om at lade visse under<strong>udtryk</strong> forblive uekspanderede:<br />
> expand((a+b)*(c+d)); expand((a+b)*(c+d),a+b);<br />
a c + a d + b c + b d<br />
(a + b) c + (a + b) d<br />
Databehandling 2005 KVL Side 19-6<br />
Mere om expand <strong>og</strong> factor, samt normal<br />
Funktionerne expand <strong>og</strong> factor virker <strong>og</strong>så på rationelle <strong>udtryk</strong>.<br />
> (x+1)*(x-2)/(x-5);<br />
(x + 1) (x − 2)<br />
x − 5<br />
> expand(%);<br />
x2 x<br />
−<br />
x − 5 x − 5<br />
1<br />
− 2<br />
x − 5<br />
Med funktionen normal kan man bringe et rationelt <strong>udtryk</strong> på faktoriseret normal form, d.v.s. som en brøk hvor<br />
tæller <strong>og</strong> nævner er polynomier der ikke går op i hinanden.<br />
> normal(%);<br />
x 2 − x − 2<br />
x − 5<br />
Endelig kan man bruge factor for at faktorisere tæller <strong>og</strong> nævner igen:<br />
> factor(%);<br />
(x + 1) (x − 2)<br />
x − 5<br />
Databehandling 2005 KVL Side 19-7<br />
Manipulation <strong>af</strong> <strong>udtryk</strong> med expand <strong>og</strong> combine<br />
Med expand kan man <strong>og</strong>så ekspandere en lang række <strong>udtryk</strong> der indeholder specielle funktioner.<br />
> expand(cos(x+y));<br />
cos(x) cos(y) − sin(x) sin(y)<br />
Her kan man ikke bruge factor for at gå den anden vej, men ofte kan man bruge funktionen combine:<br />
> combine(%);<br />
> expand(exp(a+b));<br />
> combine(%);<br />
> expand(Int(x+1,x));<br />
> combine(%);<br />
> expand(exp(sin(a+b)));<br />
> combine(%);<br />
<br />
cos(x + y)<br />
e a e b<br />
e (a+b)<br />
<br />
x dx + 1 dx<br />
<br />
x + 1 dx<br />
e (sin(a) cos(b)) e (cos(a) sin(b))<br />
e sin(a+b)<br />
Databehandling 2005 KVL Side 19-8
Manipulation <strong>af</strong> polynomier med collect<br />
I polynomier i flere variable kan man samle koefficienterne for bestemte variable med funktionen collect.<br />
> poly:=x^2+5*x+2*x*y+y+y*z+3*x*z;<br />
> collect(poly,x);<br />
> collect(poly,y);<br />
poly := x 2 + 5 x + 2 x y + y + y z + 3 x z<br />
x 2 + (5 + 2 y + 3 z) x + y z + y<br />
(2 x + 1 + z) y + x 2 + 5 x + 3 x z<br />
Vi kan <strong>og</strong>så bede om at få samlet koefficienterne først for x <strong>og</strong> dernæst for y:<br />
> collect(poly,[x,y]);<br />
x 2 + (5 + 2 y + 3 z) x + (z + 1) y<br />
Endelig kan vi bede om at få koefficienter samlet på produkter <strong>af</strong> visse variable frem for først for én variabel <strong>og</strong><br />
dernæst for den næste variabel:<br />
> collect(poly,[x,y],distributed);<br />
x 2 + 2 x y + (z + 1) y + (5 + 3 z) x<br />
Databehandling 2005 KVL Side 19-9<br />
Sortering <strong>af</strong> polynomier med sort<br />
<strong>Maple</strong> sorterer ikke nødvendigvis leddene i et polynomium efter faldende potenser <strong>af</strong> de variable som man<br />
sædvanligvis gør.<br />
Faktisk lader <strong>Maple</strong> et polynomium stå som man indtaster det:<br />
> poly:=2*x+x^3-2+6*x^2;<br />
poly := 2 x + x 3 − 2 + 6 x 2<br />
Med funktionen sort kan man få sorteret efter potenser:<br />
> sort(poly);<br />
x 3 + 6 x 2 + 2 x − 2<br />
Sortering er “destruktiv” <strong>og</strong> ændrer det oprindelige polynomium.<br />
> poly;<br />
x 3 + 6 x 2 + 2 x − 2<br />
Faktisk kan <strong>Maple</strong> huske hvilke polynomier der er set før så selv om man taster den oprindelige form ind igen får<br />
man den sorterede form:<br />
> 2*x+x^3-2+6*x^2;<br />
x 3 + 6 x 2 + 2 x − 2<br />
Der skal en restart kommando til for at få <strong>Maple</strong> til at glemme sorteringen <strong>af</strong> et polynomium.<br />
Databehandling 2005 KVL Side 19-10<br />
Mere om sort<br />
For polynomier i flere variable kan man angive hvilke variable der skal sorteres efter:<br />
> a*x+b*y^2+c*x^2*y+5+y;<br />
> sort(%,[x,y]);<br />
> sort(%,[y,x]);<br />
> sort(%,[x]);<br />
a x + b y 2 + c x 2 y + 5 + y<br />
c x 2 y + b y 2 + a x + y + 5<br />
c y x 2 + b y 2 + y + a x + 5<br />
c y x 2 + a x + b y 2 + y + 5<br />
Databehandling 2005 KVL Side 19-11<br />
Løsning <strong>af</strong> <strong>ligninger</strong><br />
En ligning er blot et <strong>udtryk</strong> der indeholder et lighedstegn.<br />
> lign:=a*x+b=0;<br />
lign := a x + b = 0<br />
<strong>Maple</strong> kan løse <strong>ligninger</strong> algebraisk med funktionen solve. Man angiver en ligning <strong>og</strong> den ukendte man ønsker<br />
at finde.<br />
> solve(lign,x);<br />
Ved at angive den ukendte "pakket ind" i en mængde får man <strong>løsning</strong>en på en alternativ form:<br />
> solve(lign,{x});<br />
− b<br />
a<br />
{x = − b<br />
a }<br />
Denne form for <strong>løsning</strong> er praktisk fordi man kan anvende den direkte i eval til at kontrollere <strong>løsning</strong>en:<br />
> eval(lign,%);<br />
0 = 0<br />
Databehandling 2005 KVL Side 19-12
Løsning <strong>af</strong> <strong>ligninger</strong> fortsat<br />
Hvis en ligning er et polynomuim <strong>og</strong> har flere <strong>løsning</strong>er giver solve resultatet som en sekvens <strong>af</strong> <strong>løsning</strong>er:<br />
> lign:=x^2-13*x+40=0;<br />
> løs:=solve(lign,{x});<br />
lign := x 2 − 13 x + 40 = 0<br />
løs := {x = 5}, {x = 8}<br />
Man må så indeksere sig frem til den enkelte <strong>løsning</strong> hvis man for eksempel ønsker at kontrollere dem med<br />
eval:<br />
> eval(lign,løs[1]), eval(lign,løs[2]);<br />
0 = 0, 0 = 0<br />
Databehandling 2005 KVL Side 19-13<br />
Løsning <strong>af</strong> ligningssystemer<br />
Med solve kan man <strong>og</strong>så løse ligningssystemer.<br />
Man angiver systemet som en mængde <strong>af</strong> <strong>ligninger</strong>:<br />
> lign:={x+y=5,x-y=1};<br />
lign := {x + y = 5, x − y = 1}<br />
> løs:=solve(lign,{x,y});<br />
løs := {y = 2, x = 3}<br />
Man kan igen anvede eval for at kontrollere sin <strong>løsning</strong>:<br />
> eval(lign,løs);<br />
{1 = 1, 5 = 5}<br />
Man kan <strong>og</strong>så nemt anvende eval for at få den enkelte ukendte:<br />
> eval(x,løs);<br />
3<br />
Man kan medtage uligheder i den mængde <strong>af</strong> <strong>ligninger</strong> der skal løses:<br />
> solve({x^2=4,x>0},{x});<br />
{x = 2}<br />
Man kan <strong>og</strong>så løse systemer bestående alene <strong>af</strong> uligheder (se noterne).<br />
Databehandling 2005 KVL Side 19-14<br />
Løsninger med RootOf<br />
N<strong>og</strong>le gange giver solve en del <strong>af</strong> <strong>løsning</strong>smængden som funktionen RootOf anvendt på et <strong>udtryk</strong><br />
indeholdende et automatisk genereret variabelnavn.<br />
RootOf betyder at <strong>løsning</strong>erne til det oprindelige problem er rødder i det angivne <strong>udtryk</strong> (som <strong>Maple</strong> ikke kan<br />
finde rødderne til algebraisk).<br />
Faktisk foretrækker <strong>Maple</strong> <strong>og</strong>så at give <strong>løsning</strong>er til fjerdegrads<strong>ligninger</strong> der ikke har heltals<strong>løsning</strong>er i form <strong>af</strong> en<br />
RootOf-<strong>løsning</strong>.<br />
Dette er fordi <strong>løsning</strong>erne generelt er så komplicerede at de er meget vanskelige at læse.<br />
Tag for eksempel denne fjerdegradsligning:<br />
> lign:=x^4-3*x+5;<br />
> løs:=solve(lign,{x});<br />
lign := x 4 − 3 x + 5<br />
løs := {x = RootOf(_Z 4 − 3 _Z + 5, index = 1)}, {x = RootOf(_Z 4 − 3 _Z + 5, index = 2)},<br />
{x = RootOf(_Z 4 − 3 _Z + 5, index = 3)}, {x = RootOf(_Z 4 − 3 _Z + 5, index = 4)}<br />
Databehandling 2005 KVL Side 19-15<br />
“Udpakning” <strong>af</strong> en RootOf <strong>løsning</strong><br />
Hvis man tager allvalues til en RootOf <strong>løsning</strong> får man den algebraiske løsing, hvis den findes, ellers får<br />
man bare samme RootOf <strong>løsning</strong> igen.<br />
For fjerdegradsligningen fra før er <strong>udtryk</strong>kene så indviklede at der ikke er plads til bare en enkelt <strong>løsning</strong> på denne<br />
transparent.<br />
Man kan med fordel gå direkte til numeriske <strong>løsning</strong>er ved at anvende evalf:<br />
> evalf(løs);<br />
{x = 1.081909857 − .6908765240 I }, {x = 1.081909857 + .6908765240 I },<br />
{x = −1.081909857 + 1.365191381 I }, {x = −1.081909857 − 1.365191381 I }<br />
For visse RootOf <strong>udtryk</strong> (med periodiske funktioner) kan <strong>Maple</strong> gå i en uendelig løkke hvis man beder om en<br />
allvalues <strong>løsning</strong>.<br />
Man kan d<strong>og</strong> altid bruge “stop” knappen til at <strong>af</strong>bryde beregningen.<br />
Databehandling 2005 KVL Side 19-16
solve’s begrænsninger<br />
Når solve ikke kan finde en <strong>løsning</strong> giver den et tomt svar:<br />
> solve({x^2=4,x>10},{x});<br />
N<strong>og</strong>le gange finder solve desværre heller ikke alle <strong>løsning</strong>er, specielt ikke hvis trigonometriske funktioner er<br />
involveret.<br />
Nedenstående ligning har for eksempel seks <strong>løsning</strong>er hvor<strong>af</strong> solve kun finder en enkelt RootOf <strong>løsning</strong>:<br />
> solve(sin(x)+x^2/100=0,{x});<br />
> evalf(%);<br />
{x = RootOf(100 sin(_Z) + _Z 2 , label = _L1046)}<br />
{x = 0.}<br />
Databehandling 2005 KVL Side 19-17<br />
Numerisk <strong>løsning</strong> <strong>af</strong> <strong>ligninger</strong><br />
Når man ikke kan finde <strong>løsning</strong>er algebraisk kan man forsøge sig numerisk.<br />
Funktionen fsolve forsøger numerisk at finde en enkelt <strong>løsning</strong> til en ligning (d<strong>og</strong> alle <strong>løsning</strong>er hvis der er tale<br />
om et polynomium).<br />
> fsolve(sin(x)+x^2/100=0,{x});<br />
{x = 0.}<br />
Som standard leder fsolve kun efter reelle <strong>løsning</strong>er. Hvis man vil have komplekse <strong>løsning</strong>er må man eksplicit<br />
bede om det:<br />
> lign:=2*x^6-9*x^5+4*x^4-18*x^3-8*x+36=0;<br />
lign := 2 x 6 − 9 x 5 + 4 x 4 − 18 x 3 − 8 x + 36 = 0<br />
> fsolve(lign,{x});<br />
{x = 1.080814100}, {x = 4.500000000}<br />
> løs:=fsolve(lign,{x},complex);<br />
løs := {x = −.8052581887 − .8818333295 I }, {x = −.8052581887 + .8818333295 I },<br />
{x = .2648511385 − 1.589036316 I }, {x = .2648511385 + 1.589036316 I },<br />
{x = 1.080814100}, {x = 4.500000000}<br />
Databehandling 2005 KVL Side 19-18<br />
Mere om fsolve<br />
Det er ikke alle numeriske <strong>løsning</strong>er der er lige præcise:<br />
> eval(lign,løs[1]); eval(lign,løs[3]);<br />
0 = 0<br />
.4 10 −7 − .2 10 −7 I = 0<br />
Det samme gør sig gældende med <strong>løsning</strong>er fundet med evalf-ekspansion <strong>af</strong> en RootOf-<strong>løsning</strong>.<br />
Selv om fsolve kun giver en enkelt <strong>løsning</strong> for ikke-polynomier er der flere muligheder for sucessivt at finde<br />
flere <strong>løsning</strong>er; det er beskrevet i noterne.<br />
Databehandling 2005 KVL Side 19-19<br />
Løsning <strong>af</strong> differential<strong>ligninger</strong><br />
En ordinær differentialligning løses med funktionen dsolve.<br />
Hvis man bare giver en ligning uden begyndelsesbetingelser får man den fuldstændige <strong>løsning</strong>:<br />
> lign:={diff(y(t),t,t)+4*y(t)=0};<br />
> dsolve(lign,{y(t)});<br />
<strong>Maple</strong> generere automatisk de nødvendige konstanter.<br />
lign := {( d2<br />
dt 2 y(t)) + 4 y(t) = 0}<br />
y(t) = _C1 sin(2 t) + _C2 cos(2 t)<br />
For at få en partikulær <strong>løsning</strong> kan vi tilføje begyndelsesbetingelser:<br />
> bb:={y(0)=3,D(y)(Pi/2)=10};<br />
bb := {y(0) = 3, D(y)( 1<br />
π) = 10}<br />
2<br />
> løs:=dsolve(lign union bb,{y(t)});<br />
løs := y(t) = −5 sin(2 t) + 3 cos(2 t)<br />
Databehandling 2005 KVL Side 19-20
Kontrol <strong>af</strong> <strong>løsning</strong>en til differentialligningen<br />
Vi kan verificere at den fundne <strong>løsning</strong> opfylder ligningen direkte ved at bruge eval:<br />
> eval(lign,løs);<br />
{0 = 0}<br />
For at kontrollere at begyndelsesbetingelserne er overholdt er vi d<strong>og</strong> nødt til at lave <strong>løsning</strong>en om til en funktion:<br />
> eval(y(t),løs);<br />
> y1:=unapply(%,t);<br />
> eval(bb,y=y1);<br />
Vi kan <strong>og</strong>så kontrollere at y1 opfylder ligningen:<br />
> eval(lign,y=y1);<br />
−5 sin(2 t) + 3 cos(2 t)<br />
y1 := t → −5 sin(2 t) + 3 cos(2 t)<br />
{10 = 10, 3 = 3}<br />
{0 = 0}<br />
Databehandling 2005 KVL Side 19-21<br />
Eksempel<br />
Opgave 5 fra eksamen i Matematisk Grundkursus December 1998:<br />
Givet den lineære 1. ordens differentialligning<br />
dy<br />
dx + (2a − 6)y = 18eax . (L)<br />
hvor a ∈ R er en konstant.<br />
(1) Sæt a = 1 <strong>og</strong> bestem derefter den <strong>løsning</strong> y = ϕ(x) til (L) der er fastlagt ved begyndelsesbetingelsen<br />
ϕ(0) = 7.<br />
(2) Find den værdi <strong>af</strong> a for hvilken (L) tilfredsstilles <strong>af</strong> funktionen y = 2e 5x . Løs derefter, med den fundne værdi<br />
<strong>af</strong> a indsat, ligningen (L) fuldstændigt.<br />
(3) [Vanskeligt spørgsmål.] Løs (L) fuldstændigt for vilkårlig a ∈ R. Løsningen skal angives i form <strong>af</strong> en ligning for<br />
y <strong>udtryk</strong>t ved x <strong>og</strong> a samt en arbitrær konstant c. Det bemærkes, at <strong>løsning</strong>en kan <strong>af</strong>prøves for de værdier <strong>af</strong> a,<br />
der optrædte i (1) <strong>og</strong> (2), men denne <strong>af</strong>prøvning ønskes ikke anført i besvarelsen.<br />
Databehandling 2005 KVL Side 19-22<br />
Løsning <strong>af</strong> (1) i <strong>Maple</strong><br />
> restart;<br />
> lign:=diff(y(x),x)+(2*a-6)*y(x)=18*exp(a*x);<br />
lign := ( d<br />
dx y(x)) + (2 a − 6) y(x) = 18 e(a<br />
x)<br />
> dsolve({eval(lign,a=1),y(0)=7},{y(x)});<br />
Kontrol <strong>af</strong> <strong>løsning</strong>en:<br />
> eval(lign,{a=1,%});<br />
y(x) = −6 ex + 13 e (4 x)<br />
18 e x = 18 e x<br />
Databehandling 2005 KVL Side 19-23<br />
Løsning <strong>af</strong> (2) i <strong>Maple</strong><br />
For at finde den ønskede værdi <strong>af</strong> a er vi nødt til at løse en ligning der skal gælde for alle x. Dette gøres med<br />
solve sammen med den specielle funktion identity (se <strong>Maple</strong> noterne):<br />
> solve(identity(eval(lign,y(x)=2*exp(5*x)),x),a);<br />
Herfra er resten stort set en gentagelse <strong>af</strong> (1) bare uden begyndelsesbetingelse:<br />
> dsolve(eval(lign,a=5),y(x));<br />
Kontrol <strong>af</strong> <strong>løsning</strong>en:<br />
> eval(lign,{a=5,%});<br />
> simplify(%);<br />
5<br />
y(x) = (2 e (9 x) + _C1) e (−4 x)<br />
18 e (−4 x) e (9 x) = 18 e (5 x)<br />
18 e (5 x) = 18 e (5 x)<br />
Databehandling 2005 KVL Side 19-24
Løsning <strong>af</strong> (3) i <strong>Maple</strong><br />
> dsolve(lign,y(x));<br />
Denne <strong>løsning</strong> må kunne skrives pænere:<br />
> expand(%);<br />
> combine(%);<br />
e(−2<br />
(a−3) x+(3 a−6) x)<br />
y(x) = 18 + e<br />
3 a − 6<br />
(−2 (a−3) x) _C1<br />
y(x) =<br />
y(x) =<br />
18 e(a x)<br />
3 a − 6 + (ex ) 6 _C1<br />
(e (a x) ) 2<br />
18 e(a<br />
x)<br />
+ _C1 e(−2<br />
a x+6 x)<br />
3 a − 6<br />
Den fundne <strong>løsning</strong> gælder for alle a ∈ R undtagen a = 2, så vi er nødt til at løse specielt for denne værdi <strong>af</strong> a:<br />
> dsolve(eval(lign,a=2),y(x));<br />
> combine(expand(%));<br />
y(x) = (18 x + _C1) e (2 x)<br />
y(x) = 18 e (2 x) x + e (2 x) _C1<br />
Databehandling 2005 KVL Side 19-25<br />
Sammenfatning<br />
• Man kan forsimple <strong>udtryk</strong> med simplify men kan <strong>og</strong>så med fordel eksperimentere med expand,<br />
factor, combine <strong>og</strong> normal.<br />
• Man kan omforme polynomier med collect <strong>og</strong> sort.<br />
• Man kan løse <strong>ligninger</strong>, ligningssystemer <strong>og</strong> uligheder algebraisk med solve.<br />
• Man kan løse <strong>ligninger</strong> (<strong>og</strong> ligningssystemer) numerisk med fsolve.<br />
• Man kan løse ordinære differential<strong>ligninger</strong> med dsolve.<br />
Læs: <strong>Maple</strong> noter <strong>af</strong>snit 12–16 (denne forelæsning) <strong>og</strong> <strong>af</strong>snit 17–18 (næste forelæsning).<br />
Databehandling 2005 KVL Side 19-26