Advertisement
Guest User

Untitled

a guest
Feb 13th, 2016
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. %projekt två Van der waals lag
  2.  
  3. disp('-----------------------------------------------------')
  4. disp(' Newton Raphsons metod för att lösa: ')
  5. disp(' f(v) = 0, där fv =((p+a*(1/v)^2)*(v-b)-R*T)=0')
  6. disp('-----------------------------------------------------')
  7. disp(' ')
  8.  
  9. format long; % Ställer om utskriftsformatet till många decimaler
  10. x = input('vill du räkna ut volymen för syre eller koldioxid? ','s')
  11. if strcmp(x, 'syre')
  12. a = 1.360
  13. b = 0.03183
  14. else
  15. a=3.592;
  16. b=0.04267;
  17. end
  18. global R
  19. R=0.082054;
  20. f=@(v) ((p+a.*(1/v)^2).*(v-b)-R.*T); %definerar funktion f
  21. fprim= @(v) -2*a.*(1/v^3).*(v-b)+(p+a.*(1/v^2)); %definerar fprim
  22. clc
  23.  
  24. %fplot(f,[0.05 60])
  25.  
  26. v_vektor=[];
  27. values=[];
  28.  
  29. e=1e-6; %feltermen
  30. for p=[1 10 100];
  31. for T=[300 500 700];
  32. iter = 0;
  33. plot([0 100], [0 0], 'm--')
  34. hold on
  35. fplot(f,[0.05 60])
  36. xlabel('v');
  37. ylabel('f(v)');
  38. title('fv =((p+a*(1/v)^2)*(v-b)-R*T)');
  39. disp('Se graf för lämplig startgissning ')
  40. v = input('vilket startgissning vill du ha? ')
  41. v_vektor=[];
  42. c=100; %asymptotiska felkonstanten
  43. iter = 0;
  44.  
  45. while c>e
  46. iter = iter + 1;
  47. v = v - f(v)/fprim(v); % Nytt x-värde med Newton-Raphsons metod
  48. v_vektor(iter) = v; % Lagra x-värdet i en vektor
  49. c=f(v)/fprim(v)
  50. disp(['Iteration ',num2str(iter),' med Newton-Raphsons metod gav resultatet ',num2str(v,16)])
  51. disp(' ')
  52. end
  53.  
  54. values = [values v]
  55. end
  56. end
  57. % Skriver ut samtliga beräknade x-värden, lagrade i x_vektor
  58. disp('slutgiltigt xvärde');
  59. disp(v_vektor(:));
  60.  
  61. T = tabel(iter,v_vektor,v,values,c) %tabell av iterationsnummer, funktionsvärde, x, asymptotisk felkonstant, fel
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement