Eq. differenziali 2 ordine MATLAB

Ares871
Ciao a tutti!

Sono alle prese con un'equazione differenziale di secondo ordine (contorno):

-u''(x) + c(x)u(x) = f(x)

\begin{Bmatrix}
\\ -u''(x) + xu(x) = (1+2x-x^2))
\\ u(0) = 1, u(1)= 0
\end{Bmatrix}

Dove in realtà dovrei risolvere un'equazione fornita dal prof:

Ah * u(h) = Bh;

Ah = matrice tridiagonale simmetrica con termini specifici
u(h) = vettore incognite
Bh = vettore coefficienti noti

Ho calcolato Ah e il vettore Bh.

La domanda è la seguente: è corretto calcolare la soluzione (in ambiente MATLAB) come:

vettore u(h) = Ah (inversa trasposta) * Bh ??

Risposte
Raptorista1
Perché ci metti anche la trasposizione?

Ares871
Altrimenti la dimensione dei vettori non coincide; e Matlab si lamenta.

Raptorista1
Se \(A_h\) non è quadrata come fai a fare l'inversa? Che discretizzazione stai usando? Mi verrebbe da dire che \(A_h\) debba essere quadrata...

Ares871
Esatto, la matrice è sempre quadrata.
Ma il punto in cui ho davvero difficoltà è che non riesco a disegnare i grafici
della soluzione approssimata e quella esatta.
Analiticamente la matrice Ah è corretta, il vettore dei coefficienti pure.
Ma quando calcolo il tutto, per plottare ho grosse difficoltà.
Quindi non capisco se sbaglio la ricerca del vettore soluzione o altro...

Raptorista1
"Ares87":

[quote="Raptorista"]Perché ci metti anche la trasposizione?

Altrimenti la dimensione dei vettori non coincide; e Matlab si lamenta.[/quote]
Questo qui sopra non mi sembra vada molto d'accordo con questo qui sotto.
"Ares87":
Esatto, la matrice è sempre quadrata.

C'è qualcosa di sbagliato in questa storia, prova a schiarirti le idee.

"Ares87":

Ma il punto in cui ho davvero difficoltà è che non riesco a disegnare i grafici
della soluzione approssimata e quella esatta.
Analiticamente la matrice Ah è corretta, il vettore dei coefficienti pure.
Ma quando calcolo il tutto, per plottare ho grosse difficoltà.
Quindi non capisco se sbaglio la ricerca del vettore soluzione o altro...

Quindi il problema vero è un altro. Se un vettore incognito \(u\) soddisfa \(Au = f\) la soluzione è data da \(u = A^{-1} f\), e la trasposizione è fuori posto.

Ares871
Ecco.

Perché ho 'trovato' una soluzione all'equazione che era u = A (inversa e trasposta) * f
e ammetto di non averci ragionato sopra, per disperazione.

Ora riprovo a fare tutto correttamente.
Grazie.

Ares871
Quindi, cosa dovrei graficare sull'Asse X e sull'asse Y ?? Mi sfugge.

Raptorista1
Per questa particolare discretizzazione la matrice \(A_h\) è simmetrica, e quindi all'atto pratico non cambia nulla mettendo o no la trasposizione. La trasposizione però è sbagliata, e se la togli il codice deve comunque funzionare allo stesso modo.
Per quanto riguarda la visualizzazione, la tua soluzione rappresenta la funzione \(u = u(x)\), quindi...

Ares871
Il codice funziona allo stesso modo.
Graficamente non mi torna nulla e non capisco cosa sbaglio e son proprio confuso.
Le soluzioni (approssimata ed esatta) dovrebbero essere simili ma non lo sono..

Raptorista1
Magari sbagli a fare il grafico? Prova a guardare una qualche norma dell'errore.

Ares871
MMh va bene (non avevo visto la risposta e GRAZIE per le risposte. :)) )

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