Integration of two functions, one of them is piecewise function

Consider the function
p(µ, σ, t, x) = exp(-m*t)/x*sqrt(2*pi*(q.^2)*t)*exp(-1/(2*(q.^2)*t)*(log(x)-(m-(q.^2)/2)*t).^2) (0 < x < )
Here let µ = .02, σ = .18 and t = .25, so p is a function on the variable x only. I created a function file pfun.m for this function, having µ, σ, t and x as input.
I need to compute int(C(x)*p(x),x,0,inf)
where C(x) = 0 if x < 1.02
x − 1.02 otherwise

Answers (1)

general_p = @(m, q, t, x) exp(-m.*t) ./ x .*sqrt(2*pi*(q.^2).*t) .* exp(-1/(2*(q.^2).*t) .* (log(x)-(m-(q.^2)/2) .*t ).^2);
p = @(x) general_p(0.02, 0.18, 0.25, x);
C = @(x) (x - 1.02) .* (1.02 <= x);
result = integral(@(x) C(x) .* p(x), 0, inf)

3 Comments

Hi Walter,
Thanks for sharing. When I run these codes, it gives me en error:
Error using sym/subsindex (line 663) Invalid indexing or function definition. When defining a function, ensure that the body of the function is a SYM object. When indexing, the input must be numeric, logical or ':'.
Do you know how to solve it?
I have adjusted the code, above.
Thank you so much. Sry about the late replay

Sign in to comment.

Asked:

on 29 Sep 2015

Commented:

on 12 Oct 2015

Community Treasure Hunt

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

Start Hunting!