0% found this document useful (0 votes)
34 views

Secantmethodexp 4

The program uses the secant method to iteratively find the root of a function by taking successive secant lines between two estimates and their function values. It begins with two initial guesses x1 and x2, calculates the function value at each, and finds the x-intercept of the secant line between the two points. If the new point has a function value with error less than the tolerance, it outputs the root. Otherwise it repeats the process with the new point replacing the older of the two guesses. The program demonstrates this by finding the root of x^3 - 2x - 5 to within 0.00001 tolerance in 5 iterations.

Uploaded by

ad599066
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views

Secantmethodexp 4

The program uses the secant method to iteratively find the root of a function by taking successive secant lines between two estimates and their function values. It begins with two initial guesses x1 and x2, calculates the function value at each, and finds the x-intercept of the secant line between the two points. If the new point has a function value with error less than the tolerance, it outputs the root. Otherwise it repeats the process with the new point replacing the older of the two guesses. The program demonstrates this by finding the root of x^3 - 2x - 5 to within 0.00001 tolerance in 5 iterations.

Uploaded by

ad599066
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

Experiment no.

Program for finding roots of f(x)=0 by secant method

The secant method is used to find the root of an equation f(x) = 0. It is


started from two distinct estimates x1 and x2 for the root. It is an iterative
procedure involving linear interpolation to a root. The iteration stops if the
difference between two intermediate values is less than the convergence
factor.

In this C program, x0 & x1 are two initial guesses, e is tolerable


error and f(x) is actual equation whose root is being obtained
using secant line method.

/* Program: Finding real roots of nonlinear


equation using Secant Method
Author: CodeSansar
Date: November 18, 2018 */

#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>

/* Defining equation to be solved.


Change this equation to solve another problem.
*/
#define f(x) x*x*x - 2*x - 5

void main()
{
float x0, x1, x2, f0, f1, f2, e;
int step = 1, N;
clrscr();
/* Inputs */
printf("\nEnter initial guesses:\n");
scanf("%f%f", &x0, &x1);
printf("Enter tolerable error:\n");
scanf("%f", &e);
printf("Enter maximum iteration:\n");
scanf("%d", &N);

/* Implementing Secant Method */


printf("\nStep\t\tx0\t\tx1\t\tx2\t\tf(x2)\
n");
do
{
f0 = f(x0);
f1 = f(x1);
if(f0 == f1)
{
printf("Mathematical Error.");
exit(0);
}

x2 = x1 - (x1 - x0) * f1/(f1-f0);


f2 = f(x2);

printf("%d\t\t%f\t%f\t%f\t%f\
n",step,x0,x1,x2, f2);

x0 = x1;
f0 = f1;
x1 = x2;
f1 = f2;

step = step + 1;
if(step > N)
{
printf("Not Convergent.");
exit(0);
}
}while(fabs(f2)>e);

printf("\nRoot is: %f", x2);


getch();
}

Enter initial guesses:


1
2
Enter tolerable error:
0.00001
Enter maximum iteration:
10

Step x0 x1 x2 f(x2)
1 1.000000 2.000000 2.200000
1.248001
2 2.000000 2.200000 2.088968 -
0.062124
3 2.200000 2.088968 2.094233 -
0.003554
4 2.088968 2.094233 2.094553
0.000012
5 2.094233 2.094553 2.094552
0.000001

Root is: 2.094552

You might also like