题目详情
设函数在x的近似导数为:
,其中δ=0.001
编写计算函数在某点近似导数的通用函数。
编写主函数,输入自变量x的值,调用函数名,计算sin(x),cos(x),sin(x)+cos(x)在该点的近似导数。数据类型用double。
输入格式:
一个实数
输出格式:
三个实数,用空格隔开。
输入样例:
1.57
输出样例:
0.000796327 -1 -0.999203
- 下面代码(使用了指向函数的指针)
#include <iostream>
#include <cmath>
using namespace std;
#define DELTA 0.001
double Derivatives(double (*fun)(double x), double x){
double fenzi = (*fun)(x+DELTA)-(*fun)(x-DELTA);
double fenmu = 2*DELTA;
double ans = fenzi/fenmu;
return ans;
}
int main()
{
double x;
cin>>x;
for(int i=0;i<3;i++)
{
switch(i)
{
case 0:cout<<Derivatives(sin,x)<<" ";break;
case 1:cout<<Derivatives(cos,x)<<' ';break;
case 2:cout<<Derivatives(sin,x)+Derivatives(cos,x);break;
}
}
return 0;
}