Advertisement
Hagelberganton

eulerfinal

Oct 31st, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. %Newtons metod och fixpunktsiteration
  2. clc;
  3. clear all;
  4. z = -2:0.01:2;
  5. plot(z,f(z)); grid on;
  6. %Variabeldeklaration, x och z är startpunkter
  7. x = 0;
  8. z = 0;
  9. y = 0; %Anvands endast i bestammande av det exakta vardet
  10. zsista = 0;
  11. xsista = 0;
  12. nedz = 0.26979418;
  13. nedx = 0.26979418;
  14. %Bestämmande av zexakt, z med 15 decimaler.
  15. for c = 1:100
  16. y = [y,newton(y(c))];
  17. errorze = abs(y(c) - newton(y(c)));
  18. if errorze <= 10^-15
  19. exaktvar = y(c);
  20. break;
  21. end
  22. end
  23. %Bestämmande av zsista och z till 10 decimaler med newton.
  24. for i = 1:100
  25. z = [z,newton(z(i))];
  26. errorz = abs(z(i) - newton(z(i)));
  27. if errorz <= 10^-10
  28. zsista = z(i);
  29. break;
  30. end
  31. nedz = [nedz,abs(z(i+1) - exaktvar)];
  32. end
  33. figure(1);
  34. semilogy(nedz); hold on;
  35. %Bestämmande av xsista och x till 10 decimaler med fixpunktsiteration.
  36. for j = 1:100
  37. x = [x,fix(x(j))];
  38. errorx = abs(x(j) - fix(x(j)));
  39. if errorx <= 10^-10
  40. xsista = x(j);
  41. break;
  42. end
  43. nedx = [nedx,abs(x(j+1) - exaktvar)];
  44. end
  45. figure(1);
  46. title('Newtons metod och fixpunktsiteration');
  47. xlabel('Antal iterationer');
  48. ylabel('Felet');
  49. semilogy(nedx); hold on; legend('newtons','Fixpunkt');
  50. hline = gline;
  51. set(hline,'Color','r')
  52. %Simpla printfunktioner.
  53. sprintf('Fixpunktsiterationen konvergerar mot %.15f \n', x(j))
  54. sprintf('Newtons metod konvergerar mot %.15f \n', z(i))
  55.  
  56.  
  57. function fi = fix(x)
  58. fi = (-exp(-x) + 2*x^3)/5;
  59. end
  60. function fun = f(x)
  61. fun = exp(-x) -2.*x.^3 + 5.*x;
  62. end
  63.  
  64. function der = deriv(x)
  65. der = -exp(-x) -6.*x.^2 + 5;
  66. end
  67.  
  68. function new = newton(x)
  69. new = x - (f(x)/deriv(x));
  70. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement