Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2010, 03:03   #1
Shikarmo4000
Новичок
Джуниор
 
Регистрация: 23.05.2010
Сообщений: 5
Печаль найти корень методом хорд в C++

Вычислить корень уравнения на отрезке [a; b] с точностью e=10^(-6), используя метод хорд. Уравнение: а) f(x) = (x-1)*(x-1) -5 ; a = 2; b =43; Вот, что я написал:
#include <iostream>
#include <cmath>
using namespace std;

double f(double x)
{
return (x-1)*(x-1)-5;
}

double findRoot(double (*f)(double), double a=2, double b=43, double eps=1e-6)
{
double t;
while(fabs(b-a)>=eps)
{
t =( b*f(a)-f(b)*a)/(f(a)-f(b));
if(f(a)*f(t)<0)
b=t;
else if(f(t)*f(b)<0)
a=t;
else return t;
}
return t;
}

int main()
{
double x = findRoot(f);
cout<<"x="<<t<<" f(x)="<<f(x)<<endl;

return 0;
}

Последний раз редактировалось Shikarmo4000; 23.05.2010 в 10:19.
Shikarmo4000 вне форума Ответить с цитированием
Старый 23.05.2010, 11:44   #2
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Код:
#include <iostream>
#include <cmath>
using namespace std;

double f( double x ) {
   return (x-1)*(x-1)-5;
}

double findRoot(double (*f)(double), double a=2., double b=43., double eps=1e-6) {
   double t;
   while (fabs(b-a)>=eps) {
      //1 t =( b*f(a)-f(b)*a)/(f(a)-f(b)); 
      t = a+(f(b)*(b-a))/(f(b)-f(a));  //2
      if (f(a)*f(t)<0) {
         b=t;
//p         cout << "b=" << b;
      } else if (f(t)*f(b)<0) {
         a=t;
//p         cout << "a=" << a;
      } else 
         return t;
   }
   return t;
}

int main() {

   double t = findRoot( f );
   cout << "x=" << t << " f(x)=" << f(t) << endl;

   return 0;

}
Vago вне форума Ответить с цитированием
Старый 23.05.2010, 14:03   #3
Shikarmo4000
Новичок
Джуниор
 
Регистрация: 23.05.2010
Сообщений: 5
По умолчанию

спасибо Vago
Shikarmo4000 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
решение уравнения методом хорд и методом Ньютона Маргоша)) Общие вопросы Delphi 1 21.04.2010 20:40
Решение методом хорд Тонущий коржик Помощь студентам 0 03.12.2009 20:59
Определить корень уравнения методом Ньютона VNS Помощь студентам 0 02.12.2009 14:35
Решение нелинейных уравнений методом хорд, pascal Антонова Анна Помощь студентам 3 09.12.2007 19:24