数值计算基础的实验之一 数值积分 变步长梯形法求积分的C语言实验 复化梯形法或者叫复合梯形法 代码摘要 double Multy(double a, double b) { double h = b - a, T[2]; T[0] = h * (f(b) + f(a)) / 2.0; // 求第一个Tn,用T[0]存储 int m = 1, n = 1; // m为迭代次数, n为子区间个数 do { T[1] = 0.0; for (int i=0; i<n; i++) // 求Hn, 用buf存储 T[1] += f(a + (i + 0.5) * h); T[1] = (T[0] + h * T[1]) / 2.0; // 求T2n = (Tn+Hn)/2 T[1] -= T[0]; // 精彩代码 T[0] += T[1]; // T[0] 变成 T2n T[1] = fabs(T[1]); // T[1] 变成 |T2n - Tn| n *= 2; h /= 2; } while ((m++ <= MAX) && (T[1] > EPS)); // |T2n - Tn|精度控制 m迭代次数控制 return T[0]; }
评论星级较低,若资源使用遇到问题可联系上传者,3个工作日内问题未解决可申请退款~
- 1
- 2
前往页