9
First Finite Divided Difference Calculator Using MIT App Inventor 2 Gomez, Camille Bianca C. Gokongwei College of Engineering BS Electronics and Communications Engineering Biñan, Laguna, Philippines [email protected] AbstractThis project is a user-friendly mobile application of solving the first derivative of a polynomial equation using the three methods of solving the first derivative of a polynomial equation: Forward Differentiation, Backward Differentiation, and Centered Differentiation. The software that was used for this mobile application is MIT App Inventor 2. The concept of Algorithm on Discrete Mathematics was applied in this project. This paper includes the pseudocodes for getting the true value of a given polynomial equation, true value derivative of a given polynomial equation and the first finite divided difference. Keywordsderivative; first finite divided difference; forward differentiation; backward differentiation; centered differentiation; MIT App Inventor; mobile application; algorithm; pseudocode I. INTRODUCTION MIT App inventor is a tool created to help aspiring app developers to build their own application right in the web browser. It is the beginner’s introduction to programming and making a mobile app that consists of a drag-and-drop building blocks [1]. All things needed to understand how the software works is included in their resources. The concept of algorithm from discrete mathematics and numerical differentiation from numerical methods will be implemented using the app inventor tool. Algorithm is a finite set of clear instruction or methods for performing a computation or to solve a problem. It can be implemented using a programming software (e.g. MATLAB, DevC) however the coding scheme for a certain programming software needs a correct command for it to be implemented and for this reason, a Pseudocode is used [2]. Pseudocode is considered to be the convention of any programming language that can be understood easily by humans to aid them on generating a program or code. The steps or instructions used to implement an algorithm are well described operations or statements in a pseudocode for it to be a non-specific programming language [2]. Finite Divided Difference is the approximation derived from Taylor series and is used to approximate certain problems numerically. Finite divided difference is commonly used in a problem with boundaries [3]. II. THEORETICAL CONSIDERATION A. Forward, Backward, and Centered Difference Finite difference is a topic from numerical method and is used to solve differential equation by using approximation and represented as: ( )= ( +1 )−( ) +1 + ( +1 ) (1) or ( )= + (ℎ) (2) Where is the first forward difference and is the stepz size. The term ∆/ℎ is known as the first finite divided difference. The forward divided difference is derived from Taylor series, also backward difference approximation for the first derivative Eq. (3) and the centered difference approximation for the first derivative can also be derived Eq. (4) [3]. ′( )≅ ( )−( −1 ) = (3) ( ) ( +1 )−( −1 ) 2ℎ − (ℎ 2 ) (4) For a better understanding of the equations for forward, backward and centered difference, a graphical representation was shown in Fig. 1.

First Finite Divided Difference Calculator Using MIT App Inventor 2

Embed Size (px)

Citation preview

Page 1: First Finite Divided Difference Calculator Using MIT App Inventor 2

First Finite Divided Difference Calculator Using MIT

App Inventor 2

Gomez, Camille Bianca C.

Gokongwei College of Engineering

BS Electronics and Communications Engineering

Biñan, Laguna, Philippines

[email protected]

Abstract—This project is a user-friendly mobile application

of solving the first derivative of a polynomial equation using the

three methods of solving the first derivative of a polynomial

equation: Forward Differentiation, Backward Differentiation,

and Centered Differentiation. The software that was used for

this mobile application is MIT App Inventor 2. The concept of

Algorithm on Discrete Mathematics was applied in this project.

This paper includes the pseudocodes for getting the true value

of a given polynomial equation, true value derivative of a given

polynomial equation and the first finite divided difference.

Keywords—derivative; first finite divided difference; forward

differentiation; backward differentiation; centered

differentiation; MIT App Inventor; mobile application; algorithm;

pseudocode

I. INTRODUCTION

MIT App inventor is a tool created to help aspiring app developers to build their own application right in the web browser. It is the beginner’s introduction to programming and making a mobile app that consists of a drag-and-drop building blocks [1]. All things needed to understand how the software works is included in their resources.

The concept of algorithm from discrete mathematics and numerical differentiation from numerical methods will be implemented using the app inventor tool.

Algorithm is a finite set of clear instruction or methods for performing a computation or to solve a problem. It can be implemented using a programming software (e.g. MATLAB, DevC) however the coding scheme for a certain programming software needs a correct command for it to be implemented and for this reason, a Pseudocode is used [2]. Pseudocode is considered to be the convention of any programming language that can be understood easily by humans to aid them on generating a program or code. The steps or instructions used to implement an algorithm are well described operations or statements in a pseudocode for it to be a non-specific programming language [2].

Finite Divided Difference is the approximation derived from Taylor series and is used to approximate certain problems numerically. Finite divided difference is commonly used in a problem with boundaries [3].

II. THEORETICAL CONSIDERATION

A. Forward, Backward, and Centered Difference

Finite difference is a topic from numerical method and is

used to solve differential equation by using approximation

and represented as:

𝑓′(𝑥𝑖) = 𝑓(𝑥𝑖+1)−𝑓(𝑥𝑖)

𝑥𝑖+1−𝑥𝑖+ 𝑂(𝑥𝑖+1 − 𝑥𝑖) (1)

or

𝑓(𝑥𝑖) =∆𝑓𝑖

ℎ+ 𝑂(ℎ) (2)

Where ∆𝑓𝑖 is the first forward difference and ℎ is the stepz

size. The term ∆𝑓/ℎ is known as the first finite divided

difference. The forward divided difference is derived from

Taylor series, also backward difference approximation for the

first derivative Eq. (3) and the centered difference

approximation for the first derivative can also be derived Eq.

(4) [3].

𝑓′(𝑥𝑖) ≅ 𝑓(𝑥𝑖)−𝑓(𝑥𝑖−1)

ℎ=

∇𝑓

ℎ (3)

𝑓′(𝑥𝑖) ≅ 𝑓(𝑥𝑖+1)−𝑓(𝑥𝑖−1)

2ℎ− 𝑂(ℎ2) (4)

For a better understanding of the equations for forward,

backward and centered difference, a graphical representation

was shown in Fig. 1.

Page 2: First Finite Divided Difference Calculator Using MIT App Inventor 2

Fig.1 A graphical depiction of forward (a), backward (b) and centered (c)

finite-divided difference approximations of the first derivative [3]

For the forward difference, we compute for the slope

nearby the secant line (Approximation), the points (𝑥𝑖 , 𝑓(𝑥𝑖))

and (𝑥𝑖+1, 𝑓(𝑥𝑖+1)). We choose a small number of ℎ which

represents as the small change in 𝑥 and can be either positive

or negative. Thus, it will give us the formula for forward

difference [4]:

𝑓′(𝑥) = 𝑓(𝑥+ℎ)−𝑓(𝑥)

ℎ (5)

This is the same with backward difference, only differs

with the position of the two points (𝑥𝑖−1, 𝑓(𝑥𝑖−1)) and

(𝑥𝑖 , 𝑓(𝑥𝑖)), giving us the formula for backward difference

[4]:

𝑓′(𝑥) = 𝑓(𝑥)−𝑓(𝑥−ℎ)

ℎ (6)

Another formula to compute the slope nearby the secant

line through the points (𝑥𝑖−1, 𝑓(𝑥𝑖−1)) and (𝑥𝑖+1, 𝑓(𝑥𝑖+1)),

giving us the formula for centered difference [4]:

𝑓′(𝑥) = 𝑓(𝑥+ℎ)−𝑓(𝑥−ℎ)

2ℎ (7)

It is more accurate to the true derivative value, if the

given ℎ is much closer to 0 because as ℎ approaches to 0,

the slope of the secant line will approaches the tangent line

which is the true derivative line shown in Fig. 1.

B. Approximation and Round-off Errors

Numerical methods are the approximations for analytical

solutions. Solutions that are derived manually will have some

deviation thus producing errors [3].

Round-off error is the most known error when using

numerical method. It happens when only a certain amount of

significant digits are required to be presented. Learning how

to determine or quantify error is a must in using numerical

methods [3].

The following equations governs the quantification of an

error:

𝑇𝑟𝑢𝑒 𝑉𝑎𝑙𝑢𝑒 = 𝑎𝑝𝑝𝑟𝑜𝑥𝑖𝑚𝑎𝑡𝑖𝑜𝑛 + 𝑒𝑟𝑟𝑜𝑟 (8)

𝐸𝑡 = 𝑇𝑟𝑢𝑒 𝑉𝑎𝑙𝑢𝑒 − 𝑎𝑝𝑝𝑟𝑜𝑥𝑖𝑚𝑎𝑡𝑖𝑜𝑛 (9)

Where Et, true error, is the difference between the true

value and the approximated value. Resulting for a relative

true error:

Ɛ𝑡 = 𝐸𝑡

𝑇𝑟𝑢𝑒 𝑉𝑎𝑙𝑢𝑒𝑥 100% (10)

Where Ɛt is the ratio between the true error with respect

to the true value.

Page 3: First Finite Divided Difference Calculator Using MIT App Inventor 2

III. DESIGN CONSIDERATIONS

The design of this project is to calculate for the first

derivative of a given polynomial equation in any order. It will

also determine the percentage error of the forward, backward,

and centered difference approximations of the first derivative

to the true value of the first derivative using the concept of

absolute and relative error.

This mobile app is user friendly in a way that it tells the

user how the calculator works where it is defined what the

calculator is use for. It is show in Fig. 2 what the home screen

looks like.

Fig.2 Home Screen

It has three buttons where it will lead the user to its

preference, whether the details about the app, how to use the

app, and the main objective of the app. On the “Definition”

section shown in Fig. 3, it gives the description about

Numerical Differentiation including the formulas that were

used for the calculator. There is also a detail about the mobile

app itself.

Fig. 3 Definition Screen

The “How to Use” button gives a specific example of a

problem from the book [3] where it will tell the user how to

use the calculator by telling what should be the input on the

textboxes. It is shown in Fig. 4 what the screen looks like.

Page 4: First Finite Divided Difference Calculator Using MIT App Inventor 2

Fig. 4 Tips Screen

The last button “Calculator” will lead the user to the main

objective of the mobile app shown in Fig. 5. It will ask the

user for the polynomial, value of x, and the step size (ℎ). It is

already shown in Fig. 4 how to do that. Then the user will

click the “Solve” button and it will give the output below.

Fig. 5 First Finite Divided Difference Calculator Screen

Fig. 6 First Finite Divided Difference Calculator Process in mobile app

Fig. 6 shows the process on how the calculator works. It’s

only similar to what calculator really do, it only differs that

in just one click it will solve for the true first derivative value,

given the approximations and the relative error of each.

In MIT App Inventor, it is important to know first how the

program will work, and it is by making an algorithm. This

design consists of four algorithms: First, determining how to

get the polynomial evaluation of an equation, second,

determining the numerical value of the first derivative

polynomial, third, is by combining the two and the three

approximations of the first derivative, and lastly, is the

overall algorithm of the calculator.

Alg. 1: Getting the polynomial evaluation

PRE-CONDITION: polynomialeval (m1,m2,m3,...mn:

polynomial coefficients which corresponds to mxn-1,

mxn-2, mxn-3,…,mxn-n, value of x : integer)

fx = 0

e = (n-1) to 0, decrement 1

for N = 1 to n

y = mN * x(eN)

fx = fx + y

end

POST-CONDITION: fx : Output the value of a

polynomial evaluation

Input the coefficients of a polynomial

(any order)

Input a value of x

Input a value of step size (h)

Click "Solve!"

Output: True Value, Forward-Backward-Centered Difference Approximations, and

Relative Error

Page 5: First Finite Divided Difference Calculator Using MIT App Inventor 2

Alg. 2: Getting the first derivative of a polynomial

PRE-CONDITION: polynomialderivative

(m1,m2,m3,...,mn: polynomial coefficients which

corresponds to mxn-1, mxn-2, mxn-3,…,mxn-n, value of x :

integer)

fxd = 0

e = (n-1) to 0, decrement 1

for N = 1 to n

dy = eN*mN*(x(eN)-1)

fxd = fxd + dy

end

POST CONDITION: fxd : Output the derivative value of

a polynomial

Alg. 3: Getting the approximations of the first derivative

PRE-CONDITION: firstfinitedivideddifference

(m1,m2,m3,...,mn: polynomial coefficients which

corresponds to mxn-1, mxn-2, mxn-3 ,…,mxn-n, value of x

and step size (h) : integers)

fx = 0

fxd = 0

e = (n-1) to 0, decrement 1

forward = 0

backward = 0

for N = 1 to n

y = mN * x(eN)

dy = eN * mN * x(eN-1)

fwd = mN * (x-h)(eN)

bwd = mN * (x-h)(eN)

fx = fx + y

fxd = fxd + dy

forward = forward + fwd

backward = backward + bwd

end

forwarddiff = (forward-fx)/h

backwarddiff = (forward-fx)/(-h)

centerdiff = (forward-backward)/(2*h)

POST CONDITION: forwarddiff, backwarddiff

centerdiff : Output the forward, backward, and center

differences

Alg. 4: First Finite Divided Difference Calculator

PRE-CONDITION: firstfinitedivideddifferencecalc

(m1,m2,m3,...,mn: polynomial coefficients which

corresponds to mxn-1, mxn-2, mxn-3 ,…,mxn-n, value of x

and step size (h) : integers)

fx = 0

fxd = 0

e = (n-1) to 0, decrement 1

forward = 0

backward = 0

for N = 1 to n

y = mN * x(eN)

dy = eN * mN * x(eN-1)

fwd = mN * (x-h)(eN)

bwd = mN * (x-h)(eN)

fx = fx + y

fxd = fxd + dy

forward = forward + fwd

backward = backward + bwd

end

forwarddiff = (forward-fx)/h

backwarddiff = (forward-fx)/(-h)

centerdiff = (forward-backward)/(2*h)

forwardrelativeerror = absolute((forwarddiff-

fxd)/fxd*100);

backwardrelativeerror = absolute((backwarddiff-

fxd)/fxd*100);

centerrelativeerror = absolute((centerdiff-fxd)/fxd*100);

POST CONDITION: forwarddiff, backwarddiff

centerdiff : Output the forward, backward, and center

differences

IV. DATA AND RESULTS

Algorithm is the process on how to solve a problem with

the use of pseudocodes. In this section, it will give the results

of the four algorithms that were formulated.

It is given a polynomial equation of 2𝑥4 + 5𝑥3 − 6𝑥2 −𝑥 + 3 at 𝑥 = 2 and step size ℎ = 0.1. The following tables

demonstrates how the given algorithms work.

TABLE I. ALGORITHM FOR GETTING THE POLYNOMIAL EVALUATION

N mN eN x(eN) y fx

1 2 4 16 32 32

2 5 3 8 40 72

3 -6 2 4 -24 48

4 -1 1 2 -2 46

5 3 0 1 3 49

TABLE II. ALGORITHM FOR GETTING THE FIRST DERIVATIVE OF A

POLYNOMIAL

N mN eN (x(eN)-1) dy fxd

1 2 4 8 64 64

2 5 3 4 60 124

3 -6 2 2 -24 100

4 -1 1 1 -1 99

5 3 0 1 0 99

Page 6: First Finite Divided Difference Calculator Using MIT App Inventor 2

TABLE III. ALGORITHM FOR GETTING APPROXIMATIONS OF THE FIRST

DERIVATIVE

N fx fxd forward backward forwarddiff backwarddiff centerdiff

1 32 64 38.8962 26.0642 - - -

2 72 124 85.2012 60.3592 - - -

3 48 100 58.7412 38.6992 - - -

4 46 99 56.6412 36.7992 - - -

5 49 99 59.6412 39.7992 106.412 92.01 99.21

TABLE IV. ALGORITHM FOR FIRST FINITE DIVIDED DIFFERENCE

CALCULATOR

N fxd forward

diff

backward

diff

centerdi

ff

ferror berror cerror

1 64 - - - - - -

2 124 - - - - - -

3 100 - - - - - -

4 99 - - - - - -

5 99 106.4 92.01 99.21 7.48% 7.06% 0.21%

According to the calculations, we have come up to that

answers by simply following the algorithm that was

formulated. Using the Numerical Differentiation mobile app,

it also come up with the same answers (shown in Fig. 7),

verifying that the algorithms are correct.

Fig. 7 Answer to the given example using the First Finite Divided Difference Calculator

In the given problem, the true first derivative value is 99,

and the approximations value for forward, backward, and

centered differences are 106.412, 92.01, and 99.21,

respectively. Those are only the approximated numerical

value of the first finite divided difference the reason why a

relative errors are included in the computations.

V. ANALYSIS

The results for getting the first finite divided difference

are verified that the algorithms that were formulated are

correct. As it was compared with the Numerical

Differentiation mobile app, they have the same results. With

the help of pseudocode, it became easier to code it by the use

of blocks programming that the MIT App Inventor 2 use.

VI. CONCLUSION

In conclusion, MIT app inventor has been a great tool for

helping app developers such as myself. It helps oneself

cultivate their skills and knowledge to prepare and contribute

for the growing demand for app developers. The use and

application of one’s learning in an academia such as discrete

mathematics (DISMATH) and numerical methods

(NUMMETH) is not only limited to what they have tackled.

It can be applied to many different ways such as this project.

This project, had combined the two by applying a concept

of DISMATH, in which the topic of algorithm, in another

subject course such as NUMMETH. There are a lot of other

things that can be solved or created by integrating inherited

knowledge.

Page 7: First Finite Divided Difference Calculator Using MIT App Inventor 2

APPENDIX A: HOME SCREEN BLOCKS

APPENDIX B: DEFINITION AND TIPS SCREEN BLOCKS

Page 8: First Finite Divided Difference Calculator Using MIT App Inventor 2

APPENDIX C: FIRST FINITE DIVIDED DIFFERENCE CALCULATOR SCREEN

Page 9: First Finite Divided Difference Calculator Using MIT App Inventor 2

ACKNOWLEDGMENT

The accomplishment of this final project in DISMATH

would not be possible without the help of some people so the

student would like to acknowledge with deep appreciation

and gratitude the following persons:

Engr. Melvin Kong Cabatuan, for teaching the concept of

algorithms, making it understandable by giving detailed

examples.

Dr. Argel Bandala, for teaching the concept of Numerical

Differentiation which gives me an idea how it will give

relation to DISMATH.

Paul Arroyo, for guidance and support throughout the

hardships in making this paper.

I also want to thank my family for understanding how

busy I am to make this project be a success.

And finally, I thank the Almighty God for giving me

strength and knowledge, guiding me throughout the days of

finishing this project.

REFERENCES

[1] "MIT App Inventor," 2012. [Online]. Available:

http://appinventor.mit.edu/explore/about-us.html. [Accessed April

2016].

[2] K. H. Rosen, Discrete Mathematics and Its Applications, New York:

McGraw-Hill, 2012.

[3] S. C. Chapra and R. P. Canale, Numerical Methods for Engineering, New York: McGraw-Hill, 2010.

[4] R. L. Burden and J. D. Faires, "Numerical Analysis," in Numerical

Analysis, Ninth Edition, Boston, Brooks/Cole, Cengage Learning, 2011, pp. 174-182.