MATLAB数值微积分

合集下载

matlab微分与积分

matlab微分与积分
quadl函数来求定积分。该函数的调用格式 为:
[I,n]=quadl('fname',a,b,tol,trace) 其中参数的含义和quad函数相似,只是用高
阶自适应递推法,该函数可以更精确地求 出定积分的值,且一般情况下函数调用的 步数明显小于quad函数,从而保证能以更 高的效率求出所需的定积分值。
(3) fft(X,[],dim)或fft(X,N,dim):这是对于矩 阵而言的函数调用格式,前者的功能与 FFT(X)基本相同,而后者则与FFT(X,N) 基本相同。只是当参数dim=1时,该函数 作用于X的每一列;当dim=2时,则作用于 X的每一行。
数值微积分以及数值分析
2020/5/17
1
数值微分
数值微分的实现 两种方式计算函数f(x)在给定点的数值导数:1.用多项式或
者样条函数 2. 利用数据的有限差分
在MATLAB中,没有直接提供求数值导数的函数,只有计 算向前差分的函数diff,其调用格式为:
DX=diff(X):计算向量X的向前差分,DX(i)=X(i+1)-X(i), i=1,2,…,n-1。
I=
2.4674
2020/5/17
8
3.Trapz : 计算梯形面积的和来计算定积分 在MATLAB中,对由表格形式定义的函数关系的求定积分
问题用trapz(X,Y)函数。其中向量X,Y定义函数关系 Y=f(X)。
例 用trapz函数计算定积分。 命令如下:
X=1:0.01:2.5; Y=exp(-X); %生成函数关系数据向量 trapz(X,Y) ans =
• Help dell2
2020/5/17
3
数值积分
数值积分基本原理 求解定积分的数值方法多种多样,如简单 的梯形法、辛普生(Simpson)•法、牛顿- 柯特斯(Newton-Cotes)法等都是经常采用 的方法。它们的基本思想都是将整个积分 区i积=1间分,2[问,a…,题b,n]分就,成分其n解中个为x子1=求区a和,间问x[nx+题1i,=x。bi+。1],这样求定

基于Matlab的数值积分公式问题

基于Matlab的数值积分公式问题

数值分析学号:130080402015学生所在学院:测试与光电工程学院学生姓名:张翀任课教师:郑华盛教师所在学院:数信学院基于Matlab的数值积分公式问题张翀,测试与光电工程学院测试计量技术及仪器,130080402015摘要:在求一些函数的定积分时,由于原函数十分复杂难以求出或用初等函数表达,导致积分很难精确求出,只能设法求其近似值,因此能够直接借助牛顿----莱布尼兹公式计算定积分的情形是不多的。

数值积分就是解决此类问题的一种行之有效的方法。

积分的数值计算是数值分析的一个重要分支;因此,探讨近似计算的数值积分方法是有着明显的实际意义的。

本文介绍了数值积分法的几种计算公式,如矩形求积公式、梯形求积公式和辛普森求积公式及相应的MATLAB命令,并给出了用 MATLAB编程求数值积分的实例。

关键词: MA TLAB;数值积分;矩形求积公式;梯形求积公式;辛普森求积公式目录1引言 (1)2数值积分算法介绍 (1)2.1数值求积公式的构造 (1)2.2求积公式的推导 (2)2.3常见的牛顿-科特斯求积公式 (5)2.4复合求积公式 (7)3关于河流横断面积的数值积分问题 (8)4问题的求解过程 (9)5基于MATLAB编程的各种求积公式对问题的求解 (9)6总结 (13)参考文献 (14)附录 (15)1 引言实际问题当中常常需要计算积分。

有些数值方法,如微分方程和积分方程的求解,也都和积分计算相联系。

在一元微积分学中,对于积分 ⎰=badx x f I)(,只要找到被积函数f (x )原函数为F( x) ,求f(x)在该区间上的定积分便可用牛顿 - 莱布尼兹公式求解,即⎰-=baa Fb F dx x f )()()(。

用牛顿 - 莱布尼兹公式计算定积分的方法在理论上和解决实际问题中起到了很大的作用 ,但它并不能解决定积分计算的所有问题。

在工程技术领域常遇到十分复杂的情况而无法用牛顿 - 莱布尼兹公式求解.其可能出现的情况有:(1) 某些被积函数f(x),其原函数无法用初等函数表示 ,如⎰dx e x 2, dx xx⎰sin 等。

matlab在微积分中的应用

matlab在微积分中的应用

matlab在微积分中的应用MATLAB在微积分中的应用一、MATLAB在求导和积分中的应用MATLAB集成了丰富的数学函数库,可以在求导和积分等方面帮助学生更好地理解微积分知识。

举例来说,MATLAB中的diff函数可以对一个函数或矩阵进行求导,计算结果准确可靠。

通过MATLAB可以解决一些手动计算困难的问题,有助于提高学生对微积分的理解。

在数值积分过程中,MATLAB也可以很好地发挥作用。

MATLAB中的quad函数可以用来求解函数在给定区间内的数值积分,通过对函数的积分计算,可以更好地理解微积分中的面积和曲线等概念。

在讲解微积分的面积和曲线时,使用MATLAB可以展示较多的面积和曲线实例,有助于学生理解具体实例。

二、MATLAB在微积分三维空间中的应用微积分中的三维空间部分,一般使用手工计算的方式进行,但是这种方式难度较大而且操作繁琐。

而MATLAB可以很方便地模拟三维空间中的曲线表面、曲面、向量场和曲线积分等,为学生提供更具体、直观的视觉体验。

MATLAB还可以使用画图函数,将许多计算步骤集成在一个命令窗口中,方便学生学习和理解三维空间的微积分。

三、MATLAB在微积分应用中的优点1. 计算精度高:MATLAB的计算精度非常高,可以解决许多手动计算困难的问题。

在使用MATLAB计算微积分时,可以快速得出精确的计算结果。

2. 操作简便:MATLAB界面友好,操作简便。

学生可以很容易地进行操作,快速理解微积分中的概念和原理。

3. 可视化更强:MATLAB可以将微积分的概念可视化,将微积分的理论和实际应用结合起来。

这样的教学方式更加形象直观,可以帮助学生更好地理解微积分的知识体系。

四、总结综合以上述,MATLAB在微积分中的应用,可以帮助学生更好地理解和掌握微积分的基本原理和概念,提高学生学习效率和学习兴趣。

MATLAB也为教师提供了一个新的教学工具,可以更加灵活地设计和授课,提高教学质量和教学效果。

matlab中积分的命令

matlab中积分的命令

matlab中积分的命令Matlab中有多种命令可以用于数值积分,本文将介绍其中几个常用的积分命令,包括quad、quadl、quadgk和integral。

这些命令可以用于一维和多维积分,可以求解定积分和非定积分。

一、quad命令quad命令用于求解一维定积分,其语法为:Q = quad(fun,xmin,xmax)其中fun为要积分的函数句柄,xmin和xmax为积分的下限和上限。

quad命令使用自适应的数值积分方法,可以在较高的精度下求解积分。

二、quadl命令quadl命令也用于求解一维定积分,其语法为:Q = quadl(fun,xmin,xmax)quadl命令使用高斯-勒让德求积法,可以在较高的精度下求解积分。

与quad命令相比,quadl命令在处理某些特定类型的函数时更为准确和稳定。

三、quadgk命令quadgk命令用于求解一维非定积分,其语法为:Q = quadgk(fun,xmin,xmax)quadgk命令使用高斯-科特斯求积法,可以在较高的精度下求解非定积分。

与quad命令和quadl命令相比,quadgk命令对积分区间的长度不敏感,适用于各种类型的函数。

四、integral命令integral命令用于求解一维定积分和非定积分,其语法为:Q = integral(fun,xmin,xmax)integral命令根据输入的积分区间长度自动选择合适的数值积分方法,可以在较高的精度下求解积分。

与quad命令、quadl命令和quadgk命令相比,integral命令更加智能化,可以根据积分函数的特点自动调整积分算法。

除了以上介绍的命令外,Matlab还提供了其他一些用于数值积分的命令,如dblquad、triplequad和quad2d等。

这些命令可以用于求解二维和多维积分,适用于更复杂的问题。

在使用这些积分命令时,需要注意以下几点:1. 积分区间的选择:根据积分函数的特点选择合适的积分区间,以确保求解的准确性和稳定性。

matlab quad函数用法

matlab quad函数用法

MATLAB是一种用于算法开发、数据分析、可视化和数值计算的高级技术计算语言和交互式环境。

在MATLAB中,quad函数是用于数值积分的一个非常重要的函数,被广泛应用于工程、科学和数学领域。

本文将介绍quad函数的用法,帮助读者更好地理解和使用这一函数。

一、quad函数概述quad函数是MATLAB中用于数值积分的函数,可以用于计算一元函数的定积分。

其调用格式为:\[q = \text{quad}(fun, a, b)\]其中fun为要积分的函数句柄,a和b为积分的区间,q为积分的结果。

二、quad函数的基本用法在使用quad函数时,首先需要定义要积分的函数fun,并将其作为参数传递给quad函数。

假设要计算函数f(x) = x^2在区间[0, 1]上的定积分,可以按照以下步骤进行:```matlabfun = @(x) x.^2;a = 0;b = 1;q = quad(fun, a, b);disp(q);```运行以上代码可以得到函数f(x) = x^2在区间[0, 1]上的定积分结果。

三、quad函数的高级用法除了基本的用法外,quad函数还可以处理一些复杂的积分计算情况。

可以通过设置参数选项来控制积分的精度和其他计算参数。

quad函数的调用格式为:\[q = \text{quad}(fun, a, b, \text{'Name1',Value1,...})\]其中Name1、Value1等为参数选项及其取值。

可以通过设定'AbsTol'选项来控制积分的绝对误差容限,通过设定'RelTol'选项来控制积分的相对误差容限。

具体示例代码如下:```matlabfun = @(x) x.^2;a = 0;b = 1;q = quad(fun, a, b, 'AbsTol', 1e-8, 'RelTol', 1e-6);disp(q);```通过设置AbsTol和RelTol选项,可以提高积分的精度和稳定性。

matlab-008

matlab-008
s=26.3445
Newton-cotes法 Newton-cotes法求数值积分用quadl()函数,其原理为:
I =

b a
nh n f ( x ) dx ≈ ⋅ ∑ Ai f ( a + ih ) N i=0
其中,Ai为科茨数,可以查表得到 梯形法调用格式为:I=quadl(‘fun’,a,b,tol) ,即用牛顿-科 茨法计算被积函数fun在(a,b)区间内的定积分;tol指定了 迭代精度,默认为.000001
矩阵除法求解
例:采用直接法解方程组:
3 1 0 1 1 −5 2 6 −4 0 1 −1 1 x1 13 7 x2 − 9 = x3 6 −1 x −4 4 0
-0 .1 5 8 7 1 . 1 5 8 6 X = 0 0
-0 .6 4 9 4 -0 .1 2 1 4 + k1 0 .7 3 3 3 -0 .1 6 0 8
+ k2
0 .0 1 8 2 -0 .9 0 0 5 -0 .0 3 8 1 0 .4 3 2 9
例:>>I=quadl('exp(-0.4*x).*cos(x+pi/3)',0,3*pi) I= -0.5874
重积分 二重积分用dblquad()函数求数值积分,其调用格式为: I=dblquad(fun,xmin,xmax,ymin,ymax,tol,method) 三重积分用triplequad()函数求数值积分,其调用格式为: I=triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)

第三章-matlab求解微积分

第三章-matlab求解微积分

第三章 微积分的数学实验3.1极限与一元微积分3.1.1 初等运算1.定义单个或多个符号变量:syms x y z t ;定义单个符号变量或者符号函数还可以用单引号定义,如x=’x ’,f=’sin(x^2)+2*x-1’。

符号表达式的反函数运算g=finverse(f),g 是返回函数f 的反函数。

例1 求sin(1)y x =-的反函数>>syms x>>y=sin(x-1); g=finverse(y),结果为 g=1+asin(t)2. f actor(f) 因式分解函数f3.Collect(f) 对函数f 合并同类项4. expand(f) 将函数f 表达式展开5. simple(f) 找出表达式的最简短形式(有时需要用2次)6. roots (p )对多项式p 求根函数。

7. solve(F) 一般方程的求根函数例2 解方程2510x x +-=解 >>syms x>>solve(x^2+5*x-1)结果为x =[ -5/2+1/2*29^(1/2) -5/2-1/2*29^(1/2)]8.fzero(f,x0)或fzero(f,[a,b]) 在初始点x0处开始或在区间[a,b]上搜索函数的零点,f(a)与f(b)需要符号相反。

3.1.2 Matlab计算函数的极限函数形式:1)limit(F,x,a),求函数F在 x ->a时的极限。

2)limit(F,a),默认其中的变量为极限变量.3)limit (F),默认其中的变量为极限变量且趋向于0.4)limit(F,x,a,'right')或limit(F,x,a,’left') 求函数F在x->a时的右、左极限.例3 >>syms x a t h; %syms作用是申明x,a,t,h是符号变量,不需先赋值再调用。

>>limit(sin(x)/x) %结果为 1>>limit((x-2)/(x^2-4),2) %结果为 1/4>>limit((1+2*t/x)^(3*x),x,inf) %结果为 exp(6*t)>>limit(1/x,x,0,'right') %结果为 inf>>limit(1/x,x,0,'left') %结果为 -inf>>limit((sin(x+h)-sin(x))/h,h,0) %结果为 cos(x)>>v = [(1 + a/x)^x, exp(-x)];limit(v,x,inf,'left') %结果为[exp(a),0]3.1.3 Matlab计算导数与微分1.一元导数和微分diff函数用以计算函数的微分和导数,相关的函数语法有下列4个:diff(f) 返回f对预设独立变量的一次导数值diff(f,'t')或diff(f,t) 返回f对独立变量t的一次导数(值)diff(f,n) 返回f对预设独立变量的n阶导数(值)diff(f,'t',n) 或diff(f,t,n)返回f对独立变量t的n阶导数(值)这里尽管自变量已经作为符号变量,可以不用syms说明,但是在具体执行diff(f)、diff(f,'t')和diff(f,t)会出现差异,有的能够执行,有的不能够,有的执行符号微分,有的执行数值微分,所以比较麻烦。

Matlab中的数值积分和微分方法

Matlab中的数值积分和微分方法

Matlab中的数值积分和微分方法在数学和工程领域,数值积分和微分是解决问题的常见方法之一。

而在计算机科学中, Matlab作为一种强大的数值计算软件,提供了许多数值积分和微分的函数,使得这两个问题的解决变得更加简单和高效。

本文将探讨 Matlab 中常用的数值积分和微分方法,包括不定积分、定积分、数值微分和高阶数值微分。

我们将逐一讨论这些方法的原理和使用方法,并展示一些实际的应用案例,以帮助读者更好地理解和应用这些技术。

一、不定积分不定积分是指求一个函数的原函数。

在 Matlab 中,我们可以使用 `int` 函数来实现不定积分的计算。

例如,如果我们想求解函数 f(x) = x^2 的不定积分,可以使用下面的代码:```syms x;F = int(x^2);```这里的 `syms x` 表示将 x 定义为一个符号变量,`int(x^2)` 表示求解函数 x^2 的不定积分。

得到的结果 F 将是一个以 x 为变量的符号表达式。

除了求解简单函数的不定积分外,Matlab 还支持求解复杂函数的不定积分,例如三角函数、指数函数等。

我们只需要将函数表达式作为 `int` 函数的参数即可。

二、定积分定积分是指求函数在一个闭区间上的积分值。

在 Matlab 中,我们可以使用`integral` 函数来计算定积分。

例如,如果我们想计算函数 y = x^2 在区间 [0, 1] 上的积分值,可以使用下面的代码:```y = @(x) x^2;result = integral(y, 0, 1);```这里的 `@(x)` 表示定义一个匿名函数,`integral(y, 0, 1)` 表示求解函数 y = x^2 在区间 [0, 1] 上的积分。

得到的结果 result 将是一个数值。

与不定积分类似,Matlab 还支持对复杂函数求解定积分,只需要将函数表达式作为 `integral` 函数的第一个参数,并指定积分的区间。

利用matlab进行微积分的计算

利用matlab进行微积分的计算

Matlab的微积分符号运算都可以对数组进行。
函数的积分 积分符号运算的基本语句 int(F); %求函数表达式F的不定积分 int(F,v); %求函数表达式F关于变量v的不定积分 int(F,a,b); %求函数表达式F在区间[a,b]上的定积分 int(F,v,a,b); %求函数表达式F在区间[a,b]上的关于变量v的 定积分
elapsed time is 17.471170 seconds. s=
53362913282294785045591045624042980409652472280384260097101349248456268889497101757 50609790198503569140908873155046809837844217211788500946430234432656602250210027842 563285208140554494121044251014267277029477471270891796396777961045322469242686646888 828158207198489710511079687324931915552939701750893156451997608573447301418328401172 44122806490743077037366831700558002936592350885893602352858528081607595747378366554 13175508131522517/712886527466509305316638415571427292066835886188589304045200199115 432408758111149947644415191387158691171781701957525651298026406762100925146587100430 513107268626814320019660997486274593718834370501543445252373974529896314567498212823 69562328237940110688092623177088619795407912477545580493264757378299233527517967352 48042463638051137034331214781746850878453485678021888075373249921995672056932029099 390891687487672697950931603520000

matlab求微分方程精确解与近似解

matlab求微分方程精确解与近似解

Euler 折线法
考虑一维经典初值问题
dy dx
f (x, y) ,
y( x0 )
y0
,
x [a, b]
基本思想:用差商代替微商
根据 Talyor 公式,y(x) 在点 xk 处有
y( x) y( xk ) ( x xk ) y '( xk ) O(x2 )
y( xk1 ) y( xk ) hy '( xk ) O(h2 ) h xk1 xk
clear; global mu;mu=7; y0=[1;0]; [t,x]=ode45('verderpol',[0,40],y0); plot(t,x(:,1),'r-');
Matlab 求解微分方程小结
Matlab 函数
求解析解(通解或特解),用 dsolve 求数值解(特解),用 ode45、ode23 ...
Matlab 编程
Euler 折线法 Runga-Kutta 方法
上机作业
教材 P97:练习 1、2、3、4、5、6、7 要求:
请在上机之前将程序写好(参考附录),上机时 直接输入或修改附录程序即可。

4:求初值问题
dy dx
2 y 2x2
2x
的数值解,求解范
围为 [0,0.5]
y(0) 1
fun=inline('-2*y+2*x^2+2*x','x','y'); [x,y]=ode23(fun,[0,0.5],1);
注:也可以在 tspan 中指定对求解区间的分割,如:
[x,y]=ode23(fun,[0:0.1:0.5],1); %此时 x=[0:0.1:0.5]

MATLAB的微积分基本运算

MATLAB的微积分基本运算

MATLAB的微积分基本运算第六章 MATLAB 的微积分基本运算学习⽬标:1、熟悉符号对象和表达式的创建;2、熟悉计算结果的类型与精度控制和转换3、掌握MATLAB 中符号微积分运算:极限、导数、积分的命令及格式。

第⼀节极限⼀、极限概念演⽰:数列极限是指当n ⽆限增⼤时,n u 与某常数⽆限接近或n u 趋向于某⼀定值,就图形⽽⾔,其点列以某⼀平⾏y 轴的直线为渐近线。

函数极限也是如此。

例1:观察数列?+1n n ,当∞→n 时的变化趋势。

输⼊程序:>> n=1:100;xn=n./(n+1); >> for i=1:100;plot(n(i),xn(i),'r') % plot 是⼆维图形作图命令。

hold onend % for ……..end 语句是循环语句,循环体内的语句被执⾏100次由图可看出,随n 的增⼤,点列与直线y=1⽆限接近,所以11lim=+∞→n nn 例2:观察函数 xx f 1sin)(=,当0→x 时的变化趋势。

输⼊程序:>> x=-1:0.01:1;y=sin(1./x);plot(x,y)从图可看到,当0→x 时,x1sin 在-1和1之间⽆限次振荡,极限不存在。

例3:观察函数 xxx f )11()(+=,当∞→x 时的变化趋势输⼊程序:>> x=-1:10:1000;y=(1+1./x).^x;plot(x,y)从图可看到,当∞→x 时,函数值与某常数⽆限接近,这个常数就是e 。

⼆、极限计算:如果符号表达式F中只有⼀个变量x,x可以省略,当a=0时0也可以省略。

例:阅读理解下列程序>> syms x n>> limit(x^2*exp(x))ans =>> limit(exp(-1/x),x,0,'left')ans =inf>> limit((1+2/n)^(3*n),n,inf)ans =exp(6)三、符号对象与表达式的建⽴微积分运算的对象为函数,MATLAB称为符号表达式, MATLAB进⾏微积分运算⾸先要建⽴符号表达式,然后才可以利⽤MATLAB符号数学⼯具箱提供的函数进⾏运算。

用matlab计算微积分

用matlab计算微积分

是int,其调用格式为: int(f,x) int函数求函数f对变量x的不定积分。
例4 求不定积分

x x dx
2 4
解: 原 式 x 1 x 2 dx
1 1 x 2 d (1 x 2 ) 2
3 1 2 . .(1 x 2 ) 2 2 3 3 1 (1 x 2 ) 2 c 3
在MATLAB中,求定积分的函数是int,
例 6 求积分
1 0
1
2

3 2x x 1
dx, dx,
3 2x x
2
syms x; int(1/(3+2*x+x^2),x,0,1) int(1/(3+2*x+x^2),x,-inf,inf)
2x 1 例7求定积分 cost (2 x 2 3 x 1)2 dx
因式分解
因式分解
factor(f)
syms x; f=x^6+1; factor(f)
factor 也可用于正整数的分解
s=factor(100) factor(sym('12345678901234567890'))
大整数的分解要转化成符号常量
函数展开
函数展开
expand(f)
多项式展开
>> syms x; f=(x+1)^6; >> expand(f)
三角函数展开
>> syms x y; f=sin(x+y); >> expand(f)
合并同类项
合并同类项
collect(f,v): 按指定变量 v 进行合并 collect(f): 按默认变量进行合并

用matlab求数值积分的方法

用matlab求数值积分的方法

用matlab求数值积分的方法
数值积分也称为数值积分法,是一种用计算机来近似求解定积分的方法。

在MATLAB中,可以使用三种数值积分方法:梯形法、辛普森法和积分变换法。

梯形法是最简单的数值积分方法之一,它通过将被积函数在区间上近似为一条直线,然后计算这条直线下的面积来近似定积分。

在MATLAB中,可以使用trapz函数来使用梯形法进行数值积分。

辛普森法是梯形法的改进版,它通过将被积函数在区间上近似为一个二次函数,然后计算这个二次函数下的面积来近似定积分。

在MATLAB中,可以使用quad函数来使用辛普森法进行数值积分。

积分变换法是一种更加精确的数值积分方法,它通过将被积函数进行一定的变换,然后将变换后的函数在区间上近似为一个多项式函数,最后计算这个多项式函数下的面积来近似定积分。

在MATLAB中,可以使用quadgk函数来使用积分变换法进行数值积分。

总之,MATLAB提供了许多数值积分的函数,选择合适的数值积分方法可以根据具体问题的要求来确定。

第7章 MATLAB数值微分与积分

第7章  MATLAB数值微分与积分
4.梯形积分法
在科学实验和工程应用中,函数关系表达式往往是 不知道的,只有实验测定的一组样本点和样本值, 这时,人们就无法使用quad等函数计算其定积分。 在MATLAB中,对由表格形式定义的函数关系的求 定积分问题用梯形积分函数trapz,其调用格式为:
I=trapz(X,Y)
其中,向量X、Y定义函数关系Y = f(X)。X、Y是两 个等长的向量:X = (x1,x2,…,xn),Y = (y1, y2,…,yn),并且x1<x2<…<xn,积分区间是[x1, xn]。
用不同的方法求函数f(x)的数值导数,并在同一个 坐标系中做出f‘(x)的图像。
f=@(x) sqrt(x.^3+2*x.^2-x+12)+(x+5).^(1/6)+5*x+2;
g=@(x) (3*x.^2+4*x-1)./sqrt(x.^3+2*x.^2-x+12)/2+1/6./(x+5).^(5/6)+5;
第7章 MATLAB数值微分与积分
5.累计梯形积分 在MATLAB中,提供了对数据积分逐步累计的函数 cumtrapz。该函数调用格式如下。 Z=cumtrapz(Y) Z=cumtrapz(X,Y) 对于向量Y,Z是一个与Y等长的向量;对于矩阵Y,Z 是一个与Y相同大小的矩阵,累计计算Y每列的积分。 函数其他参数的含义和用法与trapz函数的相同。例如:
f
(a)
f
(b)]
基本辛普森公式:
S2
ba[ 6
f
(a) 4
f
(a b) 2
f
(b)]
复合梯形公式:
s3
h[ f 2

MATLAB中的微积分运算(数值符号)

MATLAB中的微积分运算(数值符号)

MATLAB中的微积分运算(数值符号)显然这个函数是单词differential(微分)的简写,⽤于计算微分。

实际上准确来说计算的是差商。

如果输⼊⼀个长度为n的⼀维向量,则该函数将会返回长度为n-1的向量,向量的值是原向量相邻元素的差,于是可以计算⼀阶导数的有限差分近似。

(1)符号微分1.常⽤的微分函数函数:diff(f) 求表达式f对默认⾃变量的⼀次微分值diff(f,x) 求表达式f对⾃变量x的⼀次积分值diff(f,n) 求表达式f对默认⾃变量的n次微分值diff(f,t,n)求表达式f对⾃变量t的n次微分值>> x=1:10x =1 2 3 4 5 6 7 8 9 10>> diff(x)ans =1 1 1 1 1 1 1 1 1例1:求矩阵中各元素的导数求矩阵[1/(1+a) (b+x)/cos(x)1/(x*y) exp(x^2)]对x的微分,可以输⼊以下命令A = sym('[1/(1+a),(b+x)/cos(x);1,exp(x^2)]');B = diff(A,'x')可得到如下结果:例2:求偏导数求的偏导数。

syms x y;f = x*exp(y)/y^2;fdx = diff(f,x)fdy = diff(f,y)可得到如下结果:例3:求复合函数的导数求的导数sym('x');y = 'x*f(x^2)'y1 = diff(y,'x')得到结果如下:例4:求参数⽅程的导数对参数⽅程求导syms a b tf1 = a*cos(t);f2 = b*sin(t);A = diff(f2)/diff(f1) %此处代⼊了参数⽅程的求导公式B = diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2)/diff(f1)^3 %求⼆阶导数可得到如下结果:例5:求隐函数的导数求的⼀阶导数syms x yp = 'x*y(x)-exp(x+y(x))'%隐函数可进⾏整体表⽰%注意y(x)这种写法,它代表了y是关于x的函数p1 = diff(p,x)可得到如下结果:2.符号积分1符号函数的不定积分函数:int功能:求取函数的不定积分语法:int(f)int(f,x)说明:第⼀个是求函数f对默认⾃变量的积分值;第⼆个是求⾃变量f对对⾃变量t的不定积分值。

MATLAB教程第8章MATLAB数值积分与微分

MATLAB教程第8章MATLAB数值积分与微分

MATLAB教程第8章MATLAB数值积分与微分1.数值积分数值积分是计算函数的定积分值的近似方法。

在MATLAB中,有几个函数可以帮助我们进行数值积分。

(1) quad函数quad函数是MATLAB中用于计算一维定积分的常用函数。

它的语法如下:I = quad(fun, a, b)其中,fun是被积函数的句柄,a和b分别是积分区间的下界和上界,I是近似的积分值。

例如,我们可以计算函数y=x^2在区间[0,1]内的积分值:a=0;b=1;I = quad(fun, a, b);disp(I);(2) integral函数integral函数是在MATLAB R2024a版本引入的新函数,它提供了比quad函数更稳定和准确的积分计算。

integral函数的语法如下:I = integral(fun, a, b)其中fun、a和b的含义与quad函数相同。

例如,我们可以使用integral函数计算函数y = x^2在区间[0, 1]内的积分值:a=0;b=1;I = integral(fun, a, b);disp(I);2.数值微分数值微分是计算函数导数的近似方法。

在MATLAB中,可以使用diff 函数计算函数的导数。

(1) diff函数diff函数用于计算函数的导数。

它的语法如下:derivative = diff(fun, x)其中,fun是需要计算导数的函数,x是自变量。

例如,我们可以计算函数y=x^2的导数:syms x;fun = x^2;derivative = diff(fun, x);disp(derivative);(2) gradient函数gradient函数可以计算多变量函数的梯度。

它的语法如下:[g1, g2, ..., gn] = gradient(fun, x1, x2, ..., xn)其中fun是需要计算梯度的函数,x1, x2, ..., xn是自变量。

例如,我们可以计算函数f=x^2+y^2的梯度:syms x y;fun = x^2 + y^2;[gx, gy] = gradient(fun, x, y);disp(gx);disp(gy);以上是MATLAB中进行数值积分和微分的基本方法和函数。

第7章 MATLAB数值微分与积分_习题答案

第7章  MATLAB数值微分与积分_习题答案

1第7章 MATLAB 数值微分与积分习题7一、选择题1.diff([10,15])的值是( )。

AA .5B .10C .15D .252.数值积分方法是基于( )的事实。

DA .求原函数很困难B .原函数无法用初等函数表示C .无法知道被积函数的精确表达式D .A ,B ,C 三个选项3.求数值积分时,被积函数的定义可以采取( )。

DA .函数文件B .内联函数C .匿名函数D .A ,B ,C 三个选项4.以下选项不能用来求数值积分的函数是( )。

BA .quadgkB .quad2C .integralD .integral25.以下选项不是离散傅里叶变换的函数是( )。

CA .fftB .fft2C .fft1D .fftn二、填空题1.在MATLAB 中,没有直接提供求 的函数,只有计算 的函数diff 。

数值导数,向前差分2.基于变步长辛普森法,MATLAB 给出了 函数和 函数来求定积分。

quad ,quadl3.MA TLAB 提供了基于全局自适应积分算法的 函数来求定积分,该函数的积分限 (可以或不可以)为无穷大。

integral ,可以4.MATLAB 提供的 、 、 函数用于求二重积分的数值解, 、 函数用于求三重积分的数值解。

integral2,quad2d ,dblquad ,integral3,triplequad5.MA TLAB 提供了离散傅里叶变换函数fft ,对应的逆变换函数是 。

ifft三、应用题1.求函数在指定点的数值导数。

(1)2346x x x x f 22ππππ,,,,cos sin)(=+= (2)321x 1x x f 2,,,)(=+=2(1):(2):直接用导数函数求:f=inline('x./sqrt(x.^2+1)');f(1)用拟合函数求:f=inline('sqrt(x.^2+1)');x=0:0.001:5;p=polyfit(x,f(x),5);dp=polyder(p);dpx=polyval(dp,1)2.求定积分。

Matlab数值积分与数值微分

Matlab数值积分与数值微分

Matlab数值积分与数值微分M a t l a b数值积分与数值微分Matlab数值积分1.⼀重数值积分的实现⽅法变步长⾟普森法、⾼斯-克朗罗德法、梯形积分法1.1变步长⾟普森法Matlab提供了quad函数和quadl函数⽤于实现变步长⾟普森法求数值积分.调⽤格式为:[I,n]=Quad(@fname,a,b,tol,trace)[I,n]=Quadl(@fname,a,b,tol,trace)Fname是函数⽂件名,a,b分别为积分下限、积分上限;tol为精度控制,默认为1.0×10-6,trace控制是否展开积分过程,若为0则不展开,⾮0则展开,默认不展开.返回值I为积分数值;n为调⽤函数的次数.--------------------------------------------------------------------- 例如:求∫e0.5x sin(x+π)dx3π的值.先建⽴函数⽂件fesin.mfunction f=fesin(x)f=exp(-0.5*x).*sin(x+(pi/6));再调⽤quad函数[I,n]=quad(@fesin,0,3*pi,1e-10)I=0.9008n=365--------------------------------------------------------------------- 例如:分别⽤quad函数和quadl函数求积分∫e0.5x sin(x+π6)dx3π的近似值,⽐较函数调⽤的次数.先建⽴函数⽂件function f=fesin(x)f=exp(-0.5*x).*sin(x+(pi/6));formatlong[I,n]=quadl(@fesin,0,3*pi,1e-10)I=n=198[I,n]=quad(@fesin,0,3*pi,1e-10)I=n=365--------------------------------------------------------------------- 可以发现quadl函数调⽤原函数的次数⽐quad少,并且⽐quad函数求得的数值解更精确.1.2⾼斯-克朗罗德法Matlab提供了⾃适应⾼斯-克朗罗德法的quadgk函数来求震荡函数的定积分,函数的调⽤格式为:[I,err]=quadgk(@fname,a,b)Err返回近似误差范围,其他参数的意义与quad函数相同,积分上下限可以是-Inf或Inf,也可以是复数,若为复数则在复平⾯上求积分.--------------------------------------------------------------------- 例如:求积分∫xsinx1+cos2xdx π的数值.先编写被积函数的m⽂件fsx.mfunction f=fsx(x)f=x.*sin(x)./(1+cos(x).^2);再调⽤quadgk函数I=quadgk(@fsx,0,pi)I=2.4674--------------------------------------------------------------------- 例如:求积分∫xsinxdx +∞∞的值.先编写被积函数的m⽂件fsx.mfunction f=fsx(x)f=x.*sin(x)./(1+cos(x).^2); 再调⽤quadgk函数I=quadgk(@fsx,-Inf,Inf)I=-9.0671e+017---------------------------------------------------------------------1.3梯形积分法对于⼀些不知道函数关系的函数问题,只有实验测得的⼀组组样本点和样本值,由表格定义的函数关系求定积分问题⽤梯形积分法,其函数是trapz函数,调⽤格式为:I=Traps(X,Y)X,Y为等长的两组向量,对应着函数关系Y=f(X) X=(x1,x2,…,x n)(x1分区间是[x1,x n]--------------------------------------------------------------------- 例如:已知某次物理实验测得如下表所⽰的两组样本点.现已知变量x和变量y满⾜⼀定的函数关系,但此关系未知,设y=f(x),求积分13.39∫f(x)dx1.38的数值.X=[1.38,1.56,2.21,3.97,5.51,7.79,9.19,11.12,13.39];Y=[3.35,3.96,5.12,8.98,11.46,17.63,24.41,29.83,32.21]; I=trapz(X,Y) I=217.1033---------------------------------------------------------------------例如:⽤梯形积分法求积分:∫e ?x dx 2.51的数值.x=1:0.01:2.5; y=exp(-x); I=trapz(x,y) I= 0.2858---------------------------------------------------------------------2. 多重数值积分的实现重积分的积分函数⼀般是⼆元函数f(x,y)或三元函数f(x,y,z);形如:∫∫f (x,y )dxdy ba dc∫∫∫f(x,y,z)dxdydz b a d cf eMatlab 中有dblquad 函数和triplequad 函数来对上述两个积分实现.调⽤格式为: I=dblquad(@fun,a,b,c,d,tol)I=triplequad(@fun,a,b,c,d,e,f,tol)Fun 为被积函数,[a,b]为x 的积分区间;[c,d]为y 的积分区间;[e,f]为z 的积分区间.Dblquad 函数和triplequad 函数不允许返回调⽤的次数,如果需要知道函数调⽤的次数,则在定义被积函数的m ⽂件中增加⼀个计数变量,统计出被积函数被调⽤的次数.---------------------------------------------------------------------例如:计算⼆重积分I =∫∫√dxdy π2π2π2π2的值.先编写函数⽂件fxy.mfunction f=fxy(x,y) global k; k=k+1;f=sqrt(x.^2+y.^2);再调⽤函数dblquadglobalk; k=0;I=dblquad(@fxy,-pi/2,pi/2,-pi/2,pi/2,1.0e-10) I= 11.8629 k k= 37656---------------------------------------------------------------------例如:求三重积分∫∫∫4xze ?z2y?x 2dxdydz ππ1的值.编写函数⽂件fxyz1.mfunction f=fxyz1(x,y,z)global j;j=j+1;f=4*x.*z.*exp(-z.*z.*y-x.*x);调⽤triplequad函数editglobalj;j=0;I=triplequad(@fxyz1,0,pi,0,pi,0,1,1.0e-10)I=1.7328jj=1340978---------------------------------------------------------------------Matlab数值微分1.数值微分与差商导数的三种极限定义f′(x)=limn→0f(x+h)?f(x)hf′(x)=limn→0f(x)?f(x?h)f′(x)=limn→0f(x+h2)?f(x?h2)h上述公式中假设h>0,引进记号:f(x)=f(x+h)f(x)f(x)= f(x)f(xh)δf(x)= f(x+h)?f(x?h)称上述?f(x)、?f(x)、δf(x)为函数在x点处以h(h>0)为步长的向前差分、向后差分、中⼼差分,当步长h⾜够⼩时,有:f′(x)≈?f(x) hf′(x)≈f(x) f′(x)≈δf(x)f(x) h 、?f(x)h、δf(x)h也分别被称为函数在x点处以h(h>0)为步长的向前差商、向后差商、中⼼差商.当h⾜够⼩时,函数f(x)在x点处的导数接近于在该点的任意⼀种差商,微分接近于在该点的任意⼀种差分.2.函数导数的求法2.1⽤多项式或样条函数g(x)对函数f(x)进⾏逼近(插值或拟合),然后⽤逼近函数g(x)在点x处的导数作为f(x)在该点处的导数.2.2⽤f(x)在点x处的差商作为其导数.3.数值微分的实现⽅法Matlab中,只有计算向前差分的函数diff,其调⽤格式为:·DX=diff(X):计算向量X的向前差分,DX(i)=X(i+1)-X(i),i=1,2,…,n-1·DX=diff(X,n):计算向量X的n阶向前差分,例如diff(X,2)=diff(diff(X))·DX=diff(A,n,dim):计算矩阵A的n阶向前差分,dim=1(默认值)按列计算差分,dim=2按⾏计算差分.--------------------------------------------------------------------- 例如:⽣成6阶范德蒙德矩阵,然后分别按⾏、按列计算⼆阶向前差分A=vander(1:6)A=111111321684212438127931102425664164131256251252551777612962163661D2A1=diff(A,2,1)D2A1=180501220057011018200132019424200255030230200D2A2=diff(A,2,2)D2A2=000084211083612457614436920004008016540090015025--------------------------------------------------------------------- 例如:设f(x)=√x3+2x2?x+12+√(x+5)6+5x+2求函数f(x)的数值导数,并在同⼀坐标系中作出f’(x)的图像.已知函数f(x)的导函数如下:f′(x)=3x2+4x?12√x3+2x2?x+12+16√()56+5编辑函数⽂件fun7.m和fun8.m functionf=fun7(x)f=sqrt(x.^3+2*x.^2-x+12)+(x+5).^(1/6)+5*x+2;functionf=fun8(x)f=(3*x.^2+4*x-1)/2./sqrt(x.^3+2*x.^2-x+12)+1/6./(x+5).^(5/6)+5 ;x=-3:0.01:3;p=polyfit(x,fun7(x),5);⽤5次多项式拟合曲线dp=polyder(p);对拟合多项式进⾏求导dpx=polyval(dp,x);对dp在假设点的求函数值dx=diff(fun7([x,3.01]))/0.01;直接对dx求数值导数gx=fun8(x);求函数f的函数在假设点的导数plot(x,dpx,x,dx,'.',x,gx,'-')可以发现,最后得到的三条曲线基本重合.--------------------------------------------------------------------- 练习:A.⽤⾼斯-克朗罗德法求积分∫dx1+x2 +∞∞的值并讨论计算⽅法的精确度.(该积分值为π)function f=fun9(x)f=1./(1+x.^2);formatlong[I,err]=quadgk(@fun9,-Inf,Inf)I=err=B.设函数f(x)=sin x⽤不同的办法求该函数的数值导数,并在同⼀坐标系中作出f′(x)的图像.已知f′(x)=x cos x+cos x cos2x?sin x+2sin x sin2x()2function f=fun10(x)f=sin(x)./(x+cos(2*x));function f=fun11(x)f=(x.*cos(x)+cos(x).*cos(2*x)-sin(x)-2*sin(x).*sin(2*x))/(x+cos(2 *x)).^2; x=-3:0.01:3;p=polyfit(x,fun10(x),5);dp=polyder(p);dpx=polyval(dp,x);dx=diff(fun10([x,3.01]))/0.01;gx=fun11(x);plot(x,dpx,'r:',x,dx,'.g',x,gx,'-k')。

第7章 MATLAB数值微分与积分_习题

第7章  MATLAB数值微分与积分_习题

1第7章 MATLAB 数值微分与积分习题7一、选择题1.diff([10,15])的值是( A )。

A .5B .10C .15D .25 2.数值积分方法是基于( D )的事实。

A .求原函数很困难B .原函数无法用初等函数表示C .无法知道被积函数的精确表达式D .A ,B ,C 三个选项 3.求数值积分时,被积函数的定义可以采取( D )。

A .函数文件 B .内联函数C .匿名函数D .A ,B ,C 三个选项 4.以下选项不能用来求数值积分的函数是( B )。

A .quadgkB .quad2C .integralD .integral2 5.以下选项不是离散傅里叶变换的函数是( C )。

A .fft B .fft2 C .fft1 D .fftn 二、填空题1.在MATLAB 中,没有直接提供求 数值导数 的函数,只有计算 向前差分 的函数diff 。

2.基于变步长辛普森法,MATLAB 给出了 quad 函数和 quadl 函数来求定积分。

3.MA TLAB 提供了基于全局自适应积分算法的 integral 函数来求定积分,该函数的积分限 可以 (可以或不可以)为无穷大。

4.MATLAB 提供的 integral2 、 quad2d 、 dblquad 函数用于求二重积分的数值解, integral3 、 triplequad 函数用于求三重积分的数值解。

5.MA TLAB 提供了离散傅里叶变换函数fft ,对应的逆变换函数是 ifft 。

三、应用题1.求函数在指定点的数值导数。

(1)2346x x x x f 22ππππ,,,,cos sin )(=+= (2)321x 1x x f 2,,,)(=+=(1)函数数值导数恒为0(2)232.求定积分。

(1)x x 5x I 05d sin sin⎰=π(2)x x1x 1I 142d 1⎰-++=(1)(2)3.求积分dx x x 2212++⎰∞∞-。

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

4.1数值微积分4.1.1近似数值极限及导数Matlab 数值计算中,没有求极限指令,也没有求导指令,而是利用差分指令:用一个简单矩阵表现diff和gradient指令计算方式。

差分: Dx=diff(X)对向量: Dx=X(2:n)-X(1:n-1)对矩阵: DX=X(2:n,:)-X(1:n-1,:)长度小1.DIFF(X), for a vector X, is[X(2)-X(1) X(3)-X(2) ... X(n)-X(n-1)]. DIFF(X), for a matrix X, is the matrix of row differences, (结果缺少一行)[X(2:n,:) - X(1:n-1,:)].DIFF(X,N,DIM) is the Nth difference function along dimension DIM.If N >= size(X,DIM), DIFF returns an empty array (N阶差分)梯度:FX=gradient(F)Fx(1)=Fx(2)-Fx(1);F=[1,2,3;4,5,6;7,8,9]Dx=diff(F) (按行)Dx_2=diff(F,1,2) (按列)[FX,FY]=gradient(F)Fx(1)=Fx(2)-Fx(1),Fx(end)=F(end)-F(end-1)FX与F维数相同。

[FX_2,FY_2]=gradient(F,0.5)%采样间隔0.5 即:Fx(1)=(Fx(2)-Fx(1))/2F =1 2 34 5 67 8 9Dx =3 3 33 3 3Dx_2 =1 11 11 1FX =1 1 11 1 1 1 1 1 (列方向) FY =3 3 3 3 3 3 3 3 3 (行方向) FX_2 =2 2 2 2 2 2 2 2 2 FY_2 =6 6 6 6 6 6 6 6 6【例4.1-1】设xx xx f sin 2cos 1)(1-=,xxx fsin )(2=,试用机器零阈值eps 替代理论0计算极限)(lim )0(11x f L x →=,)(lim )0(22x fL x →=。

x=eps;L1=(1-cos(2*x))/(x*sin(x)), L2=sin(x)/x, L1 =(注意错误! 数值法求极限得到错误结果) L2 = 1syms tf1=(1-cos(2*t))/(t*sin(t));f2=sin(t)/t;Ls1=limit(f1,t,0)Ls2=limit(f2,t,0)Ls1 =2Ls2 =1【例4.1-2】已知)2,0[π中的近x=,求该函数在区间]sin(t似导函数。

d=pi/100;t=0:d:2*pi;x=sin(t);dt=5*eps;x_eps=sin(t+dt);dxdt_eps=(x_eps-x)/dt;plot(t,x,'LineWidth',5)hold onplot(t,dxdt_eps)hold offlegend('x(t)','dx/dt')xlabel('t')图 4.1-1 增量过小引起有效数字严重丢失后的毛刺曲线x_d=sin(t+d);dxdt_d=(x_d-x)/d;plot(t,x,'LineWidth',5)hold onplot(t,dxdt_d)hold offlegend('x(t)','dx/dt')xlabel('t')图 4.1-2 增量适当所得导函数比较光滑【例4.1-3】已知)x=,采用diff和gradient计算该sin(t函数在区间]2,0[π中的近似导函数。

clfd=pi/100;t=0:d:2*pi;x=sin(t);dxdt_diff=diff(x)/d;dxdt_grad=gradient(x)/d;subplot(1,2,1)plot(t,x,'b')hold onplot(t,dxdt_grad,'m','LineWidth',8) plot(t(1:end-1),dxdt_diff,'.k','Marker Size',8)axis([0,2*pi,-1.1,1.1])title('[0, 2\pi]')legend('x(t)','dxdt_{grad}','dxdt_{dif f}','Location','North')xlabel('t'),box offhold offsubplot(1,2,2)kk=(length(t)-10):length(t);hold onplot(t(kk),dxdt_grad(kk),'om','MarkerS ize',8)plot(t(kk-1),dxdt_diff(kk-1),'.k','Mar kerSize',8)title('[end-10, end]')legend('dxdt_{grad}','dxdt_{diff}','Lo cation','SouthEast')xlabel('t'),box offhold off图 4.1-3 diff和gradient求数值近似导数的异同比较4.1.2数值求和与近似数值积分【例 4.1-4】求积分⎰=2/) ()(πdttyxs,其中)sin(2.0ty+=。

cleard=pi/8;t=0:d:pi/2;y=0.2+sin(t);s=sum(y);s_sa=d*s;s_ta=d*trapz(y);disp(['sum求得积分',blanks(3),'trapz求得积分'])disp([s_sa, s_ta])t2=[t,t(end)+d];y2=[y,nan];stairs(t2,y2,':k')hold onplot(t,y,'r','LineWidth',3) h=stem(t,y,'LineWidth',2); set(h(1),'MarkerSize',10) axis([0,pi/2+d,0,1.5])hold offshgsum求得积分 trapz求得积分1.5762 1.3013图 4.1-4 sum 和trapz求积模式示意4.1.3计算精度可控的数值积分一元函数的数值积分函数1 quad、quadl、quad8功能数值定积分,自适应Simpleson积分法。

格式q = quad(fun,a,b) %近似地从a到b计算函数fun的数值积分,误差为10-6。

若给fun输入向量x,应返回向量y,即fun是一单值函数。

q = quad(fun,a,b,tol) %用指定的绝对误差tol代替缺省误差。

tol越大,函数计算的次数越少,速度越快,但结果精度变小。

[q,n] = quad(fun,a,b,…) %同时返回函数计算的次数n…= quadl(fun,a,b,…) %用高精度进行计算,效率可能比quad更好。

…= quad8(fun,a,b,…) %该命令是将废弃的命令,用quadl代替。

例:>>fun = inline(‘’3*x.^2./(x.^3-2*x.^2+3)’);>>Q1 = quad(fun,0,2)>>Q2 = quadl(fun,0,2)计算结果为:Q1 =3.7224Q2 =3.7224函数2 trapz功能梯形法数值积分格式T = trapz(Y)%用等距梯形法近似计算Y的积分。

若Y是一向量,则trapz(Y)为Y的积分;若Y是一矩阵,则trapz(Y)为Y的每一列的积分;若Y是一多维阵列,则trapz(Y)沿着Y的第一个非单元集的方向进行计算。

T = trapz(X,Y)%用梯形法计算Y在X点上的积分。

若X为一列向量,Y为矩阵,且size(Y,1) =length(X),则trapz(X,Y)通过Y的第一个非单元集方向进行计算。

T = trapz(…,dim) %沿着dim指定的方向对Y进行积分。

若参量中包含X,则应有length(X)=size(Y ,dim)。

例:>>X = -1:.1:1;>>Y = 1./(1+25*X.^2);>>T = trapz(X,Y)计算结果为:T =0.5492二重积分S2=ablquad(fun,xmin,xmax,ymin,ymax,tol)Tol 来控制绝对误差。

默认10^{-6}。

【例 4.1-5】求dx e I x ⎰-=102 。

syms xIsym=vpa(int(exp(-x^2),x,0,1)) Isym =.74682413281242702539946743613185format longd=0.001;x=0:d:1;Itrapz=d*trapz(exp(-x.*x))Itrapz =0.746824071499185fx='exp(-x.^2)';Ic=quad(fx,0,1,1e-8)Ic =0.746824132854452【例 4.1-6】求dxdy x s y ⎰⎰=21 1 0 。

syms x ys=vpa(int(int(x^y,x,0,1),y,1,2))s =.40546510810816438197801311546432format longs_n=dblquad(@(x,y)x.^y,0,1,1,2)s_n =0.4054662672435084.1.4函数极值的数值求解【例4.1-7】已知)sin()(ππ+⋅+=x ex y ,在2/2/ππ≤≤-x 区间,求函数的极小值。

(1)syms x y=(x+pi)*exp(abs(sin(x+pi)));yd=diff(y,x);xs0=solve(yd) yd_xs0=vpa(subs(yd,x,xs0),6)y_xs0=vpa(subs(y,x,xs0),6)y_m_pi=vpa(subs(y,x,-pi/2),6)y_p_pi=vpa(subs(y,x,pi/2),6)Warning: Warning, solutions may have been lostxs0 =-1.0676598444985783372948670854801yd_xs0 =0.y_xs0 =4.98043y_m_pi =4.26987y_p_pi =12.8096(2)x1=-pi/2;x2=pi/2;yx=@(x)(x+pi)*exp(abs(sin(x+pi))); [xn0,fval,exitflag,output]=fminbnd(yx, x1,x2)xn0 =-1.2999e-005fval =3.1416exitflag =1output =iterations: 21funcCount: 22algorithm: 'golden section search, parabolic interpolation'message: [1x112 char](3)xx=-pi/2:pi/200:pi/2;yxx=(xx+pi).*exp(abs(sin(xx+pi)));plot(xx,yxx)xlabel('x'),grid on图 4.1-5 在[-pi/2,pi/2]区间中的函数曲线[xx,yy]=ginput(1)xx=1.5054e-008yy=3.1416图 4.1-6 函数极值点附近的局部放大和交互式取值【例4.1-8】求22)2xyf--=的极小值点。

相关文档
最新文档