C++作业-不用库函数实现 导数

一元连续函数求导。
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");
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务