文档详情

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

发布:2018-01-10约5.64千字共14页下载文档
文本预览下载声明
数值微积分 一、知识归纳 数值微分 机械求积公式 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)
显示全部
相似文档