Решение интеграла для x в MATLAB, где x ограничено и является частью подынтегральной функции

Я пытаюсь решить уравнение для x в Matlab, но продолжаю получать ошибку:

Пустой символ: 0 на 1

Уравнение имеет интеграл, где x — верхняя граница, а также часть подынтегральной функции 1. Я использую следующий код:

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)

Любые намеки на то, где я ошибаюсь?


person Mike Lang    schedule 09.05.2018    source источник


Ответы (1)


Я считаю, что символический набор инструментов может быть недостаточно хорош для решения этого интеграла ... Может быть, какой-то assume или какой-то другой трюк может справиться с этой задачей, лично я не смог найти способ.

Однако, чтобы проверить, разрешима ли эта проблема, я попробовал Wolfram Alpha. Это дает результат, который можно использовать.

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)

дает 1.285643225712432599485355373093 на моем ПК.

person Ander Biguri    schedule 09.05.2018