Challenge

Week 3.5 - Deriving 4th order approximation of a 2nd order derivative using Taylor Table method

1)Central Difference Fourth Order Approximation:-

`(del^2u)/(del^2x)cong a[f(i-2)]+b[f(i-1)]+c[f(i)]+d[f(i+1)]+e[f(i+2)]`

f(i) `Delta(x)f'(x)` `Delta(x)f''(x)` `Delta(x)f'''(x)` `Delta(x)f^(iv)(x)`
af(i-2) a 2a -2a -4a/3 2a/3
bf(i-1) b -b b/2 -b/6 b/24
cf(i) c 0 0 0 0
df(i+1) d d d/2 d/6 d/24
ef(i+2) e 2e 2e 4e/3 2e/3
`sum`=`(del^2u)/(delx^2)` 0 0 1 ? ?

The solutions are:-

a=-0.0833 ,b=1.3333 ,c=-2.5000 ,d=1.3333 ,e=-0.0833 .

2)Right Skewed Fourth Order Approximation:-

`(del^2u)/(del^2x)cong a[f(i)]+b[f(i+1)]+c[f(i+2)]+d[f(i+3)]+e[f(i+4)+g[f(i+5)]`

f(i) `Delta(x)f'(x)` `Delta(x)f''(x)` `Delta(x)f'''(x)`

`Delta(x)

f^(iv)(x)`

`Delta(x)f^(v)(x)`
af(i) a 0 0 0 0 0
bf(i+1) b b b/2 b/6 b/24 b/120
cf(i+2) c 2c 2c 8c/6 16c/24 32c/120
df(i+3) d 3d 9d/2 27d/6 81d/24 243d/120
ef(i+4) e 4e 8e 64e/6 256e/24 1024e/120
gf(i+5) g 5g 25g/2 125g/6 625g/24 3125g/120

`sum`=`(del^2u)

/(delx^2)`

0 0 1 0 0 ?

The solutions are:-

a=3.7500 ,b=-12.8333 ,c=17.8333,d=-13.0000,e=5.0833, g=-0.8333 .

3)Left Skewed Fourth Order Approximation:-

`(del^2u)/(del^2x)cong a[f(i-5)]+b[f(i-4)]+c[f(i-3)]+d[f(i-2)]+e[f(i-1)+g[f(i)]`

f(i) `Delta(x)f'(x)` `Delta(x)f''(x)` `Delta(x)f'''(x)`

`Delta(x)

f^(iv)(x)`

`Delta(x)f^(v)(x)`
af(i) a 0 0 0 0 0
bf(i+1) b -b b/2 -b/6 b/24 -b/120
cf(i+2) c -2c 2c -8c/6 16c/24 -32c/120
df(i+3) d -3d 9d/2 -27d/6 81d/24 -243d/120
ef(i+4) e -4e 8e -64e/6 256e/24 -1024e/120
gf(i+5) g -5g 25g/2 -125g/6 625g/24 -3125g/120

`sum`=`(del^2u)

/(delx^2)`

0 0 1 0 0

?

The solutions are:-

a=3.7500 ,b=-12.8333 ,c=17.8333,d=-13.0000,e=5.0833, g=-0.8333 .

clear all
close all
clc

%Central Difference (i-2,i-1,1,i+1,i+2)
   C = [1 1 1 1 1; -2 -1 0 1 2; 2 1/2 0 1/2 2; -4/3 -1/6 0 1/6 4/3; 2/3 1/24 0 1/24 2/3];
   B = [0; 0; 1; 0; 0];
   A = inv(C)*B

% Skewed Right Side Difference (i,i+1,1,i+2,i+3,i+4,i+5)
  k = [1 1 1 1 1 1; 0 1 2 3 4 5; 0 1/2 4/2 9/2 16/2 25/2; 0 1/6 8/6 27/6 64/6 125/6; 0 1/24 16/24 81/24 256/24 625/24; 0 1/120 32/120 243/120 1024/120 3125/120];
  l = [0; 0; 1; 0; 0; 0];
  m = inv(k)*l

% Skewed Left Side Difference (i,i-1,i-2,i-3,i-4,i-5)
  u = [1 1 1 1 1 1; 0 -1 -2 -3 -4 -5; 0 1/2 4/2 9/2 16/2 25/2; 0 -1/6 -8/6 -27/6 -64/6 -125/6; 0 1/24 16/24 81/24 256/24 625/24; 0 -1/120 -32/120 -243/120 -1024/120 -3125/120];
  v = [0; 0; 1; 0; 0; 0];
  w = inv(u)*v
% Taylor Table Formulation: 

% Function - f(x) = e^x(cos(x))                                           
%            f'(x) = e^x(cos(x) - sin(x))                                 
%            f''(x) = -2e^x*sin(x)                                        
close all
clc

% Input Variables
x = pi/3;
dx = linspace(pi/40,pi/400,100); % step size

% Iterative Loop 
for i = 1: length(dx)
     [central_diff(i),skewed_right(i),skewed_left(i),central_error(i),skewed_right_error(i),skewed_left_error(i)] = taylor_scheme(x,dx(i))
end


% Plot                                          


figure(1)
loglog(dx,skewed_left_error,'r')
hold on
loglog(dx,skewed_right_error,'b')
hold on
loglog(dx,central_error,'g')
legend('Skewed Right-Sided Difference','Skewed Left-Sided Difference','Central Difference')
xlabel('Length of Increment dx')
ylabel('Truncation Error')


%FUNCTIONS                          


function [central_diff,skewed_right_diff,skewed_left_diff,central_error,skewed_right_error,skewed_left_error] = taylor_scheme(x,dx)

% f(x) = exp(x)*cos(x)
% simplify the equation 
  k1 = exp(x)*cos(x);                   
  k2 = exp(x+dx)*cos(x+dx);              
  k3 = exp(x+(2*dx))*cos(x+(2*dx));      
  k4 = exp(x+(3*dx))*cos(x+(3*dx));      
  k5 = exp(x+(4*dx))*cos(x+(4*dx));      
  k6 = exp(x-(4*dx))*cos(x-(4*dx));     
  k7 = exp(x-(3*dx))*cos(x-(3*dx));      
  k8 = exp(x-(2*dx))*cos(x-(2*dx));      
  k9 = exp(x-dx)*cos(x-dx);              
  k10 = exp(x-5*dx)*cos(x-5*dx);         
  k11 = exp(x+5*dx)*cos(x+5*dx);        

% Analytical Derivative
    exact_derivative = -2*exp(x)*sin(x);

% Central Difference 
% CD = (af(i-2) + bf(i-1) + cf(i) + df(i+1) + ef(i+2))/(dx^2)
   c = [-1/12; 4/3; -5/2; 4/3; -1/12];
   central_diff = (c(1)*k8 + c(2)*k9 + c(3)*k1 + c(4)*k2 + c(5)*k3)/(dx^2);

% Skewed Right Side Difference 
% SRD = (af(i) + bf(i+1) + cf(i+2) + df(i+3) + ef(i+4) + gf(i+5))/(dx^2)
  m = [15/4; -77/6; 107/6; -26/2; 61/12; - 5/6];
  skewed_right_diff = (m(1)*k1 + m(2)*k2 + m(3)*k3 + m(4)*k4 + m(5)*k5 + m(6)*k11)/(dx^2);

% Skewed Left Side Difference 
  % SLD = (af(i) + bf(i-1) + cf(i-2) + df(i-3) + ef(i-4) + gf(i-5))/(dx^2)
  w = [15/4; -77/6; 107/6; -26/2; 61/12; - 5/6];
  skewed_left_diff = (w(1)*k1 + w(2)*k9 + w(3)*k8 +w(4)*k7 +w(5)*k6 +w(6)*k10)/(dx^2);

 % Error 
  central_error = abs(central_diff - exact_derivative);
  skewed_right_error = abs(skewed_right_diff - exact_derivative);
  skewed_left_error = abs(skewed_left_diff - exact_derivative);

end

Plot:-

Conclusion:-

From the above result, we can observe that the Truncation error for different methods is as below

Central Difference < Skewed_Right_Sided_Difference < Skewed_Left_Sided_Difference.

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.