|
darkshadow |
Costruzione Matrici |
18-06-2010 15:00 |
|
|
darkshadow |
Are You From The Past?
Registered: Jul 2007
Posts: 485 (0.08 al dì)
Location: Milano
Corso: Informatica Magistrale
Anno: 1
Time Online: 13 Days, 13:38:56 [...]
Status: Offline
Edit | Report | IP: Logged |
Costruzione Matrici
Ciao,
qualcuno mi sa spiegare come (i comandi Matlab) per costruire le matrici con determinate caratteristiche; mi spiego:
per esesmpio se volessi costruire una matrice la cui diagonale sia tutta a 2, la sopradiagonale = -1 e la sottodiagonale = 1 ed il resto tutto a zero
Come faresti per costruirla?
Grazie.
Ds
__________________
by Ð@rk§h@ÐØw
|
18-06-2010 15:00 |
|
|
| |
|
enricohenry |
Ciao, scusa il ritardo nella risposta ma non mi co ... |
13-07-2010 11:53 |
|
|
enricohenry |
.fedelissimo.
Registered: Jan 2003
Posts: 50 (0.01 al dì)
Location: Milano
Corso: Informatica
Anno: Fuori Corso
Time Online: 12:24:37 [...]
Status: Offline
Edit | Report | IP: Logged |
Ciao, scusa il ritardo nella risposta ma non mi collego da un po'.
Per costruire una matrice come hai descritto coi comandi Matlab, fai cosi':
A=2*eye(n); % Crea una matr identita' di dim nxn con diagonale princ = 2
A=A-diag(ones(n-1,1),1); % Aggiunge ad A la prima sopradiag = -1
A=A+diag(ones(n-1,1),-1); % Aggiunge ad A la prima sottodiag = 1
Naturalmente prima dai un valore ad n, es:
n=5;
Ciao
|
13-07-2010 11:53 |
|
|
| |
|
asterix07 |
Perchè nel primo caso si fa la sottrazione
... |
15-07-2010 11:35 |
|
|
asterix07 |
.precettore.
Registered: Nov 2007
Posts: 84 (0.01 al dì)
Location: Novara
Corso: Informatica
Anno: 2
Time Online: 1 Day, 9:21:44 [...]
Status: Offline
Edit | Report | IP: Logged |
Perchè nel primo caso si fa la sottrazione
A=A-diag(ones(n-1,1),1); % Aggiunge ad A la prima sopradiag = -1
e nel secondo la somma
A=A+diag(ones(n-1,1),-1); % Aggiunge ad A la prima sottodiag = 1
??
|
15-07-2010 11:35 |
|
|
| |
|
enricohenry |
Il comando e' composto dai comandi diag e ones.
... |
15-07-2010 18:13 |
|
|
enricohenry |
.fedelissimo.
Registered: Jan 2003
Posts: 50 (0.01 al dì)
Location: Milano
Corso: Informatica
Anno: Fuori Corso
Time Online: 12:24:37 [...]
Status: Offline
Edit | Report | IP: Logged |
Il comando e' composto dai comandi diag e ones.
Il comando ones(n-1,1) costruisce una matrice di soli 1 (ones) di dimensione n-1 per le righe e 1 per le colonne.
Devi mettere n-1 poiche' la prima sottodiagonale e sopradiagonale hanno un elemento in meno rispetto alla diagonale principale.
Cioe' se volevi costruire un vettore di soli 1 da mettere nella terza sotto/sopradiagonale dovevi dare ones(n-3,1).
Il comando ones(4,4) ti costruisce una matrice quadrata di ordine 4 di tutti 1.
Il comando diag, applicato al vettore che ti sei appena creato, mette in forma di matrice diagonale tale vettore.
Il secondo termine dopo la virgola (nel ns caso nel primo comando e' 1, nel secondo e' -1) identifica in quale sopra o sotto diagonale inserire tale vettore. Se il termine e' negativo si tratta di sottodiagonale, se positivo si tratta di sopra diagonale.
Infine il segno posto davanti al comando composito (+diag o -diag) serve per ottenere il segno positivo o negativo al valore da inserire in quella sopra/sotto diagonale.
Immaginiamo che tu dovessi mettere -2 alla terza sopradiagonale, allora il comando doveva essere:
n=5;
A=2*eye(n);
A=A-2*diag(ones(n-3,1),3);
Ciao.
|
15-07-2010 18:13 |
|
|
| |
|
All times are GMT. The time now is 02:47. |
|
|
|
|
|
|
|
| |
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|