Mình là newbie. Cho mình hỏi, bài này là dùng hàm có tham số là hàm để tính nhiều phương trình cùng lúc. Trong trường hợp này là dành cho các phương trình có điểm chung là có nghiệm duy nhất trên đoạn (a; b).
Tuy nhiên, ở dòng gọi hàm phía dưới, tại sao khi gọi hàm Func1
thì lại không có tham số?
Dòng có làm dấu phía dưới.
x = Solve(Func1, -1, 0); //Dòng này cần xem, Func không có tham số
Toàn bộ code
double Func1(double x)
{
return pow(x,5) + 7*x + 1; //Hàm x^5 + 7x +1
}
double Func2(double x)
{
....
//Ttự nhưng với ptr khác
}
double Solve(double F(double x), double a, double b)
{
double left = a, right = b;
while(right-left > Epsilon)
{
double mid = (left+right)/2;
if(F(left)*F(mid) < 0) //gọi hàm F trong hàm Solve
right = mid;
else
left = mid;
}
return (left+right)/2;
}
void main()
{
double x;
x = Solve(Func1, -1, 0); //Dòng này cần xem, Func không có tham số
cout << x;
x = Solve(Func2, 2, 0); //Ttự
....
}