Skip to content

Instantly share code, notes, and snippets.

@Hajto
Created September 24, 2014 12:31
Show Gist options
  • Save Hajto/5a2349ab078952a6ea30 to your computer and use it in GitHub Desktop.
Save Hajto/5a2349ab078952a6ea30 to your computer and use it in GitHub Desktop.
#include <iostream>
#include <cstdio>
#include <cmath>
const double EPS = 0.000000000000000000000000000000000000001;
double f(double x){
return x*2+5;
}
using namespace std;
int main(){
//Zmienne potrzebne do wykonania zadani
double a,b; //Okreslają przedział poszukiwań
double function_a,function_b,function_zero; //Zmienne, które będą przetrzymywać dane do obliczeń
double wynik; //wynik, uzylem go pare razy w innych miejscach
double temp_a,temp_b;
//Wczytywanie danych
printf("Podaj prosze argument, od którego mam zaczac poszukiwania. \n");
cin>>a;
printf("\nPodaj prosze argument, na którym mam zakonczyc poszukiwania. \n");
cin>>b;
function_a = f(a);
function_b = f(b);
temp_a=a;
temp_b=b;
//Sprawdzanie czy funkcja spełnia warunki, znaki liczb na krancach przedzialow musza byc rozne
if(function_a*function_b > 0) cout<<"\n\n Funkcja nie spelnia wymagan";
else{
while(abs(temp_a-temp_b)> EPS){
temp_a = temp_b;
temp_b = a - (function_a*(b-a)/(function_b-function_a));
function_zero = f(temp_b);
if(abs(function_zero)>EPS) break;
if(function_a * function_zero < 0){
b = temp_b;
function_b = function_zero;
} else {
a = temp_b;
function_a = function_zero;
}
}
}
cout<<temp_b;
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment