C数值计算算法编程数值积分类Integral的设计.doc

C数值计算算法编程数值积分类Integral的设计.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C数值计算算法编程数值积分类Integral的设计

C#数值计算算法编程数值积分类Integral的设计 namespace CSharpAlgorithm.Algorithm { /** * 计算数值积分的类Integral * * @author 周长发 * @version 1.0 */ public abstract class Integral { /** * 抽象函数:计算积分函数值,必须在派生类中覆盖该函数 * * @param x - 函数变量 * @return double型,对应的函数值 */ public abstract double Func(double x); /** * 基本构造函数 */ public Integral() { } /** * 变步长梯形求积法 * * 调用时,须覆盖计算函数f(x)值的虚函数double Func(double x) * * @param a - 积分下限 * @param b - 积分上限,要求ba * @param eps - 积分精度要求 * @return double 型,积分值 */ public double GetValueTrapezia(double a, double b, double eps) { int n,k; double fa,fb,h,t1,p,s,x,t=0; // 积分区间端点的函数值 fa=Func(a); fb=Func(b); // 迭代初值 n=1; h=b-a; t1=h*(fa+fb)/2.0; p=eps+1.0; // 迭代计算 while (p=eps) { s=0.0; for (k=0;k=n-1;k++) { x=a+(k+0.5)*h; s=s+Func(x); } t=(t1+h*s)/2.0; p=Math.Abs(t1-t); t1=t; n=n+n; h=h/2.0; } return(t); } /** * 变步长辛卜生求积法 * * 调用时,须覆盖计算函数f(x)值的虚函数double Func(double x) * * @param a - 积分下限 * @param b - 积分上限,要求ba * @param eps - 积分精度要求 * @return double 型,积分值 */ public double GetValueSimpson(double a, double b, double eps) { int n,k; double h,t1,t2,s1,s2=0,ep,p,x; // 计算初值 n=1; h=b-a; t1=h*(Func(a)+Func(b))/2.0; s1=t1; ep=eps+1.0; // 迭代计算 while (ep=eps) { p=0.0; for (k=0;k=n-1;k++) { x=a+(k+0.5)*h; p=p+Func(x); } t2=(t1+h*p)/2.0; s2=(4.0*t2-t1)/3.0; ep=Math.Abs(s2-s1); t1=t2; s1=s2; n=n+n; h=h/2.0; } return(s2); } /** * 自适应梯形求积法 * * 调用时,须覆盖计算函数f(x)值的虚函数double Func(double x) * * @param a - 积分下限 * @param b - 积分上限,要求ba * @param d - 对积分区间进行分割的最小步长,当子区间的宽度 * 小于d时,即使没有满足精度要求,也不再往下进行分割 * @param eps - 积分精度要求 * @return double 型,积分值 */ public double GetValueATrapezia(double a, double b, double d,

您可能关注的文档

文档评论(0)

almm118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档