% primerjamo natancnost predstavitve izracuna x^2 - y^2 in (x-y)(x+y), % ko je x blizu y x = rand(1) % "tocna" vrednost x fl_x = single(x) % fl(x) v single aritmetiki razlika = 1; % razlika := x - y err = []; err2 = []; % v iteraciji zmanjsujemo razliko in racunamo relativno napako predstavitve for i=1:20 y = x-razlika; fl_y = single(y); % nestabilen nacin err(i) = abs(((fl_x^2 - fl_y^2) -(x^2 - y^2))/(x^2 - y^2)); % stabilen nacin err2(i) = abs(((fl_x - fl_y)*(fl_x + fl_y) - (x - y)*(x + y))/((x - y)*(x + y))); razlika = razlika/2; end figure semilogy(err,'ro-', 'Linewidth',2) hold on semilogy(err2,'bo-', 'Linewidth',2)