Pagina 1 di 1

Esercizio con mathematica

Inviato: 09 nov 2006, 12:04
da gioka
Salve ragazzi...dovrei svolgere Il sistema lineare Ax=b o meglio (P-N)x=b attraverso richardson....prendendo A simmetrica e P matrice identita.

Premetto conosco poco richardson e pochissimo mathematica...

Non so qualsiasi aiuto è buono...io parrtirei:

Quale la sintassi in matematica per fare una matrice Simmetrica 3X3

aij se i=j allora aij=n+1

aij se i diverso da j allora metto 1 (tutti uno all'infuori della diagonale principale)


Questa è la matrice A

4 1 1
1 4 1
4 4 1

Grazie!

Inviato: 09 nov 2006, 12:10
da Catraga
A questo topic esiste gia' una risposta, controlla tra i post recenti mi sembra si chiami "Esercizio di analisi numerica"

Non proprio uguale

Inviato: 09 nov 2006, 12:15
da gioka
si xo sinceramente non è del tutto chiaro anche perchè la matrice A non era simmetrica..
Grazie Comunque

Hai ragione....

Inviato: 10 nov 2006, 11:24
da gioka
e = 0.1;
α = 2;
n = 5;
b = Table[1, {i, 1, n}];
A = Table[1 + n*KroneckerDelta[i, j], {i, 1, n}, {j, 1, n}];
x0 = Table[1.5, {i, 1, n}];
r0 = b - A.x0;
x = x0;
r = r0;
i = 0;
While[Norm[r] ≥ ϵ*Norm,
{
i++;
x = x + α*r;
r = b - A.x;
}
]
Print["Numero di iterazioni:"];
Print
Print["Soluzione raggiunta:"]
MatrixForm[x]


Ok hai ragione riguardandolo direi che fa proprio al caso mio... :D

Solo non lavora bene...sapete aiutarmi?!

Poi non capisco se il segno di moltiplicazione si fa * oppure . ?

x = x + α*r
r0 = b - A.x0

Vedete queste dovrebbero essere moltiplicazioni entrambi però una volta usa . e una *

Inviato: 10 nov 2006, 12:58
da Catraga
Dipende se fai moltiplicazione vettoriale o scalare.
Non funziona perche' devi settare i parametri in modo che il metodo di Richardson converga.

Eccomi

Inviato: 10 nov 2006, 13:53
da gioka
Per gli scalari quale si usa? e per i vettori?

Ok su table cè l'errore invece di 1 è 2n
b = Table[2n, {i, 1, n}];

Mi potresti fare un esempio...cosa devo correggere su questo programma per farlo funzionare correttamente non riesco a venirne a capo :?

Ho sbagliato :D

Inviato: 10 nov 2006, 13:53
da gioka
errore ho ripetuto due volte la risposta :D