文档库 最新最全的文档下载
当前位置:文档库 › matlab实验三定积分的近似计算

matlab实验三定积分的近似计算

matlab实验三定积分的近似计算
matlab实验三定积分的近似计算

实验三定积分的近似计算

一、问题背景与实验目的

利用牛顿—莱布尼兹公式虽然可以精确地计算定积分的值,但它仅适用于被积函数的原函数能用初等函数表达出来的情形.如果这点办不到或者不容易办到,这就有必要考虑近似计算的方法.在定积分的很多应用问题中,被积函数甚至没有解析表达式,可能只是一条实验记录曲线,或者是一组离散的采样值,这时只能应用近似方法去计算相应的定积分.

本实验将主要研究定积分的三种近似计算算法:矩形法、梯形法、抛物线法.对于定积分的近似数值计算,Matlab有专门函数可用.

二、相关函数(命令)及简介

1.sum(a):求数组a的和.

2.format long:长格式,即屏幕显示15位有效数字.

(注:由于本实验要比较近似解法和精确求解间的误差,需要更高的精度).3.double():若输入的是字符则转化为相应的ASCII码;若输入的是整型数值则转化为相应的实型数值.

4.quad():抛物线法求数值积分.

格式:quad(fun,a,b) ,注意此处的fun是函数,并且为数值形式的,所以使用*、/、^等运算时要在其前加上小数点,即.*、./、.^等.

例:Q = quad('1./(x.^3-2*x-5)',0,2);

5.trapz():梯形法求数值积分.

格式:trapz(x,y)

其中x为带有步长的积分区间;y为数值形式的运算(相当于上面介绍的函数fun)

例:计算

0sin()d

x x

π?

x=0:pi/100:pi;y=sin(x);

trapz(x,y)

6.dblquad():抛物线法求二重数值积分.

格式:dblquad(fun,xmin,xmax,ymin,ymax),fun可以用inline定义,也可以通过某个函数文件的句柄传递.

例1:Q1 = dblquad(inline('y*sin(x)'), pi, 2*pi, 0, pi)

顺便计算下面的Q2,通过计算,比较Q1 与Q2结果(或加上手工验算),找出积分变量x、y的上下限的函数代入方法.

Q2 = dblquad(inline('y*sin(x)'), 0, pi, pi, 2*pi)

例2:Q3 = dblquad(@integrnd, pi, 2*pi, 0, pi)

这时必须存在一个函数文件:

function z = integrnd(x, y)

z = y*sin(x);

7.fprintf(文件地址,格式,写入的变量):把数据写入指定文件.例:x = 0:.1:1;

y = [x; exp(x)];

fid = fopen('','w'); %打开文件

fprintf(fid,'%6.2f %12.8f\n',y); %写入

fclose(fid) %关闭文件

8.syms 变量1 变量2 …:定义变量为符号.

9.sym('表达式'):将表达式定义为符号.

解释:Matlab中的符号运算事实上是借用了Maple的软件包,所以当在Matlab中要对符号进行运算时,必须先把要用到的变量定义为符号.

10.int(f,v,a,b):求f关于v积分,积分区间由a到b.

11.subs(f,'x',a):将a 的值赋给符号表达式f 中的x,并计算出值.若简单地使用subs(f),则将f的所有符号变量用可能的数值代入,并计算出值.

三、实验内容

1. 矩形法

根据定积分的定义,每一个积分和都可以看作是定积分的一个近似值,即

1()d ()n

b

i i a i f x x f x ?==?∑?

在几何意义上,这是用一系列小矩形面积近似小曲边梯形的结果,所以把这个近似计算方法称为矩形法.不过,只有当积分区间被分割得很细时,矩形法才有一定的精确度.

针对不同i ?的取法,计算结果会有不同,我们以 1

2 0d 1x x +?

为例(取100=n ), (1) 左点法:对等分区间 b x i n

a b a x x a x n i =<<-+=<<<=ΛΛ10, 在区间],[1i i x x -上取左端点,即取1-=i i x ?,

1

2 01d ()1n i i i x f x x ?==?≈+∑?, 理论值 1

2 0d 14x x π=+?,此时计算的相对误差 0.7878939967307840.0031784

ππ-=≈ (2)右点法:同(1)中划分区间,在区间],[1i i x x -上取右端点,即取i i x =?,

1

2 01d ()1n i i i x f x x ?==?≈+∑

?, 理论值 1

2 0d 14x x π=+?,此时计算的相对误差 0.7828939967307840.0031884ππ-=≈

(3)中点法:同(1)中划分区间,在区间1[,]i i x x -上取中点,即取12

i i i x x ?-+=

, 12 01d ()1n i i i x f x x ?==?≈+∑

?,

理论值 1

2 0d 14x x π=+?,此时计算的相对误差 60.785400246730784 2.653104

ππ--=

≈? 如果在分割的每个小区间上采用一次或二次多项式来近似代替被积函数,那么可以期望得到比矩形法效果好得多的近似计算公式.下面介绍的梯形法和抛物线法就是这一指导思想的产物.

2. 梯形法

等分区间

b x i n a b a x x a x n i =<<-+=<<<=ΛΛ10,n

a b x -=? 相应函数值为

n y y y ,,,10Λ(n i x f y i i ,,1,0),(Λ==).

曲线)(x f y =上相应的点为

n P P P ,,,10Λ(n i y x P i i i ,,1,0),,(Λ==)

将曲线的每一段弧i i P P 1-用过点1-i P ,i P 的弦i i P P 1-(线性函数)来代替,这使得每个],[1i i x x -上的曲边梯形成为真正的梯形,其面积为

x y y i i ??+-2

1,n i ,,2,1Λ=. 于是各个小梯形面积之和就是曲边梯形面积的近似值,

11 11

()d ()22n n b i i i i a i i y y x f x x x y y --==+?≈??=+∑∑?

, 即 011 ()d ()22b n n a y y b a f x x y y n --≈++++?

L , 称此式为梯形公式. 仍用 12

0d 1x x +?的近似计算为例,取100=n ,

1

0112 0d ()122n n y y x b a y y x n --≈++++=+?L , 理论值 1

2 0d 14x x π=+?,此时计算的相对误差 60.785393996730784 5.305104

ππ--=≈? 很显然,这个误差要比简单的矩形左点法和右点法的计算误差小得多.

3. 抛物线法

由梯形法求近似值,当)(x f y =为凹曲线时,它就偏小;当)(x f y =为凸曲线时,它就偏大.若每段改用与它凸性相接近的抛物线来近似时,就可减少上述缺点,这就是抛物线法.

将积分区间],[b a 作n 2等分,分点依次为

b x i n a b a x x a x n i =<<-+

=<<<=2102ΛΛ,n

a b x 2-=?, 对应函数值为 n y y y 210,,,Λ(n i x f y i i 2,,1,0),(Λ==),

曲线上相应点为

n P P P 210,,,Λ(n i y x P i i i 2,,1,0),,(Λ==).

现把区间],[20x x 上的曲线段)(x f y =用通过三点),(000y x P ,),(111y x P ,),(222y x P 的抛物线

)(12x p x x y =++=γβα

来近似代替,然后求函数)(1x p 从0x 到2x 的定积分:

2

0 1 ()d x x p x x =?20 2 ()d x x x x x αβγ++=?

)()(2)(30220223032x x x x x x -+-+-γβα ]4)(2)()()[(6

2022022202002γβαγβαγβα++++++++++-=x x x x x x x x x x 由于2201x x x +=

,代入上式整理后得

2

0 1 ()d x x p x x ?)](4)()[(6

12122202002γβαγβαγβα++++++++-=x x x x x x x x )4(621002y y y x x ++-=

)4(6210y y y n a b ++-= 同样也有

4

2 2 ()d x x p x x ?)4(6432y y y n

a b ++-= ……

222 ()d n n x n x p x x -?

)4(621222n n n y y y n a b ++-=-- 将这n 个积分相加即得原来所要计算的定积分的近似值: 222 22212 11()d ()d (4)6i i n n b x i i i i a x i i b a f x x p x x y y y n ---==-≈=++∑∑?

?, 即

021******* ()d [4()2()]6b n n n a b a f x x y y y y y y y y n

---≈++++++++?L L 这就是抛物线法公式,也称为辛卜生(Simpson )公式. 仍用 1

2

0d 1x x +?的近似计算为例,取100=n , 102132124222 0d [4()2()]16n n n x b a y y y y y y y y x n ---≈+++++++++?L L =, 理论值 1

2 0d 14x x π=+?,此时计算的相对误差 160.785398163397454 2.827104

ππ--=

≈? 4. 直接应用Matlab 命令计算结果

(1) 数值计算 1

2 0d .1x x +? 方法1:int('1/(1+x^2)','x',0,1) (符号求积分)

方法2:quad('1./(1+x.^2)',0,1) (抛物线法求数值积分)

方法3:x=0::1;

y=1./(1+x.^2);

trapz(x,y) (梯形法求数值积分)

(2)数值计算 2 1

2 0 1d d x x y y -+?? 方法1:int(int('x+y^2','y',-1,1),'x',0,2) (符号求积分)

方法2:dblquad(inline('x+y^2'),0,2,-1,1) (抛物线法二重数值积分)

四、自己动手

1. 实现实验内容中的例子,即分别采用矩形法、梯形法、抛物线法计算 1

2 0d 1x x +?,取258=n ,并比较三种方法的精确程度.

2. 分别用梯形法与抛物线法,计算 2 1d x x ?,取120=n .并尝试直接使用函数trapz()、quad()进行计算求解,比较结果的差异.

3. 试计算定积分 0sin d x x x +∞?

.(注意:可以运用trapz()、quad()或附录程序求解吗为什么)

4. 将 1

2 0d 1x x +?的近似计算结果与Matlab 中各命令的计算结果相比较,试猜测Matlab 中的数值积分命令最可能采用了哪一种近似计算方法并找出其他例子支持你的观点.

5. 通过整个实验内容及练习,你能否作出一些理论上的小结,即针对什么类型的函数(具有某种单调特性或凹凸特性),用某种近似计算方法所得结果更接近于实际值

6. 学习的程序设计方法,尝试用函数 sum 改写附录1和附录3的程序,避免for 循环.

五、附录

附录1:矩形法(左点法、右点法、中点法)()

format long

n=100;a=0;b=1;

inum1=0;inum2=0;inum3=0;

syms x fx

fx=1/(1+x^2);

for i=1:n

xj=a+(i-1)*(b-a)/n; %左点

xi=a+i*(b-a)/n; %右点

fxj=subs(fx,'x',xj); %左点值

fxi=subs(fx,'x',xi); %右点值

fxij=subs(fx,'x',(xi+xj)/2); %中点值

inum1=inum1+fxj*(b-a)/n;

inum2=inum2+fxi*(b-a)/n;

inum3=inum3+fxij*(b-a)/n;

end

inum1

inum2

inum3

integrate=int(fx,0,1)

integrate=double(integrate)

fprintf('The relative error between inum1 and real-value is about: %d\n\n',...

abs((inum1-integrate)/integrate))

fprintf('The relative error between inum2 and real-value is about: %d\n\n',...

abs((inum2-integrate)/integrate))

fprintf('The relative error between inum3 and real-value is about: %d\n\n',...

abs((inum3-integrate)/integrate))

附录2:梯形法()

format long

n=100;a=0;b=1;inum=0;

syms x fx

fx=1/(1+x^2);

for i=1:n

xj=a+(i-1)*(b-a)/n;

xi=a+i*(b-a)/n;

fxj=subs(fx,'x',xj);

fxi=subs(fx,'x',xi);

inum=inum+(fxj+fxi)*(b-a)/(2*n);

end

inum

integrate=int(fx,0,1)

integrate=double(integrate)

fprintf('The relative error between inum and real-value is about: %d\n\n',...

abs((inum-integrate)/integrate))

附录2sum:梯形法(),利用求和函数,避免for 循环

format long

n=100;a=0;b=1;

syms x fx

fx=1/(1+x^2);

i=1:n;

xj=a+(i-1)*(b-a)/n; %所有左点的数组

xi=a+i*(b-a)/n; %所有右点的数组

fxj=subs(fx,'x',xj); %所有左点值

fxi=subs(fx,'x',xi); %所有右点值

f=(fxi+fxj)/2*(b-a)/n; %梯形面积

inum=sum(f) %加和梯形面积求解

integrate=int(fx,0,1)

integrate=double(integrate)

fprintf('The relative error between inum and real-value is about: %d\n\n',...

abs((inum-integrate)/integrate))

附录3:抛物线法()

format long

n=100;a=0;b=1;inum=0;

syms x fx

fx=1/(1+x^2);

for i=1:n

xj=a+(i-1)*(b-a)/n; %左点

xi=a+i*(b-a)/n; %右点

xk=(xi+xj)/2; %中点

fxj=subs(fx,'x',xj);

fxi=subs(fx,'x',xi);

fxk=subs(fx,'x',xk);

inum=inum+(fxj+4*fxk+fxi)*(b-a)/(6*n);

end

inum

integrate=int(fx,0,1)

integrate=double(integrate)

fprintf('The relative error between inum and real-value is about: %d\n\n',...

abs((inum-integrate)/integrate))

用递推公式计算定积分(matlab版)

用递推公式计算定积分 实验目的: 1.充分理解不稳定的计算方法会造成误差的积累,在计算过程中会导致误差的迅速增加,从而使结果产生较大的误差。 2.在选择数值计算公式来进行近似计算时,应学会选用那些在计算过程中不会导致误差迅速增长的计算公式。 3.理解不稳定的计算公式造成误差积累的来源及具体过程; 4.掌握简单的matlab语言进行数值计算的方法。 实验题目: 对n=0,1,2,…,20,计算定积分: 实验原理: 由于y(n)= = – 在计算时有两种迭代方法,如下: 方法一: y(n)=– 5*y(n-1),n=1,2,3, (20) 取y(0)= = ln6-ln5 ≈ 0.182322 方法二: 利用递推公式:y(n-1)=-*y(n),n=20,19, (1) 而且,由 = * ≤≤* =

可取:y(20)≈*()≈0.008730. 实验容: 对算法一,程序代码如下: function [y,n]=funa() syms k n t; t=0.182322; n=0; y=zeros(1,20); y(1)=t; for k=2:20 y(k)=1/k-5*y(k-1); n=n+1; end y(1:6) y(7:11) 对算法二,程序代码如下: %计算定积分; %n--表示迭代次数; %y用来存储结果; function [y,n]=f(); syms k y_20;

y=zeros(21,1); n=1; y_20=(1/105+1/126)/2; y(21)=y_20; for k=21:-1:2 y(k-1)=1/(5*(k-1))-y(k)/5; n=n+1; end 实验结果: 由于计算过程中,前11个数字太小,后9个数字比较大,造成前面几个数字只显示0.0000的现象,所以先输出前6个,再输出7—11个,这样就能全部显示出来了。 算法一结果: [y,n]=funa %先显示一y(1)—y(6) ans = 0.1823 -0.4116 2.3914 -11.7069 58.7346

计算方法_全主元消去法_matlab程序

%求四阶线性方程组的MA TLAB程序 clear Ab=[0.001 2 1 5 1; 3 - 4 0.1 -2 2; 2 -1 2 0.01 3; 1.1 6 2.3 9 4];%增广矩阵 num=[1 2 3 4];%未知量x的对应序号 for i=1:3 A=abs(Ab(i:4,i:4));%系数矩阵取绝对值 [r,c]=find(A==max(A(:))); r=r+i-1;%最大值对应行号 c=c+i-1;%最大值对应列号 q=Ab(r,:),Ab(r,:)=Ab(i,:),Ab(i,:)=q;%行变换 w=Ab(:,c),Ab(:,c)=Ab(:,i),Ab(:,i)=w;%列变换 n=num(i),num(i)=num(c),num(c)=n;%列变换引起未知量x次序变化for j=i:3 Ab(j+1,:)=-Ab(j+1,i)*Ab(i,:)/Ab(i,i)+Ab(j+1,:);%消去过程 end end %最后得到系数矩阵为上三角矩阵 %回代算法求解上三角形方程组 x(4)=Ab(4,5)/Ab(4,4); x(3)=(Ab(3,5)-Ab(3,4)*x(4))/Ab(3,3); x(2)=(Ab(2,5)-Ab(2,3)*x(3)-Ab(2,4)*x(4))/Ab(2,2); x(1)=(Ab(1,5)-Ab(1,2)*x(2)-Ab(1,3)*x(3)-Ab(1,4)*x(4))/Ab(1,1); for s=1:4 fprintf('未知量x%g =%g\n',num(s),x(s)) end %验证如下 %A=[0.001 2 1 5 1; 3 -4 0.1 -2 2;2 -1 2 0.01 3; 1.1 6 2.3 9 4]; %b=[1 2 3 4]'; %x=A\b; %x1= 1.0308 %x2= 0.3144 %x3= 0.6267 %x4= -0.0513

数值积分算法与MATLAB实现陈悦5133201讲解

东北大学秦皇岛分校 数值计算课程设计报告 数值积分算法及MATLAB实现 学院数学与统计学院 专业信息与计算科学 学号5133201 姓名陈悦 指导教师姜玉山张建波 成绩 教师评语: 指导教师签字: 2015年07月14日

1 绪论 数值分析是计算数学的一个主要部分,计算数学是数学科学的一个分支,它研究用计算机求解各种数学问题的数值检索方其理论与软件的实现.而数值分析主要研究数值计算. 现科学技术的发展与进步提出了越来越多的复杂的数值计算问题,这些问题的圆满解决已远人工手算所能胜任,必须依靠电子计算机快速准确的数据处理能力.这种用计算机处理数值问题的方法,成为科学计算.今天,科学计算的应用范围非常广泛,天气预报、工程设计、流体计算、经济规划和预测以及国防尖端的一些科研项目,如核武器的研制、导弹和火箭的发射等,始终是科学计算最为活跃的领域. 1.1 数值积分介绍 数值积分是数值分析的重要环节,实际问题当中常常需要计算积分,有些数值方法,如微分方程和积分方程的求解,也都和积分计算相联系. 求某函数的定积分时,在多数情况下,被积函数的原函数很难用初等函数表达出来,因此能够借助微积分学的牛顿-莱布尼兹公式计算定积分的机会是不多的.另外,许多实际问题中的被积函数往往是列表函数或其他形式的非连续函数,对这类函数的定积分,也不能用不定积分方法求解.由于以上原因,数值积分的理论与方法一直是计算数学研究的基本课题.对微积分学做出杰出贡献的数学大师,如I.牛顿、L.欧拉、C.F.高斯、拉格朗日等人都在数值积分这个领域作出了各自的贡献,并奠定了这个分支的理论基础. 构造数值积分公式最通常的方法是用积分区间上的n 次插值多项式代替被积函数,由此导出的求积公式称为插值型求积公式.特别在节点分布等距的情形称为牛顿-科特斯公式,例如梯形公式(Trapezoidal Approximations)与抛物线公式(Approximations Using Parabolas)就是最基本的近似公式.但它们的精度较差.龙贝格算法是在区间逐次分半过程中,对梯形公式的近似值进行加权平均获得准确程度较高的积分近似值的一种方法,它具有公式简练、计算结果准确、使用方便、稳定性好等优点,因此在等距情形宜采用龙贝格求积公式(Rhomberg Integration).当用不等距节点进行计算时,常用高斯型求积公式计算,它在节点数目相同情况下,准确程度较高,稳定性好,而且还可以计算无穷积分.数值积分还是微分方程数值解法的重要依据.许多重要公式都可以用数值积分方程导出.现探讨数值积分算法以及运用MATLAB软件的具体实现

MATLAB实验三-定积分的近似计算

实验三定积分的近似计算 一、问题背景与实验目的 利用牛顿—莱布尼兹公式虽然可以精确地计算定积分的值,但它仅适用于被积函数的原函数能用初等函数表达出来的情形.如果这点办不到或者不容易办到,这就有必要考虑近似计算的方法.在定积分的很多应用问题中,被积函数甚至没有解析表达式,可能只是一条实验记录曲线,或者是一组离散的采样值,这时只能应用近似方法去计算相应的定积分. 本实验将主要研究定积分的三种近似计算算法:矩形法、梯形法、抛物线法.对于定积分的近似数值计算,Matlab有专门函数可用. 二、相关函数(命令)及简介 1.sum(a):求数组a的和. 2.format long:长格式,即屏幕显示15位有效数字. (注:由于本实验要比较近似解法和精确求解间的误差,需要更高的精度).3.double():若输入的是字符则转化为相应的ASCII码;若输入的是整型数值则转化为相应的实型数值. 4.quad():抛物线法求数值积分. 格式: quad(fun,a,b) ,注意此处的fun是函数,并且为数值形式的,所以使用*、/、^等运算时要在其前加上小数点,即 .*、./、.^等.例:Q = quad('1./(x.^3-2*x-5)',0,2); 5.trapz():梯形法求数值积分. 格式:trapz(x,y) 其中x为带有步长的积分区间;y为数值形式的运算(相当于上面介绍的函数fun) 例:计算 0sin()d x x π ? x=0:pi/100:pi;y=sin(x); trapz(x,y) 6.dblquad():抛物线法求二重数值积分. 格式:dblquad(fun,xmin,xmax,ymin,ymax),fun可以用inline定义,也可以通过某个函数文件的句柄传递. 例1:Q1 = dblquad(inline('y*sin(x)'), pi, 2*pi, 0, pi) 顺便计算下面的Q2,通过计算,比较Q1 与Q2结果(或加上手工验算),找出积分变量x、y的上下限的函数代入方法. Q2 = dblquad(inline('y*sin(x)'), 0, pi, pi, 2*pi)例2:Q3 = dblquad(@integrnd, pi, 2*pi, 0, pi) 这时必须存在一个函数文件integrnd.m:

实验二 定积分的近似计算

实验二定积分的近似计算 一、问题背景与实验目的 利用牛顿—莱布尼兹公式虽然可以精确地计算定积分的值,但它仅适用于被积函数的原函数能用初等函数表达出来的情形.如果这点办不到或者不容易办到,这就有必要考虑近似计算的方法.在定积分的很多应用问题中,被积函数甚至没有解析表达式,可能只是一条实验记录曲线,或者是一组离散的采样值,这时只能应用近似方法去计算相应的定积分. 本实验将主要研究定积分的三种近似计算算法:矩形法、梯形法、抛物线法.对于定积分的近似数值计算,Matlab有专门函数可用. 二、相关函数(命令)及简介 1.sum(a):求数组a的和. 2.format long:长格式,即屏幕显示15位有效数字. (注:由于本实验要比较近似解法和精确求解间的误差,需要更高的精度).3.double():若输入的是字符则转化为相应的ASCII码;若输入的是整型数值则转化为相应的实型数值. 4.quad():抛物线法求数值积分. 格式:quad(fun,a,b) ,注意此处的fun是函数,并且为数值形式的,所以使用*、/、^等运算时要在其前加上小数点,即.*、./、.^等. 例:Q = quad('1./(x.^3-2*x-5)',0,2); 5.trapz():梯形法求数值积分. 格式:trapz(x,y) 其中x为带有步长的积分区间;y为数值形式的运算(相当于上面介绍的函数fun) 例:计算 0sin()d x x π ? x=0:pi/100:pi;y=sin(x); trapz(x,y) 6.dblquad():抛物线法求二重数值积分. 格式:dblquad(fun,xmin,xmax,ymin,ymax),fun可以用inline定义,也可以通过某个函数文件的句柄传递. 例1:Q1 = dblquad(inline('y*sin(x)'), pi, 2*pi, 0, pi) 顺便计算下面的Q2,通过计算,比较Q1 与Q2结果(或加上手工验算),找出积分变量x、y的上下限的函数代入方法. Q2 = dblquad(inline('y*sin(x)'), 0, pi, pi, 2*pi) 例2:Q3 = dblquad(@integrnd, pi, 2*pi, 0, pi) 这时必须存在一个函数文件integrnd.m:

matlab求定积分之实例说明

一、符号积分 符号积分由函数int来实现。该函数的一般调用格式为: int(s):没有指定积分变量和积分阶数时,系统按findsym函数指示的默认变量对被积函数或符号表达式s求不定积分; int(s,v):以v为自变量,对被积函数或符号表达式s求不定积分; int(s,v,a,b):求定积分运算。a,b分别表示定积分的下限和上限。该函数求被积函数在区间[a,b]上的定积分。a和b可以是两个具体的数,也可以是一个符号表达式,还可以是无穷(inf)。当函数f关于变量x在闭区间[a,b]上可积时,函数返回一个定积分结果。当a,b中有一个是inf时,函数返回一个广义积分。当a,b中有一个符号表达式时,函数返回一个符号函数。 例: 求函数x^2+y^2+z^2的三重积分。内积分上下限都是函数,对z积分下限是sqrt(x*y),积分上限是x^2*y;对y积分下限是sqrt(x),积分上限是x^2;对x的积分下限1,上限是2,求解如下: >>syms x y z %定义符号变量 >>F2=int(int(int(x^2+y^2+z^2,z,sqrt(x*y),x^2*y),y,sqrt(x),x^2),x,1,2) %注意定积分的书写格式 F2 = 1610027357/6563700-6072064/348075*2^(1/2)+14912/4641*2^(1/4)+64/225*2 ^(3/4) %给出有理数解 >>VF2=vpa(F2) %给出默认精度的数值解 VF2 = 224.92153573331143159790710032805 二、数值积分 1.数值积分基本原理 求解定积分的数值方法多种多样,如简单的梯形法、辛普生(Simpson)?法、牛顿-柯特斯(Newton-Cotes)法等都是经常采用的方法。它们的基本思想都是将整个积分区间[a,b]分成n个子区间[xi,xi+1],i=1,2,…,n,其中x1=a,xn+1=b。这样求定积分问题就分解为求和问题。 2.数值积分的实现方法 基于变步长辛普生法,MATLAB给出了quad函数来求定积分。该函数的调用格式为: [I,n]=quad('fname',a,b,tol,trace) 基于变步长、牛顿-柯特斯(Newton-Cotes)法,MATLAB给出了quadl函数来求定积分。该函数的调用格式为: [I,n]=quadl('fname',a,b,tol,trace) 其中fname是被积函数名。a和b分别是定积分的下限和上限。tol用来控制积分精度,缺省时取tol=0.001。trace控制是否展现积分过程,若取非0则展现积分过程,取0则不展现,缺省时取trace=0。返回参数I即定积分值,n为被积函数的调用次数。 例: 求函数'exp(-x*x)的定积分,积分下限为0,积分上限为1。 >>fun=inline('exp(-x.*x)','x'); %用内联函数定义被积函数fname

用MATLAB算多元函数积分

用MATLAB 计算多元函数的积分 三重积分的计算最终是化成累次积分来完成的,因此只要能正确的得出各累次积分的积分限,便可在MA TLAB 中通过多次使用int 命令来求得计算结果。但三重积分的积分域Ω是一个三维空间区域,当其形状较复杂时,要确定各累次积分的积分限会遇到一定困难,此时,可以借助MATLAB 的三维绘图命令,先在屏幕上绘出Ω的三维立体图,然后执行命令 rotate3d on ↙ 便可拖动鼠标使Ω的图形在屏幕上作任意的三维旋转,并且可用下述命令将Ω的图形向三个坐标平面进行投影: view(0,0),向XOZ 平面投影; view(90,0),向YOZ 平面投影; view(0,90),向XOY 平面投影. 综合运用上述方法,一般应能正确得出各累次积分的积分限。 例11.6.1计算zdv Ω ???,其中Ω是由圆锥曲面222z x y =+与平面z=1围成的闭区域 解 首先用MA TLAB 来绘制Ω的三维图形,画圆锥曲面的命令可以是: syms x y z ↙ z=sqrt(x^2+y^2); ↙ ezsurf(z,[-1.5,1.5]) ↙ 画第二个曲面之前,为保持先画的图形不会被清除,需要执行命令 hold on ↙ 然后用下述命令就可以将平面z=1与圆锥面的图形画在一个图形窗口内: [x1,y1]=meshgrid(-1.5:1/4:1.5); ↙ z1=ones(size(x1)); ↙ surf(x1,y1,z1) ↙ 于是得到Ω的三维图形如图:

由该图很容易将原三重积分化成累次积分: 111zdv dy -Ω=???? 于是可用下述命令求解此三重积分: clear all ↙ syms x y z ↙ f=z; ↙ f1=int(f,z.,sqrt(x^2+ y^2),1); ↙ f2=int(f1,x,-sqrt(1- y^2), sqrt(1- y^2)); ↙ int(f2,y,-1,1) ↙ ans= 1/4*pi 计算结果为4 π 对于第一类曲线积分和第一类曲面积分,其计算都归结为求解特定形式的定积分和二重积分,因此可完全类似的使用int 命令进行计算,并可用diff 命令求解中间所需的各偏导数。 例11.6.2用MATLAB 求解教材例11.3.1 解 求解过程如下 syms a b t ↙ x=a*cos(t); ↙ y=a*sin(t); ↙ z=b*t; ↙ f=x^2 +y^2+z^2; ↙ xt=diff(x,t); ↙ yt=diff(y,t); ↙ zt=diff(z,t); ↙ int(f*sqrt(xt^2 +yt^2+zt^2),t,0,2*pi) ↙ ans= 2/3*( a^2 +b^2)^1/2*a^2*pi+8/3*( a^2 +b^2)^1/2*b^2*pi^3 对此结果可用factor 命令进行合并化简: factor (ans ) ans= 2/3*( a^2 +b^2)^1/2*pi*(3* a^2 +4*b^2*pi^2) 例11.6.3用MATLAB 求解教材例11.4.1 解 求解过程如下 syms x y z1 z2↙ f= x^2 +y^2; ↙ z1=sqrt(x^2 +y^2); ↙ z2=1; ↙ z1x=diff(z1,x); ↙ z1y=diff(z1,y); ↙ z2x=diff(z2,x); ↙ z2y=diff(z2,y); ↙

(整理)matlab16常用计算方法.

常用计算方法 1.超越方程的求解 一超越方程为 x (2ln x – 3) -100 = 0 求超越方程的解。 [算法]方法一:用迭代算法。将方程改为 01002ln()3 x x =- 其中x 0是一个初始值,由此计算终值x 。取最大误差为e = 10-4,当| x - x 0| > e 时,就用x 的值换成x 0的值,重新进行计算;否则| x - x 0| < e 为止。 [程序]P1_1abs.m 如下。 %超越方程的迭代算法 clear %清除变量 x0=30; %初始值 xx=[]; %空向量 while 1 %无限循环 x=100/(2*log(x0)-3); %迭代运算 xx=[xx,x]; %连接结果 if length(xx)>1000,break ,end %如果项数太多则退出循环(暗示发散) if abs(x0-x)<1e-4,break ,end %当精度足够高时退出循环 x0=x; %替换初值 end %结束循环 figure %创建图形窗口 plot(xx,'.-','LineWidth',2,'MarkerSize',12)%画迭代线'.-'表示每个点用.来表示,再用线连接 grid on %加网格 fs=16; %字体大小 title('超越方程的迭代折线','fontsize',fs)%标题 xlabel('\itn','fontsize',fs) %x 标签 ylabel('\itx','fontsize',fs) %y 标签 text(length(xx),xx(end),num2str(xx(end)),'fontsize',fs)%显示结果 [图示]用下标作为自变量画迭代的折线。如P0_20_1图所示,当最大误差为10-4时,需要迭代19次才能达到精度,超越方程的解为27.539。 [算法]方法二:用求零函数和求解函数。将方程改为函数 100()2ln()3f x x x =-- MATLAB 求零函数为fzero ,fzero 函数的格式之一是 x = fzero(f,x0) 其中,f 表示求解的函数文件,x0是估计值。fzero 函数的格式之二是 x = fzero(f,[x1,x2])

详解Matlab求积分的各种方法

详解Matlab求积分的各种方法 一、符号积分由函数int来实现。 该函数的一般调用格式为: int(s): 没有指定积分变量和积分阶数时,系统按findsym函数指示的默认变量对被积函数或符号表达式s求不定积分;int(s,v): 以v为自变量,对被积函数或符号表达式s求不定积分;int(s,v,a,b): 求定积分运算。 a,b分别表示定积分的下限和上限。 该函数求被积函数在区间[a,b]上的定积分。 a和b可以是两个具体的数,也可以是一个符号表达式,还可以是无穷(inf)。 当函数f关于变量x在闭区间[a,b]上可积时,函数返回一个定积分结果。 当a,b中有一个是inf时,函数返回一个广义积分。 当a,b中有一个符号表达式时,函数返回一个符号函数。 例: 求函数x^2+y^2+z^2的三重积分。 内积分上下限都是函数,对z积分下限是sqrt(x*y),积分上限是x^2*y;对y积分下限是sqrt(x),积分上限是x^2;对x的积分下限1,上限是2,求解如下: >>syms x y z %定义符号变 量>>F2=int(int(int(x^2+y^2+z^2,z,sqrt(x*y),x^2*y),y,sqrt(x),x^2),x,1,2) %注意定积分的书写格式F2 =57/-

/348075*2^(1/2)+14912/4641*2^(1/4)+64/225*2^(3/4) %给出有理数 解>>VF2=vpa(F2) %给出默认精度的数值解VF2 = 224.9 232805二、数值积分 1.数值积分基本原理求解定积分的数值方法多种多样,如简单的梯形法、辛普生(Simpson)?法、牛顿-柯特斯(Newton-Cotes)法等都是经常采用的方法。 它们的基本思想都是将整个积分区间[a,b]分成n个子区间[xi,xi+1], i=1,2,…,n,其中x1=a,xn+1=b。 这样求定积分问题就分解为求和问题。 2.数值积分的实现方法基于变步长辛普生法,MATLAB给出了quad函数来求定积分。 该函数的调用格式为: [I,n]=quad('fname',a,b,tol,trace)基于变步长、牛顿-柯特斯(Newton-Cotes)法,MATLAB给出了quadl函数来求定积分。 该函数的调用格式为: [I,n]=quadl('fname',a,b,tol,trace)其中fname是被积函数名。 a和b分别是定积分的下限和上限。 tol用来控制积分精度,缺省时取tol= 0.0 01。 trace控制是否展现积分过程,若取非0则展现积分过程,取0则不展现,缺省时取trace= 0。

数值积分的matlab实现

实验10 数值积分 实验目的: 1.了解数值积分的基本原理; 2.熟练掌握数值积分的MATLAB 实现; 3.会用数值积分方法解决一些实际问题。 实验内容: 积分是数学中的一个基本概念,在实际问题中也有很广泛的应用。同微分一样,在《微积分》中,它也是通过极限定义的,由于实际问题中遇到的函数一般都以列表形式给出,所以常常不能用来直接进行积分。此外有些函数虽然有解析式,但其原函数不是初等函数,所以仍然得不到积分的精确值,如不定积分?1 0 d sin x x x 。这时我们一般考虑用数值方法计算其 近似值,称为数值积分。 10.1 数值微分简介 设函数()y f x =在* x 可导,则其导数为 h x f h x f x f h ) ()(lim )(**0* -+='→ (10.1) 如果函数()y f x =以列表形式给出(见表10-1),则其精确值无法求得,但可由下式求得其近似值 h x f h x f x f ) ()()(*** -+≈' (10.2) 表 10-1 一般的,步长h 越小,所得结果越精确。(10.2)式右端项的分子称为函数()y f x =在 *x 的差分,分母称为自变量在*x 的差分,所以右端项又称为差商。数值微分即用差商近似 代替微商。常用的差商公式为: 000()() ()2f x h f x h f x h +--'≈ (10.3) h y y y x f 243)(2 100-+-≈ ' (10.4)

h y y y x f n n n n 234)(12+-≈ '-- (10.5) 其误差均为2 ()O h ,称为统称三点公式。 10.2 数值微分的MATLAB 实现 MATLAB 提供了一个指令求解一阶向前差分,其使用格式为: dx=diff(x) 其中x 是n 维数组,dx 为1n -维数组[]21321,, ,n x x x x x x ---,这样基于两点的数值导 数可通过指令diff(x)/h 实现。对于三点公式,读者可参考例1的M 函数文件diff3.m 。 例1 用三点公式计算()y f x =在=x 1.0,1.2,1.4处的导数值,()f x 的值由下表给 解:建立三点公式的M 函数文件diff3.m 如下: function f=diff3(x,y) n=length(x);h=x(2)-x(1); f(1)=(-3*y(1)+4*y(2)-y(3))/(2*h); for j=2:n-1 f(j)=(y(j+1)-y(j-1))/(2*h); end f(n)=(y(n-2)-4*y(n-1)+3*y(n))/(2*h); 在MATLAB 指令窗中输入指令: x=[1.0,1.1,1.2,1.3,1.4];y=[0.2500,0.2268,0.2066,0.1890,0.1736];diff3(x,y) 运行得各点的导数值为:-0.2470,-0.2170,-0.1890,-0.1650,-0.0014。所以()y f x =在=x 1.0,1.2,1.4处的导数值分别为-0.2470,-0.1890和-0.0014。 对于高阶导数,MATLAB 提供了几个指令借助于样条函数进行求导,详细使用步骤如下: step1:对给定数据点(x,y ),利用指令pp=spline(x,y),获得三次样条函数数据pp ,供后面ppval 等指令使用。其中,pp 是一个分段多项式所对应的行向量,它包含此多项式的阶数、段数、节点的横坐标值和各段多项式的系数。 step2:对于上面所求的数据向量pp ,利用指令[breaks,coefs,m,n]=unmkpp(pp)进行处理,生成几个有序的分段多项式pp 。 step3:对各个分段多项式pp 的系数,利用函数ppval 生成其相应导数分段多项式的系数,再利用指令mkpp 生成相应的导数分段多项式 step4:将待求点xx 代入此导数多项式,即得样条导数值。 上述过程可建立M 函数文件ppd.m 实现如下: function dy=ppd(pp) [breaks,coefs,m]=unmkpp(pp);

matlab用于计算方法的源程序

1、Newdon迭代法求解非线性方程 function [x k t]=NewdonToEquation(f,df,x0,eps) %牛顿迭代法解线性方程 %[x k t]=NewdonToEquation(f,df,x0,eps) %x:近似解 %k:迭代次数 %t:运算时间 %f:原函数,定义为内联函数 ?:函数的倒数,定义为内联函数 %x0:初始值 %eps:误差限 % %应用举例: %f=inline('x^3+4*x^2-10'); ?=inline('3*x^2+8*x'); %x=NewdonToEquation(f,df,1,0.5e-6) %[x k]=NewdonToEquation(f,df,1,0.5e-6) %[x k t]=NewdonToEquation(f,df,1,0.5e-6) %函数的最后一个参数也可以不写。默认情况下,eps=0.5e-6 %[x k t]=NewdonToEquation(f,df,1) if nargin==3 eps="0".5e-6; end tic; k=0; while 1 x="x0-f"(x0)./df(x0); k="k"+1; if abs(x-x0) < eps || k >30 break; end x0=x; end t=toc; if k >= 30 disp('迭代次数太多。'); x="0"; t="0"; end

2、Newdon迭代法求解非线性方程组 function y="NewdonF"(x) %牛顿迭代法解非线性方程组的测试函数 %定义是必须定义为列向量 y(1,1)=x(1).^2-10*x(1)+x(2).^2+8; y(2,1)=x(1).*x(2).^2+x(1)-10*x(2)+8; return; function y="NewdonDF"(x) %牛顿迭代法解非线性方程组的测试函数的导数 y(1,1)=2*x(1)-10; y(1,2)=2*x(2); y(2,1)=x(2).^+1; y(2,2)=2*x(1).*x(2)-10; return; 以上两个函数仅供下面程序的测试 function [x k t]=NewdonToEquations(f,df,x0,eps) %牛顿迭代法解非线性方程组 %[x k t]=NewdonToEquations(f,df,x0,eps) %x:近似解 %k:迭代次数 %t:运算时间 %f:方程组(事先定义) ?:方程组的导数(事先定义) %x0:初始值 %eps:误差限 % %说明:由于虚参f和df的类型都是函数,使用前需要事先在当前目录下采用函数M文件定义% 另外在使用此函数求解非线性方程组时,需要在函数名前加符号“@”,如下所示 % %应用举例: %x0=[0,0];eps=0.5e-6; %x=NewdonToEquations(@NewdonF,@NewdonDF,x0,eps) %[x k]=NewdonToEquations(@NewdonF,@NewdonDF,x0,eps) %[x k t]=NewdonToEquations(@NewdonF,@NewdonDF,x0,eps) %函数的最后一个参数也可以不写。默认情况下,eps=0.5e-6 %[x k t]=NewdonToEquations(@NewdonF,@NewdonDF,x0,eps)

MATLAB计算积分

函数的积分和椭圆的周长 1.正弦函数的积分 [问题]求正弦函数从0到π的积分 y = sin x 当x = 0时,积分为0,画出积分的函数曲线。 [数学模型] 定积分的结果为 ππ00 sin d cos 2S x x x ==-=? 不定积分的结果为 sin d cos I x x x C ==-+? 其中C 是积分常量,由初始条件决定。当x = 0时,积分为I = 0,必有C = 1。结果为 I = -cos x + 1 [算法]根据积分的基本概念,将积分区域分为多份,用矩形法求曲线下的近似面积表示积分的近似值 1()n i i S f x x ==?∑ 矩形法的函数是sum(f)。 用梯形法求曲线下的近似面积表示积分的近似值 1 101[()()]2 n i i i S f x f x x -+==+?∑ 梯形法的函数是trapz(f)。 用数值积分的函数是quad 和quadl ,常用使用格式是 S = quad(f,a,b) 其中,f 表示被积函数,a 表示积分的下限,b 表示积分的下限。 用符号的函数是int ,常用使用格式是 S = int(f,a,b) [程序]zqy4_1.m 如下。 %正弦函数的积分 clear %清除变量 x=linspace(0,pi); %自变量向量 dx=x(2); %间隔 y=sin(x); %被积函数 s1=sum(y)*dx %矩形法积分 s2=trapz(y)*dx %梯形法积分 f=inline('sin(x)'); %被积的内线函数 s3=quad(f,0,pi) %数值定积分

s4=int('sin(x)',0,pi) %符号积分 sc1=cumsum(y)*dx; %矩形法累积积分(精度稍差) sc2=cumtrapz(y)*dx; %梯形法累积积分 figure %创建图形窗口 plot(x,-cos(x)+1,x,sc1,'.',x,sc2,'o') %画解析式和矩阵法以及梯形法积分曲线 s=int('sin(x)') %符号积分 sc3=subs(s,'x',x); %替换数值求符号积分的值 C=-sc3(1) %求积分常数 hold on %保持图像 plot(x,sc3+C,'c*') %画符号法积分曲线 grid on %加网格 fs=16; %字体大小 xlabel('\itx','FontSize',fs) %横坐标 ylabel('\intsin\itx\rmd\itx','FontSize',fs)%纵坐标 title('正弦函数的积分','FontSize',fs) %标题 legend('解析解','矩形法','梯形法','符号法')%图例 zqy4.1图 zqy4.2图 2.三角函数和指数的积分 [问题]求如下函数的积分 y = e ax sin bx 其中a = 0.5,b = 2。积分下限为0。画出积分的函数曲线。 [数学模型] 设 11e sin d sin de {e sin e cos d }ax ax ax ax I bx x bx bx b bx x a a == =-??? 11{e sin cos de }{e sin [e cos e sin d ]}ax ax ax ax ax b b bx bx bx bx b bx x a a a a =-=-+?? 因此不定积分为 221e (sin cos )ax I a bx b bx C a b =-++ 当x = 0时,I 应该为零,所以 22b C a b =+

计算方法上机实验报告-MATLAB

《计算方法》实验报告 指导教师: 学院: 班级: 团队成员:

一、题目 例2.7应用Newton 迭代法求方程210x x --=在1x =附近的数值解 k x ,并使其满足8110k k x x ---< 原理: 在方程()0f x =解的隔离区间[],a b 上选取合适的迭代初值0x ,过曲线()y f x =的点()() 00x f x ,引切线 ()()()1000:'l y f x f x x x =+- 其与x 轴相交于点:()() 0100 'f x x x f x =-,进一步,过曲线()y f x =的 点()()11x f x , 引切线 ()()()2111: 'l y f x f x x x =+- 其与x 轴相交于点:() () 1211 'f x x x f x =- 如此循环往复,可得一列逼近方程()0f x =精确解*x 的点 01k x x x ,,,,,其一般表达式为: ()() 111 'k k k k f x x x f x ---=- 该公式所表述的求解方法称为Newton 迭代法或切线法。

程序: function y=f(x)%定义原函数 y=x^3-x-1; end function y1=f1(x0)%求导函数在x0点的值 syms x; t=diff(f(x),x); y1=subs(t,x,x0); end function newton_iteration(x0,tol)%输入初始迭代点x0及精度tol x1=x0-f(x0)/f1(x0);k=1;%调用f函数和f1函数 while abs(x1-x0)>=tol x0=x1;x1=x0-f(x0)/f1(x0);k=k+1; end fprintf('满足精度要求的数值为x(%d)=%1.16g\n',k,x1); fprintf('迭代次数为k=%d\n',k); end 结果:

定积分的近似计算

数学实验报告 实验序号:4 日期:2012 年12 月13 日 实验名称定积分的近似计算 问题背景描述: 利用牛顿—莱布尼兹公式虽然可以精确地计算定积分的值,但它仅适用于被积函数的原函数能用初等函数表达出来的情形.如果这点办不到或者不容易办到,这就有必要考虑近似计算的方法.在定积分的很多应用问题中,被积函数甚至没有解析表达式,可能只是一条实验记录曲线,或者是一组离散的采样值,这时只能应用近似方法去计算相应的定积分. 实验目的: 本实验将主要研究定积分的三种近似计算算法:矩形法、梯形法、抛物线法。对于定积分的近似数值计算,Matlab有专门函数可用。

实验原理与数学模型: 1.矩形法 根据定积分的定义,每一个积分和都可以看作是定积分的一个近似值,即 在几何意义上,这是用一系列小矩形面积近似小曲边梯形的结果,所以把这个近似计算方法称为矩形法.不过,只有当积分区间被分割得很细时,矩形法才有一定的精确度. 针对不同的取法,计算结果会有不同。 (1)左点法:对等分区间 , 在区间上取左端点,即取。 (2)右点法:同(1)中划分区间,在区间上取右端点,即取。 (3)中点法:同(1)中划分区间,在区间上取中点,即取。2.梯形法 等分区间 , 相应函数值为().

曲线上相应的点为() 将曲线的每一段弧用过点,的弦(线性函数)来代替,这使得每个 上的曲边梯形成为真正的梯形,其面积为 ,. 于是各个小梯形面积之和就是曲边梯形面积的近似值, , 即, 称此式为梯形公式。 3.抛物线法 将积分区间作等分,分点依次为 ,, 对应函数值为 (), 曲线上相应点为 (). 现把区间上的曲线段用通过三点,,的抛物线

数值计算方法matlab程序

function [x0,k]=bisect1(fun1,a,b,ep) if nargin<4 ep=1e-5; end fa=feval(fun1,a); fb=feval(fun1,b); if fa*fb>0 x0=[fa,fb]; k=0; return; end k=1; while abs(b-a)/2>ep x=(a+b)/2; fx=feval(fun1,x); if fx*fa<0 b=x; fb=fx; else a=x; fa=fx;

end end x0=(a+b)/2; >> fun1=inline('x^3-x-1'); >> [x0,k]=bisect1(fun1,1.3,1.4,1e-4) x0 = 1.3247 k = 7 >> 简单迭代法 function [x0,k]=iterate1(fun1,x0,ep,N) if nargin<4 N=500; end if nargin<3 ep=1e-5; end x=x0; x0=x+2*ep;

while abs(x-x0)>ep & k> fun1=inline('(x+1)^(1/3)'); >> [x0,k]=iterate1(fun1,1.5) x0 = 1.3247 k = 7 >> fun1=inline('x^3-1'); >> [x0,k]=iterate1(fun1,1.5) x0 = Inf k =

matlab实验报告--定积分的近似计算 -

数学实验报告 实验序号:2 日期:2013 年11 月30日 班级应数二班姓名丁慧娜学号1101114088 实验名称定积分的近似计算 实验所用软件及版本MATLAB R2012b 问题背景描述: 利用牛顿—莱布尼兹公式虽然可以精确地计算定积分的值,但它仅适用于被积函数的原函数能用初等函数表达出来的情形.如果这点办不到或者不容易办到,这就有必要考虑近似计算的方法.在定积分的很多应用问题中,被积函数甚至没有解析表达式,可能只就是一条实验记录曲线,或者就是一组离散的采样值,这时只能应用近似方法去计算相应的定积分. 实验目的: 1、本实验将主要研究定积分的三种近似计算算法:矩形法、梯形法、抛 物线法。 2、加深理解积分运算中分割、近似、求与、取极限的思想方法。 3、学习fulu2sum、m的程序设计方法,尝试用函数sum 改写附录1与 附录3的程序,避免for 循环。 实验原理与数学模型: 1.矩形法 根据定积分的定义,每一个积分与都可以瞧作就是定积分的一个近似值,即 在几何意义上,这就是用一系列小矩形面积近似小曲边梯形的结果,所以把

这个近似计算方法称为矩形法.不过,只有当积分区间被分割得很细时,矩形法才有一定的精确度. 针对不同的取法,计算结果会有不同。 (1)左点法:对等分区间 , 在区间上取左端点,即取。 (2)右点法:同(1)中划分区间,在区间上取右端点,即取。 (3)中点法:同(1)中划分区间,在区间上取中点,即取。 2.梯形法 等分区间 , 相应函数值为(). 曲线上相应的点为() 将曲线的每一段弧用过点,的弦(线性函数)来代替,这使得每个上的曲边梯形成为真正的梯形,其面积为

最新定积分的近似计算2

定积分的近似计算2

定积分的近似计算 虽然牛顿——莱布尼兹公式解决了定积分的计算问题,但它的使用是有一定局限性的。对于被积分中的不能用初等函数表达的情形或其原函数虽能用初等函数表达但很复杂的情形,我们就有必要考虑近似计算的方法。 定积分的近似计算的基本思想是根据定积分的几何意义找出求曲边梯形面积的近似方法。下面介绍两种常用的方法梯形法及抛物线法。 一梯形法 将积分区间?Skip Record If...?作?Skip Record If...?等分,分点依次为 ?Skip Record If...? 相应的函数为 ?Skip Record If...? ?Skip Record If...? 曲线?Skip Record If...?上相应的点为 ?Skip Record If...? 将曲线的每一段弧?Skip Record If...?用过点?Skip Record If...?(线性函数)来代替,这使得每个?Skip Record If...?上的曲边梯形形成了真正的梯形(图11——25),其面积为 ?Skip Record If...? 于是各个小梯形面积之和就是曲边梯形面积的近 似值,即 ?Skip Record If...? 亦即 ?Skip Record If...?(2) 称此式为梯形法公式。 在实际应用中,我们还需要知道用这个近似值来代替所求积分时所产生的误差,从而有 ?Skip Record If...?

其中?Skip Record If...? 二抛物线法 由梯形法求近似值,当?Skip Record If...?为凹曲线时,它就偏小;当?Skip Record If...?为凸曲线时,它就偏大。如果每段改用与它凸性相接近的抛物线来近似,就可减少上述缺点。下面介绍抛物线法。 将区间?Skip Record If...?作?Skip Record If...?等分(图)分点依次为 ?Skip Record If...? 对应的函数值为 ?Skip Record If...? ?Skip Record If...? ?Skip Record If...?曲线上相应的点为?Skip Record If...? 现把区间?Skip Record If...?上的曲线段?Skip Record If...?用通过三点?Skip Record If...?的抛物线 ?Skip Record If...? 来近似代替,然后求函数?Skip Record If...?从?Skip Record If...?到?Skip Record If...?的定积分: ?Skip Record If...? ?Skip Record If...? ?Skip Record If...?由于?Skip Record If...?,将它代入上式整理后可得 ?Skip Record If...? ?Skip Record If...? 同样也有 ?Skip Record If...? ……………………………………………….. ?Skip Record If...? 将这?Skip Record If...?个积分相加即得原来所要计算的定积分的近似值: ?Skip Record If...? 即 ?Skip Record If...?

相关文档
相关文档 最新文档