[MatLab] Ciclo For (elementare)

kiazzolla
Salve, premetto che non serve alcuna conoscenza di elettrotecnica per capire il mio problema.
Ho un problema con la risoluzione di un circuito in matlab:
mi viene chiesto di calcolare per quale valore del generatore di tensione la potenza su un resistore è 4Kw
che tradotto significa risolvere un sistema del tipo :
$ { ( 30I1+30I2=E(k) ),( I1-I2=15 ):} $
Dove appunto E(k) è la tensione che varia. In matlab traduco il sistema in matrici e faccio variare E(k) con un ciclo for:
>>E=[1:1:500]                           %Definisco il vettore E 
>>A=[30 30; 1 -1];                      %Definisco la matrice dei coefficienti
>>N=length (E)                           %N=Lunghezza vettore E
>>for k=1:N 
           b(k)=[E;15]; x(k)=inv(A)*b; I1(k)=x(1); P(k)=30*I1^2;
   end;


mi da quest'errore :
Error using vertcat
Dimensions of matrices being concatenated are not consistent.

Error in (line 5)
b(k)=[E;15]; x(k)=inv(A)*b; I1(k)=x(1);P(k)=30*I1^2;


Cosa sbaglio? Come imposto correttamente il ciclo for ?

Risposte
kiazzolla
Ho cambiato qualcosa :
>>clear all ;clc ;
>>E=[0:1:1000];
>>A=[30 30;1 -1];
>>for k=1:length(E)
      b(k)=[E(k);15];
      x(k)=inv(A)*b;
      I(k)=x(2);
      P(k)=30*I(k)^2;
   end;


E mi da questi errori:
In an assignment  A(I) = B, the number of elements in B and I must be the same.

Error in Untitled (line 5)
    b(k)=[E(k);15];


HeLP! :cry:

onlyReferee
Ciao adrybeach :!:
In entrambi i casi (sia con la prima che con la versione del codice) c'è un problema di dimensioni delle tue variabili. In caso non sia attivato prova ad aiutarti visualizzando le variabili nel tuo workspace in modo cercare di individuare meglio l'eventuale problema di dimensioni. Infine prova ad eseguire il tuo codice un'istruzione per volta (eventualmente commento le altre istruzioni) vedendo passo passo se il risultato è coerente con ciò che ti aspetti.

kiazzolla
ti ringrazio per la risposta ma ho gia provato...e niente! in poche parole mi dovrei trovare 1000 vettori 'x' derivanti a loro volta da 1000 vettori dei termini noti 'b' ,mentre la matrice ''A'' è unica...possibile che nessuno riesca ad aiutarmi ?! :\

kiazzolla
Per rendere piu chiaro il problema spiego cosa ho fatto fare al programma e perchè:
-La potenza si calcola $ R*I^2 $ , R è costante e quindi devo calcolare tutte le 'I' (correnti) al variare della tensione di alimentazione E.
Significa risolvere quel tipo di sistema dove però c'è un parametro che è appunto la E che varia; equivale a risolvere n (nel mio caso 1000 visto che il vettore E è del tipo $ [1:1:1000] $ ) sistemi lineari da cui quindi ricavo i miei 1000 valori di corrente che mi interessano (incognite del sistema ). Ricavati i 1000 valori di 'I' ricavo i 1000 valori di 'P' semplicemente dall'equazione
$ 30*I^2 $

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.