Advertisement
Guest User

NumericalDifferentiationAugust2019

a guest
Aug 19th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 0.75 KB | None | 0 0
  1. clear all;
  2. clc;
  3. format long;
  4.  
  5. %input data points
  6. x=[1 2 3 4 5];
  7. y=[2 5 9 12 20];
  8. x_at = 1;
  9.  
  10. range=length(x);
  11. h=x(2)-x(1);
  12. p_val=(x_at-x(1))/h;
  13.  
  14. %finding index of x_at
  15. x_index=1;
  16. for i=1:range
  17.     if(x_at==x(i))
  18.         x_index = i;
  19.         break;
  20.     end
  21. end
  22.  
  23.  
  24. %forward difference table
  25. new_y=y(x_index:range);
  26. diff_y=zeros(1, range - x_index);
  27. for i=1:range - x_index
  28.     temp=diff(new_y, i);
  29.     diff_y(i)=temp(1);
  30. end
  31.  
  32. disp(diff_y);
  33. syms p;
  34. prod_p = 1;
  35. sum=0;
  36. %First Order derivative
  37. for i=1:range - x_index
  38.     prod_p = prod_p * (p-(i-1));
  39.     diff_p = diff(prod_p, 1);
  40.     co_eff = (diff_p/factorial(i))*diff_y(i);
  41.     eachTermVal=vpa(subs(co_eff, p, p_val));
  42.     sum=sum+eachTermVal;
  43. end
  44.  
  45. first=sum/h;
  46.  
  47. disp(eachTermVal);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement