Challenge

Week 3 - Taylor table method and Matlab code

function out = Central_diffrence(x,dx)
%analytical function = exp(x)*cos(x);
%analytical derivative
%f'(x)=exp(x)*cos(x)-exp(x)*sin(x)

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

%Central diffrencing
t1 = -0.0833*(exp(x-2*dx)*cos(x-2*dx));
t2 = 1.333*(exp(x-dx)*cos(x-dx));
t3 = -2.5*(exp(x)*cos(x));
t4 = 1.333*(exp(x+dx)*cos(x+dx));
t5 = -0.0833*(exp(x+2*dx)*cos(x+2*dx));

Central_diffrence =t1+t2+t3+t4+t5;

out = abs(Central_diffrence-analytical_second_derivative);
end

function out = Skewed_right_sided_difference(x,dx)

%analytical function = exp(x)*cos(x);
%analytical derivative
%f'(x)=exp(x)*cos(x)-exp(x)*sin(x)

analytical_second_derivative = -2*exp(x)*sin(x);
%Skewed right-sided difference
e1 = 3.75*(exp(x)*cos(x));
e2 = -12.8333*(exp(x+dx)*cos(x+dx));
e3 = 17.8333*(exp(x+2*dx)*cos(x+2*dx));
e4 = -13*(exp(x+3*dx)*cos(x+3*dx));
e5 = 5.0833*(exp(x+4*dx)*cos(x+4*dx));
e6 = -0.8333*(exp(x+5*dx)*cos(x+5*dx));

Skewed_right_sided_difference=e1+e2+e3+e4+e5+e6;

out = abs(Skewed_right_sided_difference-analytical_second_derivative);
end


function out = Skewed_left_sided_difference(x,dx)

%analytical function = exp(x)*cos(x);
%analytical derivative
%f'(x)=exp(x)*cos(x)-exp(x)*sin(x)

analytical_second_derivative = -2*exp(x)*sin(x);
%Skewed left-sided difference

r1 = 3.75*(exp(x)*cos(x));
r2 = -12.8333*(exp(x-dx)*cos(x-dx));
r3 = 17.8333*(exp(x-2*dx)*cos(x-2*dx));
r4 = -13*(exp(x-3*dx)*cos(x-3*dx));
r5 = 5.0833*(exp(x-4*dx)*cos(x-4*dx));
r6 = -0.8333*(exp(x-5*dx)*cos(x-5*dx));

Skewed_left_sided_difference=r1+r2+r3+r4+r5+r6;

out= abs(Skewed_left_sided_difference-analytical_second_derivative);
end




clear all
close all
clc

x = pi/3;

dx = linspace(pi/30,pi/3000,60);

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

for i=1:length(dx)
    
    Central_diffrence_of_4th_order(i) = Central_diffrence(x,dx(i));
    Skewed_right_sided_difference_of_4th_order(i) = Skewed_right_sided_difference(x,dx(i));
    Skewed_left_sided_difference_of_4th_order(i) = Skewed_left_sided_difference(x,dx(i));
end 

figure(1)

loglog(dx,Central_diffrence_of_4th_order,'r')
hold on
loglog(dx,Skewed_right_sided_difference_of_4th_order,'b')
hold on
loglog(dx,Skewed_left_sided_difference_of_4th_order,'g')

legend('Central_diffrence_of_4th_order','Skewed_right_sided_difference_of_4th_order','Skewed_left_sided_difference_of_4th_order');

title('comparison between diffrent error scheme');
xlabel('dx values');
ylabel('error scheme values')

Explanation :-

1) Deriving central diffrence

2) Deriving and proving that the skewed right sided diffrence is 4th order accurate:-

3) Deriving and proving that the skewed left sided diffrence is 4th order accurate

From the graph it shows that schewed scheme than central diffrence

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.