2012-08-16 2 views
0

다음 함수를 사용하여 matlab을 사용하여 극한값을 찾고 싶습니다.Normcdf를 사용한 Matlab 상징 함수

enter image description here

이 함수는 결과를 얻기 위해 MATLAB에서 "normcdf"기능을 사용할 수있다하지만 난 상징적 기능을 만들려고 해요 때 나는 다시 몇 가지 오류를 얻을.

syms z fz t sz 
fv = 1000 * ((z * fz * normcd(t,fz,sz))/(20 * 50 * normcd(t,50,20))) + 1000 * normcdf((20 * 50 * normcd(t,50,20) + z * fz * normcd(t,fz,sz))/2000, 50 * normcd(t,50,20), 20) - 10 * z 

을하고 내가 돌아올 오류는 다음과 같습니다 :

??? Error using ==> sym.le at 11 
Function 'le' is not implemented for MuPAD symbolic objects. 

Error in ==> normcdf at 57 
sigma(sigma <= 0) = NaN; 

사람이 내가 그 주위에 얻을 수있는 방법을 알고 있나요

I 줄 입력은 다음과 같다? 미리 감사드립니다.

나는 matlab 버전 R2009a를 사용한다는 것을 잊어 버렸다.

답변

0

주위를 둘러 보았습니다. normcdf을 사용하는 대신 erf과 동일한 등식을 사용할 수 있습니다.

normcdf(x,mu,sig) = (1+erf((x-mu)/sig/sqrt(2)))/2 
+0

Mathematica 배경에서 나오면, 이것은 우습다. :) –

0

나를 위해 일 나타납니다

>> syms z fz t sz 
>> fv = 1000 * ((z * fz * normcdf(t,fz,sz))/(20 * 50 * normcdf(t,50,20))) + 1000 * normcdf((20 * 50 * normcdf(t,50,20) + z * fz * normcdf(t,fz,sz))/2000, 50 * normcdf(t,50,20), 20) - 10 * z 

>> subs(fv,{fz,sz,t,z},{1,2,3,4}); 

ans = 

809.2922 

Subs를 살펴 보자.

+0

어떤 버전의 matlab를 사용하고 있습니까? 나는 R2009a를 가지고있다. 어쩌면 당신은 내가하는 새로운 버전을 가지고 있습니다. – gkaran89

+0

'7.14.0.739 (R2012a)'를 사용하고 있습니다. 바라건대 다른 누군가가 소리를 지르기를 바랍니다. – AGS