确定通过符号数学工具箱对数似函数的梯度

3视图(30天)
大家好,
我正在写一个方法,我需要一个参数的最大似然估计我对数似函数方法的定义为下图所示,我的寻找最小最大化通过fminunc - l。
  • M = 12, r = 3
  • N的样本数据集
  • φ(x_i)是一个向量的大小1 xm,包含的值M点x_i基函数
  • 你是一个MxM-1变换矩阵
  • 一个是m - 1 x r矩阵模型的参数估计(A_11,……A_33)
  • (tau_i)是1 xr向量的浮点值
我附加的mat文件,φ,U和矩阵的对每个人来说都变得容易些(我有限的他们100实例为简单起见)
帮助我制定了这种优化函数的梯度,但因为它不通过“CheckGradients”—fminunc,我想用符号数学工具箱来计算梯度和比较我了。但是,我不确定我应该如何解决这个问题。
我发现 这个例子计算梯度和麻布通过符号数学工具箱 但是我不确定我是否正确地适应了这个例子。
下面你可以找到一个片段的尝试:
加载变量后,我创建了一个矩阵的符号表征以及其他参数。因为没有任何约束的问题,我继续创建的目标函数适应方程12所示以同样的方式如我联系的例子所示,减去两项之后,然后利用 雅可比矩阵 函数的例子所示的梯度。
结果是一个33 x1 matlab符号表达式,因为某些原因未能显示。
问题:
  1. 我的代码有什么问题吗?我该如何处理我描述的问题呢?
  2. 这个例子是建立在一定的配置我的模型,因此对于M = 12, r = 3等。有可能得到一个更一般的梯度的定义?如果我是生成一个matlab函数设置我描述,当然只是工作的一个矩阵大小11 x3。
  3. 与此有关的一个更普遍的问题:为什么要因此非常长时间(我流产后10分钟左右没有结果)显示符号表情像33 x1“毕业生”变量?有没有更好的方法处理这些变量除了显示他们像往常一样吗?
如果有什么我忘记了,可能与我相关的问题,请通知我,我很乐意就我所能提供的信息。
代码:
负载(“optvariables.mat”)
=细胞(11、3);
i = 1:3
j = 1:11
{j,我}= sprintf (' % d % d ',我,j);
结束
结束
=符号(一个“真实”的);
我们=信谊(U);
=符号();
φ=符号(φ);
oneMats =符号(oneMat);
term1 =信谊(0);
term2 =信谊(0);
n = 1:10 0
term1 = term1 +日志(点(φ(n,:), exp(美国* * (n,:))));
term2 = term2 +日志(点(oneMats (n,:), exp(美国* * (n,:))));
结束
l = term1 - term2;
研究生=雅可比矩阵(l (:)) ';

答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!