Advertisement
Md_hosen_zisad

bisection

Mar 24th, 2019
448
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. float func(float x)
  4. {
  5.     float z;
  6.      z=x*x*x+x*x-1;
  7.     return z;
  8. }
  9. main()
  10. {
  11.     float a,b,sub,fx1,fx2,fxn,x1,x2,xn,E;
  12.     int i;
  13.     E=0.009;
  14.     scanf("%f %f",&x1,&x2);
  15.     fx1=func(x1);
  16.     fx2=func(x2);
  17.     if((fx1>0&&fx2>0)||(fx1<0&&fx2<0))
  18.     {
  19.         printf("no root");
  20.     }
  21.     else
  22.     {
  23.         if(fx1<0)
  24.         {
  25.             a=x1;
  26.             b=x2;
  27.         }
  28.         else
  29.         {
  30.            a=x2;
  31.            b=x1;
  32.         }
  33.         for(i=0;;i++)
  34.         {
  35.         xn=(a+b)/2;
  36.         fxn=func(xn);
  37.         printf("%d app\n x1= %.3f x2=%.3f x4=%.3f x4=%.3f\n",i+1,a,b,xn,fxn);
  38.         if(fxn>0)
  39.         {
  40.             b=xn;
  41.         }
  42.         else
  43.         {
  44.             a=xn;
  45.         }
  46.           sub=abs((b-a)/b);
  47.  
  48.         if (sub<=E)
  49.         {
  50.             printf("final root=%.3f",a);
  51.             return 0;
  52.         }
  53.  
  54.         }
  55.  
  56.     }
  57.  
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement