Math, asked by gour91952, 9 months ago

Obtain root & correct 3 terminal places using bisection method x3-4x-9=0​

Answers

Answered by neelamdevi9805
0

Answer:

C Program for Bisection Method Source Code

C

#include<stdio.h>

#include<math.h>

float fun (float x)

{

return (x*x*x - 4*x - 9);

}

void bisection (float *x, float a, float b, int *itr)

/* this function performs and prints the result of one iteration */

{

*x=(a+b)/2;

++(*itr);

printf("Iteration no. %3d X = %7.5f\n", *itr, *x);

}

void main ()

{

int itr = 0, maxmitr;

float x, a, b, allerr, x1;

printf("\nEnter the values of a, b, allowed error and maximum iterations:\n");

scanf("%f %f %f %d", &a, &b, &allerr, &maxmitr);

bisection (&x, a, b, &itr);

do

{

if (fun(a)*fun(x) < 0)

b=x;

else

a=x;

bisection (&x1, a, b, &itr);

if (fabs(x1-x) < allerr)

{

printf("After %d iterations, root = %6.4f\n", itr, x1);

return 0;

}

x=x1;

}

while (itr < maxmitr);

printf("The solution does not converge or iterations are not sufficient");

return 1;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

#include<stdio.h>

#include<math.h>

float fun (float x)

{

return (x*x*x - 4*x - 9);

}

void bisection (float *x, float a, float b, int *itr)

/* this function performs and prints the result of one iteration */

{

*x=(a+b)/2;

++(*itr);

printf("Iteration no. %3d X = %7.5f\n", *itr, *x);

}

void main ()

{

int itr = 0, maxmitr;

float x, a, b, allerr, x1;

printf("\nEnter the values of a, b, allowed error and maximum iterations:\n");

scanf("%f %f %f %d", &a, &b, &allerr, &maxmitr);

bisection (&x, a, b, &itr);

do

{

if (fun(a)*fun(x) < 0)

b=x;

else

a=x;

bisection (&x1, a, b, &itr);

if (fabs(x1-x) < allerr)

{

printf("After %d iterations, root = %6.4f\n", itr, x1);

return 0;

}

x=x1;

}

while (itr < maxmitr);

printf("The solution does not converge or iterations are not sufficient");

return 1;

}

Similar questions