# Numerical integral where the bounds change with each evaluation

1 view (last 30 days)

Show older comments

I'm trying to take the following integral:

I tried this symbolically, but I think that was throwing me off. I am attaching some numerical data for the function A(t) and the time vector. How would you do this numerically? I imagine it would be something like the following, but I can't quite get it to work.

omega = logspace(-1,1,1000);

fun = @(t,omega) A*sin(omega*t);

for i = 1:1000;

w=omega(i);

f(i) = integral(@(t) fun(t,w),0,2*pi/w);

end

##### 3 Comments

Walter Roberson
on 16 May 2023

A(t) just means that A is a function of t.

It is the expression for some kind of tranform of A(t), but I am not sure what the name of this transform is.

### Answers (1)

Walter Roberson
on 16 May 2023

A = rand

omega = logspace(-1,1,1000);

fun = @(t,omega) A*sin(omega*t);

for i = 1:1000;

w=omega(i);

f(i) = integral(@(t) fun(t,w),0,2*pi/w);

end

plot(omega, f)

All of the values are within round-off error of 0.

However... there is a difference between what your mathematical expression shows here, compared to the integral you were calculating there and here.

In previous discussion, A was a constant. In the expression here, A is a function of t. That makes a big difference.

For example,

A = @(t) t.^2 - t + 1;

omega = logspace(-1,1,1000);

fun = @(t,omega) A(t).*sin(omega*t);

for i = 1:1000;

w=omega(i);

FUN = @(t) fun(t,w);

f(i) = integral(FUN,0,2*pi/w);

end

plot(omega, f)

syms t Omega

A = @(t) t.^2 - t + 1;

omega = logspace(-1,1,1000);

fun = @(t,omega) A(t).*sin(omega*t);

F = int(fun(t,Omega), t, 0, 2*pi/Omega)

f = subs(F, Omega, omega);

plot(omega, f)

##### 4 Comments

Walter Roberson
on 16 May 2023

"how would you modify it to use a vector of type double which is also a function of t"

Vectors are not functions.

If you have the value of A(t) sampled at particular t, then calculate A(t).*sin(omega*t) at those t, and use trapz() or similar to do numeric integration, making sure to pass in the appropriate t values to trapz()

Walter Roberson
on 16 May 2023

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!