000
22.01.2007, 14:57 Uhr
~XHatebreedX
Gast
|
C++: |
double sek(double a, double b) //Nullstelle der Geraden zwischen Punkt f(a) und Punkt f(b) { double c; c=a-((b-a)/(f(b)-f(a)))*f(a); return c; }
//------------------------------------------------------------------------------------ do{ i++; calt=c; c=sek(a,b); if(vorz(f(a))==vorz(f(c))) a=c; else b=c; feld[i][0]=i; feld[i][1]=c; feld[i][2]=a; feld[i][3]=b; feld[i][4]=calt-c; printf("%0.lf %lf %lf %lf\n",feld[i][0],feld[i][1],feld[i][2],feld[i][3]); } while(betrag(calt-c)>pow(10,-3)); break;
|
das ist mein Sekantenverfahren
C++: |
double regula(double a,double b) { double c; c=a-(((a-b)/(f(a)-f(b)))*f(a)); return c; }
//----------------------------------------------------------------------------- case 'r': printf("erster Intervall"); scanf("%lf",&a); printf("zweiter Intervall"); scanf("%lf",&b); printf("Nr. \t c \t a \t b \t a-b \n"); do{ calt=c; c=regula(a,b); if(vorz(f(a))==vorz(f(c))) { a=c; } else { b=c; } i++; feld[i][0]=i; feld[i][1]=c; feld[i][2]=a; feld[i][3]=b; feld[i][4]=calt-c; printf("%0.lf %lf %lf %lf\n",feld[i][0],feld[i][1],feld[i][2],feld[i][3]); }while(betrag(calt-c)>pow(10,-6)); break;
|
die funktion ist
C++: |
double f(double x) { return(x*x-2); }
|
Könnte mir wohl einer mal den Unterschied erklären? Das ist doch das gleiche in grün oder? |