Dsy Network www | forum | my | didattica | howto | wiki | el goog | stats | blog | dona | rappresentanti
Homepage
 Register   Calendar   Members  Faq   Search  Logout 
.dsy:it. : Powered by vBulletin version 2.3.1 .dsy:it. > Didattica > Corsi A - F > Calcolo numerico > Costruzione Matrici
  Last Thread   Next Thread
Author
Thread    Expand all | Contract all    Post New Thread    Post A Reply
Collapse
darkshadow
Are You From The Past?

User info:
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

Post actions:

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
Click Here to See the Profile for darkshadow Click here to Send darkshadow a Private Message Find more posts by darkshadow Add darkshadow to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
enricohenry
.fedelissimo.

User info:
Registered: Jan 2003
Posts: 50 (0.01 al dì)
Location: Milano
Corso: Informatica
Anno: Fuori Corso
Time Online: 12:24:37 [...]
Status: Offline

Post actions:

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
Click Here to See the Profile for enricohenry Click here to Send enricohenry a Private Message Find more posts by enricohenry Add enricohenry to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
asterix07
.precettore.

User info:
Registered: Nov 2007
Posts: 84 (0.01 al dì)
Location: Novara
Corso: Informatica
Anno: 2
Time Online: 1 Day, 9:21:44 [...]
Status: Offline

Post actions:

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
Click Here to See the Profile for asterix07 Click here to Send asterix07 a Private Message Find more posts by asterix07 Add asterix07 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
enricohenry
.fedelissimo.

User info:
Registered: Jan 2003
Posts: 50 (0.01 al dì)
Location: Milano
Corso: Informatica
Anno: Fuori Corso
Time Online: 12:24:37 [...]
Status: Offline

Post actions:

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
Click Here to See the Profile for enricohenry Click here to Send enricohenry a Private Message Find more posts by enricohenry Add enricohenry to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
All times are GMT. The time now is 02:47.    Post New Thread    Post A Reply
  Last Thread   Next Thread
Show Printable Version | Email this Page | Subscribe to this Thread | Add to Bookmarks

Forum Jump:
Rate This Thread:

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
 

Powered by: vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento | Licenze | Thanks | Syndacate
Pagina generata in 0.030 seconds (80.25% PHP - 19.75% MySQL) con 27 query.