查看: 110|回复: 0|关注: 0

[未答复] 以matlab解最大似然法

[复制链接]

新手

10 麦片

财富积分


050


4

主题

6

帖子

0

最佳答案
发表于 2020-7-30 16:03:27 | 显示全部楼层 |阅读模式
本帖最后由 高唯珊 于 2020-7-31 17:46 编辑

TR为某一时间下的降雨测站资料,TR{1,5}(:,2)为所需的X值资料矩阵,其中有一笔资料缺失,以-9998表示。现用其余X值资料矩阵欲以最大似然法求其分布结构参数,mle法表达式为P=(x|m,sigma^2,beta,lu,lv),共有五个未知参数,因为表达式比较复杂且含有矩阵(详细表达式见附件),mle求解function一直报错,用fminsearch也无法解出,搞不明白是什么原因。
clc;
clear all;
load('D:\GAO\Project\0730\TR.mat')
wrong=find(cell2mat(TR{1,5}(:,2))<0);
XY=cell2mat(TR{1,5}(:,9:10));
XY(wrong,:)=[];
Qi=log(cell2mat(TR{1,5}(:,2))+1);
Qi(wrong)=[];
syms beta lu lv m sigma2
for i=1:length(XY(:,1))
    for j=1:length(XY(:,1))
%         if isequal(i,j)==0
        xi=XY(i,1);
        yi=XY(i,2);
        xj=XY(j,1);
        yj=XY(j,2);      
        ui=xi.*cos(beta)+yi.*sin(beta);
        vi=yi.*cos(beta)+xi.*sin(beta);
        uj=xj.*cos(beta)+yj.*sin(beta);
        vj=yj.*cos(beta)+xj.*sin(beta);
        dij(i,j)=sqrt((((ui-uj).^2)./lu).^2+(((vi-vj).^2)./lv).^2);
%         else
%          dij(i,j)=0;   
%         end
        Lam(i,j)=sigma2-sigma2.*(1-exp(-dij(i,j)));
    end
end
n=length(Qi);
newfun=myfun(Qi,m,Lam,n)
m1=mean(Qi);
s1=var(Qi);
paramEsts=mle(Qi,'norm',newfun,[m1,s1,0,10,10]);

fminsearch(newfun,[m1,s1,0,10,10]);


错误使用 internal.stats.parseArgs (line 42)
Wrong number of arguments.
出错 mle (line 205)
    [dist,cens,freq,alpha,ntrials,options, ...

出错 test (line 32)
paramEsts=mle(Qi,'norm',newfun,[m1,s1,0,10,10]);


计算方法.pdf

323.94 KB, 下载次数: 0

详细计算方法

TR.mat

24.8 KB, 下载次数: 0

内含X值

test.m

905 Bytes, 下载次数: 0

code码

myfun.m

188 Bytes, 下载次数: 0

函数文件

回复主题 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表