Skip to content

Instantly share code, notes, and snippets.

@ahmetilgin
Last active March 24, 2017 16:10
Show Gist options
  • Save ahmetilgin/abd85bd7d3058eda78d6a828187900e2 to your computer and use it in GitHub Desktop.
Save ahmetilgin/abd85bd7d3058eda78d6a828187900e2 to your computer and use it in GitHub Desktop.
Bisection method find root in c
#include <stdio.h>
#include <math.h>
float fonksiyon(float x){
return ((x*x*x)-4*x*x+4*x+16);
}
float biSectionMethod(){
float hataMiktrari = 5;
float ilkAralik = 50.0;
float ikinciAralik = -30.0;
float ortaNokta = (ilkAralik + ikinciAralik)/2.0f;
int iter = 0;
while(hataMiktrari > 0.00000005){
iter++;
ortaNokta = (ilkAralik + ikinciAralik)/2.0f;
if((fonksiyon(ortaNokta) * fonksiyon(ilkAralik)) < 0){
ikinciAralik = ortaNokta;
}
if((fonksiyon(ortaNokta) * fonksiyon(ikinciAralik)) < 0)
{
ilkAralik = ortaNokta;
}
hataMiktrari = fonksiyon(ortaNokta);
if(hataMiktrari<0){
hataMiktrari = -hataMiktrari;
}
}
printf("Hata miktari %f\n",hataMiktrari );
printf("(%d iterasyon sonucunda )\n",iter);
return ortaNokta;
}
int main(){
printf("Yaklasik Kok %f\n", biSectionMethod());
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment