Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

4. What is machine epsilon in the default Octave real variable precision. 5. What is machine epsilon in the Octave real variable single precision. clc,

4. What is machine epsilon in the default Octave real variable precision. 5. What is machine epsilon in the Octave real variable single precision.

clc, clear, close all

% WRITING THE PROJECT DATE

printf("PROJECT 1 - Round-off vs Truncation Error ")

printf(" ")

display(date())

printf("======================================== ")

% f(x)= f

f=@(x) 12.5+3.5.*x.*cos(2.45.*x);

% df(x) is the first order derivative

df=@(x) -8.575*x*sin(2.45*x)+3.5*cos(2.45*x);

x = 2.75;

for i = 1:20

del (i,1)= 10^(-i);

%Backward finite difference

backward(i,1) = (f(x)-f(x - del(i,1)))/del(i,1);

%Forward finite difference

forward(i,1) = (f(x + del(i,1)) - f(x))/del(i,1);

%Central Finite Difference

central (i,1)= (f(x+del(i,1)) - f(x - del(i,1)))/(2*del(i,1));

%Calculate the errors compared to exact derivative

backward_error(i,1) = abs(backward(i,1) - df(x));

forward_error(i,1) = abs(forward(i,1) - df(x));

central_error(i,1) = abs(central(i,1) - df(x));

end

%plot the error vs del x

figure

hold on

plot(log10(del),log10(forward_error))

plot(log10(del),log10(backward_error))

plot(log10(del),log10(central_error))

xlabel('\Delta'), ylabel('Error')

title('Error on Forward, Backward, and Central')

legend('Forward','Backward','Central')

grid on, hold off

%assemble the results into a table (actually a matrix)

printf("===========Double precision results============== ")

printf(" del x forward backward central ")

Table = [del, forward_error, backward_error, central_error];

%print to screen

disp(Table)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%repeat everything in single precison

%select x value to evaluate derivative

x = single(x);

%evaluate the derivative

for i = single(1:20)

%Calculate delta x

del(i,1) = single(10^(-i));

%backward finite difference

backward(i,1) = single((f(x)-f(x - del(i,1)))/del(i,1));

%Forward finite difference

forward(i,1) = single((f(x + del(i,1)) - f(x))/del(i,1));

%Central Finite Difference

central (i,1)= single((f(x + del(i,1)) - f(x - del(i,1)))/(2*del(i,1)));

%Calculate the errors compared to exact derivative

backward_error(i,1) = single(abs(backward(i,1) - df(x)));

forward_error(i,1) = single(abs(forward(i,1) - df(x)));

central_error(i,1) = single(abs(central(i,1) - df(x)));

end

%Plot the error vs delta x for each method on the log scale

figure

hold on

plot(log10(del),log10(forward_error))

plot(log10(del),log10(backward_error))

plot(log10(del),log10(central_error))

xlabel('\Delta'), ylabel('Error')

title(' Error on Forward, Backward, and Central')

legend('Forward','Backward','Central')

grid on, hold off

printf("================================================= ")

%assemble the results into a table (actually a matrix)

printf("===========Single precision results============== ")

printf(" del x forward backward central ")

Table = [del, forward_error, backward_error, central_error];

%print to screen

disp(Table)

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Advances In Databases And Information Systems 22nd European Conference Adbis 2018 Budapest Hungary September 2 5 2018 Proceedings Lncs 11019

Authors: Andras Benczur ,Bernhard Thalheim ,Tomas Horvath

1st Edition

3319983970, 978-3319983974

More Books

Students also viewed these Databases questions