数值计算

求导只需将 f 中的函数替换即可。


/*本程序使用理查森外推方法就求微分,程序的核心是运用G[i][j] =
(pow(4, i) * G[i][j-1] - G[i-1][j-1])/(pow(4, i)-1)*/
#include
#include
#include
using namespace std;
const double le = 1e-10;


template T** Allocation2D(int m, int n){
T **a;
a = new T*[m];
for(int i=0; i a[i] = new T[n];
return a;
}


double f(double x);
void WaiTui(double t, double h);
void Clear(double **G, int m);

int main(){
double t, h;
cout<<"请输入所求值的导数:";
cin>>t;
cout<<"请输入步长的值:";
cin>>h;
WaiTui(t, h);
return 0;
}


/********************************函数f = sin(x)/x *******************************/
double f(double x){
double result;
result = sin(x)/x;
return result;
}


void WaiTui(double t, double h){
int i, k = 0;
double **G;
G = Allocation2D(10, 10);
G[0][0] = (f(t + h) - f(t - h)) / (2 * h);
cout< for(k=1; ; k++){
G[0][k] = (f(t + h / 2) - f(t - h / 2)) / h;
cout< for(i=1; i<=k; i++){
G[i][k-i] = (pow(4, i) * G[i-1][k-i+1] - G[i-1][k-i]) / (pow(4, i)-1);
cout< }
cout< if(fabs(G[i-1][k-i+1] - G[i-2][k-i+2]) < le ){
cout<<"计算结果为:"< break;
}
else{
h = h / 2;
}
}
cout<<"h的值为:"<

相关文档

  • 使用moveit控制gazebo仿真环境下的ur机械臂运动
  • 网页版qq登录
  • 桂林中考文言文阅读习题及答案译文
  • poj2888 Magic Bracelet
  • 简短的银行员工自我鉴定
  • (UART?与?USART有什么区别)&(SPI、I2C、UART三种串行总线协议的区别)
  • 栀子花叶子发黄花朵变黄掉落怎么办
  • 柴犬饲养
  • logback debug 日志没有信息
  • 关于农民工创业优惠政策
  • 我来到了2100年
  • 凌霄花花语 凌霄花花语是什么
  • 教师节快乐九年级学生作文范文10篇
  • 我十岁了手抄报主题 我十岁了手抄报主题怎么画
  • 2018年,值得推荐的最佳 Top 9 Mac应用。
  • 帕金森是什么?帕金森的症状有哪些?
  • 快手个性签名大全张粉霸气 长得姥姥不疼舅舅不爱的
  • 公司的公告怎么写
  • 在教研组长会议上的讲话
  • 单链表经典面试题
  • 英语四级作文复习必备好句型(1)
  • 奶奶,我?是你的天
  • 学校运动会开幕式主持词多篇新版
  • 保利威视云直播的python API
  • 阅读:这将是一场革命
  • 女生鼻子有黑头怎么办
  • 高中经典励志名言
  • 春雨的印记
  • 设计院股权转让协议
  • IE6/IE7下position:absolute;绝对定位偏移、不显示问题
  • 电脑版