Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //New-Raps
- #include <stdio.h>
- #include <conio.h>
- #include <math.h>
- #define N 16
- typedef unsigned char LOGIC;
- LOGIC Newton_Rapson(int,float [],float,float,float *,int);
- float Valpol(int,float [],float);
- float Derpol(int,float [],float);
- int main(void)
- {
- int n=2; // gradul polinomului
- float A[]={-6,-1,1}; // vectorul coeficientilor polinomului
- float x0=7; // punctul de start
- float er=0.0001; // precizia de calcul a radacinii
- float rad;
- if(Newton_Rapson(n,A,x0,er,&rad,N)) printf("\nSolutia este : %f",rad);
- else printf("\nEroare");
- getch();
- return 1;
- }
- LOGIC Newton_Rapson(int n,float A[],float x0,float er,float *pRad,int nmax)
- {
- float xn,xn_1;
- xn=x0;
- do{
- xn_1=xn;
- if(Derpol(n,A,xn_1)==0) { return(0);}
- xn=xn_1-(Valpol(n,A,xn_1)/Derpol(n,A,xn_1));
- nmax=nmax-1;
- } while(fabs(xn-xn_1)>=er && nmax!=0);
- *pRad=xn;
- return(1);
- }
- float Valpol(int n,float A[],float pc)
- {
- int i;
- float b;
- b=A[n];
- for(i=n-1;i>=0;i--) b=A[i]+pc*b;
- return b;
- }
- float Derpol(int n,float A[],float pc)
- {
- int i;
- float b[N];
- float c;
- b[n]=A[n];
- c=b[n];
- for(i=n-1;i>=1;i--)
- {
- b[i]=A[i]+pc*b[i+1];
- c=b[i]+pc*c;
- }
- return c;
- }
Add Comment
Please, Sign In to add comment