Algoritmo differenze finite

dovah01
Buonasera a tutti, sono incappato nella risoluzione di un esercizio riguardante l'uso del metodo alle differenze finite mediante Matlab (praticamente dovrei scrivere una function del metodo alle differenze finite che mi possa permettere di risolvere un dato problema). Quello che mi chiedo è: siccome tutti gli esercizi successivi si basano su tale metodo, è possibile scrivere un'unica function che svolge il metodo alle differenze finite (come potrebbe essere l'algoritmo di Eulero Esplicito che quello è e quello rimane per ogni problema che richieda un'approssimazione della soluzione mediante il metodo di Eulero Esplicito) che vada bene per ogni problema? Vorrei insomma non dover creare una function per il metodo alle differenze finite ogni volta che incontro un esercizio che ne richieda l'utilizzo, ma solo una che vada bene per tutti.

Risposte
Dante.utopia
Incapsulare il codice in funzioni ha proprio lo scopo di renderlo facilmente riutilizzabile.

dovah01
Sì conosco lo scopo delle funzioni, ciò che mi chiedo è se sia possibile scrivere un unico algoritmo per le differenze finite. Oppure ogni problema possiede il proprio metodo alle differenze finite per una possibile risoluzione?

Dante.utopia
Cosa ti fa sorgere il dubbio?

dovah01
Il fatto che lo stesso algoritmo che ho progettato per il calcolo delle differenze finite con condizioni al bordo di Dirichlet mi dia l'output giusto per il primo esercizio, ma per gli altri mi segnala degli errori

Dante.utopia
Cosa dai in input all'algoritmo?

dovah01
Premesso che sto considerando equazioni differenziali del tipo \( y''+y=k \) , passo come input: gli estremi dell'intervallo considerato, le condizioni al bordo quindi i valori assunti agli estremi, il numero di intervalli di discretizzazione, la funzione \( k \) e la funzione posta come coefficiente a \( y \)

Dante.utopia
E non passi l'equazione differenziale?

L'algoritmo dovrebbe avere l'intero problema di Cauchy oltre all'incremento di discretizzazione.

dovah01
No perchè quella la risolvo all'interno del main, non nella funzione... Dici che è quello che fa la differenza?

Dante.utopia
:-D senza vedere il codice è impossibile individuare l'errore.

Ma l'algoritmo di eulero per funzionare ha bisogno di tutto il problema di Cauchy, quindi...

dovah01
Problema risolto... Una svista assolutamente stupida! L'algoritmo era corretto, il secondo problema che ho affrontato aveva consegna errata (ho chiesto ai miei compagni di corso) e gli altri due chiedevano condizioni di tipo Neumann pertanto i grafici erano differenti. Grazie mille comunque :) gentilissimo

Dante.utopia
Figurati.

dovah01
Ok, c'era una errore nella consegna di cui non ne ero a conoscenza e per gli altri problemi colpa mia: bisognava risolverli con condizioni di tipo Neumann! Scusa, grazie mille lo stesso, sei stato gentilissimo

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.