matlab微积分运算命令与例题

合集下载

微积分问题的MATLAB求解

微积分问题的MATLAB求解

模型
Min F ( x) s.t. x1 x x 2
Min F ( x)
Байду номын сангаас
基本函数 x=fminbnd(‘F’,x1,x2) x=fminunc(‘F’,x0) x=fminsearch(‘F’,x0) x=linprog(c,A,b) x=bintprog(F)
二次规划 约束极小值 非线性最小二乘 目标达到问题 极小极大问题
fun
H
A,b
Aeq,beq vlb,vub X0 x1,x2 options
A矩阵和b向量分别为线性不等式约束: linprog,quadprog,fgoalattain, fmincon,fminimax AX≤b中的系数矩阵和右端向量 Aeq矩阵和beq向量分别为线性等式约 束Aeq*X=beq中的系数矩阵和右端向量 X的下限和上限向量 迭代初始点坐标 函数最小化的区间 优化选项参数结构 linprog,quadprog,fgoalattain, fmincon,fminimax linprog,quadprog,fgoalattain, fmincon,fminimax,lsqcurvefit, lsqnonlin 除fminbnd外所有函数 fminbnd 所有优化函数
5、函数输出参数
变量 描述 描述退出条件: exitflag>0表示目标函数收敛于x exitflag=0表示已达到函数评价或迭代的最大次数 exitflag<0表示目标函数不收敛 由优化函数求的x值 解x处的目标函数值 包含优化结果信息的输出结构 iterations,Algorithm,FuncCount(函数评价次数) 所有优化函数 linprog,quadprog,fgoalattain fmincon,fminimax,lsqcurvefit lsqnonlin,fminbnd 所有优化函数 调用函数

matlab解常微分方程例题

matlab解常微分方程例题

matlab解常微分方程例题当涉及到使用MATLAB解常微分方程(ODE)的例题时,我们可以采用MATLAB中的ode45函数来进行求解。

ode45是一种常用的ODE求解器,它基于龙格-库塔方法。

下面我将以一个简单的例题来说明如何使用MATLAB解常微分方程。

假设我们要解决以下的常微分方程:dy/dt = -2y + 4t.初始条件为y(0) = 1。

首先,我们需要定义一个匿名函数来表示方程右侧的表达式,即-2y + 4t。

在MATLAB中,可以这样定义这个函数:f = @(t, y) -2y + 4t.接下来,我们需要定义时间范围和初始条件:tspan = [0 5] % 时间范围从0到5。

y0 = 1 % 初始条件y(0) = 1。

然后,我们可以使用ode45函数进行求解:[t, y] = ode45(f, tspan, y0)。

最后,我们可以绘制出解的图像:plot(t, y)。

xlabel('t')。

ylabel('y')。

title('Solution of dy/dt = -2y + 4t')。

这样,我们就得到了常微分方程的数值解,并用图像表示出来。

需要注意的是,这只是一个简单的例题,实际应用中可能会涉及更复杂的常微分方程。

但是使用MATLAB的ode45函数求解常微分方程的基本步骤是相似的,定义方程右侧的函数,设定时间范围和初始条件,然后使用ode45函数进行求解,并绘制出解的图像。

希望以上的解答能够满足你的需求。

如果你有更多关于MATLAB 解常微分方程的问题,欢迎继续提问。

MATLAB教程【5】微积分

MATLAB教程【5】微积分
将结果乘以h。 要 将结果乘以 。
Z=trapz(x,y) 计算 对x的梯形积分,其中 、y定义函数关系 计算y 的梯形积分, 定义函数关系y=f(x)。 的梯形积分 其中x、 定义函数关系 。 Z=trapz(x,y,dim) 对dim指定的 的维进行积分。 指定的y的维进行积分 指定的 的维进行积分。
1.4.7 数 值 积 分
一、数值积分的基本原理
b b
I1 = ∫ f ( x)dx, I 2 = ∫ p ( x)dx
a a
f(b)
T=
b−a [ f (a ) + f (b )] 2
梯形公式
f(a)
将积分区间[a,b]划分为 等份,步长 划分为n等份 将积分区间 划分为 等份, h=(b-a)/n,xk=a+bk构造求积公式 构造求积公式
( I n = ( b − a )∑ C k n ) f ( x k ) k =0 n
牛顿 − 柯特斯公式
a
b n = 1即梯形公式, n = 2时为辛普生公式 即梯形公式,
b−a a+b S= [ f (a ) + 4 f ( ) + f ( b )] 6 2
1.4.7 数 值 积 分
二、数值积分的实现 1、梯形积分:对矢量、矩阵和多维列阵进行梯形积分 、梯形积分:对矢量、 Z=trapz(y) 计算 的数值梯形积分,步长默认为 ,若不是 而是 , 计算y 的数值梯形积分,步长默认为1,若不是1 而是h,
例:用不同的方法求函 数 f ( x )的数值导数并作图 f ( x) = f '( x) = x 3 + 2 x 2 − x + 12 + 6 x + 5 + 5 x + 2 3x2 + 4x − 1 2 x + 2 x − x + 12

第3讲 MATLAB在微积分中的应用

第3讲 MATLAB在微积分中的应用

2)求数值解的方法 1. 欧拉方法 若步长h较小,则可用差商近似代替导数,即 y ( x + h) − y ( x ) y '( x) ≈ h 于是便得公式 yi +1 ≈ yi + hf ( xi , yi ) , i = 0,1, L , n − 1. y0 = y ( x0 ) 此法称为欧拉方法。
例7 用MATLAB软件求微分方程 du = 1+ u2 dt 的通解; 例8 用MATLAB软件求微分方程 d 2 y dy 2 + 4 + 29 y = 0 dx dx y(0) = 0, y ' (0) = 15 的特解。
例9 用MATLAB软件求微分方程组 dx dt = 2 x − 3 y + 3z dy = 4 x − 5 y + 3z dt dz dt = 4 x − 4 y + 2 z 的通解.
2. 改进的欧拉方法 对方程y ' = f ( x, y )两边从xi到xi +1积分,再利用梯形公式,得 y ( xi +1 ) − y ( xi ) = ∫
xi +1 xi
f ( x, y ( x )) dx
xi +1 − xi ≈ [ f ( xi , y ( xi )) + f ( xi +1 , y ( xi +1 ))] 2 h 于是有公式: yi +1 ≈ yi + [ f ( xi , yi ) + f ( xi +1 , yi +1 )], y0 = y ( x0 ) 2 上式中右边yi +1的值可用欧拉方法计算,即有 yi +1 = yi + hf ( xi , yi ) i = 0,1, L , n − 1. h yi +1 = yi + 2 [ f ( xi , yi ) + f ( xi +1 , yi +1 )] 此法称为改进的欧拉方法。

Matlab在微积分中的简单应用

Matlab在微积分中的简单应用
'' '
dy xy 2 • 3、 2 dx x y
y(0)=1
小结
• 1 用”diff()” 求数值微分和符号微分.
• 2 用”int()”、”Int()”直接积分 • 3 用“dsolve()”求微分方程的通解、特解
第6讲
Matlab在微积分中的简单应用
实验目的
• 1学会用”diff()” 求数值微分和符
号微分. • 2学会用”int()”、”Int()”直接积 分并写出积分表达式. • 3学会用”dsolve()”求微分方程的 通解、特解。
复习回顾(一)
计算下列函数的导数
ylog ax
1 y x ln a

复习回顾(二)
求下列的不定积分
1 x C 1 x2 dx arctan
1 x 2 1 1 2 1x )C 1 x2 dx 21x2d(1x ) 2ln(
分析:
1 2 1 2 xdx dx d ( 1 x) 2 2
二、熟悉以下Matlab中的求积分命 令
sin xdx (2)
e dx
2x
2 求下列函数的定积分
(1) e dx (2)
2 ( 3 x ) dx 2x1 0 1
复习回顾(三)
dy 3 2x y 的通解 • 求微分方程 dx dy • 解:将所给方程分离变量,得 2 x 3 dx y • 等式两端积分,有 dy 2x3dx
• 2求特解的命令格式 • r=dsolve(‘微分方程’,‘初值条件’,‘自变 量’)
• 3求微分方程组的命令格式
• [y1,y2,…]=dsolve(‘微分方程1’,‘微分方程 2’,…,‘初值条件1’,’初值条件2’ ,…,‘自 变量1’, ‘自变量2’,…)

MATLAB课件第九篇微积分基础

MATLAB课件第九篇微积分基础

第九章微积分基础1函数的极限(符号解法)一元函数求极限函数 limit格式 limit(F,x,a) %计算符号表达式F=F(x) 当x→a时的极限值。

limit(F,a) %用命令findsym(F)确信F中的自变量,设为变量x,再计算F当x→a时的极限值。

limit(F) %用命令findsym(F)确信F中的自变量,设为变量x,再计算F当x→0时的极限值。

limit(F,x,a,'right')或limit(F,x,a,'left') %计算符号函数F的单侧极限:左极限x →a- 或右极限x→a+。

【例1】>>syms x a t h n;>>L1 = limit((cos(x)-1)/x)>>L2 = limit(1/x^2,x,0,'right')>>L3 = limit(1/x,x,0,'left')>>L4 = limit((log(x+h)-log(x))/h,h,0)>>v = [(1+a/x)^x, exp(-x)];>>L5 = limit(v,x,inf,'left')>>L6 = limit((1+2/n)^(3*n),n,inf)计算结果为:L1 =L2 =infL3 =-infL4 =1/xL5 = [ exp(a), 0] L6 = exp(6)注:在求解之前,应该先声明自变量x,再概念极限表达式fun,假设0x 为∞,那么能够用inf 直接表示。

若是需要求解左右极限问题,还需要给出左右选项。

【例2】 试别离求出tan 函数关于pi/2点处的左右极限。

>> syms t;f=tan(t);L1=limit(f,t,pi/2,'left'), L2=limit(f,t,pi/2,'right') L1 = Inf L2 = -Inf【例3】求以下极限1)312lim20+-→x x x 2)x x x t 3)21(lim +∞→解:编程如下:>>syms x t ;L1 = limit((2*x-1)/(x^2+3)) >>L2 = limit((1+2*t/x)^(3*x),x,inf)回车后可得: L1 = -1/3 L2 = exp(6*t) 多元函数求极限求多元函数的极限能够嵌套利用limit()函数,其挪用格式为:limit(limit(f,x,x0),y,y0)或limit(limit(f,y,y0),x,x0)【例4】求极限:x xy y x )sin(lim 30→→>> syms x y;f=sin(x*y)/x;limit(limit(f,x,0),y,3)ans = 3注:若是x0或y0不是确信的值,而是另一个变量的函数,如)(y g x →,那么上述的极限求取顺序不能互换。

Matlab微积分问题计算机求解实验

Matlab微积分问题计算机求解实验

>> q2=quad('quad1',0,1)
【例】求exp(-x2)在[0,1]上的积分。
数值积分
3、编写被积函数表达式,函数名为f=@(x).exp(-x.^2);
>> q2=quad(f,0,1)
数值积分
(2)梯形法(被积函数由一个表格定义)
trapz函数采用梯形法求取数值积分,适用于由表格形式定义的函数关系的求定积分问题,求值速度快, 但精度差。
syms x; f=abs(x)/x;%给出待展开的函数 xx=[-pi:pi/200:pi]; xx=xx(xx~=0); xx=sort([xx,-eps,eps]);
Fourier级数的Matlab程序
yy=subs(f,x,xx);%计算f(x)的值 for i=1:20
[A,B,F]=fseries(f,x,n); y=subs(F,x,xx); subplot(4,5,n); plot(xx,yy);%画出f(x)的图像 hold on plot(xx,y);%画出Fourier级数的图像 end
K ex2dx 0
计算积分
21
( x1)2
练习:
e 2 dx,
0 2
e2t 2 x 2 1
dx
cost (2 x 2 3 x 1)2
符号求和
symsum(u,n,n0,nn): symsum(f,a,b): 关于默认变量求和
例:计算级数
S 1 及其前100项的部2 分和 n n 1
>> syms n; f=1/n^2;
>> S=symsum(f,n,1,inf)
>> S100=symsum(f,n,1,100)

2 MATLAB函数导数(微分)与积分

2 MATLAB函数导数(微分)与积分
解: >> clear >> syms x >> int(sqrt(1-sin(3*x)),x,0,pi/3) ans = -4/3+4/3*2^(1/2)
Exam ple3

1 1 x2
dx
解: >> clear >> syms x >> int(1/(1+x^2),x,-inf,+inf) ans = pi
将 四 边 折 起 做 成 一 个 无盖 的 方 盒 。 问 截 掉 的
小 正 方 形 边 长 多 少 时 ,所 得 方 盒 的 容 积 最 大
解:(1)问题假设:设截掉小正方形边长为x; 方盒容积为V
(2)模型建立: V (6 2x)2 x
(3)模型求解: V ( x) 0 x
>> syms x >> dy=diff('(6-2*x)^2*x',x) dy = -4*(6-2*x)*x+(6-2*x)^2 >> x0=solve(dy) x0 =
三、利用Matlab求函数零点
1、求多项式的根 设多项式f ( x) Axa Bxb Cxc Sx T 命令格式为: roots([A,B,C,…..,S,T])=求f(x)=0的根 注意(remark): (1)系数要按由高到低依次来输入。 (2)中间某个次数没有认为系数为零。
Example4 求隐函数y sin(x y)的导数。
>> syms x y >> diff('y(x)=sin(x+y(x))','x') ans = diff(y(x),x) = cos(x+y(x))*(1+diff(y(x),x))

第三章-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)会出现差异,有的能够执行,有的不能够,有的执行符号微分,有的执行数值微分,所以比较麻烦。

第7章MATLAB微积分运算

第7章MATLAB微积分运算
6
例 7-6
编制如下程序
clear;clc; [X, Y, Z] = sphere(20); surfnorm(X, Y, Z) axis square box on
运行结果如图7-5所示
图 7-5
7
7.1.2 符号微分
例 7-7
编制如下命令文件
clear;clc; F='sin(3*x)' Fx=diff(F,'x') Fxx=diff(F, 'x', 2)
运行结果如图7-1所示 图 7-1
3
例 7-3
编制如下程序
clear;clc; n = 360 x = linspace(0, 2*pi, n); y = exp(-0.2*x).*(cos(x)+sin(x)); dy = diff(y); dx = diff(x); dyx = dy./dx; plot(x,y,'r-') hold on plot(x(1:n-1),dyx,'b-.') legend('y','dy/dx')
运算结果为
F= sin(3*x) Fx =
3*cos(3*x)
Fxx =
-9*sin(3*x)
8
例 7-8
编制如下程序
clear;clc; Z = 'exp(a*x+b*y)*(sin(x*y)+sin(x)+cos(y))' Zx = diff(Z, 'x') Zy = diff(Z, 'y') 运行结果为
cos(a*x)+b
F=
(sin(pi*a)+b*a*pi)/a

利用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微积分例题精选

matlab 微积分基本运算§1 解方程和方程组解1. 线性方程组求解对于方程 AX = B ,其中 A 是( m ×n )的矩阵有三种情形:1)当n=m 且A 非奇异时,此方程为“恰定”方程组。

2)当 n > m 时,此方程为“超定”方程组。

3)当n<m 时,此方程为“欠定”方程组。

下面就三种情形的求解分别作一说明:(1) MATLAB 解恰定方程 A* X = B 的方法1)采用求逆运算解方程x=inv(A)*B2)采用左除运算解方程x=A\B例1 “求逆”法和“左除”法求下列方程组的解⎪⎪⎪⎩⎪⎪⎪⎨⎧=+=++=++=++=+150650650651655454343232121x x x x x xx x x x x x x 在Matlab 编辑器中建立M 文件fanex1.m :A=[5 6 0 0 01 5 6 0 00 1 5 6 00 0 1 5 60 0 0 1 5];B=[1 0 0 0 1]';R_A=rank(A) %求秩X1=A\B %用"左除"法解恰定方程所得的解X2=inv(A)*B %用"求逆"法解恰定方程所得的解运行后结果如下R_A =5X1 =2.2662-1.72181.0571-0.59400.3188X2 =2.2662-1.72181.0571-0.59400.3188两种方法所求方程组的解相同。

(2)MATLAB 解超定方程AX=B 的方法对于方程 AX = B ,其中 A 是( m ×n )的矩阵, n > m ,如果A 列满秩,则此方程是没有精确解的。

然而在实际工程应用中,求得其最小二乘解也是有意义的。

基本解法有:1)采用求伪逆运算解方程x=pinv(A)*B说明:此解为最小二乘解x=inv(A ’*A)*A*B,这里pinv(A) =inv(A ’*A)*A.2)采用左除运算解方程x=A\B例2 “求伪逆”法和“左除”法求下列方程组的解⎪⎩⎪⎨⎧=+=+=+12214212212121x x x x x x命令如下:>> a=[1 2;2 4;2 2];>> b=[1,1,1]';>> xc=a\b %用左除运算解方程运行得结果:xc =0.40000.1000>> xd=pinv(a)*b %用求伪逆运算解方程运行得结果:xd =0.40000.1000>> a*xc-b %xc 是否满足方程ax=b运行得结果:ans =-0.40000.20000.0000可见xc 并不是方程的精确解。

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的微积分基本运算

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_实验04 多元函数微积分

MATLAB_实验04 多元函数微积分

实验04 多元函数微积分一实验目的 (2)二实验内容 (2)三实验准备 (2)四实验方法与步骤 (3)五练习与思考 (7)一 实验目的1 了解多元函数、多元函数积分的基本概念,多元函数的极值及其求法;2 理解多元函数的偏导数、全微分等概念,掌握积分在计算空间立体体积或表面积等问题中的应用;3 掌握MATLAB 软件有关求导数的命令;4 掌握MATLAB 软件有关的命令.二 实验内容1 多元函数的偏导数,极值;2 计算多元函数数值积分;3计算曲线积分,计算曲面积分.三 实验准备1 建立符号变量命令为sym 和syms ,调用格式为: x=sym('x') 建立符号变量x ;syms x y z 建立多个符号变量x ,y ,z ; 2 matlab 求导命令diff 的调用格式: diff(函数(,)f x y ,变量名x)求(,)f x y 对x 的偏导数f x∂∂; diff(函数(,)f x y ,变量名x,n) 求(,)f x y 对x 的n 阶偏导数n n fx∂∂;3 matlab 求雅可比矩阵命令jacobian 的调用格式: jacobian([f;g;h],[],,x y z )给出矩阵f f f x y zg g g x y zh h h xyz ⎛⎫∂∂∂ ⎪∂∂∂ ⎪ ⎪∂∂∂ ⎪∂∂∂ ⎪ ⎪∂∂∂ ⎪∂∂∂⎝⎭4 MATLAB 中主要用int 进行符号积分,常用格式如下: ① int(s)表示求符号表达式s 的不定积分② int(s,x)表示求符号表达式s 关于变量x 的不定积分③ int(s,a,b)表示求符号表达式s 的定积分,a ,b 分别为积分的上、下限④ int(s,x,a,b)表示求符号表达式s 关于变量x 的定积分,a,b 分别为积分的上、下限5 MATLAB 中主要用trapz,quad,quad8等进行数值积分,常用格式如下:① trapz(x,y)采用梯形积分法,其中x 是积分区间的离散化向量,y 是与x 同维数的向量、用来表示被积函数.② quad8('fun',a,b,tol)采用变步长数值积分,其中fun 为被积函数的M 函数名,a,b 分别为积分上、下限,tol 为精度,缺省值为1e-3.③ dblquad('fun',a,b,c,d)表示求矩形区域的二重数值积分,其中fun 为被积函数的M 函数名,a ,b 分别为x 的上、下限,c ,d 分别为y 的上、下限.使用help int ,help trapz ,help quad 等查阅有关这些命令的详细信息.四 实验方法与步骤例1 定义二元函数23z x y =+.解 (1)方法一:syms x y;z=x.^2+y.^3; (2)方法二:编写M 文件fun7.m 定义函数function z=fun7(x,y) z=x.^2+y.^3;(3)方法三:利用inline 函数:f=inline('x.^2+y.^3'). 注:不同定义方式,调用格式不完全相同. 例2 绘出函数23z x y =+的图形.解 程序为:x=linspace(-10,10,40);y=x;[X,Y]=meshgrid(x, y); Z=fun7(X,Y);surf(X,Y,Z),shading interp 结果如图2-10所示.图2-10例3 设222u x y yz =++,求u y∂∂. 解 输入命令:syms x y z;diff(x^2+2*y^2+y*z,y),得ans=4*y+z.利用jacobian 命令:jacobian(x^2+2*y^2+y*z,[x y]),得ans=[2*x,4*y+z],即矩阵,u u x y ⎛⎫∂∂ ⎪∂∂⎝⎭例4 设642232z x y x y =-+,求22222,,z z zx y x y∂∂∂∂∂∂∂.解 求22zx∂∂的程序为:syms x y;diff(x^6-3*y^4+2*x^2*y^2,x,2)结果为: ans=30*x^4+4*y^2 求22zy ∂∂的程序为:syms x y;diff(x^6-3*y^4+2*x^2*y^2,y,2) 结果为:ans=-36*y^2+4*x^2求2z x y∂∂∂的程序为:syms x y;diff(diff(x^6-3*y^4+2*x^2*y^2,x),y) 结果:为ans=8*x*y.注:diff(x^6-3*y^4+2*x^2*y^2,x,y)是求zy∂∂,而不是求2z x y ∂∂∂例5 设由,x y 所确定的z 的隐函数为2225xy y z ++=,求,z zx y∂∂∂∂.解 令()22,,25F x y z xy y z =++- ''/x z zF F x∂=-∂ 输入命令:syms x y z;a=jacobian(x*y+y^2+2*z^2-5,[x,y,z]) 可得矩阵()''',,x y z F F F =[y,x+2*y,4*z] 利用公式''''/,/x z y z z zF F F F x y∂∂=-=-∂∂可得 求zx ∂∂的程序为:-a(1)/a(3),结果为:-1/4*y/z ; 求zy∂∂的程序为:-a(2)/a(3),结果为:1/4*(-x-2*y)/z. 例6 求(1)()222122()312(12)f x x x x =-+-在点()2,2-临近的极小值.(2)222()()(1)f x y x x =-+-在55x -≤≤内的极值.解 求多元函数(,)z f x y =的极值点X 和极小值minf ,可用如下方法 方法一:X=fminsearch('f',x0),用的是Nelder-Mead 单纯形搜索法求解; 方法二:X=fminunc('f',x0),用的是BFGS 拟牛顿迭代法求解. 其中[](1),(2),(3),,()X x x x x n =,x0是初始点. 若求极大值点,用(-1)乘函数,再求极小值点.(1)程序如下:f='(x(1)^2-3*x(2))^2+12*(1-2*x(2))^2'; x=fminsearch(f,[-2,2]),minf=eval(f) 结果为:x =-1.2247 0.5000, minf =2.1879e-009结果说明在1 1.2247x =-,20.5x =时,函数的极小值为0. (2)先作函数的图形,程序如下:[x,y]=meshgrid(-5:0.5:5); f=(y-x.^2).^2+(1-x).^2; surf(x,y,f);结果如图2-11所示.以下程序为求函数的极小值:图2-11f='(x(2)-x(1).^2).^2+(1-x(1)).^2';x=fminsearch(f,[0.2,0.3]),minf=eval(f),shading interp结果为:x=[1.0000,1.0000],minf=4.1546e-010 说明在1,1x y ==时,函数的极小值为0. 例8 计算积分221(1)d d x y xy x y +≤+⎰⎰.解 先将被积函数转化为二次积分:)22111(1)d d 1d d x y x y x y x y y x -+≤⎛⎫++=++ ⎪⎝⎭⎰⎰⎰, 程序为:clear; syms x y;iy=int(1+x*y,y,-sqrt(1-x^2),sqrt(1-x^2));int(iy,x,-1,1) 结果为:ans=π.例9 求对弧长的曲线积分:(1)计算2d ,:2cos ,3sin Ly s L x t y t ==⎰。

第二讲 matlab求微分方程、导数、积分

第二讲  matlab求微分方程、导数、积分

第二讲 导数与微分方程一、实验内容1、实际引例(牛顿冷却模型)警察上午9点钟发现一被谋杀者,并测得尸体温度为32.4℃,一小时以后,尸体的温度变为31.7℃,尸体所在房间的温度是20℃。

如果人的正常体温为36.5℃,并知道热物体冷却速度与自身温度与外界温度之差成正比,试推断谋杀时间。

解设T 为尸体温度,t 为时间(十进制,如10.5代表10点30分),温度的变化率(dt dT )比例常数为K解题关键热物体冷却速度与自身温度与外界温度之差成正比。

即 dtdT =k*(T-20). 该方程就为微分方程,那么如何求解喃?以下为MATLAB 求解过程:T=dsolve('DT=k*(T-20)','T(9)=32.4') %T (9)表示在9点时的温度为32.4℃ ans =(62*exp(k*t))/(5*exp(9*k)) + 20由于10点室温为31.7℃,带入后可求K,命令如下:先输入 solve(''),然后把上面得到的表达式复制进去(62*exp(k*t))/(5*exp(9*k)) + 20k=solve('(62*exp(k*10))/(5*exp(9*k)) + 20=31.7') (带入t=10,T=31.7) k=-0.05810763080728074591965065204834T=(62*exp(k*t))/(5*exp(9*k)) + 20T=20.91915298056906312642973833139/exp(0.05810763080728074591965065204834*t)+20 T=vpa(T,6) (保留几位数)T =20.9192/exp(0.0581076*t) + 20.0t=solve('20.9192/exp(0.0581076*t) + 20.0=36.5')ans =4.08392390395064778268825821864340.083923*60=5.0354即谋杀时间 凌晨4点5分左右二、引例子所涉及的知识点1、首先要列出微分方程,简单的来说出现了变化率(dtdT )。

matlab微积分运算命令与例题

matlab微积分运算命令与例题

对符号函数求 n 阶导 格式:diff(f ,n),其中 f 是符号函数。
1
例 3:求 f (x) (ax tg3x) 2 sin x cos(bx) 的一阶、二阶导数。
解:Matlab 命令为:syms a b x↙ y=(a*x+tan(3*x))^(1/2)+sin(x)*cos(b*x);↙ y1=diff(y);↙ y2=diff(y,2);↙ disp('一阶导数为:'),pretty(y1)↙ 一阶导数为:
2 1/2
(-12 pi a + 9 b )
4 求定积分
定积分的计算是实际问题中经常遇到的问题,定积分计算同样也是较费时间的事情,而 且有时还会遇到因求不出原函数而积不出结果的情况,这些在 Matlab 中,也只要输入一个 命令就可以快速求出定积分值来。
4.1 定积分的符号解法 指令:int(f,v,a,b) f 是被积函数,表示对变量 v 求区间[a,b]上的定积分。
x
e
t
2
dx
2
例 2:求 lim 0
x0
x
t et2
2
dx
0
解:Matlab 命令为:syms t x↙ y1=exp(t^2);y2=t*y1^2;↙ r1=int(y1,t,0,x);r2=int(y2,t,0,x);↙ f=r1^2/r2;↙ limit(f,x,0)↙
ans =
2
x2
解:Matlab 命令为:syms x↙ y=5*x+log(sin(x)+exp(sin(x)));↙ limit(y,x,3,'left')↙ ans = 15+log(sin(3)*exp(-sin(3))+1)+sin(3)

matlab 积分题

matlab 积分题

matlab 积分题在Matlab中,积分是一项常用的数值计算操作,它在解决数学问题和工程问题中都具有重要的作用。

本文将介绍如何使用Matlab进行积分计算,并讨论一些常见的积分问题。

在Matlab中,可以使用`integral`函数进行积分计算。

该函数可以计算定积分、不定积分以及多重积分。

下面以定积分为例进行说明。

首先,需要定义一个要积分的函数。

例如,我们要计算函数 f(x) = x^2 的定积分,可以使用如下代码定义这个函数:```matlabfunction y = myfun(x)y = x.^2;end```接下来,可以使用`integral`函数进行积分计算。

具体操作如下:```matlabresult = integral(@myfun, a, b);```其中,`@myfun`表示要计算积分的函数,`a`和`b`分别是积分的下限和上限。

计算结果将保存在变量`result`中。

除了使用匿名函数外,还可以使用已有的函数进行积分计算。

例如,假设有一个已有的函数文件`myfun.m`,其中定义了函数`myfun`,则可以直接使用该函数进行积分计算:```matlabresult = integral(@myfun, a, b);```在某些情况下,积分区域可能非常复杂,无法用简单的下限和上限表示。

这时可以将积分区域分割成多个小区间,然后分别进行积分计算,并对结果进行求和。

下面以一个例子进行说明。

假设要计算函数 f(x) = x^2 在区间 [a, b] 上的定积分,但是积分区域[a, b] 可以分为多个子区间。

首先,我们需要将区间 [a, b] 分割成 n 个小区间,每个小区间的宽度为Δx = (b-a)/n。

然后,可以使用循环结构来计算每个小区间的积分,并将结果相加,得到最终的积分结果。

具体操作如下:```matlabn = 100; % 分割的小区间个数a = 0; % 积分下限b = 1; % 积分上限dx = (b - a) / n; % 小区间宽度result = 0; % 积分结果for i = 1:nx = a + (i - 0.5) * dx; % 小区间中点y = myfun(x); % 函数值result = result + y * dx; % 积分结果累加end```完成循环后,变量`result`即为所求的积分结果。

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

5
2
1
例 1: (x2 a) 2 dx.
2
解:Matlab 命令为:syms x a↙ f=sqrt(x^2+a);↙ int(f,x,-2,2);↙ pretty(int(f,x,-2,2))↙
1/2
1/2
1/2
2 (4 + a) + 1/2 a log(2 + (4 + a) ) - 1/2 a log(-2 + (4 + a) )
例 1:计算
1 sin 2xcos2 xdx
解:Matlab 命令:syms x↙
y=1/(sin(x)^2*cos(x)^2); ↙
int(y);↙
pretty(int(y)) ↙
1
cos(x)
------------- - 2 ------
sin(x) cos(x) sin(x)
例 2:计算
功能:计算 lim f x ,其中 f 是符号函数。 x a
命令形式 5: Limit(f,x,a,’left’)
功能:计算 lim f x ,其中 f 是符号函数。 xa-
注意:在左右极限不相等或左右极限有一个不存在时,Matlab: 求极限 lim(1
1
4x) x
例 3:变上限函数 f (x) 1 t 2 dt 求导 0
解:Matlab 命令为: syms x t↙
a=x^2;f=sqrt(1-t^2);↙
gg=int(f,t,0,a)↙
gg =
1/2*x^2*(1-x^4)^(1/2)+1/2*asin(x^2)
diff(gg);↙
pretty(diff(gg))↙
ans =
0.8333
5 练习
1
1) 求 f (x) (ax tg3x) 2 sin x cos(bx) 的二阶导数。
tg(ax2 )
2) lim(
)
x0 x 2 (sin x)3
3)
y (x 1)3 x 1 , 求y (x 4)2 e x
4) 求解微分方程 y ' x sin x cos y
例 5: 求 u aebx yz2 对 z 的偏导数.
解:Matlab 命令:syms x y a↙ syms a b x y z↙ u=a*exp(b*x+y+z^2);↙ diff(u,z);↙ pretty(diff(u,z))↙
2 2 a z exp(b x + y + z )
例 6: 对函数 z x 3 y2 sin(xy) , 求 3z x 3
3
2.2 多元函数求导 对多元函数求导 格式:diff(f ,x,n),表示对变量 x 求 n 阶导数,其中 f 是符号函数,。
例 4: y a sin(becx x a ) cos(cx) ,求 y '
解:Matlab 命令:syms a b c x↙ y=a*sin(b*exp(c*x)+x^a)*cos(c*x);↙ diff(y,x)↙ ans = a*cos(b*exp(c*x)+x^a)*(b*c*exp(c*x)+x^a*a/x)*cos(c*x)-a*sin(b*exp(c*x)+x^a)*sin(c*x)*c
解:Matlab 命令: syms x y↙ z=x^3*y^2+sin(x*y);↙ diff(z,x,3)↙ ans = 6*y^2-cos(x*y)*y^3
例 7: 对函数 z x 3 y2 sin(xy) ,求 2z xy
解:Matlab 命令 syms x y↙ z=x^3*y^2+sin(x*y);↙ dzx=diff(z,x);↙ dzxy=diff(dzx,y)↙ dzxy = 6*x^2*y-sin(x*y)*x*y+cos(x*y) pretty(diff(dzx,y))↙
功能:计算 lim f x , 其中 f 是符号函数。 x0
命令形式 2: Limit(f,x,a)
功能:计算 lim f x ,其中 f 是符号函数。 xa
命令形式 3: Limit(f,x,inf)
功能:计算 lim f x ,其中 f 是符号函数。 x
命令形式 4: Limit(f,x,a,’right’)
2 a + 3 + 3 tan(3 x) 1/2 ------------------- + cos(x) cos(b x) - sin(x) sin(b x) b
1/2 (a x + tan(3 x)) disp('二阶导数为:'),y2↙ 二阶导数为: y2 = 1/4/(a*x+tan(3*x))^(3/2)*(a+3+3*tan(3*x)^2)^2+3/(a*x+tan(3*x))^(1/2)*tan(3*x)*(3+3*tan(3*x )^2)-sin(x)*cos(b*x)-2*cos(x)*sin(b*x)*b-sin(x)*cos(b*x)*b^2
5
4 1/2
x
x (1 - x )
- -----------
+
4 1/2
ezplot(gg)↙
(1 - x )
x -----------
4 1/2 (1 - x )
6
x2
图 6.6 函数 f (x) 1 t 2 dt 的图像 0

4.计算定积分
2
(1
x
1
)e
x
1 x
dx
1
x
2
解:Matlab 命令为: syms x↙ t=1+x-1/x;y=exp(x+1/x);↙ f=t*y;↙ int(f,x,1/2,2)↙
x
e
t
2
dx
2
例 2:求 lim 0
x0
x
t et2
2
dx
0
解:Matlab 命令为:syms t x↙ y1=exp(t^2);y2=t*y1^2;↙ r1=int(y1,t,0,x);r2=int(y2,t,0,x);↙ f=r1^2/r2;↙ limit(f,x,0)↙
ans =
2
x2
, lim
ex
1 。
x0
x x 0
解:Matlab 命令为:syms x↙ y1=(1+4*x)^(1/x);↙ y2=(exp(x)-1)/x;↙ limit(y1)↙ ans =
exp(4) limit(y2)↙ ans =
1

2:
lim(
x0
x
2
tg
(ax 2 (sin
) x)
3
)
1
解:Matlab 命令为:syms a x↙ y=tan(a*x^2)/(x^2+(sin(x))^3);↙ limit(y)↙ ans = a
(a 2
1
x2)
dx,
(ax ax 2
b) bx
c
dx
解:Matlab 命令 syms a b x↙
y1=1/(a^2-x^2); ↙
y2=(a*x+b)/(a*x^2+b*x+c); ↙ int(y1,x); ↙ pretty(int(y1)) ↙
log(a - x)
log(a + x)
- 1/2 ---------- + 1/2 ----------
解:Matlab 命令为: syms n↙ y=(1+1/n)^n;↙ limit(y,n,inf)↙ ans = exp(1)

6:求极限
lim(1
tan
x
)
1 x3
x0 1 sin x
解:Matlab 命令为: syms x↙ y=(1+tan(x))/(1+sin(x))^(1/x^3);↙ limit(y)↙ ans =
ans =
3/2*exp(5/2) ezplot(f)↙
图 6.7
被积函数 (1 x
1
)e
x
1 x
的图像
x
7
4.2 计算二重积分 指令:dblquad('fun',inmin, inmax, outmin, outmax) 其中:
例 5.计算 xydxdy ,D 由 y=1,x=4,x=0,y=0 所围
对符号函数求 n 阶导 格式:diff(f ,n),其中 f 是符号函数。
1
例 3:求 f (x) (ax tg3x) 2 sin x cos(bx) 的一阶、二阶导数。
解:Matlab 命令为:syms a b x↙ y=(a*x+tan(3*x))^(1/2)+sin(x)*cos(b*x);↙ y1=diff(y);↙ y2=diff(y,2);↙ disp('一阶导数为:'),pretty(y1)↙ 一阶导数为:
0
2 求导数与微分
2.1 一元函数的导数与微分
导数是函数增量与自变量增量之比的极限,即 f ' (x) lim f (x x) f (x) .在
x0
x
Matlab 中求函数的导数及其他一些类似运算均由 diff 命令来完成.
2
对符号函数求一阶导 diff(f) 格式:diff(f),其中 f 是符号函数。 例 1:求 y=ln(x)的导数。 解:Matlab 命令为:syms x↙ f=log(x);↙ diff(f)↙ ans = 1/x
2 6 x y - sin(x y) x y + cos(x y)
相关文档
最新文档