Scientific Programming Using
Excel VBA for Beginners
Dr. RIZAuddin bin Saian
Faculty of Computer & Mathematical Sciences
Universiti Teknologi MARA (Perlis)
Venue: LT1, UiTM Perlis
27 September 2019 (Friday)
3pm
Problem
• We want to find the root for .
227/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Objective
• To approximate the root for
using Newton’s method (Newton-Raphson
method)
– Perform Newton’s method by hand.
– Write a VBA code to perform the Newton’s
method.
327/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Newton’s Method
427/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Equation of tangent line
527/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Initial Guess of x
6
Actual root
X
X
x0
(Initial guess)
27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Iteration 1
7
X
Tangent line at x0 = -1
X
x0x1
Actual root
(Initial guess)
27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Iteration 2
8
x1
Tangent line at x1
X X
x0
Actual root
(Initial guess)
27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Example: Find the root.
9
Actual root
X
x0 = -1
X
27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Initial guess of x
10
The estimated root,
27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Iteration 1
11
i x xn+1
0 - 1 -1.5
27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Iteration 2
12
i x xn+1
0 - 1 -1.5
1 -1.5 -1.347826087
27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Iteration 3
13
i x xn+1
0 - 1 -1.5
1 -1.5 -1.347826087
2 -1.347826087 -1.325200399
27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Iteration 4
14
i x xn+1
0 - 1 -1.5
1 -1.5 -1.347826087
2 -1.347826087 -1.325200399
3 -1.325200399 -1.324718174
27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Iteration 5
15
i x xn+1
0 - 1 -1.5
1 -1.5 -1.347826087
2 -1.347826087 -1.325200399
3 -1.325200399 -1.324718174
4 -1.324718174 -1.324717957
27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Iteration 6
16
i x xn+1
0 - 1 -1.5
1 -1.5 -1.347826087
2 -1.347826087 -1.325200399
3 -1.325200399 -1.324718174
4 -1.324718174 -1.324717957
5 -1.324717957 -1.324717957
27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Iteration 6
17
i x xn+1
0 - 1 -1.5
1 -1.5 -1.347826087
2 -1.347826087 -1.325200399
3 -1.325200399 -1.324718174
4 -1.324718174 -1.324717957
5 -1.324717957 -1.324717957
STOP!
27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Visual Basic for Application (VBA)
18
Press Alt key and hold. Then, press F11 together to open the VBA Editor.
27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Add new Module
1927/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Define a function
2027/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Exercise 1
• Define function Newton with parameter “x”
and return the estimation value for the root
of with x0=-1.
2127/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Exercise 1
• Define function Newton with parameter “x”
and return the estimation value for the root
of with x0=-1.
2227/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Loop
2327/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Exercise 2
• Modify the Newton function in Ex. 1 to use
loop to calculate the root using 4 iterations.
2427/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
Exercise 2
• Modify the Newton function in Ex. 1 to use
loop to calculate the root using 4 iterations.
2527/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
THANK YOU
www.rizauddin.com
27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com 26

Scientific programming using Excel VBA for beginners

  • 1.
    Scientific Programming Using ExcelVBA for Beginners Dr. RIZAuddin bin Saian Faculty of Computer & Mathematical Sciences Universiti Teknologi MARA (Perlis) Venue: LT1, UiTM Perlis 27 September 2019 (Friday) 3pm
  • 2.
    Problem • We wantto find the root for . 227/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
  • 3.
    Objective • To approximatethe root for using Newton’s method (Newton-Raphson method) – Perform Newton’s method by hand. – Write a VBA code to perform the Newton’s method. 327/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
  • 4.
    Newton’s Method 427/09/2019 ScientificProgramming Using Excel VBA ::: rizauddin.com
  • 5.
    Equation of tangentline 527/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
  • 6.
    Initial Guess ofx 6 Actual root X X x0 (Initial guess) 27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
  • 7.
    Iteration 1 7 X Tangent lineat x0 = -1 X x0x1 Actual root (Initial guess) 27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
  • 8.
    Iteration 2 8 x1 Tangent lineat x1 X X x0 Actual root (Initial guess) 27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
  • 9.
    Example: Find theroot. 9 Actual root X x0 = -1 X 27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
  • 10.
    Initial guess ofx 10 The estimated root, 27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
  • 11.
    Iteration 1 11 i xxn+1 0 - 1 -1.5 27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
  • 12.
    Iteration 2 12 i xxn+1 0 - 1 -1.5 1 -1.5 -1.347826087 27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
  • 13.
    Iteration 3 13 i xxn+1 0 - 1 -1.5 1 -1.5 -1.347826087 2 -1.347826087 -1.325200399 27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
  • 14.
    Iteration 4 14 i xxn+1 0 - 1 -1.5 1 -1.5 -1.347826087 2 -1.347826087 -1.325200399 3 -1.325200399 -1.324718174 27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
  • 15.
    Iteration 5 15 i xxn+1 0 - 1 -1.5 1 -1.5 -1.347826087 2 -1.347826087 -1.325200399 3 -1.325200399 -1.324718174 4 -1.324718174 -1.324717957 27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
  • 16.
    Iteration 6 16 i xxn+1 0 - 1 -1.5 1 -1.5 -1.347826087 2 -1.347826087 -1.325200399 3 -1.325200399 -1.324718174 4 -1.324718174 -1.324717957 5 -1.324717957 -1.324717957 27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
  • 17.
    Iteration 6 17 i xxn+1 0 - 1 -1.5 1 -1.5 -1.347826087 2 -1.347826087 -1.325200399 3 -1.325200399 -1.324718174 4 -1.324718174 -1.324717957 5 -1.324717957 -1.324717957 STOP! 27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
  • 18.
    Visual Basic forApplication (VBA) 18 Press Alt key and hold. Then, press F11 together to open the VBA Editor. 27/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
  • 19.
    Add new Module 1927/09/2019Scientific Programming Using Excel VBA ::: rizauddin.com
  • 20.
    Define a function 2027/09/2019Scientific Programming Using Excel VBA ::: rizauddin.com
  • 21.
    Exercise 1 • Definefunction Newton with parameter “x” and return the estimation value for the root of with x0=-1. 2127/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
  • 22.
    Exercise 1 • Definefunction Newton with parameter “x” and return the estimation value for the root of with x0=-1. 2227/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
  • 23.
    Loop 2327/09/2019 Scientific ProgrammingUsing Excel VBA ::: rizauddin.com
  • 24.
    Exercise 2 • Modifythe Newton function in Ex. 1 to use loop to calculate the root using 4 iterations. 2427/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
  • 25.
    Exercise 2 • Modifythe Newton function in Ex. 1 to use loop to calculate the root using 4 iterations. 2527/09/2019 Scientific Programming Using Excel VBA ::: rizauddin.com
  • 26.
    THANK YOU www.rizauddin.com 27/09/2019 ScientificProgramming Using Excel VBA ::: rizauddin.com 26