Mike Lang
Mike Lang

Reputation: 65

Solving integral for x in MATLAB, where x is bound and part of the integrand

I am trying to solve an equation for x in Matlab, but keep getting the error:

Empty sym: 0-by-1

The equation has an integral, where x is the upper bound and also part of the integrand 1. The code I use is the following:

a = 0.2; b= 10; c = -10; d = 15; mu = 3; sig = 1;
syms x t
eqn = 0 == a + b*normcdf(x,mu,sig)+c*int( normcdf(d + x - t,mu,sig)*normpdf(t,mu,sig),t,0,x);
A = vpasolve(eqn,x)

Any hints on where I am wrong?

Upvotes: 0

Views: 107

Answers (1)

Ander Biguri
Ander Biguri

Reputation: 35525

I believe that the symbolic toolbox may not be good enough to solve that integral... Maybe some assume or some other trick can do the job, I personally could not find the way.

However, to test if this is solvable, I tried Wolfram Alpha. It gives a result, that you can use.

eq1=a + b*normcdf(x,mu,sig);
resint=c*(t^3*(d - t + x)*erfc((mu - x)/(sqrt(2)*sig)))/(4*sig*exp((-mu + x)^2/(2*sig^2))*sqrt(2*pi));
A=vpasolve(eq1+subs(resint,t,x)-subs(resint,t,0) ==0)

gives 1.285643225712432599485355373093 in my PC.

Upvotes: 0

Related Questions