Symbolic math integrals not solving at all
24 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Florian Rössing
am 30 Apr. 2021
Kommentiert: Taw Tha
am 24 Apr. 2023
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?
3 Kommentare
Walter Roberson
am 29 Jul. 2021
When I take the expression over to Maple and convert the exp() into sinh cosh, then Maple is able to integrate the system. However, I do not seem to be able to do the same thing for MATLAB.
Akzeptierte Antwort
Tanmay Das
am 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:
8 Kommentare
Paul
am 27 Apr. 2022
Nope. Also doesn't work anymore in 2021B.
However, that code yields the closed form solution in 2020B.
In 2021B I had to change the expression for the integrand
int(simplify(expand(p(t,t0,tau),'IgnoreAnalyticConstraints',true),'IgnoreAnalyticConstraints',true),t,-inf,inf,'IgnoreAnalyticConstraints',true)
to get the same integrand as in in 2020B, at least by visual comparison. But even though the integrands were the same, 2021B int() still did not yield the closed form solution.
Taw Tha
am 24 Apr. 2023
Thank you everyone here, I would also like to contribute that simplify('Steps', \*int steps\*)
intFuncky = simplify(int((sqrt(tao^2 - (t-tao)^2) * (t-tao)^2),t,0,2*tao),"Steps",100)
or
intFuncky = simplify(int(( f ,x ,a, b), "Steps" ,100);%100 chosen as a small steps count medium is 400 steps
matlab 2022b
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Assumptions finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!