Using trapz doesn't work
Show older comments
Hey Guys,
I already read some answers about 'errors using trapz' but i didn't get what's wrong because the lengths of my vektors are similiar. All vectors have the size 1x24000 double, thus dX_dTeta is also 1x24000 double. I need to integrate the function F. Are there any mistakes in it?
Thanks!!!
Here is my code:
%% sektion
for i = 1:(ceil((T_H2O_ein-T_H2O_aus)/h))
dX_dTeta(i) = cp_H2O * Massenstromverhaeltnis(i) * ((X_sat(i) - X_vektor(i))/(h_Luft_sat(i)...
- h_Luft_vektor(i) + ((0.865^(2/3)*(((0.622+X_sat(i))/(0.622+X_vektor(i))-1)/...
(log((0.622+X_sat(i))/(0.622+X_vektor(i))))))-1)*(h_Luft_sat(i) - h_Luft_vektor(i) -...
(X_sat(i) - X_vektor(i))*(h_verdampfung + cp_Dampf*T_H2O_vektor(i))) - ...
(X_sat(i) - X_vektor(i))*cp_H2O * T_H2O_vektor(i)));
end
temp = linspace(19,43,24000);
F = dX_dTeta(i)/(X_sat(i)-X_vektor(i));
for i = 1:integrationsende
NTU = trapz(temp,F,1);
end
1 Comment
Jakob B. Nielsen
on 31 Jan 2020
First, what does your 2nd for loop do? You dont have i anywhere in the loop.
Second - without knowing your various variable values it is hard for us to run the code and see the error you get - so can you either post the error, or include your values in the code strip you posted?
Answers (1)
J. Alex Lee
on 31 Jan 2020
0 votes
F is of size 1x1, not 1x24000
10 Comments
Jakob B. Nielsen
on 31 Jan 2020
Oh yeap good spot. F assignment is outside the for loop - needs to be inside :)
J. Alex Lee
on 31 Jan 2020
agree with Jakob about the 2nd loop and not being able to run the code, but I imagine what you want is
temp = linspace(19,43,24000);
F = dX_dTeta./(X_sat-X_vektor);
NTU = trapz(temp,F,1);
Michael Käufl
on 31 Jan 2020
J. Alex Lee
on 31 Jan 2020
Can you try omitting the 3rd argument of trapz?
Michael Käufl
on 31 Jan 2020
J. Alex Lee
on 31 Jan 2020
What do you get when you issue
size(F)
size(temp)
Michael Käufl
on 1 Feb 2020
Michael Käufl
on 1 Feb 2020
J. Alex Lee
on 1 Feb 2020
Hmm, you might want to re-think your overall strategy. What do you mean you "solved" the upper equation? Eq. 20 and 21 look like coupled ODE...what do the double primes mean
and
? Second derivatives? What are your boundary conditions? Is it possible to combine Eqs. 20, 21, and 22 into a single ODE or integral, or express Eq. 22 differently based on Eqs. 20 and 21?
But for the problem at hand of trapz not appearing to work when it seems like it should, can you provide the variables temp and F in a .mat file?
In general, trapz should be replaceable by manually doing a trapezoid rule, but your suggestion doesn't make a whole lot of sense to me, based on your original inputs being temp and FF...
Michael Käufl
on 4 Feb 2020
Categories
Find more on Numerical Integration and Differentiation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!