Magentax

aprox succesive

Jan 19th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.96 KB | None | 0 0
  1. //Aproximari successive
  2.  
  3. #include <stdio.h>
  4. #include <conio.h>
  5. #include <math.h>
  6.  
  7. typedef unsigned char LOGIC;
  8. LOGIC Aprox_Succ(float,float,float,float,float *);
  9. float fi(float);
  10.  
  11. int main(void)
  12. {
  13.    float rad,ls,ld,x0,er;
  14.  
  15.    printf("\nIntroduceti ls : ");
  16.    scanf("%f",&ls);
  17.    printf("\nIntroduceti ld : ");
  18.    scanf("%f",&ld);
  19.    printf("\nIntroduceti x0 : ");
  20.    scanf("%f",&x0);
  21.    printf("\nIntroduceti eroarea er : ");
  22.    scanf("%f",&er);
  23.  
  24.    if(Aprox_Succ(ls,ld,x0,er,&rad)) printf("\nSolutia este = %f",rad);
  25.    else printf("\n Eroare");
  26.  
  27.    getch();
  28.    return 1;
  29. }
  30.  
  31. LOGIC Aprox_Succ(float ls,float ld,float x0,float er,float *pRad)
  32. {
  33.  float pc,xn,xn_1,h;
  34.  float der;
  35.  
  36.  h=1e-2;
  37.  pc=ls;
  38.  do {
  39.   der=(fi(pc+h)-fi(pc))/h;
  40.   if(fabs(der)>=1) {return(0);}
  41.   pc=pc+h;
  42.  } while(pc<=ld);
  43.  
  44.  xn=x0;
  45.  do{
  46.   xn_1=xn;
  47.   xn=fi(xn_1);
  48.  } while(fabs(xn-xn_1)>er);
  49.  
  50.  *pRad=xn;
  51.  return(1);
  52. }
  53.  
  54. float fi(float x)
  55. {
  56.   return exp(-x);
  57. }
Add Comment
Please, Sign In to add comment