Challenge

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

Aim:

close all 
clear 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 = fourth_order_central_differencing(x,dx(i));
   right_sided_skew = fourth_order_right_sided_skew(x,dx(i));
   left_sided_skew = 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('truncation error')
title('range of dx vs error')
legend('central differencing','skewed right sided difference', 'skewed left side difference')
function Error_central_differencing = fourth_order_central_differencing(x,dx)

%analytic function  = exp(x)*cos(x)

%analytic derivation
%f''(x) = -2*exp(x)*sin(x)
analytical_derivation = -2*exp(x)*sin(x);

%numerical derivation
%central differencing
central_differencing = (((-0.0833)*((exp(x-(2*dx)))*(cos(x-(2*dx)))))+((1.33)*((exp(x-dx))*(cos(x-dx))))-((2.500)*((exp(x))*(cos(x))))+((1.3333)*((exp(x+dx))*(cos(x+dx))))- ((0.0833)*((exp(x+(2*dx)))*(cos(x+(2*dx))))))/(dx^2);

%error 
Error_central_differencing = abs(central_differencing-analytical_derivation);
end
function Error_right_sided_skew = fourth_order_right_sided_skew(x,dx)

%analytic function = exp(x)*cos(x)

%analytic derivation 
%f''(x) = -2*exp(x)*sin(x)

analytical_derivative = -2*exp(x)*sin(x);

%numerical derivation

%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)))*(cos(x+(2*dx)))))-((13.0000)*((exp(x+(3*dx)))*(cos(x+(3*dx)))))+((5.0833)*((exp(x+(4*dx)))))-((0.8333)*((exp(x+(5*dx)))*(cos(x+(5*dx)))))/(dx^2);

%error
Error_right_sided_skew = abs(right_sided_skew- analytical_derivative);
end
function Error_left_sided_skew = fourth_order_left_sided_skew(x,dx)

%analytic fuction = exp(x)*cos(x)

%analytic derivative
%f''(x) = -2*exp(x)*sin(x)

analytical_derivative = -2*exp(x)*sin(x);

%numerical derivative
%central 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)))*((cos(x-(2*dx)))))-((12.833)*((exp(x-dx))*(cos(x-dx))))+((3.7500)*((exp(x)))*(cos(x))))/(dx^2);

%error
Error_left_sided_skew = abs(left_sided_skew-analytical_derivative);
end

Conclusion:

Hence we have derived the equation for all the three approximation for using Taylor series method.

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.