3 views (last 30 days)

Show older comments

Hi all, I am playing around with functions and the symbolic math toolbox.

I want to calculate an integral of a difficult function:

syms t t0 tau x;

syms l(t,t0,tau);

l(t,t0,tau)= exp(-1/2*exp(-(t-t0)/tau));

syms f(t,t0,tau);

f(t,t0,tau)= exp(-1/2*((t-t0)/tau));

syms p(t,t0,tau);

p(t,t0,tau)=l(t,t0,tau)*f(t,t0,tau);

It can not integrate p directly, which is not that difficult, wolfram alpha does is. But anyhow, I'll help a little and do the substitution:

p=tau*subs(p,(t-t0)/tau,x)

int(p,x,-inf,inf)

But it still just comes up with nothing. It just puts out a formated version of my input instead of calculating the integral.

The answer should be

sqrt(2*pi)*tau

Did I use the toolbox wrong or is it just not that powerfull?

Walter Roberson
on 29 Jul 2021

Tanmay Das
on 29 Jul 2021

Your function has no obvious closed form integral. You need to switch to numeric integration, such as with integral() or vpaintegral() which will require you to have a numeric value for x. Similar question has already been answered here:

Also, the same is mentioned in the Tips Section of the int documentation:

You can go through the documentations on integral and vpaintegral to try integrate the same function:

Paul
on 30 Jul 2021

int() seems to work better like this for some reason?

syms t t0 real

syms tau positive

syms l(t,t0,tau);

l(t,t0,tau)= exp(-1/2*exp(-(t-t0)/tau));

syms f(t,t0,tau);

f(t,t0,tau)= exp(-1/2*((t-t0)/tau));

syms p(t,t0,tau);

p(t,t0,tau)=l(t,t0,tau)*f(t,t0,tau);

int(simplify(expand(p)),t,-inf,inf,'IgnoreAnalyticConstraints',true)

I wonder why.

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

Start Hunting!