Использование деления пополам, когда функция опирается на атрибут класса и имеет дополнительные аргументы

Я пытаюсь использовать метод Boost Bisection, описанный Вот.

Я видел несколько примеров того, как заставить это работать, например. Как использовать биссекцию?, но я не понимаю, как применить их к моей конкретной установке.

Вот набросок кода, который иллюстрирует то, что я пытаюсь сделать.

class Model {
double b;
double root;
public:
double func(double x, double c);
void solve(void);
};double Model::func(double x, double c) {
return (x*x*x + (b*x) + c);
}

void Model::solve(void) {

double c;

b = 2.;
c = 1.;

// root = bisect(func(), from, to, ...);
// where the first argument to func() is what we want to find the root over
// and the second argument to func() is c

}

int main(void) {
Model model;
model.solve();
}

Функция-член solve() нужно найти корень функции-члена func(), func() имеет две важные особенности:

  1. Опирается на атрибут класса b
  2. У него есть второй аргумент c это определяется в solve(), Я хочу сохранить этот второй аргумент исправленным при поиске корня

Как мне реализовать метод деления пополам в этом контексте? это Ответ, похоже, предполагает, что boost :: bind может решить часть проблемы, но я недостаточно понимаю, чтобы понять, как применить ее к моей проблеме.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector