Equazioni

Fra le possibilità di risoluzione di equazioni e disequazioni ci soffermiamo sui comandi:

 
  • Comando
 
 
  • Sintassi
 
 
  • solve : risoluzione di equazioni e disequazioni
    (generalmente in modo esatto)
 
 
  • solve(equazione/i, variabile/i)
 
 
  • fsolve: risoluzione di equazioni con soluzioni
    approssimate nel campo reale o complesso
 
 
  • fsolve(eq ,var ,opz)


Il comando solve permette di risovere equazioni, disequazioni e sistemi, analizziamo alcuni esempi:

> restart ;
> solve( f=m*a, a ) ;
f/m


In questo caso si è lavorato sulla formula algebrica per determinare a
Il comando restart è usato unicamente per liberare la memoria e inizializzare maple.
È possibile un output "più insiemistico" con l'utilizzo di rispetto alla variabile prescelta:

> restart ;
> solve( f=m*a, ) ;


Nella risoluzione di equazioni maple tenta nel limite del possibile di fornire soluzioni esatte:

> eq : = eq := x^4-5*x^2+6*x=2 ;
eq := x4 - 5 x2 + 6 x = 2
> solve(eq, x) ;
-1 + 31/2 , -1 - 31/2 , 1, 1



È possibile ottenere un risultato approssimato delle soluzioni dopo averle "memorizzate" in un array:

> eq : = eq := x^4-5*x^2+6*x=2 ;
eq := x4 - 5 x2 + 6 x = 2
> sol := [solve(eq, x)] ;
sol := [-1 + 31/2 , -1 - 31/2 , 1, 1]
> evalf(sol) ;
[.732050808, -2.732050808, 1., 1.]



Spesso si trova un risultato apparentemente sconcertante:

> solve( x^5-3*x^4+2*x^2-x+3,x ) ;
RootOf(_Z 5 - 3 _Z 4 + 2 _Z 2 - _Z + 3)
> allvalues(") ;
-1.127479307, .03687403922 - .8565945569 I,
 
.03687403922 + .8565945569 I, 1.327862375, 2.725868853



Con il comando allvalues vengono però calcolate tutte le soluzioni (complesse).

Il comado solve permette di risolvere anche sistemi:

> sist := ;
sist :=
> solve( sist ) ;



Da ultimo vediamo una disequazione:

> restart ;
> solve( x^2+x > 6, x ) ;
RealRange(-infinity, Open(-1)), RealRange(Open(6), infinity)



La stessa disequazione con segno maggiore uguale:

> restart ;
> solve( x^2+x >= 6, x ) ;
RealRange(-infinity,-1), RealRange(6, infinity)



dove RealRange(-infinity, Open(-1)),RealRange(Open(6), infinity) significa:

rispettivamente RealRange(-infinity,-1),RealRange(6, infinity) significa:


Nelle disequazioni si possono usare:

 
  • Simbolo
 
 
  • Sintassi
 
 
  • maggiore
 
 
  • >
 
 
  • maggiore o uguale
 
 
  • > =
 
 
  • minore
 
 
  • <
 
 
  • minore o uguale
 
 
  • < =
 
 
  • minore
 
 
  • <
 
 
  • diverso
 
 
  • < >
 



Riguardo al comando fsolve ci limitiamo a fornire i seguenti esempi:

> restart ;
> fsolve( tan(sin(x))=1, x ) ;
2.238253543
> po := 23*x^5 + 105*x^4 - 10*x^2 + 17*x: :
> fsolve(po, x, -1..1 ) ;
0, -.6371813185


Negli ultimi esempi l'istruzione xmin .. xmax rappresenta l'intervallo reale nel quale devono essere cercate le soluzioni.

> po := 3*x^4 - 16*x^3 - 3*x^2 + 13*x + 16 :
> fsolve(po, x, 1..2) ;
1.324717957
> fsolve(po, x, 2..5) ;
> fsolve(po, x, 4..8 ) ;
5.333333333
> fsolve(po, x, complex ) ;
-.6623589786 - .5622795121 I,
 
-.6623589786 + .5622795121 I,
 
1.324717957, 5.333333333