Integrating a truncated normpdf

I have a function multiplied by a normal distribution that I can integrate in the following manner:
f2 = @(theta) f1(theta)*normpdf(theta)
ans = integral(f2,-k,k)
and everything is okay and great. However, I need normpdf(theta) to be truncated from -k to k. Truncate() only seems to work for makedist() which would get rid of the anonymous function I need for the integral. The closest solution I can find is here: https://www.mathworks.com/matlabcentral/newsreader/view_thread/100921 but the link to the tutorial is broken and I'm not sure if mle is the answer to my problem...
Thank you in advance for any advice

4 Comments

f1 =@(theta)(1 - 1/(5+2*x))*((100+theta+s)^(0.5)) / (0.5) + (1/(5+*x))*((100+theta+s-5)^(0.5))/(0.5) where x and s are syms found using fsolve(); the integral is part of the equations being passed into fsolve
Why don't you insert the explicit formula for the truncated normal from -k to k ?
https://en.wikipedia.org/wiki/Truncated_normal_distribution
Best wishes
Torsten.
Thank you Torsten for your reply (and you too Star Strider). That link really helped me understand what was going on in that question I linked to. I did find a work-around that I'll share.
pd = truncate(makedist('Normal'),-k,k);
integral(@(theta)pdf(pd,theta),-k,k)

Sign in to comment.

Answers (0)

Categories

Find more on Mathematics in Help Center and File Exchange

Asked:

on 11 Apr 2017

Edited:

on 12 Apr 2017

Community Treasure Hunt

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

Start Hunting!