% 1-D RBF Beispiel clear all N = 300; M = 3; u_test = linspace(0,1,N)'; % Daten u = zeros(3,1); y = zeros(3,1); u(1) = 0.2; y(1) = 3; u(2) = 0.4; y(2) = 2.5; u(3) = 0.6; y(3) = 2.8; % Breite der Gaußglocken sigma = 0.1; % Zentren der Gaußglocken: 3 RBFs c1 = u(1); c2 = u(2); c3 = u(3); x1 = exp(-0.5*((u-c1)/sigma).^2); x2 = exp(-0.5*((u-c2)/sigma).^2); x3 = exp(-0.5*((u-c3)/sigma).^2); X = [x1 x2 x3]; theta = X\y lambda = 1e-4; % Regularisierungsparameter X_plus = [X; sqrt(lambda)*eye(M)]; y_plus = [y; zeros(M,1)]; theta_ridge = X_plus\y_plus x1_test = exp(-0.5*((u_test-c1)/sigma).^2); x2_test = exp(-0.5*((u_test-c2)/sigma).^2); x3_test = exp(-0.5*((u_test-c3)/sigma).^2); y_test = [x1_test x2_test x3_test]*theta; y_test_ridge = [x1_test x2_test x3_test]*theta_ridge; close all figure plot(u_test, y_test,'b', u_test, y_test_ridge,'r', u,y,'kx') hold on plot(u_test, [x1_test x2_test x3_test],'k') % Zentren der Gaußglocken: 2 RBFs + Offset c1 = (u(1)+u(2))/2; c2 = (u(2)+u(3))/2; x1 = exp(-0.5*((u-c1)/sigma).^2); x2 = exp(-0.5*((u-c2)/sigma).^2); X = [ones(3,1) x1 x2]; theta = X\y X_plus = [X; sqrt(lambda)*eye(M)]; y_plus = [y; zeros(M,1)]; theta_ridge = X_plus\y_plus x1_test = exp(-0.5*((u_test-c1)/sigma).^2); x2_test = exp(-0.5*((u_test-c2)/sigma).^2); x3_test = exp(-0.5*((u_test-c3)/sigma).^2); y_test = [ones(N,1) x1_test x2_test]*theta; figure plot(u_test, y_test,'b', u,y,'kx') hold on plot(u_test, [x1_test x2_test],'k')