D
Also erst einmal tut mir leid das ich euch soviel Mühe gemacht habe, mein Programm und mein Problem zu verstehen. Ich habe mich schlecht ausgedrückt und die Variablennamen bzw der ganze Code waren auch unübersichtlich.
Programmaufgabe: In der Theorie geht es darum so nah wie möglich an den Nullpunkt einer Funktion zu gelangen. In dem Programm darf ich aber nicht unter die angegebene Genauigkeit (0.01) gehen.
Nachdem ich meine Gedanken mal geordnet habe (danke dachschaden ) habe ich den Fehler auch gefunden.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
printf("Exercice 2x^2+x-1 [-3;0], Precicsion 0,01\n\n");
float a = -3, b = 0, Genauigkeit1 = 0.1, Genauigkeit2 = -0.1, m, funktionA, funktionB, funktionM, x, y;
funktionA = a + 2*pow(a,2) - 1;
printf("f(a)=%f\n\n",funktionA);
funktionB = b + 2*pow(b,2) - 1;
printf("f(b)=%f\n\n",funktionB);
if(funktionA * funktionB > 0 )
printf("Il n y pas de solution pour cette equation\n"); //
else
{
m = (a+b)/2;
do
{
funktionM = m + 2*pow(m,2) - 1;
printf("f(m)=%f\n",funktionM);
x = funktionM * funktionA;
if(x < 0)
{
printf("f(m)*f(a) < 0\n\n");
b = m;
}
y = funktionM * funktionB;
if(y < 0)
{
printf("f(m)*f(b) < 0\n\n");
a = m;
}
m = (a+b)/2;
funktionA = a + 2*pow(a,2) - 1;
funktionB = b + 2*pow(b,2) - 1;
}while( funktionM != 0 && (funktionM > Genauigkeit1 || funktionM < Genauigkeit2));
printf("Racine=%f",m);
}
return 0;
}
Als Antwort erhalte ich die Wurzel 0,984375, dessen Funktion unter 0.1 liegt. Somit ist die Aufgabe gelöst.
Tut mir leid das ich eure Zeit in Anspruch genommen habe, nächstes Mal weiss ich wie ich die Sache angehen soll