APPUNTI DI ''MAPLE''

A.ELLERO - AA.2000/2001

Questi appunti hanno lo scopo di introdurre all'uso del programma Maple V (Waterloo Maple Inc.) e sono di supporto alle lezioni di Matematica II dell'Universitř Ca'Foscari di Venezia. La conoscenza del programma pu┌ essere approfondita utilizzando un qualsiasi manuale di Maple.

Ringrazio Marco Li Calzi per la rilettura e i suggerimenti.

INDICE DEI PARAGRAFI

1. Espressioni e funzioni.

2. Risoluzione di equazioni e sistemi.

3. Limiti, derivate, integrali.

4. Funzioni di piś variabili.

5. Equazioni differenziali.

1. Calcoli, espressioni e funzioni

Calcoli numerici e letterali

Maple ╦ in grado di soddisfare esigenze di calcolo sia di tipo simbolico che numerico.

Numeri razionali e numeri floating point

Provate a calcolare una somma algebrica di due numeri interi. Seguite l'esempio e battete il tasto di ritorno a capo.

> 3-5;

[Maple Math]

NB: non ╦ necessario scrivere "=" mentre ╦ obbligatorio concludere l'espressione con ";"

> 7/2;

[Maple Math]

NB: non viene eseguita la divisione in modo numerico per non perdere precisione negli eventuali calcoli successivi. Per Maple, 7/2 e 3.5 sono oggetti diversi: il primo ╦ un numero razionale, il secondo ╦ un numero in virgola mobile ( floating point ). Per chiarire la differenza consideriamo uno stesso calcolo eseguito con Maple utilizzando la notazione razionale e con virgola:

> (1/3.0)*3;

[Maple Math]

> (1/3)*3;

[Maple Math]

NB: il simbolo '*' indica la moltiplicazione e non pu┌ essere sottinteso.

Si noti che il primo calcolo viene effettuato in virgola mobile anche se un solo numero (3.0) ╦ di tipo floating point. Il secondo calcolo ╦ esatto perch╦ 1/3 ╦ riconosciuto e trattato come numero razionale. Vediamo che pasticci possono accadere: consideriamo un calcolo in cui siano utilizzate le due notazioni appena viste

> (1/3.0)*3-(1/3)*3;

[Maple Math]

mentre, ovviamente, dovrebbe risultare 0.

Pur senza correggere definitivamente l'errore commesso, si pu┌ chiedere un calcolo numerico piś preciso:

> Digits:= 25;

[Maple Math]

> (1/3.0)*3-(1/3)*3;

[Maple Math]

Calcoli simbolici

Maple ╦ in grado di fare calcoli di tipo letterale utilizzando moltissimi comandi per la manipolazione algebrica. Vediamo qualche esempio.

> 3*a-5*a+4*a-b*a;

[Maple Math]

Manipoliamo l'espressione raccogliendone i fattori:

> factor(%);

[Maple Math]

NB: per indicare la riga di calcolo ( execution group ) appena eseguita si utilizza il simbolo di percentuale (%), nelle versioni di Maple meno recenti lo stesso effetto si ha utilizzando il doppio apice (").

> 3*x*(x^2-y^2)^2/((x+y)*9*x);

[Maple Math]

NB: l'elevamento a potenza viene indicato dal simbolo '^'.

Si pu┌ notare che Maple effettua immediatamente le semplificazioni ovvie. Ma pu┌ fare di meglio:

> simplify(%);

[Maple Math]

Vediamo qualche altra semplificazione:

> root(x^2,2);

[Maple Math]

> simplify(%);

[Maple Math]

NB: csgn(x) indica il segno di x. Poteva far di meglio scrivendo il valore assoluto di x, che pure ╦ definito (si provi a scrivere >abs(x);) e si legge meglio: questa ╦ una avvisaglia del fatto che Maple pu┌ perdersi in un bicchier d'acqua.

Ancora un esempio:

> (x+2)*(x^2-1)/(x+1);

[Maple Math]

cerchiamo di riscrivere l'espressione in modo piś semplice:

> factor(%);

[Maple Math]

Proviamo ad eseguire le operazioni

> expand(%);

[Maple Math]

ancora non ci soddisfa, torniamo a fattorizzare

> factor(%);

[Maple Math]

Rifacciamo il conto in ordine diverso

> (x+2)*(x^2-1)/(x+1);

[Maple Math]

proviamo prima ad espandere

> expand(%);

[Maple Math]

un disastro! Proviamo a vedere se si semplifica qualcosa

> simplify(%);

[Maple Math]

meglio. Ora proviamo a fattorizzare

> factor(%);

[Maple Math]

L'ordine delle operazioni ╦ ovviamente importante: l'abbiamo provato tante volte facendo i conti a mano, qui almeno possiamo riprovare velocemente. Provate a rifare il conto cambiando ancora l'ordine delle manipolazioni e con altre espressioni.

Dagli esempi fin qui visti simplify pu┌ apparire come il comando piś utile; in realtř il comando piś flessibile ╦ expand che consente, ad esempio, di stabilire quale fattore raccogliere:

> expand((x+2)*(x+3)*(y+z),x);

[Maple Math]

> expand((x+2)*(x+3)*(y+z),x+2);

[Maple Math]

> expand((x+2)*(x+3)*(y+z),y+z);

[Maple Math]

> factor(%);

[Maple Math]

Altre informazioni

Maple consente operazioni sui numeri interi quali la divisione con resto, il fattoriale, la fattorizzazione..., sui numeri complessi, su insiemi, vettori, matrici,...

Sono inoltre definite alcune costanti quali

> exp(1);

[Maple Math]

> Pi;

[Maple Math]

Assegnazioni e funzioni

Possiamo associare un nome ad un oggetto matematico quale ad esempio un'espressione, un'equazione, una funzione. La sintassi ╦ nome := oggetto; . Ad esempio

> fattore1:=x*y;

[Maple Math]

ora fattore1 ╦ una variabile che vale xy. Consideriamo una seconda variabile

> fattore2:=x*z;

[Maple Math]

e moltiplichiamo

> prodotto:=fattore1*fattore2;

[Maple Math]

Maple ha giř effettuato qualche conto riconoscendo il valore delle variabili utilizzate.

Possiamo definire in questo modo anche le funzioni:

> f:=x->x^2-1;

[Maple Math]

La variabile f ╦ in questo caso un oggetto di tipo funzione che possiamo utilizzare come siamo abituati, per esempio per valutarla in un punto

> f(2);

[Maple Math]

ma anche in un punto simbolico

> f(antonio);

[Maple Math]

o componendola

> f(y-1);

[Maple Math]

Combiniamo una variabile di tipo numero con la funzione f

> alfredo:=3;

[Maple Math]

> f(alfredo);

[Maple Math]

E' poi semplicissimo disegnare grafici mediante il comando plot :

> plot(f,-2..4,-2..5);

[Maple Plot]

Nell'esempio la porzione di grafico che interessa ╦ quella racchiusa nel rettangolo [-2,4]x[-2,5]. Il secondo argomento del comando plot ╦ un intervallo contenuto nel dominio di f relativamente al quale interessa rappresentare il grafico di f. Il terzo argomento ╦ opzionale e, se presente, individua l'intervallo di interesse relativamente al codominio.

2. Risoluzione di equazioni e sistemi

Equazioni

La risoluzione di equazioni ╦ particolarmente semplice, il comando da utilizzare ╦ solve.

> solve({x^2=4},{x});

[Maple Math]

Maple commette errori nel caso di calcoli letterali, anche semplici, se ci sono parametri

> solve({a*x+b=0},{x});

[Maple Math]

(cosa succede se a=0?) e non risponde in alcuni casi numerici "proibiti"

> solve({0*x+3=0},{x});

E' capace di lavorare con i numeri complessi

> solve({x^2+1=0},{x});

[Maple Math]

(I ╦ l'unitř immaginaria vale a dire il numero complesso tale che I^2=-1).

Vediamo qualche altro esempio

> solve({x^3+x^2-5*x=0},{x});

[Maple Math]

> solve({x^3-13*x+12=0},{x});

[Maple Math]

> solve({x^2+y=0},{x,y});

[Maple Math]

> solve({x^2+y^2=0},{x,y});

[Maple Math]

> solve({x^7+x^2=0},{x});

[Maple Math]
[Maple Math]

> solve({exp(x)*x^2-3=0},{x});

[Maple Math]

Nell'ultimo esempio LambertW ╦ una funzione che soddisfa l'equazione
LambertW(x) * exp(LambertW(x)) = x .

Maple ╦ riuscito a fornirci una soluzione esatta anche in questo caso.

In genere siamo per┌ piś interessati alla risoluzione numerica di una equazione come la precedente. Il comando da usare ╦ in tal caso fsolve, con la stessa sintassi di solve

> fsolve({exp(x)*x^2-3 = 0},{x});

[Maple Math]

Ecco un altro caso interessante

> f:=sin(x);

[Maple Math]

> sol1:=solve({f=0.3},{x});

[Maple Math]

> sol2:=fsolve({f=0.3},{x});

[Maple Math]

Quale soluzione ╦ corretta? In realtř queste sono solo due delle infinite soluzioni dell'equazione considerata. Maple non ╦ in grado, in questo caso, di avvisarci della presenza di altre soluzioni.

Possiamo comunque accertare la bontř delle soluzioni trovate sostituendole come argomento della funzione f utilizzando il comando subs

> subs(sol1,f);

[Maple Math]

chiedendo il calcolo del valore della funzione nel punto mediante il comando evalf

> evalf(%);

[Maple Math]

> subs(sol2,f);

[Maple Math]

> evalf(%);

[Maple Math]

Sistemi di equazioni

Per risolvere sistemi di equazioni ╦ sufficiente scrivere come argomenti del comando solve l'elenco delle equazioni e delle variabili rispetto alle quali risolverle

> eq1:=3*x+2*y=2;

[Maple Math]

> eq2:=x-y=4;

[Maple Math]

> solve({eq1,eq2},{x,y});

[Maple Math]

Vediamo un caso in cui il sistema presenta infinite soluzioni

> eq3:=x+2*y=1;

[Maple Math]

> eq4:=2*x+4*y=2;

[Maple Math]

> solve({eq3,eq4},{x,y});

[Maple Math]

Mettiamo ora alla prova Maple su di un sistema di due equazioni non lineari.

Sia

> primo1:=3*x^3-exp(y);

[Maple Math]

il primo membro della prima equazione e

> primo2:=y^2+x;

[Maple Math]

il primo membro della seconda equazione e risolviamo il sistema primo1=0, primo2=3 dando anche un nome all'insieme delle soluzioni

> soll:=fsolve({primo1=0,primo2=3},{x,y});

[Maple Math]

Controlliamo l'esattezza del risultato sostituendo le soluzioni trovate in primo1 e primo2

> subs(soll,primo1);

[Maple Math]

> evalf(%);

[Maple Math]

> subs(soll,primo2);

[Maple Math]

Si noti che la soluzione trovata non ╦ unica (anche se Maple non lo dice):

> subs({x=1.098015136,y=1.379124673},primo1);

[Maple Math]

> evalf(%);

[Maple Math]

> subs({x=1.098015136,y=1.379124673},primo2);

[Maple Math]

3. Limiti, derivate, integrali

Maple fornisce tutti gli strumenti tradizionali dell'analisi. Iniziamo a vedere alcune delle possibilitř offerte nel caso di funzioni reali di variabile reale. Arriveremo a poter svolgere il tradizionale "studio di funzione" in modo completo.

3.1 Limiti

Definiamo una funzione della quale andremo poi a cercare alcuni limiti

> g:= x-> (x+1)*(x+2)*(x-3)/(x-1);

[Maple Math]

Proviamo a calcolare il limite per x - > 1. Prima definiamo il limite che ci interessa

> Limit(g(x),x=1);

[Maple Math]

e adesso cerchiamone il valore

> value(%);

[Maple Math]

La risposta ╦ corretta infatti calcolando i limiti da sinistra e da destra troviamo

> Limit(g(x),x=1,left);

[Maple Math]

> value(%);

[Maple Math]

Per il limite destro utilizziamo la lettera minuscola nel comando limit , questo consente di ottenere subito il valore numerico del limite

> limit(g(x),x=1,right);

[Maple Math]

Se gli ultimi due limiti calcolati da Maple sono giusti (e lo sono) allora il primo limite cercato non esiste. Vediamo come si calcolano i limiti a + e - infinito. Ad esempio

> Limit(g(x),x=-infinity);

[Maple Math]

> value(%);

[Maple Math]

3.2 Derivate

Consideriamo una funzione di x e contenente il parametro k:

> f:=x->x*cos(k*x);

[Maple Math]

> diff(f(x),x);

[Maple Math]

In realtř il fatto che f sia definita come funzione di x a Maple interessa poco. Possiamo infatti derivare anche rispetto a k:

> diff(f(x),k);

[Maple Math]

Cerchiamo ora i punti stazionari di una funzione. Definiamo la funzione

> h:=x->x^3-2*x^2-4*x;

[Maple Math]

e calcoliamone i punti stazionari ai quali diamo anche un nome ( staz ):

> staz:=solve(diff(h(x),x)=0,x);

[Maple Math]

Piś in generale possiamo studiare la monotonia della funzione determinando gli intervalli nei quali la derivata si mantiene non negativa:

> solve(diff(h(x),x)>=0,x);

[Maple Math]

Otteniamo cos¤ che -2/3 ╦ un punto di massimo locale mentre ╦ di minimo locale il punto 2.

Vediamo come classificare i punti stazionari utilizzando la derivata seconda. Anzitutto calcoliamola nel generico punto x:

> diff(h(x),x,x);

[Maple Math]

Speghiamo ora a Maple di considerare l'espressione appena trovata come immagine di x tramite la funzione derivata seconda di h, che chiameremo DDh; per far questo usiamo il comando unapply

> DDh:=unapply(%,x);

[Maple Math]

Adesso possiamo valutare la derivata seconda nei due punti stazionari. Nel primo punto si ha

> DDh(staz[1]);

[Maple Math]

perci┌ si tratta di un massimo. Nel secondo punto stazionario si ha

> DDh(staz[2]);

[Maple Math]

che ci conferma che il punto 2 ╦ di minimo per h. Vediamo il grafico (numerico) di h fornito da Maple:

> plot(h(x),x=-3..5,-10..10);

[Maple Plot]

3.3 Uno studio di funzione

Effettuiamo uno studio di funzione completo.

> f:=x->x^3*(x+1)/(x^2+2);

[Maple Math]

Proviamo a farci disegnare il grafico (numerico) da Maple:

> plot(f(x),x=-10..10);

[Maple Plot]

Pare che in 0 ci sia un minimo. Ma vediamo di effettuare lo studio qualitativo completo. Partiamo con il calcolo dei limiti:

> limit(f(x),x=-infinity);

[Maple Math]

> limit(f(x),x=+infinity);

[Maple Math]

Studiamo il segno

> solve(f(x)>=0,x);

[Maple Math]

pertanto f ╦ negativa tra -1 e 0, positiva altrove. Per studiare la monotonia calcoliamo la derivata di f

> diff(f(x),x);

[Maple Math]

che si pu┌ semplificare un po':

> simplify(%);

[Maple Math]

Cerchiamo i punti stazionari

> staz:=solve(diff(f(x),x)=0,x);

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

Si leggono proprio male! Prima di tentare di scrivere meglio i punti stazionari vediamo cosa si pu┌ dire riguardo alla monotonia fornendo a Maple solo il fattore che determina il segno della derivata

> solve(2*x^3+8*x+x^2+6>=0,x);

[Maple Math]

ancora una volta qualcosa di poco leggibile. Proviamo a riscrivere i punti stazionari:

> s1:=evalf(staz[1]);

[Maple Math]

> s2:=evalf(staz[2]);

[Maple Math]

> s3:=evalf(staz[3]*1.);

[Maple Math]

> s4:=evalf(staz[4]);

[Maple Math]

> s5:=evalf(staz[5]);

[Maple Math]

Valutiamo f nel terzo punto stazionario:

> f(s3);

[Maple Math]

Proviamo ora ad utilizzare la derivata seconda per classificare i punti stazionari

> DDf:=unapply(diff(f(x),x,x),x);

[Maple Math]

Nei punti stazionari si ottiene:

> evalf(DDf(staz[1]));

[Maple Math]

> evalf(DDf(staz[3]));

[Maple Math]

Il punto terzo punto stazionario ╦ pertanto di minimo locale. Per classificare il primo punto stazionario abbiamo bisogno di calcolare la derivata terza:

> DDDf:=unapply(diff(f(x),x,x,x),x);

[Maple Math]
[Maple Math]

> evalf(DDDf(staz[1]));

[Maple Math]

L'origine ╦ dunque un punto di flesso.

Avendo capito che i punti stazionari sono certamente compresi nell'intervallo [-1, 1], proviamo a tracciare un secondo grafico numerico di f, questa volta restringendo il range da considerare

> plot(f(x),x=-1.2..1);

[Maple Plot]

Lo studio di funzione consente di guidare il modo di tracciare anche il grafico numerico molto meglio rispetto al fuorviante grafico numerico tracciato all'inizio.

3.4 Integrali

Possiamo calcolare sia integrali indefiniti che definiti. Ad esempio, calcoliamo una primitiva della funzione

> f:=x->x*exp(x+1);

[Maple Math]

usando il comando int :

> int(f(x),x);

[Maple Math]

Verifichiamo i calcoli derivando

> diff(%,x);

[Maple Math]

e semplificando

> simplify(%);

[Maple Math]

ottenendo la conferma della correttezza del calcolo dell'integrale.

Nota: anche se non sappiamo se il programma ha fornito una primitiva corretta ci possiamo senz'altro fidare delle derivate fornite da Maple. Si tratta di un conto puramente meccanico che un programmatore pu┌ insegnare ad un elaboratore con poche righe di istruzioni in un qualsiasi linguaggio di programmazione.

Per calcolare un integrale definito ╦ sufficiente indicare, oltre alla variabile, l'intervallo di integrazione

> Int(f(x),x=0..2);

[Maple Math]

> value(%);

[Maple Math]

Consideriamo ora una classico esempio di funzione le cui primitive non possono essere scritte a partire da funzioni elementari utilizzando operazioni algebriche o composizione di funzioni:

> g:=x->exp(-x^2);

[Maple Math]

calcoliamone l'integrale generalizzato nell'intervallo tra 0 e piś infinito

> int(g(x),x=0..+infinity);

[Maple Math]

che ╦ corretto. Se vogliamo calcolare lo stesso integrale tra 0 e 1, ad esempio, Maple ovviamente non pu┌ far molto:

> int(g(x),x=0..5);

[Maple Math]

dove erf ( x ) = 2/sqrt(Pi) * int ((exp(-x^2), t = 0..x ) . Quindi Maple si mangia la coda, e non poteva che

essere cos¤. Possiamo per┌ chiedere una valutazione numerica dell'integrale:

> evalf(value(%));

[Maple Math]

4. Funzioni di piś variabili

4.1 Limiti e derivate

Vediamo molto velocemente come quanto visto per le funzioni di una sola variabile reale si estenda al caso di due variabili; l'estensione a piś variabili risulterř poi del tutto ovvia. Cominciamo definendo una funzione nelle variabili x e y:

> f:=(x,y)->x^2*y-3*y/x;

[Maple Math]

Proviamo a calcolare due limiti (facili)

> limit(f(x,y),{x=2,y=3});

[Maple Math]

> limit(f(x,y),{x=0,y=3});

[Maple Math]

Se tentiamo con altre funzioni facciamo presto a mettere in difficoltř Maple. La funzione

> g:=(x,y)->x^2*y^2/(x^2*y^2+(x-y)^2);

[Maple Math]

non ha limite in (0,0), Maple non risponde:

> limit(g(x,y),{x=0,y=0});

[Maple Math]

Ma anche nel caso di una funzione con limite 0 in (0,0) Maple si arena

> limit(x^3/(x^2+y^2),{x=0,y=0});

[Maple Math]

Non ci sono ovviamente problemi nel calcolo delle derivate parziali:

> diff(g(x,y),x);

[Maple Math]

> simplify(diff(g(x,y),y));

[Maple Math]

Ed ecco una derivata seconda mista

> simplify(diff(g(x,y),x,y));

[Maple Math]

Per valutare in un punto la derivata parziale seconda appena calcolata definiamo la funzione

> DDXY:=unapply(%,(x,y));

[Maple Math]

che ora possiamo valutare dove ci interessa, ad esempio in (1,-1):

> DDXY(1,-1);

[Maple Math]

4.2 Grafici

Le possibilitř grafiche sono uno dei punti forti dei programmi tipo Maple. Analizziamo prima alcune possibilitř non ancora esplorate riguardo alle funzioni di una sola variabile. Passeremo poi alle funzioni di due variabili.

4.2.1 Alcune potenzialitř grafiche per funzioni di una sola variabile

> plot(sin(x),x=0..2*Pi,title=`funzione seno`);

[Maple Plot]

Possiamo anche tentare una compressione dell'asse delle x per avere un'idea del comportamento della funzione per valori molto grandi dell'argomento

> plot(sin(x),x=0..infinity);

[Maple Plot]

Ma attenzione all'interpretazione delle proprietř geometriche del grafico. Guardate cosa accade del grafico della funzione logaritmo in base e (funzione notoriamente concava!):

> plot(ln(x),x=0..infinity);

[Maple Plot]

Per utilizzare potenzialitř grafiche disponibili solo a domanda, chiediamo a Maple di caricare il modulo plots :

> with(plots);

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

Possiamo ora utilizzare tutti i comandi elencati sopra. Per esempio possiamo utilizzare le coordinate polari

> polarplot(1,theta=0..2*Pi);

[Maple Plot]

Per un confronto tra coordinate cartesiane e polari prendiamo la curva di equazioni parametriche x=t, y=t in coordinate cartesiane

> plot([t,t,t=-2*Pi..2*Pi]);

[Maple Plot]

e in coordinate polari, vale a dire interpretando la prima coordinata come la distanza dall'origine e la seconda coordinata come angolo rispetto al semiasse positivo delle ascisse

> polarplot([t,t,t=-2*Pi..2*Pi]);

[Maple Plot]

Veniamo ora ad un grafico in scala semilogaritmica

> logplot(10^x,x=0..10);

[Maple Plot]

e ad una curva definita mediante una equazione ben nota

> implicitplot(x^2+y^2=1,x=-1..1,y=-1..1);

[Maple Plot]

Quest'ultimo comando ╦ particolarmente utile quando si hanno curve "meno note" che Maple traccia

senza protestare

> implicitplot(exp(x^2*y)-exp(y)=sin(4*x),x=-2..2,y=-5..5);

[Maple Plot]

4.2.2 Grafici per funzioni di due variabili

Vediamo alcuni esempi di grafici in tre dimensioni ottenuti con il comando plot3d e come tracciare le curve di livello.

> plot3d(x^2+y^2,x=-4..4,y=-4..4,style=patch,color=x,grid=[50,50],orientation=[160,100],axes=boxed,title=`paraboloide`);

[Maple Plot]

> contourplot(x^2+y^2,x=-5..5,y=-5..5,contours=25);

[Maple Plot]

> plot3d(y^2-x^2,x=-4..4,y=-4..4,style=contour,contours=50,grid=[50,50],orientation=[200,60],color=black,axes=boxed,title=`sella`);

[Maple Plot]

> densityplot(x^2+y^2,x=-5..5,y=-5..5);

[Maple Plot]

5. Equazioni differenziali

Esaminiamo ora alcune delle possibilitř che Maple offre per la risoluzione di equazioni differenziali ordinarie. Cominciamo con il definire la semplice equazione differenziale

> eq:=diff(x(t),t)=3*x(t);

[Maple Math]

per la quale possiamo chiedere la soluzione generale con il comando dsolve

> dsolve({eq},{x(t)});

[Maple Math]

Ora aggiungiamo una condizione iniziale e risolviamo il corrispondente problema di Cauchy:

> ini:=x(1)=3*exp(3);

[Maple Math]

> dsolve({eq,ini},{x(t)});

[Maple Math]

Esaminiamo ora qualche sistema di due equazioni differenziali a coefficienti costanti: definiamo la prima equazione

> eq1:=diff(x[1](t),t)=-2*x[2](t);

[Maple Math]

la seconda

> eq2:=diff(x[2](t),t)=x[1](t);

[Maple Math]

e una condizione iniziale

> ini2:=x[1](1)=1,x[2](1)=1;

[Maple Math]

Possiamo risolvere il problema di Cauchy con il comando utilizzato sopra per l'equazione singola a patto di specificare tutte le equazioni e le condizioni iniziali da utilizzare

> dsolve({eq1,eq2,ini2},{x[1](t),x[2](t)});

[Maple Math]

Per consentire a Maple di rappresentare graficamente la traiettoria della soluzione ╦ necessario chiedere una risoluzione di tipo "numerico":

> sol:=dsolve({eq1,eq2,ini2},{x[1](t),x[2](t)},type=numeric);

[Maple Math]

E' adesso possibile determinare il valore della soluzione in un qualsiasi istante di tempo, ad esempio t=2:

> sol(2);

[Maple Math]

Tracciamo ora la traiettoria tra gli istanti t=1 e t=5 con il comando odeplot (ode=ordinary differential equation):

> odeplot(sol,[x[1](t),x[2](t)],1..5);

[Maple Plot]

L'origine ╦ dunque un centro , infatti gli autovalori della matrice dei coefficienti del sistema sono puramente immaginari.

Cambiamo ora la prima equazione e ripetiamo il procedimento

> eq1:=diff(x[1](t),t)=x[1](t)-2*x[2](t);

[Maple Math]

> sol:=dsolve({eq1,eq2,ini2},{x[1](t),x[2](t)},type=numeric);

[Maple Math]

> odeplot(sol,[x[1](t),x[2](t)],1..7);

[Maple Plot]

L'origine ╦ ora un fuoco : ╦ stabile o no? Per capirlo possiamo tracciare la traiettoria in un intervallo di tempo piś lungo:

> odeplot(sol,[x[1](t),x[2](t)],1..8);

[Maple Plot]

Poich╦ la traiettoria si allontana dall'origine il fuoco ╦ instabile.

Traccaimo ora parte del grafico, in tre dimensioni, del moto del sistema

> odeplot(sol,[t,x[1](t),x[2](t)],1..7,color=black,axes=boxed);

[Maple Plot]

Ora potete ricreare in laboratorio gli altri casi che si possono presentare quando si esamina la stabilitř dell'origine per sistemi di due equazioni differenziali lineari a coefficienti costanti (ma potete anche studiare in modo numerico sistemi in cui le equazioni differenziali non sono n╚ lineari n╚ a coefficienti costanti: mettete alla prova Maple!).