我需要拟合风速数据的极值分布。我用Matlab来做这个。在用户看来,Gumbel和Weibull模型的替代公式可能并不比Matlab在命令中内置的公式更明显: evfit和wblfit。因此,所执行的定义是:
Gumbel (适合极小)

然而,我需要另一个版本的Gumbel来适应这些数据:

Weibull
同样的评论也适用于Matlab中的Weibull模型。在以前的版本中,Matlab在命令weibfit (不再可用)中实现了Weibull的一个版本,该版本后来被wblfit取代。

以前是:

我的问题是:如何将数据与Matlab中的Gumbel和Weibull模型的定义相匹配?
谢谢,
发布于 2018-12-11 11:30:39
可以使用函数mle估计自定义发行版的参数。
示例使用您的自定义weibul:
data = wblrnd(1,1,1000,1); %random weibull data
custompdf = @(x,a,b) (b*a).*x.^(b-1).*exp(-a*x.^b); %your custom PDF function
opt = statset('MaxIter',1e5,'MaxFunEvals',1e5,'FunValCheck','off'); %Iteration's option
[param,ci]= mle(data,'pdf',custompdf,'start',[1 1],'Options',opt,'LowerBound',[0 0],'UpperBound',[Inf Inf])如果函数不收敛,您可以使用一些更合适的值来调整起点。
https://stackoverflow.com/questions/53715968
复制相似问题