Zadanie
Program,który metodą bisekcji wyznaczy z zadaną dokładnością q miejsca zerowe funkcji określonej następująco f(x)=x-e^(-x) w zadanym przedziale [0,1].
[code]
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
float funkcja(float x)
{
float f;
f=x-exp(-x);
return f;
}
int main(void)
{
float q,x,m,p1,k1;
int p={0};
int k={1};
if(funkcja(p)*funkcja(k)<0)
{
cout<<"Podaj dokladnosc "<<endl;
cin>>q;
while((k-p)>q)
{
m=(p+k)/2;
if(funkcja(m)==0)
{
p1=m;
k1=m;
cout<<"p1="<<p1<<endl;
cout<<"k1="<<k1<<endl;
}
if(funkcja(p)*funkcja(m)<0)
{
p1=p;
k1=m;
cout<<"p1="<<p1<<endl;
cout<<"k1="<<k1<<endl;
}
if(funkcja(p)*funkcja(m)>0)
{
p1=m;
k1=k;
cout<<"p1="<<p1<<endl;
cout<<"k1="<<k1<<endl;
}
}
}
return(0);
system("PAUSE");
} [/code]
mam tyle,
nie wiem czy to jest dobrze,
wiem, ze p nie bedzie sie zmieniac , zmieniac jedynie bedzie sie k, ktore bedzie przyjmowac wartosc m, przez co przedzial bedzie sie zmniejszac, az w koncu te m bedzie miejscem zerowym, nie wiem jak to zapisac w c++
prosze o jakas wskazowke
z gory wielkie dzieki!