27.07.2013 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!