- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
龙贝格算法实验报告
实验二:龙贝格算法
实验目的
1、通过本实验理解数值积分与微分的基本原理
2、掌握数值积分中常见的复合求积公式的编程实现?
???? 3、掌握龙贝格算法的基本思路和迭代步骤?
实验原理
三、运行结果
代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication4
{
public delegate double F(double x);
class Program
{const double Precision = 0.00000000001;
const int MAXRepeat = 10;
static double f1(double x)
{double s=4/(1+x*x );
return s;
}
static double Romberg(double a,double b, F f)
{
int m,n,k;
double[] y = new double[MAXRepeat];
double h,ep,p,xk,s,q=0;
h=b-a;
y[0]=h*(f(a)+f(b))/2.0;//计算T`1`(h)=1/2(b-a)(f(a)+f(b));
m=1;
n=1;
ep=Precision+1;
while((ep=Precision)(mMAXRepeat))
{
p=0.0;
for(k=0;kn;k++)
{
xk = a + (k + 0.5) * h; // n-1
p = p + f(xk); //计算∑f(xk+h/2),T
} // k=0
p = (y[0] + h * p) / 2.0; //T`m`(h/2),变步长梯形求积公式
s = 1.0;
for (k = 1; k = m; k++)
{
s = 4.0 * s;// pow(4,m)
q = (s * p - y[k - 1]) / (s - 1.0);//[pow(4,m)T`m`(h/2)-T`m`(h)]/[pow(4,m)-1],2m阶牛顿柯斯特公式,即龙贝格公式
y[k - 1] = p;
p = q;
}
ep = Math.Abs(q - y[m - 1]);//前后两步计算结果比较求精度
m = m + 1;
y[m - 1] = q;
n = n + n; // 2 4 8 16
h = h / 2.0;//二倍分割区间
}
return q;
}
static void Main(string[] args)
{
double a, b, result;
Console.WriteLine(请输入积分下限:);
a = Convert.ToDouble(Console.ReadLine());
Console.WriteLine(请输入积分上限:);
b = Convert.ToDouble(Console.ReadLine());
result = Romberg(a, b, new F(f1));
Console.Write(定积分计算结果为:{0}:, result);
Console.ReadLine();
}
}
}
分析
本次试验使我认识到了计算机计算能力的强大,通过本次实验对数值积分与微分的基本原理有了深刻理解。基本上掌握数值积分中常见的复合求积公式的编程方法。掌握了龙贝格算法的基本思路和迭代步骤;使自己编程与上机调试能力有了很大提高。
文档评论(0)