Laboratorio di Calcolo (2018/2019)
(G. D'Agostini, Canale A-C)
[a meno che i dispositivi non vengano utilizzati per finalità didattiche]
Avviso importante in preparazione degli esami
- Gli esami del corso, di carattere pratico (più
risposte a quesiti), sono schedulati, come da Infostud,
giovedì 24 gennaio e giovedì 14 febbario (ma ci potrebbero
essere piccole variazioni a causa della disponibilità dei laboratori).
- Al momento sono previsti due esoneri nei lunedì 7 e 14 gennaio,
che quindi si terranno ai Laboratori di Via Tiburtina
sulle macchine virtuali Debian.
- Siccome, dato il corso, gli esami consisteranno in
'sessioni di lavoro' su Linux più eventuali domande a cui
rispondere su carta, a parte le conoscenze generali di R e C
è richiesta una certa padronanza dell'uso delle macchine
su cui si terranno le prove.
A tal fine
- si raccomanda di prender confidenza l'ambiente di Lavoro
di Via Tiburtina,
anche mediante l'ausilio delle
istruzioni messe in rete
(con preghiera di segnalare errori o punti poco chiari);
- è in programma una 'prova' d'esame
lunedì 10 dicembre ore 8:30-10:30, 'prova' nel senso
comune del termine. Ciò implica che chi non dovesse andar
bene non ne subirà consequenze, mentre saranno assegnati dei bonus
a coloro faranno un buon lavoro.
Problemi (e soluzioni) del lunedì
- Metodo di eliminazione di Gauss: ecco uno script R
che tratta anche i candidati pivot nulli, per chi non lo avesse
ancora fatto:
Gauss_elim.R
Esercizi:
- scrivere la versione C (facendo eventualmente uso della function
RowsSwap()
per lo swap di due righe di una matrice, proposta a suo tempo);
- modificare quindi sia lo script R che il programma C al fine
di calcolare il determinante (si ricorda di tenere memoria
il numero swap di righe, in quanto ciascuno di essi ne cambia
il segno).
- Scrivere una semplice calcolatrice in C funzionante a
riga di comando e che effettui
semplici operazioni aritmetiche (più altre a piacere)
(altre informazioni sono messe come commenti all'ossatura)
- Variante del programma di ordinamento 'molto ingenuo'
(sorting_0.c): invece di spostare
i valori, in ordine crescente, in un nuovo vettore (allocare
inutilmente vettori di cui se ne potrebbe fare a meno è
è considerato molto negativamente fra i programmatori 'seri'!)
si implementi il seguente algoritmo (ancora 'poco furbo'):
- il primo valore minimo viene messo in v[0] e quello
che stava in v[0] viene messo dove è stato prelevato
quello spostato (ovviamente serve una variabile temporanea
per lo swap);
- quindi si esegua una nuova ricerca del valore minimo,
ma questa volta a partire da v[1], etc. etc.
- Per chi avesse ancora problema, ecco il codice con il prodotto
di matrici calcolato in una funzione (il proramma fa anche
uso di una funzione per la stampa di matrici)
matrici_prod.c
Esercizio: farne una versione che operi su valori float.
- Soluzione numerica del problema
dei lanci per un angolo qualsiasi, in presenza
della sola forza peso, con un angolo
qualsiasi rispetto al piano orizzontale, seguendo il punto
materiale finché non torna alla stessa quota del punto di partenza:
Note:
- se il 'punto materiale' è sparato con velocità v (in modulo)
e angolo θ, le componenti x e y della velocità iniziali
saranno date da vx=v*cos(&theta:); e
vx=v*cos(θ);
- l'evoluzione del 'proiettile' va seguita mediante gli
incrementi di x e di y, come fatto nel caso della molla
(il fatto che ora abbiamo due coordinate invece di una sola
può essere considerato un dettaglio), con la semplificazione
che in questo caso le accelerazioni orizzontali e verticali
sono costanti (0 e -g, rispettivamente);
- cominciare a scrivere il programma in R, in modo da poter
controllare graficamente la soluzione;
- pensare anche alla versione in C, limitandosi per il momento
a stampare, ad ogni step della soluzione numerica,
t, x e y (nella prossima lezione
vedremo come passare queste informazioni a R e graficare
il risultato)
(Ovviamente in questo caso è possibile avere una soluzione analitica
del problema, come molti già sapranno. La soluzione numerica di
questo caso facile va quindi vista in preparazione di casi più
complicati, come quando considereremo anche la resistenza dell'aria.)
Dettaglio delle lezioni
(contiene anche file di comandi e script R e di
sorgenti C, oltre che riferimenti ed esercizi proposti)
Archivio (contenuti apparsi precedentemente in questa pagina)
Gallery
Argomenti di Matematica e Fisica in cui 'ci siamo imbattuti'.
Funzioni R (il loro numero aumenterà con il tempo).
Keywords
e funzioni C etc. (idem).
Comandi Unix (idem).
Cose da sapere
Orari
Lezioni [da mer 26 settembre a ven 18 gennaio]
(Orario ufficiale del Corso di Laurea )
- Mer 8:00-9:00, Aula 3
- Gio 8:00-10:00, Aula 3
Laboratori per esercitazioni ed esami
- Laboratorio di Calcolo Edificio Fermi: secondo piano, vicino Aula 3.
- Laboratori di Via Tiburtina:
Via Tiburtina 205
Come contattare il docente
- per ufficio e mail vedi qui;
- nelle email si raccomanda di mettere un subject
appropriato al contenuto (sigla del corso: LabC).
Link vari
Back to G. D'Agostini Home Page