Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => Formazione Numerica, 6 CFU => Topic started by: cock86 on 12-11-2009, 16:05:30



Title: esercizi MatLab
Post by: cock86 on 12-11-2009, 16:05:30
Ciao.... tra gli esercizi in MatLab la prof propone questo: eliminare il terzo elemento di x (è un array); qualcuno saprebbe dirmi qual è l'istruzione che mi permette di farlo!?
se riuscite ad aiutarmi in questo ho ancora qualche altro esercizio che non riesco a fare .huh
grazieeeee


Title: Re:esercizi MatLab
Post by: Aigor on 12-11-2009, 16:07:56

x(3)=[]


Title: Re:esercizi MatLab
Post by: cock86 on 12-11-2009, 16:58:02
giusto .huh grazie ...e per estrarre la seconda riga da una matrice A(3,3)!?

riga2=[A(2,1),A(2,2),A(2,3)];
A(2,1)=[];
A(2,2)=[];
A(2,3)=[];

pensavo potesse essere la soluzione ma funziona solo la prima parte!


Title: Re:esercizi MatLab
Post by: tart@p on 12-11-2009, 17:14:27
giusto .huh grazie ...e per estrarre la seconda riga da una matrice A(3,3)!?

riga2=[A(2,1),A(2,2),A(2,3)];
A(2,1)=[];
A(2,2)=[];
A(2,3)=[];

pensavo potesse essere la soluzione ma funziona solo la prima parte!

 A(2,:)


Title: Re:esercizi MatLab
Post by: bakks87 on 13-11-2009, 10:23:56
salve
dove posso vedere gli esercizi proposti dalla prof?
grazie


Title: Re:esercizi MatLab
Post by: cock86 on 13-11-2009, 13:12:35
la prof ha detto che questi bastano per esercitarsi:
http://web.dmi.unict.it/Pagina/It/Didattica/Docenti_e_corsi/Pidatella_Rosa_Maria/Didattica_3/0/634/Compiti_.aspx

buon lavoro!!! .smile


Title: Re:esercizi MatLab
Post by: bakks87 on 14-11-2009, 15:54:29
salve
svolgendo uno dei compiti, avrei dei dubbi su alcuni punti dell'esercizio:

1) Caricare in memoria il file pippo.dat  si fa con fopen('pippo.dat','wt') ??
2) Scrivere tutti gli elementi di: y n n = 1/ per n=1,…,10 e stampare solo la somma n-esima. come si fa o meglio cosa vuol dire?



Title: Re:esercizi MatLab
Post by: bakks87 on 14-11-2009, 17:52:33
il secondo credo di averlo risolto con sum(ones(1,10)./linspace(1,10,10)).
per il primo mi resta qualche vago dubbio.


Title: Re:esercizi MatLab
Post by: Aigor on 14-11-2009, 18:22:50
salve
svolgendo uno dei compiti, avrei dei dubbi su alcuni punti dell'esercizio:

1) Caricare in memoria il file pippo.dat  si fa con fopen('pippo.dat','wt') ??
2) Scrivere tutti gli elementi di: y n n = 1/ per n=1,…,10 e stampare solo la somma n-esima. come si fa o meglio cosa vuol dire?




1) load('pippo.dat')
2)Hai sbagliato a copiare il testo credo perchè quello che hai scritto non ha senso, il testo dice stampare la somma degli elementi di y=1/n con n=1,...,10 e puoi farlo con un semplice for :
Code:
y=1
for(n=1:1:10){
  y=y+1/n
}
[/color]


Title: Re:esercizi MatLab
Post by: genietto84 on 14-11-2009, 18:47:18
2) Scrivere tutti gli elementi di: y n n = 1/ per n=1,…,10 e stampare solo la somma n-esima. come si fa o meglio cosa vuol dire?




2)Hai sbagliato a copiare il testo credo perchè quello che hai scritto non ha senso, il testo dice stampare la somma degli elementi di y=1/n con n=1,...,10 e puoi farlo con un semplice for :
Code:
y=1
for(n=1:1:10){
  y=y+1/n
}
[/color]

Il testo non è sbagliato è proprio scritto così. Io l'ho interpretato come creare l'array con tutti gli elementi della successione e poi però stampare solo la loro somma e quindi ho fatto

Code:
for n=1:10
  y(n) = 1/n;         % il ; così li scrive in memoria ma non li stampa
end
sum(y)                 % senza ; così stampa la somma

l'ho fatto vedere alla prof e mi ha detto che è corretto


Title: Re:esercizi MatLab
Post by: Aigor on 14-11-2009, 18:51:14

E' uguale ma tu usi un array y di n elementi mentre io uso y come variabile temporanea.


Title: Re:esercizi MatLab
Post by: bakks87 on 14-11-2009, 18:56:03
grazie!
invece come avete risolto l'esercizio 9 del 27-11-'08 ?


Title: Re:esercizi MatLab
Post by: genietto84 on 14-11-2009, 18:59:38

E' uguale ma tu usi un array y di n elementi mentre io uso y come variabile temporanea.

il risultato è uguale..

Io scrivo tutti gli elementi della successione e poi stampo la somma.
Il testo dice "Scrivere tutti gli elementi di: y(n) = 1/n per n=1,…,10 e stampare solo la somma n-esima."

Tu fai la somma di tutti gli 1/n per n da 1 a 10...
Dal testo a me sembra richiesto di conservare tutti gli y(n) e poi farne la somma...
Poi non so... magari considera giusto anche il tuo


Title: Re:esercizi MatLab
Post by: cock86 on 16-11-2009, 15:40:35
X Bakks:

>> x=[1,-2,3]'
      x =

          1
         -2
          3
> y=[3 2 1]'
      y =

          3
          2
          1
>> x*y'
      ans =

           3   2   1
          -6  -4  -2
           9   6   3
>> x'*y
      ans =  2


Title: Re:esercizi MatLab
Post by: bakks87 on 16-11-2009, 15:44:04
X Bakks:

>> x=[1,-2,3]'
      x =

          1
         -2
          3
> y=[3 2 1]'
      y =

          3
          2
          1
>> x*y'
      ans =

           3   2   1
          -6  -4  -2
           9   6   3
>> x'*y
      ans =  2

che ###@@, grazie cock!


Title: Re:esercizi MatLab
Post by: bakks87 on 16-11-2009, 15:54:13
ne approfitto per postare un esecizio di calcolo di autovalori nel quale mi sono impelagato:

la matrice è la seguente: A=[1,2,1;2,2,3;-1,-3,1]
ho trovato che ro1=3, ro2=5 e ro3=4
ma non riesco ad andare avanti nello scomporre il pol.caratt. poichè il determinante di A-Lamda*I mi viene

p(Lamda)=Lamda3-4Lamda2+11Lamda+3

non riesco ad abbassare con Ruffini  :-)|


Title: Re:esercizi MatLab
Post by: cock86 on 16-11-2009, 16:36:06
credo tu abbia sbagliato... a me viene: L3-4L2+5L-2 scomponendo con ruffini, otteniamo: (L2-3L+2)(L-1).
Tuttavia per evitare questi problemi(non capisco perché la prof ci porti prima a moltiplicare e poi a scomporre e risolvere un'equazione di secondo grado -credo per imparare il metodo), puoi arrivare subito alla soluzione perché il polinomio di terzo grado trovato viene da: *(L-1)(L-2)(L-1)=0 che per "l'annullamento dei prodotti" si può arrivare alle soluzioni ponendo i singoli fattori uguali a zero. Nell'esempio  (L-1)=0;(L-2)=0;(L-1)=0; basta che uno dei tre sia =0 l'equazione (*) è verificata, quindi le soluzioni già dall'inizio puoi vedere che sono ==> L=1;L=2;L=1;
Spero di essere stato abbastanza chiaro!


Title: Re:esercizi MatLab
Post by: cock86 on 16-11-2009, 17:04:51
come risolvereste questi due esercizi in MatLab?!
1)Scrivere una matrice A 3x3 strettamente diagonalmente dominante;
2)Eseguire il grafico della funzione: f (t ) = t con t ∈ [0,2]

il primo ho provato a farlo manualmente oppure a scrivere un algoritmo che metteva la diagonale random e poi calcolava gli altri valori per farla risultare la matrice diagonalmente dominante; ma sono sicuro esista qualcosa di più semplice.  .penso Ma cosa???

il secondo invece >>x=0:2;
                           >> f=sqrt(x);
                           >> plot(x,f)
ma non capisco perché mi dia un'errore che non capisco neanche. :-)|


Title: Re:esercizi MatLab
Post by: bakks87 on 16-11-2009, 17:40:26
credo tu abbia sbagliato... a me viene: L3-4L2+5L-2 scomponendo con ruffini, otteniamo: (L2-3L+2)(L-1).
Tuttavia per evitare questi problemi(non capisco perché la prof ci porti prima a moltiplicare e poi a scomporre e risolvere un'equazione di secondo grado -credo per imparare il metodo), puoi arrivare subito alla soluzione perché il polinomio di terzo grado trovato viene da: *(L-1)(L-2)(L-1)=0 che per "l'annullamento dei prodotti" si può arrivare alle soluzioni ponendo i singoli fattori uguali a zero. Nell'esempio  (L-1)=0;(L-2)=0;(L-1)=0; basta che uno dei tre sia =0 l'equazione (*) è verificata, quindi le soluzioni già dall'inizio puoi vedere che sono ==> L=1;L=2;L=1;
Spero di essere stato abbastanza chiaro!

piu tardi controllerò e ti farò sapere!
piuttosto avevo da proporre un altro esercizio  .sisi ovvero l'esercizio n°2 del compito del 19-06-'07
data la matrice A=[48,12,12;12,43,23;12,23,45] trovarne la fattorizzazione LU
mi sono innanzi tutto calcolato L1=[1,0,0;-1/4,1,0;-1/4,0,1] ove m2,1=m3,1=-1/4

poi ho calcolato L1*A ottenendo   A(2)=[48,12,12;0,40,20;0,20,42]

poi ho calcolato m3,2 riferendomi alla matrice appena ottenuta A(2) ed ho trovato -1/2

dunque L2=[1,0,0;0,1,0;0,-1/2,1]

U=L2*A(2)=[48,12,12;0,40,20;0,0,32]

poi calcolo L-11  e  L-12

facendo il prodotto di queste ultime due matrici ottenute, ottengo L=[1,0,0;1/4,1,0;3/8,1/2,1]

adesso ho finito, giusto? non posso risolvere il sistema

Ux=y
Ly=b

poichè non ho il termine noto b, e cmq se non ho capito male l'esercizio richiede solo di trovare la fattorizzazione LU e non di risolvere il sistema!

Inoltre ho un dubbio: il moltiplicatore m3,2 lo calcolo dalla matrice A(2) e non da quella originale A, giusto???

thank you very mouch!


Title: Re:esercizi MatLab
Post by: cock86 on 17-11-2009, 08:36:57
scusami!!  .penso ho ricopiato qualche zero di troppo nella matrice del tuo esercizio(il ragionamento si riferisce a quando il determinante è dato solo dalla diagonale principale); in realtà avevi ragione tu. Magari potresti proporlo alla prof.


il procedimento è corretto ora non ho guardato bene i calcoli, ma i passaggi sono giusti! se voleva calcolato il sistema avrebbe scritto:  Risolvere il sistema a partire dalla fattorizzazione di A. Quindi hai finito così. Per quanto riguarda m3,2 , si lo devi calcolare dalla matrice A(2)=L1*A.


Title: Re:esercizi MatLab
Post by: bakks87 on 17-11-2009, 13:10:21
grazie cock !


Title: Re:esercizi MatLab
Post by: IRon on 23-11-2009, 22:14:48
Code:
y=1
for(n=1:1:10){
  y=y+1/n
}
in questo modo calcoli 1 + la somma n-esima


Title: Re:esercizi MatLab
Post by: emax on 24-11-2009, 12:32:37
Compito Nov2008 n13:
Se ho la matrice A=[1 1 -2; 1 0 1; -2 1 -1], in a22 ho 0, debbo fare lo scambio righe? come viene la matrice?


Title: Re:esercizi MatLab
Post by: cock86 on 24-11-2009, 12:58:33
non credo sia un problema lo 0 sulla diagonale! almeno i 3 determinanti minori sono diversi da 0 quindi dovresti avere numero finito di soluzione. E poi dopo avrai applicato il primo moltiplicatore m21 l'elemento a 22= 0 diventerà -1. Quindi credo non sia un problema! a meno che ci sia qualche regola che mi sfugge!