Advertisement
Guest User

ghreggo

a guest
Feb 11th, 2016
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.18 KB | None | 0 0
  1. function c = newtonbruun(x,y)
  2. %
  3. %   newtonbruun(x,y)
  4. %   Fallið tekur inn tvo jafnstóra vigra x og y og
  5. %   skilar stuðlum c í Newton formi brúunarmargliðunnar
  6. %   sem fer í gegnum punktana (x,y).
  7. %
  8. % Toluleg greining, vor 2016: Verkefni I, 2 hluti
  9. % Hofundar: Ólafur Ívar Baldvinsson, Hafsteinn Einarsson
  10. % og Agnes Linnet
  11. % Dags:
  12.  
  13. n=length(x);
  14.  
  15. m=1; %m vigur sem inniheldur margfeldni stuðlanna
  16.    
  17. for i=2:n
  18.     if x(i)==x(i-1)
  19.         m(end)=m(end)+1;
  20.     else
  21.         m=[m 1];
  22.     end
  23. end
  24.  
  25. %Búum til mismunakvótatöflu
  26. %Í fyrsta dálkinn þurfum við fallgildi y
  27.  
  28. Mkt=zeros(n);
  29. yf=zeros(1,n);
  30. l=length(m);
  31.  
  32. yf(1:m(1))=y(1);
  33. pick(1:m(1))=1;
  34. for i=2:l
  35.     ind=sum(m(1:i-1))+1;
  36.     yf(ind:ind+m(i)-1)=y(ind);
  37.     pick(ind:n)=ind;
  38. end
  39.  
  40. Mkt(:,1)=yf;
  41.  
  42. %fyllum nú út í restina af Mkt
  43. k=n-1;
  44.  
  45. for j=2:n
  46.     for i=1:k
  47.         if x(i)==x(i+j-1)
  48.             Mkt(i,j)=y(pick(i)+j-1)/factorial(j-1);
  49.         else
  50.             Mkt(i,j)=(Mkt(i+j-(n-k),j-1)-Mkt(i,j-1))/(x(i+j-1)-x(i));
  51.         end
  52.     end
  53.     k=k-1;
  54. end
  55.  
  56. %Tökum nú fyrstu línuna í Mtk og skilum sem stuðlafylkinu c
  57.  
  58. c=zeros(1,n);
  59.  
  60. for i=1:n
  61.     c(i)=Mkt(1,i);
  62. end
  63.  
  64. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement