численные методы. решение нелинейных уравнений

<< < (9/11) > >>

VerZer:
функцию взятия по модулю забыл(abs), поэтому и со скобками тогда фигня случилась

leahov:
то есть должно выглядить так?

Код
 if (abs (f(a)*fd2x(a) == f(a)*fd2x(a)) &&
     (abs f(b)*fd2x(b) == f(b)*fd2x(b)))
 {
   ShowMessage("Данные: a и b неправильные");
   return;
 }
 

VerZer:
Код:

  if ((abs(f(a)*fd2x(a)) == f(a)*fd2x(a)) &&
      (abs(f(b)*fd2x(b)) == f(b)*fd2x(b)))
  {
    ShowMessage("Данные: a и b неправильные");
    return;
  }

leahov:
всё равно дает "Данные: a и b неправильные"

leahov:
если убрать вот это
Код
if ((abs(f(a)*fd2x(a)) == f(a)*fd2x(a)) &&
     (abs(f(b)*fd2x(b)) == f(b)*fd2x(b)))
 {
   ShowMessage("Данные: a и b неправильные");
   return;
 }
 
то в принципе запускается, но не считает, если здесь в label убрать нули

Код
while (absolute(x0-t0) < eps)
{
 x0 = (x0+t0)/2;
 t0 = f((x0+t0)/2);
 step = step + 1;
}
Label28->Caption = x0;
Label30->Caption = t0;
Label32->Caption = step;
 
}
 
то получается какой то расчет и всё время со степом 1. Явно математическая часть не верна. Кто знает как её реализовать, подскажите пожалуйста

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница