fzero error using a root
Show older comments
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?
Answers (1)
madhan ravi
on 4 Jun 2020
0 votes
.* .^
5 Comments
Tim Pijnacker
on 4 Jun 2020
Edited: Tim Pijnacker
on 4 Jun 2020
madhan ravi
on 4 Jun 2020
Edited: madhan ravi
on 4 Jun 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
on 4 Jun 2020
Steven Lord
on 4 Jun 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
on 4 Jun 2020
Categories
Find more on MATLAB in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!