龙贝格积分法的C 语言实现.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
#include iostream #include iomanip #include COMPLEX using namespace std; typedef double TYPE; #define MAX_ROW 20 TYPE g_Interval_Lower, g_Interval_Upper; // 数值积分的区间上下限 TYPE g_Epsilon; int g_InitalNum; // T00 中的等份区间数。 TYPE R[MAX_ROW][MAX_ROW]; TYPE T_Table[MAX_ROW * MAX_ROW]; // 下三角矩阵的一维压缩存储。 // 积分函数 f(x) 在 点 x 处的值。 TYPE func(TYPE x) { // 1/x 在[1,3]上积分。 return 1 / x; // sin(x) / x 在 [0,1]上积分。if(0 == x) return 1; return sin(x) / x; } void main() { cout 请输入数值积分区间的下界:\n; cin g_Interval_Lower; cout 请输入数值积分区间的上界:\n; cin g_Interval_Upper; cout 请输入复化梯形求积公式的初始等分数:\n; cin g_InitalNum; cout 请输入 Romberg 积分的误差上限:\n; cin g_Epsilon; cout \n 正在开始计算 Romberg 数值积分表:\n; TYPE h = (g_Interval_Upper - g_Interval_Lower) / g_InitalNum; int m = 1; TYPE T00 = 0.5 * h * (func(g_Interval_Lower) + func(g_Interval_Upper)); TYPE sum = 0; for(int k = 1; k = g_InitalNum-1; k++) sum = sum + func(g_Interval_Lower + k * h); T00 = T00 + sum * h; R[0][0] = T00; // T_Table[0] = T00; // 计算方式参考教材(《计算方法》张池平编著)第 61 页的 T 数表,逐行依次从左至右计算得到。 // 计算公式采用上课时补充的改正后的那个公式。 TYPE hk = h; int max_Iters = g_InitalNum; int nStopRow = 0, nIndex = 0; for(m = 1; m MAX_ROW; m++) { // R[0][m] 表示T 型积分 T(0)(m); sum = 0; hk = hk * 0.5; max_Iters = max_Iters * 2; for(int kk = 1; kk = max_Iters / 2; kk++) sum += func(g_Interval_Lower + (2 * kk - 1) * hk); TYPE Hn = 2* hk * sum; R[0][m] = 0.5 * (R[0][m-1] + Hn); // T_Table[] nStopRow = m; for(k = m - 1; k = 0; k--) { // R[m][k]表示 T 型积分 T(m)(k); int nPower4 = pow(4, m - k); R[m - k][k] = (nPower4 * R[m-k-1][k+1] - R[m-k-1][k]) / (nPower4 - 1); } if(fabs(R[m][0] - R[m-1][0]) g_Epsilon) { nStopRow = m; break; } } cout Romberg 数值积分表如下:\n; for(m = 0; m = nStopRow; m++) { for(k = m; k = 0; k--) cout setprecision(10) setiosflags(ios::showpoint) setiosflags(ios::left) setw(13) R[m - k][k]; cout endl; } }

文档评论(0)

hao187 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档