一元连续函数求导。
1)编写一个函数用于计算
2)编写一个函数用于计算
3)编写一个函数用于计算(提示:使用exp函数)
4)定义一个函数指针类型,可以表示以上三个函数。
5)编写一个函数,计算任意一个一元连续函数在给定点处的导数
。要求使用函数指针作为参数。
(提示:,
是一个很小的数,比如
关于
typedef double (*pf)(const double);的解释:
定义一个函数指针pf,它指向的函数有一个double类型参数,返回值也是double类型。
#include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;
// 函数声明
typedef double (*pf)(const double);
double calcDerivative(pf,const double);
// 待处理函数
double f1(const double x){
return sin(x);
}
double f2(const double x){
return 2*x+1;
}
double f3(const double x){
return 1 / (1 + exp(-x));
}
// 导数计算
double calcDerivative(pf f, const double x){
double delta = 1.0 / 10000000;
double num = (f(x + delta) - f(x - delta)) / (2 * delta);
return num;
}
void main(){
double num1 = calcDerivative(f1, 3.1415926);
double num2 = calcDerivative(f2, 0);
double num3 = calcDerivative(f3, 0);
cout << "f1'(3.1415926) = " << num1 << endl;
cout << "f2'(0) = " << num2 << endl;
cout << "f3'(0) = " << num3 << endl;
system("pause");
} 
京公网安备 11010502036488号