Aşağıda F(X,Y) = aX2 + bY2 fonksiyonunda a ve b parametrelerinin LM algoritması ile kestirimine ilişkin MATLAB kodu verilmiştir.
clc, clear all, close all; %% F(x,y) = aX^2+b^Y^2; %% J(n_j) = [X^2 Y^2]; %% Bu uygulamada a ve b parametreleri LM algoritmas? ile bulunmu?tur. g_SAMPLE = 100; g_ITERATION = 5; INPUT_X = 2 * rand(1, g_SAMPLE) - 1; INPUT_Y = 2 * rand(1, g_SAMPLE) - 1; n_x = 2; n_y = 3; DESIRED_OUTPUT = n_x * INPUT_X.^2 + n_y * INPUT_Y.^2; figure, plot(DESIRED_OUTPUT) p_x = rand; p_y = rand; lamda = 0.01; for n_i = 1 : g_ITERATION E(n_i) = 0; for n_j = 1 : g_SAMPLE OUTPUT_TRAIN = p_x * INPUT_X(n_j)^2 + p_y * INPUT_Y(n_j)^2; ERROR(n_j) = DESIRED_OUTPUT(n_j) - OUTPUT_TRAIN; E(n_i) = E(n_i) + 0.5 * ERROR(n_j) ^ 2; JACOBIAN(n_j, : ) = [INPUT_X(n_j)^2 INPUT_Y(n_j)^2]; end kontrol = 1; while(kontrol == 1) J_new = inv(JACOBIAN' * JACOBIAN + lamda * eye(2,2)) * JACOBIAN' * ERROR'; p_x_new = p_x + J_new(1); p_y_new = p_y + J_new(2); E_NEW(n_i) = 0; for n_j = 1 : g_SAMPLE OUTPUT_TRAIN = p_x_new * INPUT_X(n_j)^2 + p_y_new * INPUT_Y(n_j)^2; ERROR_NEW(n_j) = DESIRED_OUTPUT(n_j) - OUTPUT_TRAIN; E_NEW(n_i) = E_NEW(n_i) + 0.5 * ERROR_NEW(n_j) ^ 2; end if E_NEW(n_i) < E(n_i) p_x = p_x_new; p_y = p_y_new; lamda = lamda * .5; kontrol = 0; else lamda = lamda / .5; end; end end;