数值积分的应用_计算方法论文.doc

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

数值微积分 一、知识归纳 数值微分 机械求积公式 Newton-Cotes公式 变步长求积法 Gauss求积公式 求积公式 为求积节点,求积系数 梯形公式: Simpson公式 3.代数精度法 若一个求积公式次数不超过多项式f(x),但是对次数为+1的多项式不精确成立,则称该求积公式具有次代数精度。 4.求积法 其中, :+1个节点的求积公式为插值型的充要条件是该公式至少有代数精度。 Newton-Cotes公式 N=1, N=2时,Simpson公式 复合梯形公式 复合Simpson公式 6.变步长积分法 1)变步长梯形公式: (2)Romberg算法为二k次积分区间[a,b]后利用复合梯形公式所得积分逼近值,称之为梯形值,将梯形值序列m次外推后所得积分逼近值,即有 Gauss求积公式 +1次代数精度的插值型求积公式成为auss型求积公式,其···,auss点。 区间-1,1]上的auss点n=0,1,2...)为零点的+1次多项式成为egendre多项式。系数egendre多项式唯一地表示成 MATLAB编程实现与应用 MATLAB是由MathWorks公式开发的一种主要用于数值计算及可视化图形处理的工程语言,是当今最优秀的科技应用软件之一。它将数值计算、矩阵运算、图形图像处理、信号处理和仿真等诸多强大的功能集成在较易使用的交互计算机环境中,为科学研究、工程应用提供了一种功能强、效率高的编程工具。 下面我们将各种求积算法通过MATLAB软件编程实现,以下程序均用MATLAB7.0编写,以下总共编写了六个算法程序,为了体现程序的正确性,以下程序都以为例进行运算。原积分的精确值为 1.Newton-Cotes求积公式的MATLAB实现 先用M文件定义一个名为f1.m的函数: % i是要调用第几个被积函数g(i),x function f=f1(i,x) g(1)=sqrt(x); if x==0 g(2)=1; else g(2)=sin(x)/x; end g(3)=4/(1+x^2); f=g(i); 程序一: function [C,g]=NCotes(a,b,n,m) % a,b % n是子区间的个数; % m是调用上面第几个被积函数; % 当n=1时计算梯形公式;当n=2时计算Simpson公式,以此类推; i=n; h=(b-a)/i; z=0; for j=0:i x(j+1)=a+j*h; s=1; if j==0 s=s; else for k=1:j s=s*k; end end r=1; if i-j==0 r=r; else for k=1:(i-j) r=r*k; end end if mod((i-j),2)==1 q=-(i*s*r); else q=i*s*r; end y=1; for k=0:i if k~=j y=y*(sym(t)-k); end end l=int(y,0,i); C(j+1)=l/q; z=z+C(j+1)*f1(m,x(j+1)); end g=(b-a)*z 1)当输入,时,即在MATLAB命令窗口输入 NCotes(0,1,1,2)即可得用梯形公式的积分值和相应Cotes系数 如图3.1 2)当输入,时,即在MATLAB命令窗口输入 NCotes(0,1,2,2)即可得用Simpson公式的积分值和相应Cotes系数 如图3.2 3)当输入,时,即在MATLAB命令窗口输入 NCotes(0,1,4,2)即可得用Cotes公式的积分值和相应Cotes系数 如图3.3 图 3.1 图 3.2 图3.3 2.复合求积公式的MATLAB实现 (1)复合梯形求积公式的MATLAB实现 通过的个等步长节点逼近积分 其中,,。 程序二: function s=trapr1(f,a,b,n) % f是被积函数; % a,b分别为积分的上下限; % n是子区间的个数; % s是梯形总面积; h=(b-a)/n; s=0; for k=1:(n-1) x=a+h*k; s=s+feval(f,x); end format long s=h*(feval(f,a)+feval(f,b))/2+h*s; 先用M文件定义一个名为f.m的函数: function y=f(x) if x==0 y=1; else y=sin(x)

文档评论(0)

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

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

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档