Breaking News

Main Menu

Fortran Program For Secant Method Examples

пятница 17 апреля admin 48

Secant method is an iterative tool of mathematics and numerical methods to find the approximate root of polynomial equations. During the course of iteration, this method assumes the function to be approximately linear in the region of interest.

Although secant method was developed independently, it is often considered to be a finite difference approximation of Newton’s method. But, being free from derivative, it is generally used as an alternative to the latter method.

Academia.edu is a platform for academics to share research papers.

Previously, we talked about secant method vis-à-vis C program and algorithm/flowchart for the method. Here, we’ll go through a program for Secant method in MATLAB along with its mathematical background and a numerical example.

Mathematical Derivation of Secant Method:

Consider a curve f(x) = 0 as shown in the figure below:

Secant method estimates the point of intersection of the curve and the X- axis (i.e. root of the equation that represents the curve) as exactly as possible. For that, it uses succession of roots of secant line in the curve.

Assume x0 and x1 to be the initial guess values, and construct a secant line to the curve through (x0, f(x0)) and (x1, f(x1)). The equation of this secant line is given by:

If x be the root of the given equation, it must satisfy: f(x) = 0 or y= 0. Substituting y = 0 in the above equation, and solving for x, we get:


Now, considering this new x as x2, and repeating the same process for x2, x3, x4, . . . . we end up with the following expressions:

This is the required formula which will also be used in the program for secant method in Matlab.

Advantages of Secant Method over other Root Finding Methods:

  • Its rate of convergence is more rapid than that of bisection method. So, secant method is considered to be a much faster root finding method.
  • In this method, there is no need to find the derivative of the function as in Newton-Raphson method.

Limitations of Secant Method:

  • The method fails to converge when f(xn) = f(xn-1)
  • If X-axis is tangential to the curve, it may not converge to the solution.

Secant Method in MATLAB:

MATLAB Program for Secant Method
2
4
6
8
10
12
14
16
18
f=inline(a)
x(1)=input('Enter first point of guess interval: ');
x(2)=input('Enter second point of guess interval: ');
iteration=0;
fori=3:1000
x(i)=x(i-1)-(f(x(i-1)))*((x(i-1)-x(i-2))/(f(x(i-1))-f(x(i-2))));
ifabs((x(i)-x(i-1))/x(i))*100<n
iteration=iteration
end

In this program for secant method in Matlab, first the equation to be solved is defined and assigned with a variable ‘a’ using inline( ) library function. Then, the approximate guess values and desired tolerance of error are entered to the program, following the MATLAB syntax.

The program uses the secant formula (aforementioned in the mathematical derivation) to calculate the root of the entered function. Wifiway how to crack wep wifi. Here’s a sample output of the above MATLAB code for secant method:

Secant Method Numerical Example:

Lets perform a numerical analysis of the above program of secant method in MATLAB. The same function f(x) is used here; x0 =0 and x1 = -0.1 are taken as initial approximation, and the allowed error is 0.001.

Here,

f(x) = cos(x) + 2 sin(x) + x2
x0 = 0
x1 = -0.1

For first iteration,

f(x1) = cos(-0.1) + 2 sin(-0.1) + ( -0.1 )2 = 0.8053 and
f(x0) = cos0 + 2 sin0 + 02 = 1

As we know,

x2 = x1 – f(x1)
x2 = 0 + 0.8053 * (-0.1-0)/(0.8053-1)
x2 =0.4136

Similarly, x3 = – 0.5136, and so on…

The complete calculation and iteration of secant method (and MATLAB program) for the given function is presented in the table below:

Thus, the root of f(x) = cos(x) + 2 sin(x) + x2 as obtained from secant method as well as its MATLAB program is -0.6595.

Check: f(-0.6585) = cos(-0.6585) + 2 sin(-0.6585) + (-0.6585)2 = 0.0002 (OK).

If you have questions regarding secant method or its MATLAB code, bring them up from the comments section. You can find more Numerical methods tutorial using MATLAB here.

SECANT METHODThe Newton-Raphson algorithm requires the evaluation of twofunctions (the function and its derivative) per each iteration. If theyare complicated expressions it will take considerable amount of effortto do hand calculations or large amount of CPU time for machine calculations.Hence it is desirable to have a method that converges (please see the sectionorder of the numerical methods for theoretical details) as fast as Newton'smethod yet involves only the evaluation of the function. Letx 0 and x 1 are two initial approximations for theroot 's' of f(x) = 0 and f(x 0) & f(x 1) respectively,are their function values. If x 2 is the point of intersectionof x-axis and the line-joining the points (x 0, f(x 0))and (x 1, f(x 1)) then x 2 is closer to 's'than x 0 and x 1. The equation relating x 0,x 1 and x 2 is found by considering the slope 'm'm =f(x 1) - f(x 0)f(x 2) - f(x 1)0 - f(x 1)x 1 - x 0x 2 - x 1x 2 - x 1x 2 - x 1 =- f(x 1). (x 1-x 0)f(x 1) - f(x 0)x 2 = x 1 -f(x 1).

(x 1-x 0)f(x 1) - f(x 0)or in general the iterative process can be written asx i+1= x i -f(x i). (x i - x i-1)i = 1,2,3.f(x i) - f(x i-1)This formula is similar to Regula-falsi scheme of root bracketingmethods but differs in the implementation. The Regula-falsi method beginswith the two initial approximations 'a' and 'b' such that a 0 respectively. On the other handsecant method starts with two initial approximation x 0 and x 1(they may not bracket the root) and then calculates the x 2 bythe same formula as in Regula-falsi method but proceeds to the next iterationwithout bothering about any root bracketing.Algorithm - Secant MethodGiven an equation f(x) = 0Let the initial guesses be x 0 and x 1Dox i+1= x i -f(x i). (x i - x i-1)i = 1,2,3.f(x i) - f(x i-1)while (none of the convergence criterion C1 or C2 is met).C1. Fixing apriori the total number of iterations N.C2.