Solving a non-linear problem for several lines

3 vues (au cours des 30 derniers jours)
Bruno Martins
Bruno Martins le 12 Jan 2019
Commenté : ahmad mohmad le 16 Sep 2019
Hello!
I'm trying to solve non linear equations for 8760 lines, meaning each line has a non-linear equation, all the vectors are of the size (8760,1). The code is below:
% Model start
Vwind_low = data(:,4)*0.51;
T_water = mi + ((alpha-mi)./(1+exp(gamma*(beta-data(:,3)))));
Tcell = 1.8081+0.9282*data(:,3)+0.021*data(:,2)-1.221*Vwind_low+0.0246*T_water;
TcellK = Tcell+273.15;
Isc = Isc_ref*data(:,2)/G_ref;
A = A_ref*TcellK/T_STC;
Ebg = 1.12*(1-0.0002677*(TcellK-T_STC));
Io = Io_ref*((TcellK/298.15).^3).*exp((1/k)*((1.12/T_STC)-(Ebg./TcellK)));
% Objective function
fun = @myfun
x0 = ones(8760,1)*39; % Initial guess is 39
for i=1:8760
x(i) = fsolve(fun,x0);
end
My myfun file is below:
function F = myfun (x)
for j=1:8760
F = exp(x(i)./A(j)) - ((Isc(j)./Io(j) + 1)./(1 + x(i)./A(j)));
end
My question is: the non-linear equation depends on the parameters A, Isc and Io that I calculated in the main code. How do I call these calculated parameters to the function?
Also, is this the way you guys would solve this problem? Is there another way?
Thank you!
  9 commentaires
Bruno Martins
Bruno Martins le 14 Jan 2019
Modifié(e) : Bruno Martins le 14 Jan 2019
I got the code finished finally! Thanks a lot for the help, Walter.
PS.: I can't find where to accept your answer!
ahmad mohmad
ahmad mohmad le 16 Sep 2019
hello mr. Bruno
colud you help me ih have a such problem
Thanks

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur Problem-Based Optimization Setup dans Help Center et File Exchange

Produits


Version

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by