Challenge

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

Aim:

To derive the fourth order approximations of a second order deraivative using central differencing scheme,skewed right sided difference and skewed left sided difference with the help of taylor table method and compare the analytical derivative with obtained values for the given function.

MATLAB CODE

MAIN CODE:

clear all
close all
clc

% value of x
x=pi/3;

% range of dx
dx=linspace(pi/4,pi/4000,20);

% for loop
for i=1:length(dx)
  central_differencing(i)=fourth_order_central_differencing(x,dx(i));
  right_sided_skew(i)=fourth_order_right_sided_skew(x,dx(i));
  left_sided_skew(i)=fourth_order_left_sided_skew(x,dx(i));
end
% plotting

figure(1)
loglog(dx,central_differencing,'r')
hold on
loglog(dx,right_sided_skew,'g')
hold on
loglog(dx,left_sided_skew,'b')
xlabel('range of dx')
ylabel('trunction error')
title('range of dx vs error')
legend('central differencing','skewed right sided difference','skewed left sided difference','location','northwest')

FUNCTION CODE FOR CENTRAL DIFFERENCING

%function for central differencing
function Error_central_differencing=fourth_order_central_differencing(x,dx)
  
  % analytic function=exp(x)*cos(x)
  
  % analytic derivative
  %f(x)=-2*exp(x)*sin(x)
  analytical_derivative=-2*exp(x)*sin(x);
  
  % numerical derivative
  % central differencing
    central_differencing=(((-0.08333333)*((exp(x-(2*dx)))*(cos(x-(2*dx)))))+((1.33333333)*((exp(x-dx))*(cos(x-dx))))-((2.5000)*((exp(x))*(cos(x))))+((1.33333333)*((exp(x+dx))*(cos(x+dx))))-((0.08333333)*((exp(x+(2*dx)))*(cos(x+(2*dx))))))/(dx^2);
  
  %error differencing
  Error_central_differencing=abs(central_differencing-analytical_derivative);
  end

FUNCTION CODE FOR RIGHT SIDED SKEW

%function for skewed right sided difference
function Error_right_sided_skew=fourth_order_right_sided_skew(x,dx)
  
  % analytic function=exp(x)*cos(x)
  
  % analytic derivative
  %f(x)=-2*exp(x)*sin(x)
  analytical_derivative=-2*exp(x)*sin(x);
  
  % numerical derivative
  % central differencing
  right_sided_skew=((3.7500*exp(x)*cos(x))-(12.8333*exp(x+dx)*cos(x+dx))+(17.8333*exp(x+(2*dx))*cos(x+(2*dx)))-(13.0000*exp(x+(3*dx))*cos(x+(3*dx)))+(5.0833*exp(x+(4*dx))*cos(x+(4*dx)))-(0.8333*exp(x+(5*dx))*cos(x+(5*dx))))/(dx^2);
  
  %error differencing
  Error_right_sided_skew=abs(right_sided_skew-analytical_derivative);
  end

FUNCTION CODE FOR LEFT SIDED SKEW

%function for Left sided skew difference
function Error_left_sided_skew=fourth_order_left_sided_skew(x,dx)
  
  % analytic function=exp(x)*cos(x)
  
  % analytic derivative
  %f(x)=-2*exp(x)*sin(x)
  analytical_derivative=-2*exp(x)*sin(x);
  
  % numerical derivative
  % central differencing
  left_sided_skew=(((-0.8333)*((exp(x-(5*dx)))*(cos(x-(5*dx)))))+(5.0833*((exp(x-(4*dx)))*(cos(x-(4*dx)))))-(13.0000*((exp(x-(3*dx)))*(cos(x-(3*dx)))))+(17.8333*((exp(x-(2*dx)))*(cos(x-(2*dx)))))-(12.8333*((exp(x-dx))*(cos(x-dx))))+((3.7500)*((exp(x))*(cos(x)))))/(dx^2);
  
  %error differencing
  Error_left_sided_skew=abs(left_sided_skew-analytical_derivative);
  end

WHY A SKEWED SCHEME IS USEFUL:

The system which dosn't contain sufficient information on both side of the point of intrest. in such cases we cannot use central differncing scheme so skewed scheme is useful in such cases.

WHAT CAN SKEWED SCHEME DO THAT A CD SCHEME CANOT DO:

CDS cannot be employed at the boundary nodes due to unavailability of right and left nodes at the same time.In such cases the skewed differncing scheme is used.

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.

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.