Le mie conoscenze di elettrotecnica non vanno oltre il saper cambiare una lampadina per cui non discuto l'approccio al problema.
Forse, però, c'è un metodo migliore rispetto a quello scelto nella domanda.
A prescindere dalle considerazioni sul metodo, se però, come descritto nella domanda, si tratta di risolvere un sistema di due equazioni con uno dei due termini noti "varaibile" si può utilizzare il metodo di Cramer come nello script in calce.
Nello script ho definito (per comodità) i coefficienti delle incognite I1 e I2, rispettivamente, (x1, x2) e (y1, y2).
Le incognite I1 e I2 sono definite "x" e "y"
Il vettore E rappresenta i valori di tensione da "esplorare", t2 il termine noto della seconda equazione del sistema.
Per risolvere il sistema per diversi valori di E (es: E=1:500) e per il calcolo dei successivi valori di potenza non è necessario usare cicli "for":
% Risoluzione sistema con metodo di Cramer
D=(x1*y2)-(x2*y1);
x=((E*y2)-(t2*y1))/D; % Corrisponde a I1
y=((x1*t2)-(x2*E))/D; % Corrisponde a I2
% Calcolo della potenza per le due soluzioni
Px=30*x.^2;
Py=30*y.^2;
Dal momento che si usano valori discreti per "E" i valori di delle Potenze relative alle correnti I1 e I2 soluzione del sistema saranno, a loro volta, discreti, questo comporta che, probabilmente, non si riuscirà ad determinare il valore di E che, nel caso della domanda, corrisponderà ad una potenza di 4kW, "esatto", ma solo valori approssimati (per eccesso o per difetto).
Nella seconda parete dello script vengono individuati i valori di "E" ed i relativi valori di Potenza considerando un valore di tolleranza "toll", definito in input all'inizio dello script.
Si può provare a modificane il valore per vedere come cambiano i risultati (i valori di E e Potenza).
% Valore potenza sul resistore
P_res=4000;
% Valore soglia per ricerca soluzione
toll=5;
% Definizione dei coefficienti del sistema
x1=30; % I1 prima equazione
x2=1; % I1 seconda equazione
y1=30; % I2 prima equazione
y2=-1; % I2 seconda equazione
% Definizione valori E di tensione
E=1:500;
% Definizione termine noto seconda equazione
t2=15;
% Risoluzione sistema con metodo di Cramer
D=(x1*y2)-(x2*y1);
x=((E*y2)-(t2*y1))/D; % Corrisponde a I1
y=((x1*t2)-(x2*E))/D; % Corrisponde a I2
% Calcolo della potenza per le due soluzioni
Px=30*x.^2;
Py=30*y.^2;
% Ricerca del valore della tensione e valori corrispondenti di Potenza
Tens=0;
Tens=find(Px <= (P_res + toll) & Px >= (P_res - toll));
if(~isempty(Tens))
disp(['Valori tensione= ' num2str(Tens)])
P=Px(Tens);
disp(['Valori Potenza= ' num2str(P)])
else
Tens=find(Py <= (P_res + toll) & Py >= (P_res - toll));
if(~isempty(Tens))
disp(['Valori tensione= ' num2str(Tens)])
P=Px(Tens);
disp(['Valori Potenza= ' num2str(P)])
end
end
if(isempty(Tens))
disp('Nessuna soluzione per il range di Tensione considerato e/o il valore di tolleranza')
end
Hope this helps.