复化辛普森求积公式的Matlab实现

合集下载

MATLAB数值分析实验二(复合梯形、辛普森和龙贝格求积,以及二重积分计算等)

MATLAB数值分析实验二(复合梯形、辛普森和龙贝格求积,以及二重积分计算等)

佛山科学技术学院实验报告课程名称_______________ 数值分析________________________实验项目_______________ 数值积分____________________专业班级机械工程姓名余红杰学号2111505010 指导教师陈剑成绩日期月日一、实验目的b1、理解如何在计算机上使用数值方法计算定积分 a f ""X的近似值;2、学会复合梯形、复合Simpson和龙贝格求积分公式的编程与应用。

3、探索二重积分.11 f (x, y)dxdy在矩形区域D = {( x, y) | a _ x _ b, c _ y _ d}的数值D积分方法。

二、实验要求(1)按照题目要求完成实验内容;(2)写出相应的Matlab程序;(3)给出实验结果(可以用表格展示实验结果);(4)分析和讨论实验结果并提出可能的优化实验。

(5)写出实验报告。

三、实验步骤1、用不同数值方法计算积xln xdx =-- 0 9(1)取不同的步长h,分别用复合梯形及复合辛普森求积计算积分,给出误差中关于h的函数,并与积分精确值比较两公式的精度。

(2)用龙贝格求积计算完成问题(1 )。

2、给出一种求矩形区域上二重积分的复化求积方法,然后计算二重积分..e"y dxdy,其中积分区域D二{0乞x岂1,0岂y乞1}。

1.%lnt_t.m复化梯形:function F = Int_t(x1,x2,n)%复化梯形求积公式% x1,x2为积分起点和中点%分为n个区间,没选用步长可以防止区间数为非整数。

%样点矩阵及其函数值:x = lin space(x1,x2 ,n+1);y = f(x);m = len gth(x);%本题中用Matlab计算端点位置函数值为NaN,故化为零: y(1) = 0;y(m) = 0;%算岀区间长度,步长h:h = (x2 -x1)/n;a = [1 2*o nes(1,m-2) 1];%计算估计的积分值:F = h/2*sum(a.*y);%f.mfun cti on y = f(x)y = sqrt(x).*log(x);%run 11.mclc,clear;%分为10个区间,步长0.1的积分值:F = In t_t(0,1,10);F10 = F%分为100个区间F = In t_t(0,1,100);F100 = F%误差计算W10 = abs((-4/9)-F10);W100 = abs((-4/9)-F100);W = [W10 W100]%复化辛普森:%l nt_s.mfun cti on F = In t_s(x1,x2 ,n)%复化梯形求积公式% x1,x2区间,分为n个区间。

复合梯形公式、复合辛普森公式matlab

复合梯形公式、复合辛普森公式matlab

复合梯形公式、复合⾟普森公式matlab 1. ⽤1阶⾄4阶Newton-Cotes公式计算积分程序:function I = NewtonCotes(f,a,b,type)%syms t;t=findsym(sym(f));I=0;switch typecase 1,I=((b-a)/2)*(subs(sym(f),t,a)+subs(sym(f),t,b));case 2,I=((b-a)/6)*(subs(sym(f),t,a)+4*subs(sym(f),t,(a+b)/2)+...subs(sym(f),t,b));case 3,I=((b-a)/8)*(subs(sym(f),t,a)+3*subs(sym(f),t,(2*a+b)/3)+...3*subs(sym(f),t,(a+2*b)/3)+subs(sym(f),t,b));case 4,I=((b-a)/90)*(7*subs(sym(f),t,a)+...32*subs(sym(f),t,(3*a+b)/4)+...12*subs(sym(f),t,(a+b)/2)+...32*subs(sym(f),t,(a+3*b)/4)+7*subs(sym(f),t,b));case 5,I=((b-a)/288)*(19*subs(sym(f),t,a)+...75*subs(sym(f),t,(4*a+b)/5)+...50*subs(sym(f),t,(3*a+2*b)/5)+...50*subs(sym(f),t,(2*a+3*b)/5)+...75*subs(sym(f),t,(a+4*b)/5)+19*subs(sym(f),t,b));case 6,I=((b-a)/840)*(41*subs(sym(f),t,a)+...216*subs(sym(f),t,(5*a+b)/6)+...27*subs(sym(f),t,(2*a+b)/3)+...272*subs(sym(f),t,(a+b)/2)+...27*subs(sym(f),t,(a+2*b)/3)+...216*subs(sym(f),t,(a+5*b)/6)+...41*subs(sym(f),t,b));case 7,I=((b-a)/17280)*(751*subs(sym(f),t,a)+...3577*subs(sym(f),t,(6*a+b)/7)+...1323*subs(sym(f),t,(5*a+2*b)/7)+...2989*subs(sym(f),t,(3*a+4*b)/7)+...1323*subs(sym(f),t,(2*a+5*b)/7)+...3577*subs(sym(f),t,(a+6*b)/7)+751*subs(sym(f),t,b));endsyms xf=exp(-x).*sin(x);a=0;b=2*pi;I = NewtonCotes(f,a,b,1)N=1:I =N=2:I =N=3:I =(pi*((3*3^(1/2)*exp(-(2*pi)/3))/2 - (3*3^(1/2)*exp(-(4*pi)/3))/2))/4N=4:I =(pi*(32*exp(-pi/2) - 32*exp(-(3*pi)/2)))/452. 已知,因此可以通过数值积分计算的近似值。

复合辛普森求积

复合辛普森求积

第三次实验实验名称复合辛普森求积计算积分实验时间2012.05.06 姓名班级数应二班学号成绩一、实验目的,内容1.目的:学习并理解复合辛普森求积计算积分的matlab实现。

2. 内容:用matlab计算积分14ln9x xdx=-⎰(精确值-0.4444),并求出达到。

二.代码1.function Sn=ComSimpson(a,b,n)%复合辛普森求积%f表示被积函数,本题中由f.m调用%a,b分别表示积分上下限%n表示区间分割次数%sn表示该方法计算所返回的值h=(b-a)/n;for k=0:nx(k+1)=a+k*h;x_k(k+1)=x(k+1)+1/2*h;if (x(k+1)==0)|(x_k(k+1)==0)x(k+1)=10^(-10);x_k(k+1)=10^(-10);%误差精度endendS1=h/6*(f(x(1))+f(x(n+1)));%复合辛普森求积公式第一部分for i=2:nF_1(i)=h/3*f(x(i));endfor j=1:nF_2(j)=2*h/3*f(x_k(j));endS2=sum(F_1)+sum(F_2);%复合辛普森求积公式第二部分Sn=S1+S2;%算得值f的表达式由f.m(见附)文件调用。

附:function y=f(x)y=sqrt(x).*log(x);三.数值结果:在命令窗口输入如下指令时,出现如下结果Sn=ComSimpson(0,1,300)Sn =-0.4438Sn=ComSimpson(0,1,700)Sn =-0.4442四.计算结果的分析:当步长取值很小的时候,误差较大。

当步长取得越细,即区间分割的越小时,实验计算值的精度越高,即越趋近精确值。

五. 计算中出现的问题,解决方法及体会:本实验过程中,了解了复合求积公式的几个构成,以及在matlab中的实现,深化了对于该问题的理解。

一的个很简单的问题,哪怕就是一个小小符号的不注意,也不会得到结果。

MATLAB数值分析实验二(复合梯形、辛普森和龙贝格求积,以及二重积分计算等)

MATLAB数值分析实验二(复合梯形、辛普森和龙贝格求积,以及二重积分计算等)

佛山科学技术学院实 验 报 告课程名称 数值分析 实验项目 数值积分专业班级 机械工程 姓 名 余红杰 学 号 2111505010 指导教师 陈剑 成 绩 日 期 月 日一、实验目的1、理解如何在计算机上使用数值方法计算定积分⎰badxx f )(的近似值;2、学会复合梯形、复合Simpson 和龙贝格求积分公式的编程与应用。

3、探索二重积分⎰⎰Ddxdy y x f ),(在矩形区域},|),{(d y c b x a y x D ≤≤≤≤=的数值积分方法。

二、实验要求(1) 按照题目要求完成实验内容; (2) 写出相应的Matlab 程序;(3) 给出实验结果(可以用表格展示实验结果); (4) 分析和讨论实验结果并提出可能的优化实验。

(5) 写出实验报告。

三、实验步骤1、用不同数值方法计算积分149xdx =-(1)取不同的步长h ,分别用复合梯形及复合辛普森求积计算积分,给出误差中关于h 的函数,并与积分精确值比较两公式的精度。

(2)用龙贝格求积计算完成问题(1)。

2、给出一种求矩形区域上二重积分的复化求积方法,然后计算二重积分xyDedxdy -⎰⎰,其中积分区域{01,01}D x y =≤≤≤≤。

1.%Int_t.m 复化梯形:function F = Int_t(x1,x2,n)% 复化梯形求积公式% x1,x2 为积分起点和中点%分为n个区间,没选用步长可以防止区间数为非整数。

%样点矩阵及其函数值:x = linspace(x1,x2,n+1);y = f(x);m = length(x);%本题中用Matlab计算端点位置函数值为NaN,故化为零:y(1) = 0;y(m) = 0;%算出区间长度,步长h:h = (x2 -x1)/n;a = [1 2*ones(1,m-2) 1];%计算估计的积分值:F = h/2*sum(a.*y);%f.mfunction y = f(x)y = sqrt(x).*log(x);%run11.mclc,clear;%分为10个区间,步长0.1的积分值:F = Int_t(0,1,10);F10 = F%分为100个区间F = Int_t(0,1,100);F100 = F%误差计算W10 = abs((-4/9)-F10);W100 = abs((-4/9)-F100);W = [W10 W100]%复化辛普森:%Int_s.mfunction F = Int_s(x1,x2,n)% 复化梯形求积公式% x1,x2 区间,分为n个区间。

复合梯形和复合辛普森MATLAB程序

复合梯形和复合辛普森MATLAB程序
指操作环境和平台:win7系统下MATLAB R2009a
程序语言:一种类似C语言的程序语言,但比C语言要宽松得多,非常方便。
四.程序
①复合梯形求积程序
functiont=TiXing_quad(a,b,.h)
formatlong
x=a:h:b;
y=sqrt(x).*log(x);
y(1)=0;
t=0;
(2)得到的结果如下图所示:
T = T - T ,k = 1,2,…
二、计算流程图
1、复合梯形和复合辛普森算法框图:
下图是龙贝格算法框图:
自适应辛普森积分算法流程框图:
二.实验题目及实验目的
实验题目:用不同数值方法计算积分 = - 。
(1)取不同的步长h。分别用复合梯形及复合辛普森求积计算积分,给出误差中关于h的函数,并与积分精确值比较两个公式的精度,是否存在一个最小的h,使得精度不能再被改善?
####
实验报告
课程名称
实验项目名称
实验类型
上机
实验学时
班级
学号
姓名
指导教师
实验室名称
实验时间
2014.11.19
实验成绩
预习部分
实验过程
表现
实验报告
部分
总成绩
教师签字
日期
实验三数值积分
一.数值积分的基本思想
1.复合梯形公式:Tn= 2 ;
2.复合辛普森公式:Sn= [f(a)+f(b)+2 +4 ];
(2)用龙贝格求积计算完成问题(1)。
(3)用自适应辛普森积分,使其精度达到10 。
实验目的:
1、了解并掌握matlab软件的基本编程、操作方法;

复合辛普森公式matlab例题

复合辛普森公式matlab例题

文章标题:深度剖析复合辛普森公式在Matlab中的应用1.引言复合辛普森公式是数值分析中常用的积分逼近方法,在工程和科学领域都有广泛的应用。

本文将深入探讨复合辛普森公式的原理和在Matlab中的具体例题应用,以帮助读者全面理解该方法的实际操作和应用场景。

2.复合辛普森公式简介复合辛普森公式是一种数值积分方法,通过将积分区间分割成若干个小区间,然后在每个小区间上使用辛普森公式进行积分逼近,最终得到整个积分区间上的近似值。

其公式表达为:\[ S_n(h) = \frac{h}{3}[f(x_0) + 4\sum_{i=1}^{n/2}f(x_{2i-1}) +2\sum_{i=1}^{n/2-1}f(x_{2i}) + f(x_n)] \]其中,\(h\)为步长,\(n\)为分割的小区间数。

3. Matlab实例应用假设要对函数\(f(x) = x^3 + 2x^2 + 4x + 1\)在区间\([a, b]\)上进行积分逼近,可以通过Matlab编程实现复合辛普森公式的应用。

需要确定积分区间的上下限,然后计算步长\(h\),接着编写Matlab代码进行求解。

```matlabfunction result = simpson(f, a, b, n)h = (b - a) / n;x = a:h:b;y = f(x);result = h/3 * (y(1) + 4*sum(y(2:2:end-1)) + 2*sum(y(3:2:end-2)) + y(end));end% 调用simpson函数进行积分逼近f = @(x) x.^3 + 2*x.^2 + 4*x + 1;a = 1;b = 2; n = 4;result = simpson(f, a, b, n);disp(result);```在以上Matlab代码中,首先定义了一个名为simpson的函数,用于计算复合辛普森公式的近似积分值。

数值分析复化梯形公式,复化Simpson公式MATLAB程序

数值分析复化梯形公式,复化Simpson公式MATLAB程序

分别用复化梯形公式、复化Simpson 公式计算定积分dx e x ⎰+201,取n=2,4,8,16分别验证结果(精确值I=4.006994)。

复化梯形公式求定积分:
function I=tquad(x,y)
%复化梯形求积公式,其中,
%x 为向量,被积函数自变量的等距结点; %y 为向量,被积函数在结点处的函数值; n=length(x);
m=length(y);
%积分自变量的结点数应与它的函数值的个数相同 h=(x(n)-x(1))/(n-1);
a=[1 2*ones(1,n-2) 1];
I=h/2*sum(a.*y);
复化Simpson 公式求定积分:
function I=squad(x,y)
%复化Simpson 求积公式,其中,
%x 为向量,被积函数自变量的等距结点; %y 为向量,被积函数在结点处的函数值; n=length(x);
m=length(y);
%积分自变量的结点数应与它的函数值的个数相同 if rem(n-1,2)~=0
I=tquad(x,y);
return;
end
N=(n-1)/2;
h=(x(n)-x(1))/N;
a=zeros(1,n);
for k=1:N
a(2*k-1)=a(2*k-1)+1;
a(2*k)=a(2*k)+4;
a(2*k+1)=a(2*k+1)+1;
end
I=h/6*sum(a.*y);。

matlab中梯形求积公式和辛普森公式命令

matlab中梯形求积公式和辛普森公式命令

Matlab中梯形求积公式和辛普森公式命令概述梯形求积公式和辛普森公式是数值积分中常用的近似计算方法,在M a tl ab中有相应的函数可以方便地进行计算。

本文将介绍如何使用M a tl ab中的梯形求积公式和辛普森公式命令进行数值积分计算。

梯形求积公式梯形求积公式是一种基于梯形近似的数值积分方法,其基本思想是将曲线下的面积近似为一系列梯形的面积之和。

在M at la b中,可以使用`t ra pz`函数来计算梯形求积公式。

命令格式```m at la bI=tr ap z(x,y)```参数说明-`x`:X轴上的数据点,可以是等间隔的向量或数组。

-`y`:与`x`对应的Y轴上的数据点,大小与`x`相同。

示例假设有一组数据点`x`和相应的函数值`y`,我们需要计算曲线在`x`范围内的面积。

```m at la bx=li ns pa ce(0,2*pi,100);y=si n(x);I=tr ap z(x,y);```解读示例上述示例中,我们通过`li ns pa ce`函数创建了一个包含100个等间距数据点的向量`x`,然后计算出对应的`s in(x)`值作为函数值`y`。

最后使用`tr ap z`函数计算了梯形求积公式的结果,存储在变量`I`中。

该结果即为曲线在`x`范围内的面积近似值。

辛普森公式辛普森公式是一个更精确的数值积分方法,它使用二次多项式逼近函数曲线来计算曲线下面积。

在Ma tl ab中,可以使用`qu ad`函数来进行辛普森公式的计算。

命令格式```m at la bI=qu ad(f un,a,b)```参数说明-`fu n`:用于计算函数值的函数句柄或函数表达式。

-`a`:积分下限。

-`b`:积分上限。

示例假设有一个函数`f(x)=x^2+2x+1`,我们需要计算其在区间`[0,5]`内的面积。

```m at la bf u n=@(x)x^2+2*x+1;I=qu ad(f un,0,5);```解读示例上述示例中,我们定义了一个匿名函数`f u n`,用来表示函数`f(x)=x^2+2x+1`。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档