极大似然函数估计Matlab子函数

模块化编程便于程序的阅读、理解和二次开发,本文将《系统辨识与自适应控制Matlab仿真》书中递推极大似然参数估计算法改写为Matlab子函数的形式,方便以后调用。

function [theta] = LG_RML(u,y,oa,ob,od)
% Writer: GeoLee
% Date: 2015.9.25
% 参数说明:
% CARMA模型:A[z^(-1)]*y(k) = B[z^(-1)]*u(k) + D[z^(-1)]*e(k)
% A[z^(-1)] = 1 + a1*z^(-1) + ... + a_na*z^(-na);
% B[z^(-1)] = b0 + b1*z^(-1) + ... + b_nb*z^(-nb);
% D[z^(-1)] = 1 + d1*z^(-1) + ... + d_nd*z^(-nd);
% u: 输入向量
% y: 输出向量
% oa: A的阶数, ob:B的阶数, od: D的阶数
% theta: 估计的参数
% 例子:
%  y(k) = 1.5y(k-1)-0.7y(k-2)+u(k)+0.5u(k-2)+e(k)-0.5e(k)
%  theta应为[1.5,-0.7,1,0.5,-0.5]的估计值
% 参数初始化
na = oa - 1;nb = ob - 1;nc = od - 1;d = 1;
L = length(u);%驱动数据个数
nn = max(na,nc);
uk = zeros(d + nb,1);%输入初值
yk = zeros(na,1);%输出初值
vk = zeros(nc,1);% 白噪声估计初值
yfk = 
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
极大似然估计(Maximum Likelihood Estimation,MLE)是一种用来估计参数的统计方法,通过寻找使得观测数据出现的概率最大的参数值来对未知参数进行估计。在MATLAB中,可以使用统计工具箱提供的函数来实现MLE。 首先,需要定义似然函数,也就是给定参数值下观测数据出现的概率分布。例如,如果假设数据符合正态分布,则似然函数就是正态分布的概率密度函数。在MATLAB中,可以使用`normpdf`函数来定义正态分布的概率密度函数。 接下来,需要定义似然函数的对数形式,即对数似然函数。对数似然函数可以简化计算并保持一致性。在MATLAB中,可以使用`log`函数来计算对数似然函数。 然后,使用观测数据来构建似然函数。根据数据的不同形式和性质,可以使用不同的方法构建似然函数。例如,如果数据是独立同分布的,可以将似然函数表示为各个观测数据的概率密度函数的乘积。 最后,使用优化算法来找到使对数似然函数最大化的参数估计值。在MATLAB中,可以使用`fminsearch`或`fminunc`等函数解最大化的问题。这些函数通常需要给定初始参数值,并且返回使对数似然函数最大化的参数估计值。 总结来说,MATLAB提供了一系列的函数和工具来实现极大似然估计,使得我们可以基于观测数据来估计未知参数的值。使用这些函数和工具,我们可以方便地进行参数估计的计算和分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值