Guest User

Untitled

a guest
Feb 19th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.22 KB | None | 0 0
  1. clc
  2. clear all
  3.  
  4. %x = [0.0 0.6 1.5 1.7 1.9 2.1 2.3 2.6 2.8 3.0 3.6 4.7 5.2 5.7 5.8 6.0 6.4 6.9 7.6 8.0];
  5. %y = [-0.8 -0.34 0.59 0.59 0.23 0.1 0.28 1.03 1.5 1.44 0.74 -0.82 -1.27 -0.92 -0.92 -1.04 -0.79 -0.06 1.0 0.0];
  6.  
  7. x = [0.9 1.3 1.9 2.1 2.6 3.0 3.9 4.4 4.7 5.0 6.0 7.0 8.0 9.2 10.5 11.3 11.6 12.0 12.6 13.0 13.3];
  8.  
  9. y = [1.3 1.5 1.85 2.1 2.6 2.7 2.4 2.15 2.05 2.1 2.25 2.3 2.25 1.95 1.4 0.9 0.7 0.6 0.5 0.4 0.25];
  10.  
  11. n = 21;
  12.  
  13. spline = cubicSpline(n,x,y);
  14. plot(spline), title('Natural Spline Plot')
  15.  
  16.  
  17.  
  18.  
  19.  
  20. function [s] = cubicSpline(n,x,y)
  21.  
  22. % Step 1:
  23.  
  24. for i=1:(n-1)
  25.     h(i)=x(i+1)-x(i);
  26. end
  27.  
  28. % Step 2:
  29.  
  30. for i=2:(n-1)
  31.     alpha(i)=((3/h(i))*(y(i+1))-y(i))-((3/h(i-1))*(y(i)-y(i-1)));
  32. end
  33.  
  34. % Step 3:
  35.  
  36. l(1)=1;
  37. u(1)=0;
  38. z(1)=0;
  39.  
  40. % Step 4:
  41.  
  42. for i=2:n-1
  43.     l(i) = 2*(x(i+1)-x(i-1))-(h(i-1)*u(i-1));
  44.     u(i) = h(i)/l(i);
  45.     z(i) = (alpha(i)-(h(i-1)*z(i-1)))/l(i);
  46. end
  47.  
  48. % Step 5:
  49.  
  50. l(n)=1;
  51. z(n)=0;
  52. c(n)=0;
  53.  
  54. % Step 6:
  55.  
  56. for j=n-1:-1:1
  57.     c(j)=z(j)-(u(j)*c(j+1));
  58.     b(j)=((y(j+1)-y(j))/h(j))-h(j)*(c(j+1)+2*c(j))/3;
  59.     d(j)=(c(j+1)-c(j))/(3*h(j));
  60. end
  61.  
  62. % Step 7:
  63.  
  64. s=[];
  65.  
  66. for i=1:n-1
  67.     xx=x(i):0.001:(x(i+1)-0.001)
  68.     s=[s y(i)+b(i)*(xx-x(i))+c(i)*(xx-x(i)).^2+d(i)*(xx-x(i)).^3];
  69. end
Add Comment
Please, Sign In to add comment