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!
Esercizio con mathematica
Non proprio uguale
si xo sinceramente non è del tutto chiaro anche perchè la matrice A non era simmetrica..
Grazie Comunque
Grazie Comunque
Hai ragione....
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...
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 *
α = 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["Soluzione raggiunta:"]
MatrixForm[x]
Ok hai ragione riguardandolo direi che fa proprio al caso mio...
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 *
Eccomi
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
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
errore ho ripetuto due volte la risposta