Anteprima
Vedrai una selezione di 7 pagine su 30
Appunti di Metodi numerici - Parte 1 Pag. 1 Appunti di Metodi numerici - Parte 1 Pag. 2
Anteprima di 7 pagg. su 30.
Scarica il documento per vederlo tutto.
Appunti di Metodi numerici - Parte 1 Pag. 6
Anteprima di 7 pagg. su 30.
Scarica il documento per vederlo tutto.
Appunti di Metodi numerici - Parte 1 Pag. 11
Anteprima di 7 pagg. su 30.
Scarica il documento per vederlo tutto.
Appunti di Metodi numerici - Parte 1 Pag. 16
Anteprima di 7 pagg. su 30.
Scarica il documento per vederlo tutto.
Appunti di Metodi numerici - Parte 1 Pag. 21
Anteprima di 7 pagg. su 30.
Scarica il documento per vederlo tutto.
Appunti di Metodi numerici - Parte 1 Pag. 26
1 su 30
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

PROF. GIORGIO BELLOTTI 19/09/2022

2 ESONERI: NOVEMBRE E DICEMBRE

Un'equazione differenziale semplice (soluzione analitica)

dy/dt = -a.y

y(t) e' reale

t e' reale

a e' reale positivo

la grandezza y dipende dal tempo

variabile dipendente

variabile indipendente

parametro del problema

Quando y→0 la variazione di y nel tempo tende ad essere molto piccola.

Per risolvere l'eq. differenziale, e quindi calcolare la variazione dy, dobbiamo specificare una condizione iniziale:

t=0 y(0)=y0 → condizione iniziale IC

Per questa eq. c'è una soluzione analitica perchè è un'eq. differenziale ordinaria lineare (ODE) ed è:

ya(t) = yf e-a.t → soluzione analitica

Non sempre abbiamo una soluzione analitica.

Tecniche di soluzione numerica

  • La soluzione è approssimata (produce un certo errore)
  • Le soluzioni numeriche sono funzioni discrete mentre la soluzione analitica è una funzione continua nel tempo.

Cerca la successione di valori: y1, y2, y3, y4, y5 e non cerca per la funzione y(t)

Mi devo riscrivere l'equazione differenziale in funzione dei valori y4, y3, y2, y1, y0.

RHS scritto al livello temporale 3:

RHS scritto al livello temporale 3:2y → -c. y3

LHS scritto al livello temporale 3:

dy = lim (y(t3+Δt)-y(t3)) dt Δt→∞ Δt

= lim (y(t4)-y(t3))Δt→∞ Δt

= lim (y4-y3 ≃ y1-y3)Δt→∞ Δt Δt

Allora dy = -c. y3 si può scrivere in maniera approssimata come: dt

y4-y3 = -c. y3 → abbiamo approssimato e discretizzato Δt

In generale: yi+1-yi = -c. yi → FORMULA ALGEBRICA Δt

La soluzione è: yi+1=yi+Δt (-c. yi) → derivativo di avanzato del tempo→ METODO DI EULERO

Sottraggo i membri di sinistra con quelli di destra tra le 2 equazioni (1 e 2) e ottengo:

Esplicito dy/dx

dy/dx|xi = (g(xi+Δx)g(xi–Δx)) / 2Δx

– (2/3)Δx2/2 x3i Δx3 / 3!

+ Rxi

Formula differenza approssimata per il calcolo delle derivate derivate

Per calcolare la derivata in xi: considero un punto davanti xi+Δx e un punto dietro xi–Δx. → SCHEMA CENTRATO (DEL 2° ORDINE)

L’errore in questo schema di calcolo approssimato della derivata ha un ordine di Δx2 quindi in questo caso l’errore è più piccolo rispetto al caso precedente (l’errore si annunisce in maniera quadratica).

Per calcolare le derivate seconde devo sommare le 2 equazioni, ma ci ritorneremo più avanti! E.g. Per calcolare salvo le 2 equazioni ottengo:

Esplicito d2y/dx2

d2y/dx2|xi:

(y(xi+Δx)+y(xi–Δx)–2g(xi)) + (x4) / 2!

Δx4/xi4 + Rxi

Non ci sono grandi differenze nella struttura dei 2 problemi, quindi possiamo applicare il Metodo di Eulero anche per il sistema di eq. differenziali che dobbiamo appena risolvere; l'unico problema è che quando avviamo altri nel tempo dobbiamo procedere in avanti nel tempo risolvendo entrambe le equazioni mentre per risolvere le 2a eq. ho bisogno della 1a eq.

Scrivo in forma discreta il sistema di eq. differenziali sfruttando quello che abbiamo studiato precedentemente il calcolo delle derivate in forma approssimata, quindi non cerchiamo la soluzione del problema nella sua dipendenza continua dal tempo ma cerchiamo piuttosto il valore che le funzioni assumono a specifici istanti di calcolo (cioè discretizzo il dominio del tempo in t1, t2, t3, ...).

  • Xm(t) → Xm(1), Xm(2), ...
  • Um(t) → Um(1), Um(2), ...

Scrivo le 2 eq. in forma discreta sfruttando il calcolo approssimato delle derivate:

dmXm|dt|ti = (Xm(i+1) - Xm(i)) / Δt + ERRORE o(Δt)

(Um(i+1) - Um(i)) / Δt = (-k/m Xm(i) - μ/m Um(i) + S(l)/m) → anula e risolvi algebraica (numerica)

Esplicito Um(i+1).

Um(i+1) = Um(i) + Δt · (-k/m Xm(i) - μ/m Um(i) + S(l)/m)

Faccio la stessa cosa per la 1a eq:

dXm / dt = Um → (Xm(i+1) - Xm(i)) / Δt = Um(i)

MATLAB

script = file di testo con estensione .m

Poco scrivere uno script da 0: New script -> save -> "Primo script"

Cose prime cosa pulisco la memoria: clear -> clc -> close

dt = 0.1;

a = 2.1;

tf = 4.0;

Le dico Run mando in esecuzione lo script oppure posso scrivere sul Command Window il nome della script "Primo script"

Costruisco un vettore t che va da 0, ogni dt, fino a 10.

tf = 10;

t = 0 : dt : tf; -> vettore riga

Preferisco lavorare con un vettore colonna:

t = t' -> vettore colonna

CICLO FOR

for ii = [3,5]

disp (ii)

end

ii = variabile ausiliaria contatore per il ciclo che assume i valori 3 e 5

Quindi ciclo sarà ripeto 2 volte e c'è l'ombre si eseguono i valori 3 e 5

Ad ogni iterazione del ciclo sarà eseguita istruzione che prevede di far vedere e disploy (nella Command window) il valore di ii

Mando in esecuzione e beppo 3 e 5 sulla command window

for ii = t

disp(ii)

end .. -> ottengo i valori del vettore t

Se metto uno smorzamento piccolo l’ampiezza delle oscillazioni rimane quasi costante e crea un cerchio nel piano delle forze dove si conserva l’energia.

Se metto μ = 0 ad esempio che il sistema conservi energia e che nel piano delle forze ho una circonferenza, invece essendo che lo stato del sistema si adatta, ho una spirale che diverge all’infinito e le oscillazioni aumentano nel tempo.

Che metto μ = 0.1 e dt = 0.05 e inserisco una forza esterna che varia nel tempo, ad esempio una forzante armonica.

f(t) = Δ・sen(ωt), dove ω = 2π/T

ω ≈ frequenza o frequenza angolare

2π/T ≈ periodo delle oscillazioni

Δ=1;

f=Δ・sin(ωexc・t);

Y = zeros(2, Nt)

Y(:, 1) → caricare le coord. iniziali

estraggo la -esima colonna della matrice Y

Y₂ → Y(:, 2)

Yi → Y(:, it)

Xt+1 → Y(:, it+1)

m → H = [1 0, 0, m]

oppure: comando "diag"

k → k = [0, -1, k, μ]

F → F

matrice con 2 righe e Nt colonne

f → F = zeros(2, Nt)

trasposta

F(1, iⱼ) = fj

inizializzo

Ciclo di avanzamento nel tempo

Y(1, 1) = Xmi; Y(2, 1) = Vmi

for i

Dettagli
Publisher
A.A. 2022-2023
30 pagine
SSD Scienze matematiche e informatiche MAT/06 Probabilità e statistica matematica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher vale.ma98 di informazioni apprese con la frequenza delle lezioni di Metodi numerici e statistici per l'ingegneria civile e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi Roma Tre o del prof Gandellini Giorgio.