Dopo l’intro e aver visto come usare Scilab per fare un grafico oggi racconterò di come usarlo per fare calcoli. Scilab adora contare e allora via con i calcoli.
Intanto sto ancora imparando ma è disponibile tutto quello che serve, anzi molto di più. Parecchi documenti si trovano a Scilab Wiki. In particolare Tutorials and documentations dove c’è, tra un mucchio di altre cose, Programming in Scilab di Michaël Baudin.
A p.22 introduce i polinomi. Seguendolo definiamo un polinomio in funzione delle sue radici 1 e 2: p(x) = (x-1)(x-2)
con
p = poly([1,2], "x")
Si può definire il polinomio in funzione dei suoi coefficienti (in ordine crescente): q(x) = 1 + 2x
sarà
q = poly([1,2], "x", "coeff")
A questo punto i polinomi si possono sommare, sottrarre, moltiplicare:
-->m = p * q
m =
2 3
2 + x - 5x + 2x
-->
Per valutare il valore del polinomio in un dato punto si usa horner. Ecco, niente panico!, un po’ di sano terrorismo matematico, qui su wikipedia, ma con Scilab niente panico!
:-->p = poly([1,2], "x")
p =
2
2 - 3x + x
-->horner(p, [0 1 2 3])
ans =
2. 0. 0. 2.
che sono, ovviamente, i valori per x = 0, 1, 2, 3. Quindi dimenticate la pagina di wiki: con Scilab i calcoli (noiosi e (dai) astrusi) li fa lui.
roots ci da le radici, verifica:
-->p = poly([1,2,3,4,5], "x")
p =
2 3 4 5
- 120 + 274x - 225x + 85x - 15x + x
-->roots(p)
ans =
1.
2.
3.
4.
5.
OK, viso che funziona
-->p = poly([1,2,3,4,5], "x", "coeff")
p =
2 3 4
1 + 2x + 3x + 4x + 5x
-->roots(p)
ans =
0.1378323 + 0.6781544i
0.1378323 - 0.6781544i
- 0.5378323 + 0.3582847i
- 0.5378323 - 0.3582847i
numeri brutticomplessi, ma ecco:
-->t = poly([24, -50, 35, -10, 1], "x", "coeff")
t =
2 3 4
24 - 50x + 35x - 10x + x
-->roots(t)
ans =
1.
2.
3.
4.
Scilab è sempre più simpatico 😀
Uno (cioè a dire il vero io, fino a un istante fa) potrebbe pensare che Scilab tratti solo matrici bidimensionali: falso, c’è l’ipermatrice (hypermatrix)
This feature is familiar to Fortran developers, where the multi-dimensional array is one of the basic data structures.
Quindi la volta scorsa ho detto una cosa non vera: chiedo venia ma mi verrebbe voglia di dare la colpa al Fortran 😦
A p.51 di progscilab si inizia a parlare delle funzioni. Potrebbe essere l’argomento di un prossimo post, forse…
Commenti
Scilab effettivamente è versatile e comodissimo da usare, io lo impiegai per la tesi di laurea sui materiali compositi. E poi ha una virtù non da poco: è gratuito 😀
Trackback
[…] questo post, continuazione del precedente,si coninua l’esame del pdf progscilab per un illustrazione veloce delle notevoli capacità […]
[…] un mio contatto di quelli über mi suggeriva Scilab. Uh, ne ho parlato, tanto tempo fa, qui il primo post. Una googlata e trovo The best Matlab alternative (3). C’è anche Python con […]