Advertisement
makispaiktis

Texnikes_Ergasia1_Thema1_Zitoumeno3

Nov 16th, 2020 (edited)
810
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.84 KB | None | 0 0
  1. clear all
  2. clc
  3.  
  4. % Πίνακας με τα διάφορα l
  5. l = [0.005, 0.01, 0.02];
  6. epsilon = 0.001;
  7. styles = ['o', '*', 'x'];
  8. for index = 1:length(l)
  9.     plotAkrwn(l(index), epsilon, styles(index))
  10. end
  11.  
  12. function result = plotAkrwn(l, epsilon, style)
  13.     syms x
  14.     f1 = (x-2)^2 - sin(x+3)
  15.     akro1 = 2;  akro2 = 5;
  16.     % Πάντα πρέπει ε < l
  17.     epsilon = 0.001;    counter = 0;
  18.     akra1 = [];    akra2 = [];      
  19.     while (akro2 - akro1 > l)
  20.         counter = counter + 1;
  21.         akra1(counter) = akro1;
  22.         akra2(counter) = akro2;
  23.         % Βήμα 1
  24.         x1k = (akro1 + akro2) / 2 - epsilon;
  25.         x2k = (akro1 + akro2) / 2 + epsilon;
  26.         % Βήμα 2
  27.         if subs(f1, x1k) < subs(f1, x2k)
  28.             % ακ+1 = ακ (δεν αλλάζει) και βκ+1 = χ2κ
  29.             akro2 = x2k;
  30.         else
  31.             % ακ+1 = χ1κ και βκ+1 = βκ (δεν αλλάζει)
  32.             akro1 = x1k;
  33.         end
  34.     end
  35.  
  36.     % Εδώ, έχουμε βρει το τελικό διάστημα οπού υπάρχει το x* = θέση ελαχίστου
  37.     % Πάντα μιλάμε για συγκεκριμένα l,ε που επιλέγω εγώ απαρχής.
  38.     counter = counter + 1;
  39.     akra1(counter) = akro1;
  40.     akra2(counter) = akro2;
  41.     akra1
  42.     akra2
  43.     display(' '); display(' '); display(' '); display(' ');
  44.     result = [];
  45.     result(1) = akra1(length(akra1));
  46.     result(2) = akra2(length(akra2));
  47.     display(strcat('x* between ', num2str(result(1)), ' and ', num2str(result(2))));
  48.     plot(akra1, style)
  49.     xlabel('Steps k')
  50.     ylabel('The two edges: ak and bk')
  51.     title('f1 = (x-2)^2-sin(x+3),  l = {5,10,20}/1000 and epsilon = 1/1000')
  52.     hold on
  53.     plot(akra2, style)
  54.     hold on
  55.     display('*******************************************************')
  56. end
  57.  
  58.  
  59.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement