如下哪些派生类可以用于求f(x) = sin(2*x)+cos(5*x)在区间[0,1]上的定积分。 A class Simp1 : public CSimpson{ public: Simp1(double ra, double rb) : CSimpson(ra, rb, 50000) {} double f(double x) { return sin(2*x)+cos(5*x); } }; B class Simp1 : public CSimpson{ public: Simp1(double ra, double rb, int rn) : CSimpson(ra, rb, rn) {} double f(double x) { return sin(x)+cos(x); } }; C class Simp1 : public CSimpson{ public: Simp1(double ra, double rb, int rn) : CSimpson(ra, rb, rn) {} double f(double x) { return sin(2*x)+cos(5*x); } }; D class Simp1 : public CSimpson{ public: Simp1() : CSimpson(0, 2, 50000) {} double f(double x) { return sin(2*x)+cos(5*x); } };
时间: 2024-03-08 20:45:11 浏览: 160
正确的选项是C和D。
选项A和B中的派生类实现了f(x)的具体形式,但是在构造函数中指定的区间和分割数并不符合题目要求的区间[0,1],因此不能用于求f(x)在区间[0,1]上的定积分。
选项C中的派生类Simp1指定了区间[ra, rb]和分割数rn,并实现了f(x)的具体形式,因此可以用于求f(x) = sin(2*x)+cos(5*x)在区间[0,1]上的定积分。
选项D中的派生类Simp1没有指定区间和分割数,但是在构造函数中指定了区间[0,2]和分割数50000,因此也可以用于求f(x) = sin(2*x)+cos(5*x)在区间[0,1]上的定积分。
阅读全文