Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Unterschied Regula und Sekanten

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.01.2007, 16:19 Uhr
ao

(Operator)



Zitat von ~XHatebreedX:

Das ist doch das gleiche in grün oder?

Fast. Oberer Code:

C++:
while(betrag(calt-c)>pow(10,-3));

Unterer Code:

C++:
while(betrag(calt-c)>pow(10,-6));

Siehst du es?

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.01.2007, 16:51 Uhr
~XHatebreedX
Gast


das ist ja nur der Unterschied in der Abbruchbedingung....das is glaub ich egal
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
22.01.2007, 22:50 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


nein ist es nicht. Bei dem einem wird halt erst bei einer größeren Präzision abgebrochen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
23.01.2007, 09:35 Uhr
ao

(Operator)


@Hatebreed: Vielleicht erklärst du mal, warum du eigentlich fragst.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: