UNIVERSITÀ TELEMATICA INTERNAZIONALE UNINETTUNO UNIVERSITÀ TELEMATICA INTERNAZIONALE UNINETTUNO Facoltà di Ingegneria - Corso di Laurea triennale in Ingegneria Informatica Tesi di Laurea in Calcolo e Algebra Lineare Laboratorio di Matematica con SageMath Relatore: Prof. Domenico Finco Laureando: Agatino Grillo Anno Accademico: 2018/19 Roma, 20/11/2019
38
Embed
Laboratorio di Matematica con SageMathUNIVERSITÀ TELEMATICA INTERNAZIONALE UNINETTUNO 3 Introduzione •Scopo della tesi: –presentare SageMath, un programma software CAS ... Laboratorio
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
– presentare SageMath , un programma software CAS (Computer Algebra System), capace di rappresentare e risolvere espressioni matematiche in forma simbolica e numerica
• algebra, analisi matematica, analisi numerica, calcolo combinatorio, geometria, teoria dei numeri
Teoria dei grafi
Calcolo vettoriale matrici
traiettorie
Analisi
Aree di specializza
zione
UNIVERSITÀ TELEMATICA INTERNAZIONALE UNINETTUNO
9
• Esempio tratto dalla classe interattiva di “Calcolo e Algebra Lineare” del 13 novembre 2018
Laboratorio di matematica
show(limit (f, x=1, dir='+'))
Testo esercitazione
Si studi la funzione
tracciandone il grafico
Calcolo
UNIVERSITÀ TELEMATICA INTERNAZIONALE UNINETTUNO
10
• Studio di una funzione – approccio metodologico
• Campo di esistenza• Intersezione con gli assi• Studio del segno• Limiti ai bordi del campo di esistenza• Derivata prima• Derivata seconda• Grafico della funzione
Laboratorio di matematicaCalcolo
UNIVERSITÀ TELEMATICA INTERNAZIONALE UNINETTUNO
11
Laboratorio di matematicaCalcolo
Testoesercitazione
Imponiamo che il denominatore siadiverso da zero:
CodiceSageMath
solve((abs(3*x-2)-1)== 0, x, to_poly_solve=True)
Risultato [x == (1/3), x == 1]
• Campo di esistenza: si tratta di una funzione fratta per cui il denominatore non può assumere valore zero
1
2
UNIVERSITÀ TELEMATICA INTERNAZIONALE UNINETTUNO
12
Laboratorio di matematicaCalcolo
Testoesercitazione
Si deve risolvere:
CodiceSageMath
f=arctan(1)show(f)
Risultato
• Intersezione con gli assi
4,0
41
1arctan
1|2|
0|1|arctan
1|203|
0|102|arctan
1
2
UNIVERSITÀ TELEMATICA INTERNAZIONALE UNINETTUNO
13
Laboratorio di matematicaCalcolo
Testoesercitazione
Si deve risolvere:
CodiceSageMath
eq1= (abs(2*x+1)-x) >= 0eq2= x >= -1/2show(solve([eq1,eq2],x))
• Fonte: “aula virtuale n. 50.4 Diagonalizzazione di Matrici”
show(limit (f, x=1, dir='+'))
Data la matrice
Se ne discuta la diagonalizzabilità e se ne determino autovalori e autovettori
A=matrix(2,2,[3,4,4,3])show(A)
Testo Codice SageMath Risultato
UNIVERSITÀ TELEMATICA INTERNAZIONALE UNINETTUNO
x^2 - 6*x – 7
22
Laboratorio di matematicaAlgebraLineare
show(limit (f, x=1, dir='+'))
Costruisco la matrice
Calcolo il determinante della nuova matrice
cioè il polinomio caratteristico è
Le radici del polinomio caratteristico sono:
A=matrix(2,2,[3,4,4,3])
A.characteristic_polynomial()
Testo Codice SageMath Risultato
x^2 - 6*x – 7
e
A.eigenvalues() x^2 - 6*x – 7[7, -1]
UNIVERSITÀ TELEMATICA INTERNAZIONALE UNINETTUNO
23
Laboratorio di matematicaAlgebraLineare
e
x^2 - 6*x – 7## In SageMath posso calcolare ## immediatamente gli autovettori## (eigenvectors in inglese)
show(A.eigenvectors_right())
Codice SageMath Risultato
che indica che in corrispondenza dell’autovalore 7 abbiamo l’autovettore (1,1) di molteplicità 1 e che in corrispondenza dell’autovalore -1 abbiamo l’autovettore (1,-1) di molteplicità 1
1
Quindi abbiamo una base di auto vettori e la matrice è diagonalizzabile e con questa base la matrice diventa 2
UNIVERSITÀ TELEMATICA INTERNAZIONALE UNINETTUNO
24
Laboratorio di matematicaMetodi
Matematici
• Fonte: aula virtuale di “Metodi matematici” di gennaio 2017
show(limit (f, x=1, dir='+'))
Data la funzione
Valutare massimi e minimi assoluti e relativi all’interno di un dominio scelto ecioè il dominio A formato da
mentre la è definita su tutto
Testo esercitazione
𝑓 𝑥, 𝑦
UNIVERSITÀ TELEMATICA INTERNAZIONALE UNINETTUNO
25
• Massimi e minimi di 2 variabili – approccio metodologico
• Calcolo del gradiente• Calcolo dei punti stazionari• Calcolo della matrice Hessiana • Studio del segno delle matrici Hf
Laboratorio di matematicaMetodi
Matematici
UNIVERSITÀ TELEMATICA INTERNAZIONALE UNINETTUNO
26
Laboratorio di matematica
1. Calcolo del gradiente
Calcoliamo il gradiente della funzione cioè le 2 derivate parziali prime rispetto a x
e y che poi poniamo uguale a 0 per calcolare le soluzioni del sistema.
SageMath permette di calcolare direttamente il gradiente di una funzione di 2 variabilicon il comando gradient
var('y')f(x,y)=x^2+y^2-(x+y)show(f.gradient());
Codice SageMath Risultato
Metodi Matematici
UNIVERSITÀ TELEMATICA INTERNAZIONALE UNINETTUNO
27
Laboratorio di matematica
2. Calcolo dei punti stazionari
Calcoliamo i punti che annullano il gradiente per ottenere i punti stazionari imponendo lacondizione:
var ('x','y')eq1= 2*x - 1eq2= 2*y -1show(solve([eq1,eq2],x,y))
Codice SageMath Risultato
che equivale a risolvere il sistema di 2 equazioni in 2 incognite
Il risultato è che il punto in cui il gradiente si annulla è
Metodi Matematici
UNIVERSITÀ TELEMATICA INTERNAZIONALE UNINETTUNO
28
Laboratorio di matematica3. Calcolo della matrice Hessiana
Calcoliamo la matrice Hessiana di f Hf definita come la matrice delle derivate parziali secondedi f
var('y')f(x,y)=x^2+y^2-(x+y)show(f.hessian())
Codice SageMath Risultato
Il risultato è che il punto in cui il gradiente si annulla è
Metodi Matematici
dove indica la derivata parziale rispetto a ydella derivata parziale rispetto a x
UNIVERSITÀ TELEMATICA INTERNAZIONALE UNINETTUNO
4
29
Laboratorio di matematica4. Studio del segno delle matrici Hf
Calcoliamo il determinante della matrice Hessiana e il segno della stessa matrice
Calcolo il determinante hessiano nel punto (1/2, 1/2)
Metodi Matematici
f(x,y)=x^2+y^2-(x+y)H = f.hessian()H(x,y)det(H)
Codice SageMath Risultato
UNIVERSITÀ TELEMATICA INTERNAZIONALE UNINETTUNO
Laboratorio di matematica
Il determinate è positivo e il 1° elemento a sinistra della matrice è anch’esso positivo
quindi (1/2,1/2) è un punto di minimo relativo.
Nel dominio dato la funzione è sempre differenziabile. Il contorno si può
rappresentare con i seguenti segmenti
Metodi Matematici
Su ogni segmento studiamo il comportamento dei massimi e dei minimi. Ad esempio per il segmento S1 si procede come segue. Se “fisso” la x e studio la y, la funzione da studiare è
UNIVERSITÀ TELEMATICA INTERNAZIONALE UNINETTUNO
31
Laboratorio di matematicaOttengo minimo in y=1/2 e massimo in y=-1
plot(x^2-x)
Codice SageMath Risultato
Metodi Matematici
I valori che assume questa funzione sono:minimo m1=-1/4massimo M1=2
• mette inoltre un ambiente di ricerca virtuale -basato anche su prodotti terzi open source e commerciali - che permette di gestire in maniera integrata l’intero ciclo di vita di un progetto di ricerca di matematica
UNIVERSITÀ TELEMATICA INTERNAZIONALE UNINETTUNO
36
Conclusioni
• Perché SageMath?
• CoCal è la versione cloud di SageMath con funzionalità aggiuntive
• la versione “base” di CoCalc è gratuita ma è possibile avere una serie di servizi aggiuntivi –principalmente in termini di affidabilità e velocità del servizio – pagando un canone
• CoCalc può essere usato dai docenti per erogare corsi online e verificare come gli studenti rispondono alle esercitazioni e prove previste
• il principale vantaggio rispetto a SageMathCell è la possibilità di condividere in tempo reale il codice e la documentazione con altri utilizzatori nonché la gestione tecnica centralizzata dell’intero ambiente tecnologico in maniera trasparente
UNIVERSITÀ TELEMATICA INTERNAZIONALE UNINETTUNO
38
Corsi online basati su SageMath/CoCalc
• Math 241 - Calculus 1 Lab
• Math 242 - Calculus 2 Lab
• Introduction to Data Science, 2019 - A Computational, Mathematical and Statistical Approach