Advertisement
makispaiktis

Texnikes_Ergasia1_Thema4_Zitoumeno2

Nov 16th, 2020 (edited)
1,350
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 2.08 KB | None | 0 0
  1. clear all
  2. clc
  3.  
  4. % Ο πίνακας μου θα περιέχει τις εξής τιμές ακρίβειας l ----> 0.0001, 0.001
  5. % και 0.01
  6.  
  7. l = [0.0001, 0.001, 0.01];
  8. for index = 1:length(l)
  9.     plotAkrwn(l(index), index);
  10. end
  11.  
  12.  
  13. function akra = plotAkrwn(l, index)
  14.     syms x
  15.     f1 = (x-2)^2-sin(x+3);
  16.     df1 = diff(f1, 'x');
  17.     akro1 = 2;      akro2 = 5;
  18.     akra1 = [];     akra2 = [];
  19.     counter = 0;
  20.     calculations = 0;
  21.    
  22.     while akro2 - akro1 > l
  23.         counter = counter + 1;
  24.         akra1(counter) = akro1;
  25.         akra2(counter) = akro2;
  26.        
  27.         kentro = (akro1 + akro2) / 2;
  28.         paragwgos = subs(df1, kentro);
  29.         calculations = calculations + 1;
  30.         if paragwgos > 0
  31.             % Το ελάχιστο εμφανίζεται αριστερότερα του xk = kentro
  32.             % Επομένως, το αριστερό άκρο παραμ΄νει και στο νέο διάστημα
  33.             % όμως αλλάζει το δεξιό άκρο και γίνεται ίσο με xk = kentro
  34.             akro2 = kentro;
  35.         else
  36.             % Ελάχιστο δεξιότερα του κέντρο, αλλάζω το άκρο 1
  37.             akro1 = kentro;
  38.         end
  39.     end
  40.     % Για το πλοτάρισμα των άκρων με συγκεκριμένο στυλ, αξιποιώ το index
  41.     if index == 1
  42.         plot(akra1, 'ro');
  43.         plot(akra2, 'bo');
  44.         title("Edges of f1 for l = 0.0001, 0.001, 0.01");
  45.         xlabel('Steps k');
  46.         ylabel('Edges Ak and Bk');
  47.         hold on
  48.     elseif index == 2
  49.         plot(akra1, 'r^');
  50.         plot(akra2, 'b^');
  51.         title("Edges of f1 for l = 0.0001, 0.001, 0.01");
  52.         xlabel('Steps k');
  53.         ylabel('Edges Ak and Bk');
  54.         hold on
  55.     else
  56.         plot(akra1, 'r*');
  57.         plot(akra2, 'b*');
  58.         title("Edges of f1 for l = 0.0001, 0.001, 0.01");
  59.         xlabel('Steps k');
  60.         ylabel('Edges Ak and Bk');
  61.         hold on
  62.     end
  63.     akra1
  64.     akra2
  65.     display("**********************************")
  66. end
  67.  
  68.  
  69.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement