Condizioni al conto FDM

Messaggioda emiglio » 13/05/2024, 16:36

Buonasera a tutti,

Non riesco a capire a cosa servano le condizioni al contorno nel metodo delle differenze finite. Volendo discretizzare l'operatore di derivata prima su un mesh monodimensionale, diciamo da 0 ad L, potrei utilizzare uno schema forward difference in x=0 e un backward difference in x=L, senza che si renda necessario definire le boundary conditions. Infatti, supposto che il mesh sia costituito da N punti, avrei un sistema di N equazioni in N incognite. Discorso simile può essere fatto per la derivata seconda. L'unica cosa che mi viene in mente è che così facendo mi ritroverei con una matrice poco simpatica, oltre che inficiare il grado di accuratezza se usassi formule centrali nei punti interni, ma per il resto non vedo problemi. Qualcuno mi illumina? Grazie in anticipo!
emiglio
Starting Member
Starting Member
 
Messaggio: 11 di 15
Iscritto il: 06/05/2024, 20:59

Re: Condizioni al conto FDM

Messaggioda LucaSt » 15/05/2024, 07:46

Ciao! Se non si definisce la condizione al contorno rimane una incognita, quindi si avrebbero N+1 incognite. Infatti se ad esempio si ha l'equazione differenziale
$f'(x)=f(x)$
con foward difference hai
$f(x_{i+1})=f(x_i)+f'(x_{i}) \cdot (x_{i+1}-x_i)$
per i=0 si avrebbe
$f(x_{1})=f(x_0)+f'(x_{0}) \cdot (x_{1}-x_0)$
in cui si richiede di sapere il valore $f(x_0)$ che è appunto la condizione al contorno.
In questo caso particolare si conosce la soluzione analitica generale dell'equazione differenziale che è
$f(x)=c \cdot e^x$
che è una famiglia di funzioni al variare del parametro c, ma che diventa una soluzione particolare definendo la condizione al contorno $f(x_0)$, cioè dando un valore a c.
LucaSt
Starting Member
Starting Member
 
Messaggio: 27 di 30
Iscritto il: 31/10/2023, 17:44

Re: Condizioni al conto FDM

Messaggioda emiglio » 15/05/2024, 09:15

Non ti seguo. Si vuole risolvere l'equazione differenziale $(\partialvarphi)/(\partialx)=f$ per $x\in[0,5]$ col metodo delle differenze finite. Si procede quindi discretizzando l'operatore di derivata prima definendo una matrice $bbD$ tale che $bbD\ul\varphi=\ulf$. Consideriamo a tal fine il seguente mesh uniforme $\ulx=[0,1,2,3,4,5]$. Utilizzando uno schema centrale per i punti interni, un forward difference in $x=0$ ed un backward difference in $x=5$, si ottiene la seguente matrice:
$\bbD=[[-1,1,0,0,0],[-1/2,0,+1/2,0,0],[0,-1/2,0,1/2,0],[0,0,-1/2,0,1/2],[0,0,0,-1,1]]$.
La soluzione discretizzata può essere valutata come $\ul\varphi=\bbD^-1\ulf$.
Dove sta l'incognita? Bada bene che $\ulf$ è sempre noto. Oltretutto quando dici
LucaSt ha scritto:... in cui si richiede di sapere il valore $f(x_0)$ che è appunto la condizione al contorno.

stai dando per scontato che si definiscano BC alla Dirichlet. Come giustifichi l'affermazione con BC alla Neumann?
emiglio
Starting Member
Starting Member
 
Messaggio: 13 di 15
Iscritto il: 06/05/2024, 20:59

Re: Condizioni al conto FDM

Messaggioda gabriella127 » 15/05/2024, 13:22

Ho spostato qui l'argomento, mi sembra la sezione più appropriata.
Easy reading is damned hard writing. (Nathaniel Hawthorne, The Scarlet Letter)
gabriella127
Moderatore globale
Moderatore globale
 
Messaggio: 4407 di 7159
Iscritto il: 16/06/2013, 15:48
Località: roma

Re: Condizioni al conto FDM

Messaggioda feddy » 15/05/2024, 13:54

Ciao emiglio,

senza condizioni al contorno non hai unicita' della soluzione, come ha detto LucaSt. A livello pratico, la matrice che troveresti e' singolare. Per rispondere alla tua ultima frase:

stai dando per scontato che si definiscano BC alla Dirichlet. Come giustifichi l'affermazione con BC alla Neumann?


Il punto è proprio questo. A seconda delle condizioni al bordo, **date dal problema**, ci sono tecniche diverse. Per condizioni di Neumann ai bordi, uno puo' usare forward o backward differences (a seconda dell'estremo in cui si trova). Alternativamente, si puo' utilizzare un approccio ghost-node, dove si introduce un nodo fittizio ai bordi che rientra poi nel membro di destra.

Leggendo la tua prima riga e ultima riga risulta che hai Neumann ad entrambi i bordi del tuo dominio. Ora, cio' equivale a dire che stai risolvendo $$\varphi '(x)=f$$ in $[0,L]$ con condizioni ai bordi $\varphi'(0)$ e $\varphi'(L)$ fissati in qualche modo (che appunto non specifichi e dipendono quindi da cosa assegni a $f(x_0)$ ed $f(x_{N-1})$).
Il problema in questo caso e' che il tuo problema ora e' mal posto perche' hai perso unicita' della soluzione. Data una $u$ che risolve il problema, $u+c$, con $c \in \mathbb{R}$ costante sara' ancora soluzione. Se invece avessi avuto un bordo fissato con Dirichlet, avresti unicita'.

Morale della favola: senza condizioni ai bordi, non puoi ben definire un problema **ai limiti**, perche' appunto non specifichi i limiti.
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 3053 di 5948
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Condizioni al conto FDM

Messaggioda emiglio » 15/05/2024, 17:14

feddy ha scritto:Ciao emiglio,

senza condizioni al contorno non hai unicita' della soluzione, come ha detto LucaSt. A livello pratico, la matrice che troveresti e' singolare. Per rispondere alla tua ultima frase:

stai dando per scontato che si definiscano BC alla Dirichlet. Come giustifichi l'affermazione con BC alla Neumann?


Il punto è proprio questo. A seconda delle condizioni al bordo, **date dal problema**, ci sono tecniche diverse. Per condizioni di Neumann ai bordi, uno puo' usare forward o backward differences (a seconda dell'estremo in cui si trova). Alternativamente, si puo' utilizzare un approccio ghost-node, dove si introduce un nodo fittizio ai bordi che rientra poi nel membro di destra.

Leggendo la tua prima riga e ultima riga risulta che hai Neumann ad entrambi i bordi del tuo dominio. Ora, cio' equivale a dire che stai risolvendo $$\varphi '(x)=f$$ in $[0,L]$ con condizioni ai bordi $\varphi'(0)$ e $\varphi'(L)$ fissati in qualche modo (che appunto non specifichi e dipendono quindi da cosa assegni a $f(x_0)$ ed $f(x_{N-1})$).
Il problema in questo caso e' che il tuo problema ora e' mal posto perche' hai perso unicita' della soluzione. Data una $u$ che risolve il problema, $u+c$, con $c \in \mathbb{R}$ costante sara' ancora soluzione. Se invece avessi avuto un bordo fissato con Dirichlet, avresti unicita'.

Morale della favola: senza condizioni ai bordi, non puoi ben definire un problema **ai limiti**, perche' appunto non specifichi i limiti.

Credo di aver capito. In sostanza quando non assegno le BC è come se stessi assegnando BC alla Neumann. Mi spiego meglio, quando uso un forward difference in x=0 e un backward difference in x=L è come se stessi assegnando il valore della derivata agli estremi, ergo BC alla Neumann, quindi il problema ammette infinite soluzioni oppure nessuna se la relazione di compatibilità non è verificata. Che poi equivale come mi dicevi ad avere una matrice singolare, singolarità che elimino assegnando una BC alla Dirichlet in x=0 o in x=L. Ecco svelata la necessità delle BC. Ho sbagliato qualcosa?
emiglio
Starting Member
Starting Member
 
Messaggio: 14 di 15
Iscritto il: 06/05/2024, 20:59

Re: Condizioni al conto FDM

Messaggioda feddy » 15/05/2024, 17:49

Mi pare che ci siamo, ma riguardo a questa frase:
emiglio ha scritto:singolarità che elimino assegnando una BC alla Dirichlet in x=0 o in x=L.

voglio rimarcare che questa singolarità' in linea di principio non dovresti eliminarla tu, ma non dovrebbe proprio esistere nel problema continuo di partenza. Detto in altre parole, le condizioni al bordo devono essere un dato nel problema. :-)
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 3055 di 5948
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Condizioni al conto FDM

Messaggioda feddy » 15/05/2024, 18:21

Per convincerti di quanto dici, puoi sempre provare a verificare con mano (nel linguaggio che usi) che la matrice che assembli risulti singolare :)
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 3057 di 5948
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Condizioni al conto FDM

Messaggioda emiglio » 15/05/2024, 18:31

Ok, ma per quanto mi riguarda sono io ad assegnarle. A me interessa risolvere problemi di scambio termico, le condizioni al contorno le assegno a convenienza. Assegnare (garantire) condizioni al contorno al Dirichlet è quasi impossibile, è molto più semplice lavorare con BC alla Neumann. Per questo parlavo di eliminare la singolarità. Grazie di cuore per la disponibilità!!
emiglio
Starting Member
Starting Member
 
Messaggio: 15 di 15
Iscritto il: 06/05/2024, 20:59

Re: Condizioni al conto FDM

Messaggioda feddy » 16/05/2024, 08:47

Non avevo capito dal post che il tuo problema ai limiti rappresentava un modello. Più' che impossibili, magari Neumann BC sono naturali dal punto di vista fisico. In un problema "puro Neumann", cioè' dove entrambi i bordi hanno condizioni sulle derivate, non hai unicità' e ci sono diverse tecniche per fissare **una soluzione**.
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 3058 di 5948
Iscritto il: 26/06/2016, 00:25
Località: SISSA


Torna a Analisi Numerica e Ricerca Operativa

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite