Advertisement
Cinster

Untitled

Apr 5th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. clear all clc
  2. prompt = 'Enter n: '; n = input(prompt);
  3. simprl(@(x)(exp(-x^2)),0,1,n);
  4. function s=simprl(f,a,b,n)
  5. array1 = ones(1,n); array2 = ones(1, 2*n); array3 = ones(1,n); array4 = ones(1,n);
  6. fun = @(x)(exp(-x.^2)); true = integral(fun,a,b);
  7. n = n * 2; even =0; odd = 0; y0 = f (a); yn = f (b); x = 0; h=(b-a)/( n / 2);
  8. for i = 0: (( n) + 1)
  9. x=0; even = 0; odd = 0; h=(b-a)/(i + 1); for j = 1:i
  10. x = x + a + h;
  11. r = mod(j,2);
  12. if (r == 0)
  13. even = even + f(x);
  14. else
  15. odd = odd + f(x); end
  16. end
  17. end
  18. I = (h / 3) * ((y0 + yn) + 2 * even + 4 * odd);
  19. fprintf('Value after %i', n/2 ) fprintf(' iterations: %.16f \n', I);
  20. fprintf('True value for the integral: %.16f' , true);
  21. even =0; odd = 0; y0 = f (a); yn = f (b); x = 0; h=(b-a)/( n );
  22. for i = 0: ((2 * n) + 1)
  23. x=0; even = 0; odd = 0; h=(b-a)/(i + 1); for j = 1:i
  24. x = x + a + h;
  25. r = mod(j,2);
  26. if (r == 0)
  27. even = even + f(x);
  28. else
  29. odd = odd + f(x); end
  30. end
  31. y = (h / 3) * ((y0 + yn) + 2 * even + 4 * odd); array2(1, i + 1) = y;
  32. end
  33. even =0; odd = 0; y0 = f (a); yn = f (b); x = 0; h=(b-a)/(n / 2);
  34. for i = 0: n - 1
  35. x=0; even = 0; odd = 0; h=(b-a)/(i + 1);
  36. for j = 1:i
  37. x = x + a + h;
  38. r = mod(j,2);
  39. if (r == 0)
  40. even = even + f(x);
  41. else
  42. odd = odd + f(x); end
  43. end
  44. y = (h / 3) * ((y0 + yn) + 2 * even + 4 * odd); array1(1, i + 1) = y; array4(1, i + 1) = i; l = array1(i + 1); m = array2(2 * (i + 1)); rich = ( ((2 ^ 8) * m) - l ) / ( (2 ^ 8) -1); error = (rich - true ) / true;
  45. error = abs(error);
  46. array3(1, i + 1) = error;
  47. end
  48. a = array3(2:2:end); b = array4(2:1:(n/2) + 1);
  49. loglog(b,a)
  50. title('Composite Simpsons 1/3 rule error %'); xlabel('iterations') ; ylabel('error %');
  51. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement