제 표현식 (최종 평가 후)은 매우 복잡한 정수 표현으로 밝혀졌습니다. 함수 내에서 역함수를 포함합니다.Matlab에서 정수 표현식을 수치로 변환합니다.
저는 이것을 해결하기 위해 상징적 인 함수를 사용하고 있습니다. 불행히도 나는 필요한 표현의 관점에서 대답을 얻을 수 없었다. 누군가 나를 인도 할 수 있습니까?
다음은 제 코드입니다.
dn=2;
pfa = .1;
dref = 1;
syms x z
lo_x_lim = erfinv(pfa-1)*sqrt(2);
hi_x_lim = inf;
lo_z_lim = 0
hi_z_lim = dn
%% Expression
Q(x,z) = .5 +.5*erf(x/sqrt(2))
Qinv_ = erfinv(Q - pfa/2) %Note that this need to be changed
f_step_2 = (Qinv_ - x)/(1-z/dref)
f_step_3 = Q(f_step_2,0)
g(x,z) = 2*z/dn^2
h(x,z) = exp(-x^2/2)
%combining three equations to form one
fin = f_step_3*g*h
% Doing double integral wrt x and z in two steps
%integrate wrt x
int_x = int(fin,x,-0.2,hi_x_lim)
%integrate wrt z
int_z = int(int_x,z,lo_z_lim,hi_z_lim)
다음은 최종 답변입니다. (부동 소수점 형식으로 표현해야 함).
int_z =
int(int((z*exp(-x^2/2)*(erf((2^(1/2)*(x - erfinv(erf((2^(1/2)*x)/2)/2 + 9/20)))/(2*(z - 1)))/2 + 1/2))/2, x, -.2, Inf), z, 0, 2)
감사를 실행
:
integral2
를 사용하여 직접 수치 근사값을 고려하십시오. 도움이됩니다. 또한 나를 위해 그것은 많은 시간을 들이지 않았다. 8G RAM이 장착 된 Windows 7을 사용하고 있습니다. 이것이 저속 처리의 이유 일 수 있습니다. 그러나 감사의 짐 – Sjaffry@Sjaffry 기쁜 그것이 작용한다. 호기심에서 상징적 인 수치 계산의 실행 시간은 무엇입니까? – TroyHaskin
나는 그것을 계산하지 않았습니다. 거의 없기 때문에. 거의 마우스 버튼을 클릭 한 후 !!! – Sjaffry