我正在尝试以符号形式获得fitgpr的预测功能。
我的模型类型是线性基础,精确的FitMethod和精确的PredictMethod。我将内核函数保留为默认值,因此它是平方指数的。
在此article中,它表示如果使用精确的gpr方法,我可以使用此等式进行预测(作为图片附带)。
我以符号形式对函数进行了编码(如下所示),当我将 x_new 替换为0来检查输出时,我的值是关闭的。我还检查了 x_new 的其他值,并且在所有测试的值上我的符号方程输出都出错了。
我在做什么错了?
这是我的代码
clear all
clc
close all
rng(0,'twister'); % For reproducibility
n = 11; % n - size of dataset
c = 5; % c - drag co-efficient
xi = 0; % xi - lower bound
xf = 5; % xf - upper bound
var = 0.2; % v - variance
x = linspace(xi,xf,n)'; % populating x
y = (-c * x) + (var * randn(n,1)); % y - eqn
gprMdl = fitrgp(x,y,'Basis','Linear',...
'FitMethod','exact','PredictMethod','exact');
syms v f
sig_l = gprMdl.KernelInformation.KernelParameters(1);
sig_f = gprMdl.KernelInformation.KernelParameters(2);
f = [v 1] * [gprMdl.Beta];
for i=1:n
f = f + ((gprMdl.Alpha(i) * (sig_f^2)) * exp( -0.5 * (sig_l^(-2)) * ( v - x(i) ) ) ) ;
end
eval(subs(f,0))
predict(gprMdl,0)