Advertisement
Guest User

bisekcja

a guest
Nov 22nd, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.83 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<math.h>
  3.  
  4. double funkcja(double a)
  5. {
  6.     return ((((a-2)*a+3)*a-4)*a+1)*a+0.1;
  7. }
  8.  
  9. double mz(double xl, double xr, double eps)
  10. {
  11.     double xm, ym, yl, yr;
  12.     if (xl>xr) {
  13.     xm=xl; xl=xr; xr=xm;
  14.     }
  15.     yl=funkcja(xl);
  16.     yr=funkcja(xr);
  17.  
  18.     while(xr-xl>eps)
  19.     {
  20.         xm=(xl+xr)/2.0;
  21.         ym=funkcja(xm);
  22.         if(ym==0) return xm;
  23.         if (yl*ym<0) {
  24.         xr=xm; yr=ym;
  25.         }
  26.         else {
  27.         xl=xm; yl=ym;
  28.         }
  29.     }
  30.     return xm;
  31. }
  32.  
  33.  
  34.  
  35. int main()
  36. {
  37.     int ilosc;
  38.     scanf("%d", &ilosc);
  39.     double lewyp, prawyp;
  40.     double dokladnosc;
  41.     for (int i=0; i<ilosc; i++)
  42.     {
  43.         printf("Podaj lewy przedzial: ");
  44.         scanf("%lf", &lewyp);
  45.         printf("Podaj prawy przedzial: ");
  46.         scanf("%lf", &prawyp);
  47.         printf("Podaj dokladnosc: ");
  48.         scanf("%lf", &dokladnosc);
  49.         printf("Miejsce zerowe: %.6lf\n", mz(lewyp, prawyp, dokladnosc));
  50.     }
  51.    
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement