0

我有以下函数,我想使用 matlab 找到它的极值。

在此处输入图像描述

该函数必须使用 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;

有谁知道我怎么能解决这个问题?提前致谢。

我忘了提到我使用的是matlab版本R2009a。

4

2 回答 2

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

看看潜艇

于 2012-08-16T12:01:49.117 回答
0

我找到了解决方法。而不是使用normcdf一个可以使用它的等效方程erf,然后可以正常工作。

normcdf(x,mu,sig) = (1+erf((x-mu)/sig/sqrt(2)))/2
于 2012-08-18T10:16:45.693 回答