Praktická cvičení z Numerické matematiky

Soustavy lineárních a nelineárních algebraických rovnic - 4. týden

  • Metoda nejmenších čtverců - lineární polynom
  •   x = [ -2  -1  -1    0  0   0    1    2    3 ]';
      y = [ 0.2  0.5 0.6  1  1.2 0.9  1.5  1.3  2]';
    
      n = length(x);
    
      A = [ones(n, 1), x]; 
      
      AA = (A' * A),
      b  = A' * y;
      
      aa = AA \ b;
    
    Zobrazeni dat a optimalniho polynomu
      xx = (-2:0.001:3)';
      yy = aa(1) + xx * aa(2);
    
      plot(x, y, 'ko', xx, yy , 'b-');
    
  • Metoda nejmenších čtverců - kvadratický polynom
  •   x = [ -2  -1  -1    0  0   0    1    2    3 ]';
      y = [ 0.2  0.5 0.6  1  1.2 0.9  1.5  1.3  2]';
    
      n = length(x);
      A = [ones(n, 1), x, x.^2]; 
      AA = (A' * A),
      b  = A' * y;
      aa = AA \ b;
    
    Zobrazeni dat a optimalniho kvadratickeho polynomu
      xx = (-2:0.001:3)';
      yy = aa(1) + xx * aa(2) + aa(3) * xx.^2;
    
      plot(x, y, 'ko', xx, yy , 'b-');
    
  • Příklad 4.5: Metoda nejmenších čtverců pro velká data
  • cviceni4.dat
     f = load('cviceni4.dat'); x = f(:,1);  y = f(:,2);
     n = length(x);
    
     A = [ones(n, 1), x, x.^2, x.^3]; 
      
     AA = (A' * A),
     b  = A' * y;
     
     aa = AA \ b;
    
    Zobrazeni dat a optimalniho polynomu stupne nejvysse 3 (srovnejte s polynomem stupne nejvyse 2, 1)
      xx = (18:0.001:75)';
      yy = aa(1) + xx * aa(2) + aa(3) * xx.^2 + aa(4) * xx.^3;
    
      plot(x, y, 'ko', xx, yy , 'b-');