Показать сообщение отдельно

  #5  
Старый 18.05.2008, 16:05
greeef
Новичок
Регистрация: 09.10.2007
Сообщений: 23
С нами: 9783494

Репутация: 11
По умолчанию

#include <math.h>
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
#include <windows.h>
double Func(double x)
{
return x*x-sin(5*x)-1;
}

double Fp(double x, double E)
{
return (Func(x+E/2)-Func(x-E/2))/E;//типа производную так захуячил
}

void main()
{
double a,b,X,E;
int ii;
printf("x^2-sin(5*x)-1\na=");
scanf("%lf",&a);
printf("b=");
scanf("%lf",&b);
printf("e=");
scanf("%lf",&E);
printf("Metod resheniya?\n\t\t1)metod polovinnogo deleniya\n\t\t2)metod Newtona\n\t\t3)Prostih iteracyi\n");
scanf("%i",&ii);
system("cls");
X=a;
double Xt;
int count=0;
do
{
count++;
Xt=X;
if (ii==1) {X=(b+a)/2;} else {if (ii==2) {X=-Func(X)/Fp(X,E)+X;} else {if (ii==3) {X=Func(X);}} }
cout<<"["<<count<<"]="<<X<<endl;
if(Func(X)*Func(a)>0)a=X;
else b=X;
}while(fabs(X-Xt)>=E);
cout<<"X="<<X;
cin.get();
}
вот написал должен рещать тремя методами а решает двумя... подскажите где ошибка в третьем
 
Ответить с цитированием