当前位置:文档之家› 详解Matlab求积分的各种方法

详解Matlab求积分的各种方法

详解Matlab求积分的各种方法
详解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 =

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

>>Isim=quad(fun,0,1) %辛普生法

Isim =

0.746824180726425

IL=quadl(fun,0,1) %牛顿-柯特斯法

IL =

0.746824133988447

三、梯形法求向量积分

trapz(x,y)—梯形法沿列方向求函数Y关于自变量X的积分(向量形式,数值方法)。

>>d=0.001;

>>x=0:d:1;

>>S=d*trapz(exp(-x.^2))

S=

0.7468

或:

>>format long g

>>x=0:0.001:1; %x向量,也可以是不等间距

>>y=exp(-x.^2); %y向量,也可以不是由已知函数生成的向量

>>S=trapz(x,y); %求向量积分

S =

0.746824071499185

Matlab上机实验答案

Matlab上机实验答案 实验一 MATLAB运算基础 1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。 >> z1=2*sin(85*pi/180)/(1+exp(2)) z1 = >> x=[2 1+2i; 5]; >> z2=1/2*log(x+sqrt(1+x^2)) z2 = - + + -

>> a=::; >> z3=(exp.*a)-exp.*a))./2.*sin(a++log(+a)./2) (>> z33=(exp*a)-exp*a))/2.*sin(a++log(+a)/2)可以验证z3==z33,是否都为1) z3 = Columns 1 through 5 + + + + + Columns 6 through 10 + + + + + Columns 11 through 15 + + + + + Columns 16 through 20 + + + + +

Columns 21 through 25 + + + + + Columns 26 through 30 + + + + + Columns 31 through 35 + + + + + Columns 36 through 40 + + + + + Columns 41 through 45 + + + + + Columns 46 through 50

+ + + + + Columns 51 through 55 + + + + + Columns 56 through 60 + + + + + Column 61 + (4) 2 2 4 2 01 112 2123 t t z t t t t t ?≤< ? =-≤< ? ?-+≤< ? ,其中t=0:: >> t=0::; >> z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^ 2-2.*t+1) z4 =

用递推公式计算定积分(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

实验1熟悉matlab环境和基本操作

实验1 熟悉Matlb环境及基本操作 实验目的: 1.熟悉Matlab环境,掌握Matlab的主要窗口及功能; 2.学会Matlab的帮助使用; 3.掌握向量、矩阵的定义、生成方法和基本运算; 4.掌握Matlab的基本符号运算; 5.掌握Matlab中的二维图形的绘制和控制。 实验内容: 1.启动Matlab,说明主窗口、命令窗口、当前目录窗口、工作空间窗口、历史窗口、图形窗口、M文件编辑器窗口的功能。 2.实例操作Matlab的帮助使用。 3.实例操作向量、矩阵的定义、生成方法和基本运算。 4.实例操作Matlab的基本符号运算。 5.实例操作Matlab中的二维图形绘制和控制。 实验仪器与软件: 1.CPU主频在2GHz以上,内存在512Mb以上的PC; 2.Matlab 7及以上版本。 实验讲评: 实验成绩: 评阅教师: 年月日

实验1 熟悉Matlab环境及基本操作 一、Matlab环境及主要窗口的功能 运行Matlab安装目录下的matlab.exe文件可启动Matlab环境,其默认布局如下图: 其中, 1.主窗口的功能是:主窗口不能进行任何计算任务操作,只用来进行一些整体的环境参数设置,它主要对6个下拉菜单的各项和10个按钮逐一解脱。 2.命令窗口的功能是:对MATLAB搜索路径中的每一个M文件的注释区的第一行进行扫描,一旦发现此行中含有所查询的字符串,则将该函数名及第一行注释全部显示在屏幕上。 3. 历史窗口的功能是:历史窗口显示命令窗口中的所有执行过的命令,一方面可以查看曾经执行过的命令,另一方面也可以重复利用原来输入的命令行,可以从命令窗口中直接通过双击某个命令行来执行该命令,

MATLAB全部实验及答案

MATLAB全部实验及答案 实验一、MATLAB基本操作 实验内容及步骤 4、有关向量、矩阵或数组的一些运算 (1)设A=15;B=20;求C=A+B与c=a+b? (2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与 A.*B? A*B就是线代里面的矩阵相乘 A.*B是对应位置的元素相乘(3)设a=10,b=20;求i=a/b=0.5与j=a\b=2? (4)设a=[1 -2 3;4 5 -4;5 -6 7] 请设计出程序,分别找出小于0的矩阵元素及其位置(单下标、全 下标的形式),并将其单下标转换成全下标。 clear,clc a=[1 -2 3;4 5 -4;5 -6 7]; [x,y]=find(a<0); c=[]; for i=1:length(x) c(i,1)=a(x(i),y(i)); c(i,2)=x(i); c(i,3)=y(i); c(i,4)=(y(i)-1)*size(a,2)+x(i); end c

(5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?前面那 个是虚数矩阵,后面那个出错 (6)请写出完成下列计算的指令: a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=? a^2= 22 16 16 25 26 23 26 24 28 a.^2= 1 4 9 9 16 4 25 4 9 (7)有一段指令如下,请思考并说明运行结果及其原因 clear X=[1 2;8 9;3 6]; X( : ) 转化为列向量 (8)使用三元组方法,创建下列稀疏矩阵 2 0 8 0 0 0 0 1 0 4 0 0 6 0 0 0 方法一: clear,clc

Matlab实验五分支结构程序设计答案

实验五分支结构程序设计 实验内容 (1)从键盘输入一个数,将它反向输出,例如输入693,输出为396 >> clear >> format long g s=input('s=') n=fix(log10(s)); A=0; for i=1:n a=fix(s/10^n); x=fix(mod(s,10^i)/10.^(i-1)); A=A+x*10^(n+1-i); end A+a s=693 s = 693 ans = 396 (2)输入一个百分制成绩,要求输出成绩等级A,B,C,D,E其中90-100位A,80-89为B,70-79为C,60-69为D,60以下为E 1)分别用if语句和switch语句实现 2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息 If语句 >> a=input('输入成绩') if a>=90&a<=100 disp('A 成绩合理'); elseif a>=80&a<90 disp('B 成绩合理'); elseif a>=70&a<80 disp('C 成绩合理');

elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理'); else disp('成绩错误') end 输入成绩98 a = 98 A 成绩合理 >> a=input('输入成绩') if a>=90&a<=100 disp('A 成绩合理'); elseif a>=80&a<90 disp('B 成绩合理'); elseif a>=70&a<80 disp('C 成绩合理'); elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理'); else disp('成绩错误') end 输入成绩148 a = 148 成绩错误 switch语句 >> a=input('输入成绩') switch a; case num2cell(0:59) disp('E 成绩合理'); case num2cell(60:69) disp('D 成绩合理'); case num2cell(70:79) disp('C 成绩合理'); case num2cell(80:89) disp('B 成绩合理'); case num2cell(90:100) disp('A 成绩合理'); otherwise disp('成绩错误'); end

数值积分算法与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、掌握Matlab软件使用的基本方法; 2、熟悉Matlab的数据表示、基本运算和程序控制语句 3、熟悉Matlab绘图命令及基本绘图控制 4、熟悉Matlab程序设计的基本方法 二、实验内容: 1、帮助命令 使用help命令,查找sqrt(开方)函数的使用方法; 解:sqrt Square root Syntax B = sqrt(X) Description B = sqrt(X) returns the square root of each element of the array X. For the elements of X that are negative or complex, sqrt(X) produces complex results. Remarks See sqrtm for the matrix square root. Examples sqrt((-2:2)') ans = 0 + 1.4142i 0 + 1.0000i

1.0000 1.4142 2、矩阵运算 (1)矩阵的乘法 已知A=[1 2;3 4]; B=[5 5;7 8]; 求A^2*B 解:A=[1 2;3 4 ]; B=[5 5;7 8 ]; A^2*B (2)矩阵除法 已知A=[1 2 3;4 5 6;7 8 9]; B=[1 0 0;0 2 0;0 0 3]; A\B,A/B 解:A=[1 2 3;4 5 6;7 8 9 ]; B=[1 0 0;0 2 0;0 0 3 ]; A\B,A/B (3)矩阵的转置及共轭转置

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); ↙

MATLAB上机实验(答案)

MATLAB工具软件实验(1) (1)生成一个4×4的随机矩阵,求该矩阵的特征值和特征向量。程序: A=rand(4) [L,D]=eig(A) 结果: A = 0.9501 0.8913 0.8214 0.9218 0.2311 0.7621 0.4447 0.7382 0.6068 0.4565 0.6154 0.1763 0.4860 0.0185 0.7919 0.4057 L = -0.7412 -0.2729 - 0.1338i -0.2729 + 0.1338i -0.5413 -0.3955 -0.2609 - 0.4421i -0.2609 + 0.4421i 0.5416 -0.4062 -0.0833 + 0.4672i -0.0833 - 0.4672i 0.4276 -0.3595 0.6472 0.6472 -0.4804 D = 2.3230 0 0 0 0 0.0914 + 0.4586i 0 0 0 0 0.0914 - 0.4586i 0 0 0 0 0.2275 (2)给出一系列的a值,采用函数 22 22 1 25 x y a a += - 画一组椭圆。 程序: a=0.5:0.5:4.5; % a的绝对值不能大于5 t=[0:pi/50:2*pi]'; % 用参数t表示椭圆方程 X=cos(t)*a; Y=sin(t)*sqrt(25-a.^2); plot(X,Y) 结果: (3)X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2], (a)写出计算其负元素个数的程序。程序: X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2]; L=X<0; A=sum(L) 结果: A =

详解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环境熟悉及基本操作

实验一 MA TLAB 环境熟悉及基本操作 1. 命令窗口运行入门 1-1 求2 ))39(212(2 -*+的算术运算结果 1-2 简单矩阵A 的生成 1-3 绘制图形比较函数曲线5432x x x x 、、、,要求(一)四个曲线在一个图形文件窗口(二) 子图 2. 命令窗口常用的基本操作 1-4 若用户想计算51) 2sin(21+=πy ,51) 2cos(22+=πy 的值 1-5 变量的保存:save 和load 命令,将已生成的变量保存,名为×××,存入目录C :\my_dir 3. 系统的在线帮助 1-6 help sqrt/help syntax/help (回车) 1-7 lookfor line(查找与直线、线性问题有关的函数) 1-8 help 菜单 实验二 数组(矩阵)及其运算 2-1 用户不能清除的固定变量ans 、eps 、pi 、i 、j 、NaN 、Inf 等 如>>eps Ans=2.2204e-016 2-2 矩阵的创建 (1)>>a=[1 2 3;4 5 6;7 8 9] >>a=[1:2;4:6;7:9]; a1=1:6 (2)利用MA TLAB 内部函数产生矩阵 >>b=eye(3) >>c=ones(2,5) >>d=zeros(3,2) >>e=linspace(-3,6,10) %注意三个参数的含义 >>f=logspace(1,6,5) %注意三个参数的含义 >>R=rand(1,6) (3) 访问元素 >>aa=a(1,2)+a(2,3) >>bb=a(4)+a(8) >>a(end-2:end,2) %在下标中可以直接用end 表示这一维的最后一个元素 (4) 矩阵操作 >>A=[1,2,3;4,5,6;7,8,9] >>B=diag(A) >>C=diag(B) >>D=rot90(A) >>E=reshape(D,1,9) %注意这三个参数的含义 2-3 矩阵运算 (1)算术运算 + - * / \ ^ ‘

河南城建学院MATLAB上机实验答案

一熟悉Matlab工作环境 1、熟悉Matlab的5个基本窗口 思考题: (1)变量如何声明,变量名须遵守什么规则、是否区分大小写。 答:变量一般不需事先对变量的数据类型进行声明,系统会依据变量被赋值的类型自动进行类型识别,也就是说变量可以直接赋值而不用提前声明。变量名要遵守以下几条规则:?变量名必须以字母开头,只能由字母、数字或下划线组成。 ?变量名区分大小写。 ?变量名不能超过63个字符。 ?关键字不能作为变量名。 ?最好不要用特殊常量作为变量名。 (2)试说明分号、逗号、冒号的用法。 分号:分隔不想显示计算结果的各语句;矩阵行与行的分隔符。 逗号:分隔欲显示计算结果的各语句;变量分隔符;矩阵一行中各元素间的分隔符。 冒号:用于生成一维数值数组;表示一维数组的全部元素或多维数组某一维的全部元素。 (3)linspace()称为“线性等分”函数,说明它的用法。 LINSPACE Linearly spaced vector. 线性等分函数 LINSPACE(X1, X2) generates a row vector of 100 linearly equally spaced points between X1 and X2. 以X1为首元素,X2为末元素平均生成100个元素的行向量。 LINSPACE(X1, X2, N) generates N points between X1 and X2. For N < 2, LINSPACE returns X2. 以X1为首元素,X2为末元素平均生成n个元素的行向量。如果n<2,返回X2。 Class support for inputs X1,X2: float: double, single 数据类型:单精度、双精度浮点型。 (4)说明函数ones()、zeros()、eye()的用法。 ones()生成全1矩阵。 zeros()生成全0矩阵。 eye()生成单位矩阵。 2、Matlab的数值显示格式

数值积分的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);

实验1 MATLAB集成环境使用

实验四浸出制剂的制备 实验一 MATLAB集成环境使用实验目的: 1.熟悉MATLAB的基本环境 2.掌握MATLAB的基本命令 3.掌握简单线性方程组的求解 4.掌握MATLAB的行编辑和页面编辑 实验内容与要求 1.观察MATLAB 的基本环境,熟悉菜单和工具栏 2.MATLAB基本命令的使用 a.运行demos, 观看演示程序 b.工作空间管理命令: who , whos , clear , which , quit ,exit workspace c.路径编辑命令: path, cd ,addpath rmpath d.显示格式命令: type wall.m , more on , type coneball.m , more off ,type coneball.m e.窗口清理命令: coneball2 clc cla clf close f. 操作系统命令: copyfile pwd dir delete mkdir g. 联机帮助命令:help help . helpwin lookfor zoom which rguizoom help rguizoom what ver signal 3.简单线性方程组的求解 以学号 208040401 为例 A=[ 2 0 8 0 4 0 4 0 1] b=[ 208 40 401] x==A\b 4.行编辑与页面编辑 a.键入magic(4) 使用,调出该命令,并改变为magic(6)执行. b.执行coneball命令 edit命令, 打开coneball.m文件 改变文件中的半径和高, 存盘后,重新执行该命令,比较前后的不同. 页脚内容1

matlab实验内容答案

实验报告说明: matlab 课程实验需撰写8个实验报告,每个实验报告内容写每次实验内容中标号呈黑体大号字显示的题目。 第一次实验内容: 实验一 MATLAB 运算基础 一、实验目的 1.熟悉启动和退出MA TLAB 的方法。 2.熟悉MA TLAB 命令窗口的组成。 3.掌握建立矩阵的方法。 4.掌握MA TLAB 各种表达式的书写规则以及常用函数的使用。 二、实验内容 1.先求下列表达式的值,然后显示MA TLAB 工作空间的使用情况并保存全部变量。 (1)2 2sin 8511z e ?= + (2 )12ln(2 z x =+ ,其中2120.45 5i +? ? =? ?-?? (3)0.30.33sin(0.3), 3.0, 2.9, 2.8,,2.8,2.9,3.02 a a e e z a a --= +=--- 提示:利用冒号表达式生成a 向量,求各点的函数值时用点乘运算。 (4)2 2 2 01 41 1221 23 t t z t t t t t ?≤

12344347873657A -????=??????,131203327B -???? =????-?? 求下列表达式的值: (1)A+6=B 和A-B+I(其中I 为单位矩阵)。 (2)A*B 和A.*B 。 (3)A^3和A^.3 。 (4)A/B 和B\A 。 (5)[A ,B]和[A([1,3],;);B^2] 。 3.设有矩阵A 和B 12345678910111213141516171819202122232425A ????????=????????, 30 161769 23497041311B ?? ?? -?? ??=-?? ????? ? (1) 求它们的乘积C 。 (2) 将矩阵C 的右下角3×2子矩阵赋给D (3) 查看MA TLAB 工作空间使用情况。 4.完成下列操作: (1)求[100,999]之间能被21整除的数的个数。 提示:先利用冒号表达式,再利用find 和length 函数。 (2)建立一个字符串向量,删除其中的大写字母。 提示:利用find 函数和空矩阵。 第二次实验内容: 实验三 选择结构程序设计 一、实验目的 1. 掌握建立和执行M 文件的方法。 2. 掌握利用if 语句实现选择结构的方法。 3. 掌握利用switch 语句实现多分支选择结构的方法。 4. 掌握try 语句的使用。 二 、实验内容

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的实验环境及基本命令

实验一 MATLAB 的实验环境及基本命令 一实验目的: 1. 学习了解MATLAB 勺实验环境 2. 在MATLA 系统命令窗口练习有关 MATLAB^令的使用。 二实验步骤 1. 学习了解MATLAB 勺实验环境: 在 Windows 桌面上,用 mouse 双击MATLAB!标,即可进入 MATLA 啲默认界面: 图1-1 MATLAB 系统命令窗口 MATLAB 勺默认界面由三部分组成: ① Comma nd Win dows 命令窗口 ② Comma nd History 历史窗口 ③ Workspace 工作空间 2. 练习MATLA 療统命令的使用。 ①表达式 MATLAB 勺表达式由变量、数值、函数及操作符构成。实验前应掌握有关变量、数值、函数及操作 符的有关内容及使用方法。 三实验内容 练习1-1 :计算下列表达式: 要求计算完毕后,键入相应的变量名,查看并记录变量的值。 a=(1+{10)/2 b=|3+5| c=sin(e±) d = 250 /sin ( ’) 实验过程及结果:a=(1+sqrt(10))/2 a =2.0811 b= abs(3+5*i) b =5.8310 c= si n(exp(-2.3)) c=0.1001 d=250/s in (pi/6) d=500.0000 ②.向量运算:n 维向量是由n 个成员组成的行或列数组。在 MATLA 中,由分号分隔的方括号中的元 素产生一个列向量;由逗号或空号分隔的方括号中的元素产生一个列向量;同维的向量可进行加减运 算,乘法须遵守特殊的原则。 练习1-2 已知:X=[2 ; -4 ; 8] 求:Y=R ; P=5*R; E=X* Y ; S=X * Y 实验过程及结果:R=[tan(pi/4),sqrt(9),-5] R=1.0000 3.0000 - Y=R' Y=1.0000 P=5*R P =5.0000 15.0000 -25.0000 R=1.0000 3.0000 -5.0000

相关主题
文本预览
相关文档 最新文档