Am I using the fminsearch correctly?

1 visualizzazione (ultimi 30 giorni)
A K
A K il 27 Ott 2016
Commentato: Walter Roberson il 27 Ott 2016
I don't seem to be converging to the correct value whilst using fminsearch, does anyone know if this layout is correct?
function reboiler_temp=bubble_point(x,A,B,C,P,bubble_components,T);
% calculate the temperature for the individual components
%input_data=get_input_data();
temp=0;
bubble_temp=zeros(bubble_components);
for i=1:bubble_components
bubble_temp(i)=10^(A(i)-B(i)/(T+C(i)))*x(i);
temp=temp+bubble_temp(i);
end
temp
reboiler_temp=abs(temp-P)
return;
In the script i have this:
T(1)=input_data.simulation_data.reboiler_temp;
reboiler_temp= fminsearch(@bubble_point,T(1),[],x,A,B,C,P,bubble_components)

Risposta accettata

Walter Roberson
Walter Roberson il 27 Ott 2016
In your line
reboiler_temp=sum(temp)-P;
what is temp ?
Why do you loop through calculating bubble_temp but then overwrite it with the result of your fminsearch?
Why do you create a function handle with parameter bubbletemp and then ignore the parameter? Why is that function handle relying upon the value of i that just happens to be "left over" from the for i loop?
  2 Commenti
A K
A K il 27 Ott 2016
sorry, I have changed it now. The equation is implicit in T but each input argument apart from T has two values, so I use the for loop to find the sum which gives me the equation i want to find the minimum of.
I then use fminsearch on the result to find T - but i'm not sure how to go about it
Walter Roberson
Walter Roberson il 27 Ott 2016
reboiler_temp= fminsearch(@(t) bubble_point(x, A, B, C, P, bubble_components, t), T(1))

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by