Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Bispol
- #include <stdio.h>
- #include <conio.h>
- #include <math.h>
- #define pi 3.141592
- typedef unsigned char LOGIC;
- LOGIC bis(float,float,float,float *);
- float f(float);
- void caut(float*, float*);
- int main(void)
- {
- float rad;
- float ls=-15, ld=15;
- float er=1e-3 ;
- caut(&ls,&ld);
- printf("\n main(): ls: %f, ld: %f", ls, ld);
- if(bis(ls,ld,er,&rad)) printf("\nRadacina este = %f",rad);
- else printf("\nEroare");
- getch();
- return 1;
- }
- LOGIC bis( float ls,
- float ld,
- float er,
- float *pRad)
- {
- float xm;
- if(f(ls)*f(ld)>0) {return(0);}
- if(f(ls)==0) {*pRad=ls; return(1);}
- if(f(ld)==0) {*pRad=ld; return(1);}
- xm=(ls+ld)/2;
- while(fabs(ls-ld)>er && f(xm)!=0)
- {
- xm=(ls+ld)/2;
- if(f(xm)*f(ls)<0) ld=xm;
- else ls=xm;
- }
- *pRad=xm;
- return(1);
- }
- float Valpol(int n,float A[],float pct)
- {
- int i;
- float b;
- b=A[n];
- for(i=n-1;i>=0;i--) b=A[i]+pct*b;
- return b;
- }
- void caut( float *pA,
- float *pB)
- {
- int numar=0;
- float p_ant = *pA, p_urm, pas = 1e-2 ;
- do{
- p_urm = p_ant + pas ;
- if(f(p_ant) * f(p_urm) < 0) break ;
- p_ant = p_urm;
- printf("\n ls: %f, f(%ls): %f; ld: %f, f(%f): %f",
- p_ant, p_ant, f(p_ant), p_urm, p_urm, f(p_urm)) ;
- numar++ ;
- if((numar % 10 ==0) && numar != 0) getch();
- } while(p_urm <= *pB) ;
- *pA = p_ant;
- *pB = p_urm;
- }
- float f(float x) {
- float Ve = 5, ve = 6*sin(2*pi*x), r1 = 1e2, r2=1e3;
- return r2/(r1+r2)*(Ve+ve);
- }
Add Comment
Please, Sign In to add comment