ddefalco
Questo è un forum di discussione e non un sistema di messaggistica, in particolare con me.
Ciò vuol dire che ognuno che vi partecipa contribuisce alla discussione di un argomento (topic) cercando di risolvere i problemi che si pongono, con un intervento (post) che viene messo a disposizione di tutti: va pertanto inteso come un dibattito tra tutti nel quale gli interventi (e non le persone), hanno lo stesso peso.
Certamente non è una comunicazione ‘peer to peer’ con me (per fare questo esiste il ricevimento in stanza, l’email, la chat…) né tantomeno dev’essere un’esibizione del proprio sapere o non sapere (esame).

Pertanto bandiamo frasi del tipo “Ci scusiamo per eventuali errori”, “accettiamo consigli per eventuali correzioni”, peggio ancora “domanda per il professore”, …, e pensiamo sempre al “sodo”.
Concediamo alla forma, tutt’al più qualche volta, un saluto.
Domenico de Falco.

ddefalco

ING - IND 13 : DDEFALCO's Forum
 
IndiceCalendarioFAQCercaLista utentiGruppiRegistrarsiAccedi
Ultimi argomenti
Cerca
 
 

Risultati secondo:
 
Rechercher Ricerca avanzata

Condividere | 
 

 Plot della soluzione di sistemi di equazioni

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso 
AutoreMessaggio
salva021291



Numero di messaggi : 6
Corso di appartenenza : Dinamica e Controllo dei Sistemi Meccanici
NomeCognome : Salvatore di Nuzzo
Data d'iscrizione : 20.02.12

MessaggioOggetto: Plot della soluzione di sistemi di equazioni   Dom Nov 09, 2014 5:57 pm

Salve, volevo proporvi questo esercizio su Matlab che ho eseguito: dopo aver risolto un sistema di m equazioni in n incognite (ho variato n ed m per avere tipi diversi di sistemi) ho plottato la soluzione per verificare graficamente l'intersezione delle figure geometriche e quindi la soluzione del sistema.I sistemi considerati sono tutti consistenti ovvero ammettono tutti almeno una soluzione!! Per plottare le equazioni ho assegnato ad una o piu variabili dei valori compresi in un intervallo e scritto una sola variabile dell'equazione in funzione di quelle assegnate, ho usato poi il comando plot.

Il primo sistema preso in esame è un sistema con m=2 ed n=2 di seguito riporto i comandi di matlab con i risultati e il grafico.

m = 2
n = 2
A =
   81   -13
  -91    91
r =    2
b =
   0.9575
   0.9649
Apiu =
   0.0147    0.0021
   0.0147    0.0131
>> x=Apiu*b
x =
   0.0161
   0.0267
>> h1=rand(n,1),
I=eye(n),
parentesi=[I-Apiu*A],
x1=x+parentesi*h1
h1 =
   0.1576
   0.9706
I =
    1     0
    0     1
parentesi =
 1.0e-015 *
  -0.2220         0
        0   -0.2220
x1 =
   0.0161
   0.0267
a=[-1:0.001:1];
b=(0.9575-13*a)/81
c=(0.9649-81*a)/(-91);
plot(a,b,a,c)
Per questo primo esempio quindi guardando la figura si puo vedere come le componenti del vettore soluzione siano proprio l'ascissa e l'ordinata del punto di intersezione delle due rette! Per essere piu precisi comunque è possibile con qualche comando evidenziare il punto di intersezione?

Ho poi provato a risolvere sia un sistema con m=2 ed n=3 e infine un sistema con m=3 ed n=3 ma con questi ultimi due quando sono andato a plottare sia con il comando plot che con il comando plot3 ho visualizzato sempre delle rette. Non dovrebbero essere plottate delle superfici piu in particolare dei piani?? E' un errore concettuale o sbaglio ad usare il comando? Riporto di seguito i comandi del sistema con m=3 ed n=3 e le immagini anche del sistema con m=2 ed n=3

m=3
n=3
A=round((rand(m,n)*100).* sign(rand(m,n) - 0.5))
r=rank(A)
b=rand(m,1)
Apiu=pinv(A)
zmin=A*Apiu*b-b
norm(zmin)
x=Apiu*b
h1=rand(n,1),
I=eye(n),
parentesi=[I-Apiu*A],
x1=x+parentesi*h1
plot(a,b,c)


m = 3
n =  3
A =
  -22   -51    96
  -75    70   -55
   26   -89   -14

r = 3
b =
   0.2511
   0.6160
   0.4733

Apiu =

  -0.0081   -0.0128   -0.0054
  -0.0034   -0.0030   -0.0117
   0.0067   -0.0045   -0.0074

zmin =
 1.0e-015 *

  -0.8882
  -0.3331
   0.3331

ans =
 1.0053e-015
x =
  -0.0125
  -0.0082
  -0.0046

h1 =
   0.3517
   0.8308
   0.5853

I =
    1     0     0
    0     1     0
    0     0     1

parentesi =
 1.0e-015 *

   0.2220    0.9992   -0.4302
   0.0555         0   -0.2498
  -0.4163   -0.1110         0


x1 =

  -0.0125
  -0.0082
  -0.0046

a=[-1:0.001:1];
b=[-1:0.001:1];
c=(0.2511+51*a-96*b)/(-22);
d=(0.6160-70*a+55*b)/(-75);
e=(0.4733+89*a+14*b)/(-26);
plot3(a,b,c,a,b,d,a,b,e)

Inoltre per il sistema m=2 ed n=3 essendo le soluzioni infinito^1 come ho verificato facendo variare il vettore h come viene scelta quella da plottare?

Spero di essere stato chiaro e di non aver commesso errori. In ogni caso aspetto le vostre risposte.
Tornare in alto Andare in basso
Vedere il profilo dell'utente
ddefalco
Admin


Numero di messaggi : 171
Località : Napoli
Corso di appartenenza : Meccanica Applicata alle Macchine
NomeCognome : Domenico de Falco
Data d'iscrizione : 29.12.08

MessaggioOggetto: Re: Plot della soluzione di sistemi di equazioni   Gio Nov 13, 2014 3:23 pm

Innanzitutto la ringrazio per il post, finalmente qualcuno lavora.
Allora, sono gia diverse ore che ci lavoro su. Innanzitutto l'ho un po aggiustato tipograficamente senza toccare il contenuto perché fosse piu leggibile.
Sarebbe bene curare anche la leggibilità perché altrimenti si è molto dissuasi dallo spendere attenzione.

Vengo alla sostanza anche se sto preparando, anche con i suoi dati, qualcosa di molto piu esaustivo.

Primaditutto dev' essere chiaro che l' equazione:
g(x1,x2,...,xn) = 0

è, nello spazio ad n dimensioni, l'equazione implicita di una superficie. Ovvero esplicitando una delle variabili in funzione delle altre (se possibile) ad esempio:

xn = f(x1,x2,...,xn-1)

una superficie, in uno spazio ad n dimensioni, è la grandezza (nel caso specifico xn) ottenuta da una funzione di (n-1) parametri.

Viceversa, sempre in uno spazio ad n dimensioni, una curva è l'insieme dei punti di tale spazio le cui coordinate sono ognuna funzione di un solo parametro. Ad esempio quindi una curva è definita dall'insieme dei punti di tale spazio le cui coordinate sono espresse da (n-1) equazioni in funzione di una sola coordinata.

Ora, da quanto sopra dovrebbe essere chiaro che

in uno spazio di configurazione di dimensione n, ogni equazione di vincolo è rappresentata da una singola superficie

nel caso del primo esercizio, essendo la dimensione dello spazio di configurazione n = 2, una equazione (di vincolo) non potra però che esprimere una coordinata in funzione dell'altra e quindi sarà rappresentata da una curva intesa come caso particolare di superficie.

ovviamente se è m = r = 2 ad ogni equazione corrisponde una curva (del piano x,y) e pertanto la soluzione dell'equazione di vincolo vettoriale (ovvero del sistema di m=2 equazioni di vincolo scalari) è rappresentata dal punto intersezione delle 2 curve rappresentative delle equazioni di vincolo

nel caso del secondo esercizio, in cui la dimensione dello spazio di configurazione è n=3, ogni equazione di vincolo è rappresentata da una superficie (in particolare da un piano se lo spazio considerato è ineffetti quello delle accelerazioni, poiché le equazioni di vincolo sono lineari in queste ultime).
Per plottare l'equazione della singola superficie con matlab bisogna riscrivere l'equazione esplicitando una variabile in funzione delle altre 2 cioè ad esempio scriverla nella forma
xi3 = f(x1,x2)

(i sta per l'i-esima equazione) e, assegnando ad x1 ed x2 un certo numero di valori all'interno di un intervallo in cui si vuole rappresentare la superficie di vincolo, trovare per ogni coppia possibile (x1,x2) il valore di xi3.
Se si organizza in una matrice l'insieme dei valori di xi3 facendo variare ad es. x1 lungo le righe e x2 lungo le colonne, il plottaggio di questa matrice con l'istruzione surf(xi3) di matlab è la superficie rappresentativa dell'equazione.
Ho improvvisato un listato matlab che realizza quanto ho detto sopra ma andrebbe perfezionato perché funziona plottando solo le superfici delle prime 2 equazioni di vincolo.
Scaricate da qui il listato plottasuperfici.m ed il file provasalva02.mat che contiene la matrice A  e il vettore b di salva021291(che ha aperto il topic) ed il vettore soluzione x1 trovato con il mio programma ese_aula_005.m che dovreste gia avere ma che ho inserito anche in questo zip.

Very Happy


Ultima modifica di ddefalco il Sab Nov 15, 2014 8:39 pm, modificato 2 volte
Tornare in alto Andare in basso
Vedere il profilo dell'utente
salva021291



Numero di messaggi : 6
Corso di appartenenza : Dinamica e Controllo dei Sistemi Meccanici
NomeCognome : Salvatore di Nuzzo
Data d'iscrizione : 20.02.12

MessaggioOggetto: Re: Plot della soluzione di sistemi di equazioni   Sab Nov 15, 2014 6:23 pm

Salve prof, innanzitutto mi scuso per il disordine con cui ho espresso il problema!!
Leggendo la sua spiegazione credo di aver impostato bene il problema del plot in matlab, ovvero scrivere l'equazione della superficie nella forma
                                                               
xi3 = f(x1,x2)
l'errore che ho commesso sta nell'utilizzo del comando plot!

Grazie al suo listato comunque sono riuscito a plottare in modo corretto le equazioni ma non le nascondo che non  mi sono molto chiari alcuni comandi utilizzati.
Per la scelta dell'intervallo e del passo di variazione di due delle tre variabili ha utilizzato i comandi:
kk=2
numpunti=10
normx1=norm(x1)
xin=-kk*normx1
xfin=kk*normx1
passo = (xfin - xin) / (numpunti-1)

mentre quelli per costruire la matrice sono(di fianco al comando scrivo ciò che non ho capito):
An1 = A(:,1:n-1) non capito a cosa serva questo comando, è un vettore quello che ha creato??
for i = 1
   for j = 1 : numpunti
         x3j = (An1*[x1x(i); x1y(j)] - b)./A(:,n); la matrice non dovrebbe essere composta dai valori precedentemente assegnati alla due variabili?? perchè pre-moltiplichiamo e post-moltiplichiamo per An1 e altri valori? è per rendere il comando dipendente dal sistema di equazioni? Question  Question
         x31(i,j)=x3j(1);
         x32(i,j)=x3j(2);
         x33(i,j)=x3j(3);

La ringrazio per l'attenzione e resto in attesa di una nuova risposta magari anche lunedi in aula!
Saluti Smile
Tornare in alto Andare in basso
Vedere il profilo dell'utente
ddefalco
Admin


Numero di messaggi : 171
Località : Napoli
Corso di appartenenza : Meccanica Applicata alle Macchine
NomeCognome : Domenico de Falco
Data d'iscrizione : 29.12.08

MessaggioOggetto: Re: Plot della soluzione di sistemi di equazioni   Dom Nov 16, 2014 7:55 pm

primaditutto voglio dirle che sono molto soddisfatto del suo studio del listato che ho proposto e dell'individuazione di alcuni punti che effettivamente, per motivi di brevità, non ho forse chiarito abbastanza.
Vado con ordine :
  • il comando plot3 serve a plottare curve nello spazio tridimensionale e non superfici e per questo non le funzionava.
  • la sequenza di istruzioni:
    kk=2
    numpunti=10
    normx1=norm(x1)
    xin=-kk*normx1
    xfin=kk*normx1
    passo = (xfin - xin) / (numpunti-1)

    è servita per generare il passo con cui far variare i valori sugli assi x1 e x2 e ottenere il valore x3 dall' equazione della superficie.
    Comunque questo lo spiegherò un po meglio a voce.
  • l' istruzione
    An1 = A(:,1:n-1)

    serve a ricavare la matrice costituita dalle prime (n-1) colonne della A.
    Questa necessità, e le istruzioni successive del listato, dovrebbero essere chiarite dagli
  • ho aggiornato il appunti che ho scritto e riportato di seguito.
  • ho aggiornato il listato MATLAB di "plottasuperfici.m", che trova sempre nello stesso file .zip, cambiando sostanzialmente i nomi delle variabili usate rendendole così coerenti con la nomenclatura usata sul libro di testo e negli appunti che ho scritto.
    In ogni caso, domani a lezione ho intenzione di dedicare un po di tempo a questo esercizio e spero di poter chiarire bene il tutto.
  • Tornare in alto Andare in basso
    Vedere il profilo dell'utente
    Contenuto sponsorizzato




    MessaggioOggetto: Re: Plot della soluzione di sistemi di equazioni   Oggi a 6:23 am

    Tornare in alto Andare in basso
     
    Plot della soluzione di sistemi di equazioni
    Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto 
    Pagina 1 di 1
     Argomenti simili
    -
    » Interni appiccicosi... c'è una soluzione?
    » ponte della becca
    » che ne pensate della Evoque?
    » Sentiero della strega..
    » RALLY DELLA LAGUNA VENETA

    Permesso di questo forum:Non puoi rispondere agli argomenti in questo forum
    ddefalco :: CORSI :: Dinamica e Controllo di Sistemi Meccanici-
    Andare verso: