![]() |
|
polinomi in maple
Sul sito del produttore trovate una sintesi dei comandi di maple per i polinomi.
Da notare le differenze tra fsolve, solve e roots.
Proviamo a prendere il polinomio che ha radici in 1,2,...20 e poi testiamo l'algoritmi per trovare le radici.
a:=sort(expand(product((x-k),k=1..20)));
roots(a,x);
fsolve(a,x);
Modifichiamo il polinomio di prima di poco (+x^2) e riproviamo, confrontando i risultati tra i vari metodi di maple e matlab.
Esempio di divisioni e prodotti di polinomi:
a:=x^6+x+1;
b:=x^2+1;
quo(a,b,x);
rem(a,b,x);
c:=expand(a*b);
Per elaborazioni più complesse sui polinomi è disponibile una libreria specifica che si carica con:
with(PolynomialTools):
Tra le varie funzioni della libreria, ricordiamo CoefficientList che permette di estrarre
da un polinomio i suoi coefficienti.
Per costruire un polinomio dalla lista dei coefficienti basta la funzione sum(c[k]*x^k,k=1..n);
Maple infatti lavora con espressioni rappresentate internamente come strutture su cui le varie funzioni operano,
per cui mentre è abbastanza naturale costruire espressioni e le corrispondenti strutture, a volte occorrono
comando ad hoc (come il famoso unapply) per recuperare da una struttura delle sotto strutture.
esercizio:
Dato un polinomio a, costruire un polinomio b che contenga solo i termini di grado pari estratti da a.
![]() |
|