как написать уравнение для ожидаемого значения прогнозирования модели gpr в символической форме - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь получить функцию прогнозирования fitgpr в символической форме.

Тип моей модели - линейная основа, точный FitMethod и точный PredictMethod. Я сохранил функцию ядра по умолчанию, поэтому она является квадратом экспоненциальной.

В этой статье говорится, что при использовании точного метода gpr я могу использовать это уравнение для прогнозирования (прикреплено как рис.) equation

Я кодировал (прилагается ниже) функцию в символической форме, и когда я подставляю 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)
...