fzero error using a root
Mostra commenti meno recenti
Q_i = S*tau*e_paint*A_pt;
Q_rad = @(T_pt)(e_paint*sigma*A_pt*(T_pt^4 - T_sun^4));
Q_conv = @(T_pt, T_air)((1.68*(T_pt-T_air)^(1/2))*A_pt*(T_pt-T_air));
Q_heat_plate = @(T_pt, T_pt_LAST)((m_p*c_a+m_t*c_c)*(T_pt -T_pt_LAST));
Q_water = @(T_w,T_pt)(h_w*A_inside*(T_pt - T_w));
solver_T_pt = @(T_pt)(Q_rad(T_pt) + Q_conv(T_pt, T_air) + Q_heat_plate(T_pt, T_pt_LAST) + Q_water(T_water_average, T_pt) - Q_i);
T_pt_num = fzero(solver_T_pt, 293); %[K] temperature aluminiumplate and tube
q_heat_air = Q_conv(T_pt_num, T_air); %Determining the energy to the air through convection
T_air_num = (q_heat_air)/(m_air*c_air_p) + T_air; %[K] New Temperature of air
I am using a fzero function here to solve this problem, however in line 3 an error eccors when using ^1/2. When I use ^2 for example the function works fine so the fzero probably goes bad on the root but how do I fix this?
Risposte (1)
madhan ravi
il 4 Giu 2020
0 voti
.* .^
5 Commenti
Tim Pijnacker
il 4 Giu 2020
Modificato: Tim Pijnacker
il 4 Giu 2020
madhan ravi
il 4 Giu 2020
Modificato: madhan ravi
il 4 Giu 2020
Did you say what error occurred? Did you define the variables? Did you think others could run the code without providing the datas? fzero(...) expects numeric input and not symbolic.
doc fzero
Tim Pijnacker
il 4 Giu 2020
Steven Lord
il 4 Giu 2020
That doesn't look like the whole error message. Can you show us all the text displayed in red when you run your code? There should be something displayed before the "Error in plate_v2" line.
Tim Pijnacker
il 4 Giu 2020
Categorie
Scopri di più su MATLAB in Centro assistenza e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
