Advertisement
Hagelberganton

Untitled

Dec 4th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. %Simpsons och trapetsregeln
  2. %Variabel-deklaration
  3. b = 3.2;
  4. h = input('Vad skall startvärdet på steglängden vara? ');
  5. a = 0;
  6.  
  7. %Bestämmande av felet:
  8. %"Bra approximation av volymen med simpsons formel" är simpkorrekt
  9. h2 = 0.0001;
  10. N2 = b/h2;
  11. veckx2 = ones(1,N2+1);
  12. veckx2(2:2:N2) = 4;
  13. veckx2(3:2:N2-1) = 2;
  14. for c = 1:N2+1
  15. veckx2(c) = h2*pi*veckx2(c)*(y((c-1)*h2)^2)/3;
  16. end
  17. simpkorrekt = sum(veckx2);
  18.  
  19. trapetsfel = zeros(1,10);
  20. simpsonfel = zeros(1,10);
  21. hvarden = zeros(1,10);
  22. for j=1:10
  23. hvarden(j) = h;
  24. N = b/h;
  25.  
  26. %Trapetsregeln
  27. trapets = ones(1,N);
  28. trapets(1) = 1/2;
  29. trapets(N) = 1/2;
  30. for i = 1:N
  31. trapets(i) = trapets(i)*(pi*h*(y((i-1)*h)^2)); %Kladdigt men korrekt
  32. end
  33. trapetssum = sum(trapets);
  34. trapetsfel(j) = abs(trapetssum-simpkorrekt);
  35.  
  36. %Simpsons regel
  37. veckx = ones(1,N+1);
  38. veckx(2:2:N) = 4;
  39. veckx(3:2:N-1) = 2;
  40. for i = 1:N+1
  41. veckx(i) = h*pi*veckx(i)*(y((i-1)*h)^2)/3; %Kladdigt men korrekt
  42. end
  43. simpsum = sum(veckx);
  44. simpsonfel(j) = abs(simpsum-simpkorrekt);
  45.  
  46. h = h/2;
  47. end
  48. hvardflip = fliplr(hvarden);
  49. figure(1)
  50. loglog(hvardflip,trapetsfel)
  51. hold on
  52. loglog(hvardflip,simpsonfel)
  53. hold on
  54.  
  55. function f = y(x)
  56. f = (7 + cos(x.^2 - 1))/(2 - cos(pi.*x));
  57. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement