Integration with piecewise function

23 Ansichten (letzte 30 Tage)
Fawad Ahmed
Fawad Ahmed am 19 Mär. 2021
Kommentiert: Bjorn Gustavsson am 22 Mär. 2021
Hi! I have the following problem. I have a piecewise function and i need to integrate the function with the piecewise as variable. I have type the piecewise function (see pic) but don't know where to go from there.Your help in this regard is much appreciated. T' and T are the same. I have to determine the Pf (an integral) with Cv4 (a variable of S4) as piecewise function.
  4 Kommentare
Walter Roberson
Walter Roberson am 20 Mär. 2021
... Is the division by the current time value, or by the upper bound?
Fawad Ahmed
Fawad Ahmed am 20 Mär. 2021
Bearbeitet: Fawad Ahmed am 20 Mär. 2021
division is by the current time value, with values close to zero but not equal to zero. because I am dealing with temperature values close to absolute temperature i.e , 0_Kelvin. So T in S4 integral take values in range of 0<T<0.4. whereas T' in S4 just represents S4 as a function of T' which is same as T, so the actual eqn of S4 is int(Cv4/T) .Also plz ignore the algebraic equation besides S4 integral eqn, I only need to use integral form. Thanks

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Bjorn Gustavsson
Bjorn Gustavsson am 19 Mär. 2021
Doesn't this work:
C_v4 = @(T) 0.0516*T.^3.*double(T<=0.6) + .432*T.^6.7.*double(0.6<T).*double(T<1.1) + 0.468*T.^5.6.*double(1.1<=T).*double(T<=2.2);
S = @(T) integral(@(Tprime) C_v4(Tprime)./Tprime,0,T);
Then you might have to plug the piece-wise parts into a function and select what integrations you need. Perhaps something like this:
function S4 = S_4_piecewise(Tin)
if Tin > 1.1
S4 = integral(@(T) 0.0516*T.^2,0,0.6) + ...
integral(@(T) .432*T.^4.7,0.6,1.1) + ...
integral(@(T) 0.468*T.^4.6,1.1,Tin);
elseif Tin > 0.6
S4 = integral(@(T) 0.0516*T.^2,0,0.6) + ...
integral(@(T) .432*T.^5.7,0.6,Tin);
else
S4 = integral(@(T) 0.0516*T.^2,0,Tin);
end
HTH
  6 Kommentare
Fawad Ahmed
Fawad Ahmed am 22 Mär. 2021
Thankyou Bjorn for your response! I need to use the piecewise function becuase i would keep changing my temperature range values in the future which would be much easier if i have a piecewise function. Otherwise i would have to do the hand caluculation all over again evertime i change my temperature range.
Bjorn Gustavsson
Bjorn Gustavsson am 22 Mär. 2021
Well, then you either put the contents of my function S_4_piecewise inside a loop such that integral can use it, or you do it by hand. And by doing it by hand I mean do it properly, such that you can implement the result in a matlab-function where you also send in parameters for the coefficients and the temperature limits.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte


Version

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by