How to integrate a function w.r.t. a variable that is not the input variable to the function

3 次查看(过去 30 天)
Hi,
I have 2567x1 double variable which is a Strain, with a corresponding time variable.
I have a function:
function [y]=mystrainrate(reflectedstrain)
c=4980;
l_s=6*10^-3;
y=c*(reflectedstrain)/l_s;
end
I want the integral of y with respect to time between 0 and a specified time. But I want to plot it, so essentially I want a loop to find the integral up to each time index from 1 to 2567 and create another 2567x1 variable of the integrals.
But, I can't work out how to integrate a function with respect to a variable that is not the input variable to the function.
For example, I currently have this code:
for i=1:length(reflectedstrain)
nominalstrain(i,1)=integral(@mystrainrate,0,time(i));
end
But obviously this integrates the strain rate function w.r.t. the strain and not w.r.t the time.
Any help would be appreciated. Thanks.

回答(1 个)

Michael Wang
Michael Wang 2016-9-14
As you have mentioned, the function you are using as the input of the ‘integral’ function should be a function that w.r.t time ( i.e. y(t) or in other form y(reflectedstrain(t)) ).
The ‘ integral ’ function in this case will not work due to the relation between "reflectedstrain" and time "t" are not constant so the input function varies from time to time. I would recommend you to calculate the integral value numerically (e.g. integral_y = y (i)*delta_t ) assuming you can calculate the time difference "delta_t" between time steps.
You could also try to integrate the “y” value using ‘ trapz ’ function.
Hope these help!

类别

Help CenterFile Exchange 中查找有关 Numerical Integration and Differentiation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by