Introduzione - algoritmo
Definizione di algoritmo
Iniziamo definendo cosa è un algoritmo. Un algoritmo è una successione finita di istruzioni che in sequenza comprende istruzioni elementari assegnate in modo non ambiguo che consentono di passare in un tempo finito dal problema alla sua soluzione. Ovviamente, il problema è sinonimo di "dato" e "soluzione" è sinonimo di "obiettivo" da ottenere, che non è detto che sia esattamente la soluzione del problema ma può anche essere una sua approssimazione. L'algoritmo rappresenta dunque il legame tra dato e risultato.
Costruzione del modello matematico
Nel nostro caso, per risolvere un problema fisico generico, come primo passo devo costruire un modello matematico. Ad esempio, se mi viene chiesto di calcolare la superficie terrestre, posso considerarla vedendola bene come una sfera, e quindi calcolare P0 = 4πR2. Chiaramente ho fatto un'approssimazione e quindi la soluzione trovata non è quella reale ma approssimata. Una volta definito il modello matematico (in questo caso conosciuto con le formule), devo calcolare A = 4πr2.
Tuttavia, r ed R sono a loro volta approssimati (avrebbero infinite cifre). Dunque, se il modello da calcolare è approssimato, anche la soluzione è approssimata. Lo schema è dunque il seguente: Problema Fisico → Modello → Soluzione.
Soluzioni generiche e particolari
Ritornando al concetto di algoritmo, in generale vogliamo risolvere un problema di risultato generico. Ad esempio: (2+5)*1, oppure (a+b)+c. Il primo è un caso particolare, il secondo è generico. Riprendendo il secondo esempio, a+b+c. Non esiste un unico metodo: (a+b)+c ≠ a+(b+c) = (a+c)+b. Tra questi, gli algoritmi sono diversi ma matematicamente forniscono lo stesso risultato.
In realtà, detti R1, R2 ed R3, i risultati dei tre algoritmi possono fornire risultati diversi. Durante l'esecuzione posso scegliere quello corretto (come lo vedremo in seguito).
Acquisizione e restituzione dei dati
Ritornando all'algoritmo, due cose fondamentali sono: acquisizione dei dati (ingresso) e restituzione dei dati (uscita). Importante è anche il linguaggio. Ad un calcolatore dobbiamo insegnare a leggere per acquisire i dati (un Metodo). C'è un termine ben preciso in ogni flusso formale: la variabile.
Importante è anche il simbolo "=" che lega un nome di variabile ad un'espressione. In questo caso, il simbolo "=" rappresenta una frase di assegnazione. Le frasi di assegnazione non sono di equivalenza. Ad esempio, i1=i2 non ha senso matematico, non è un'uguaglianza ma una assegnazione.
Esempio di algoritmo
Facciamo un esempio. Immaginiamo di voler scrivere l'algoritmo per calcolare una sommatoria: S = Σi=1nai.
- Dati n, ai
- S := 0
- Per i=1,2,...,n: S := S + ai
- Risultato: S
In alternativa, possiamo non definire S:=0 inizialmente, ma in questo caso l'algoritmo corrente risulta:
- Per i=2,3,...,n: S := S + ai
Ritornando al caso precedente (S:=0), che cosa succede se utilizzo il seguente algoritmo? Quel risolto in questo caso non è S ma a1. In questo caso ho spostato il passaggio 2 nel 3. Quindi è sempre fondamentale controllare i dati e la ragionevolezza del risultato ottenuto.
Algoritmo con matrici
Quando i=n e j=n, l'algoritmo è concluso. Procedo dunque analizzando la matrice riga per riga. Alla fine ottengo dunque le voci di L e seguo i criteri scrivendo il seguente algoritmo:
- Dati m, A, Θ
- N = 0
- Per j=1,2,...,n
- Per i=1,2,...,n se ai,j > Θ allora N = N + 1
Soluzione per colonna
A differenza del caso precedente, ora considero la matrice colonna per colonna. Esercizio per casa: Data A ∈ Rm×n, determinare il numero N di elementi che sono uguali ad una quantità φ, se quello NG è maggiore di φ.
Esercizio per casa: Formuliamo il seguente problema. Data A ∈ Rm×n, quanti elementi su ciascuna riga di A sono uguali a 0? Questo è un problema diverso dal precedente. Differentemente per la notazione del risolutore, il risultato è un vettore.
Proprietà delle matrici
Relativamente alla matrice, sappiamo che nell'insieme delle matrici quadrate A ∈ Rm×n ci sono matrici particolari. Un primo esempio è rappresentato dalle matrici diagonali, denotate come diag(d1,...,dn). Un secondo esempio particolare sono le matrici triangolari, che sono matrici in cui tutte le componenti sono nulle al di sopra e al di sotto della diagonale.
Il determinante delle matrici triangolari è dato dal prodotto degli elementi diagonali. Ad esempio, se K è una matrice triangolare, det(K) = ∏i=1n Kii.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Metodi numerici per l'ingegneria
-
Metodi numerici per l'ingegneria
-
Metodi numerici per l'ingegneria civile M
-
Appunti e esercizi Metodi numerici per l'ingegneria navale