所以我试图计算这个公式,但结果很奇怪。元素非常大,所以我不确定我哪里出错了。我附上了一张公式照片:
这是我的代码:
*calculating mu_sum and sigma_sum;
T_hat=180;
mu_sum_first_part={0,0,0,0};
mu_sum_second_part={0,0,0,0};
mu_sum={0,0,0,0};
*calculating mu_sum;
do i = 0 to T_hat;
term=(T_hat - i)*(B0**i)*a;
mu_sum_first_part = mu_sum_first_part + term;
end;
do i=1 to T_hat;
term =B0**i;
mu_sum_second_part = mu_sum_second_part + term;
end;
mu_sum = mu_sum_first_part + mu_sum_second_part*zt;
print mu_sum;
*calculating sigma_sum;
term=I(4);
sigma_sum=sigma;
do j=1 to T_hat;
term = term + B0**j;
sigma_sum = sigma_sum + (term*sigma*(term`));
end;
print sigma_sum;
我知道这很长但是请帮助!!
答案 0 :(得分:0)
第一件事就是跳出来的是你mu
中的第一个句子有1个太多:
do i = 0 to T_hat;
term=(T_hat - i)*(B0**i)*a;
mu_sum_first_part = mu_sum_first_part + term;
end;
应该是:
do i = 0 to T_hat-1;
term=(T_hat - i)*(B0**i)*a;
mu_sum_first_part = mu_sum_first_part + term;
end;
答案 1 :(得分:0)
您的计划在数学上没有任何错误。当你将矩阵提升到180度时,看到非常大或非常小的值,你不应该感到惊讶。例如,如果你让 B0 = { 0 1 0 0, 0 0 1 0, 0 0 0 1, 0 1 1 1 }; 那么B0 ** T的元素是O(1E47)。如果将B0除以2并将结果提高到180次幂,则元素为O(1E-8)。
据推测,这些公式适用于具有特殊结构的矩阵B0,例如|| B0 ** n || - > 0为n - >无穷。否则,电源系列将不会收敛。我建议你仔细检查你使用的B0是否满足参考的假设。
你没有问过效率,但你最好使用Horner's method in SAS/IML来计算截断的幂级数,而不是明确地形成B0的幂。