Eq. differenziali 2 ordine MATLAB
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 ??
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
Perché ci metti anche la trasposizione?
Altrimenti la dimensione dei vettori non coincide; e Matlab si lamenta.
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...
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...
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...
"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.
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.
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.
Quindi, cosa dovrei graficare sull'Asse X e sull'asse Y ?? Mi sfugge.
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...
Per quanto riguarda la visualizzazione, la tua soluzione rappresenta la funzione \(u = u(x)\), quindi...
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..
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..
Magari sbagli a fare il grafico? Prova a guardare una qualche norma dell'errore.
MMh va bene (non avevo visto la risposta e GRAZIE per le risposte.
) )
