(完整版)Matlab学习系列15.数值计算—高数篇

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

15. 数值计算—高数篇

一、求极限

limit(f,x,a)——求极限 lim ()x a

f x →

limit(f,x,a,'right')——求右极限 lim ()x a

f x +→

limit(f,x,a,'left')——求左极限 lim ()x a

f x -→

例1 求 2352

lim sin 53x x x x

→∞++

代码:

syms x;

y=(3*x^2+5)/(5*x+3)*sin(2/x); limit(y,x,inf)

运行结果:ans = 6/5

注:Matlab 求二元函数的极限,是用嵌套limit 函数实现的,相当于求的是累次极限,需要注意:有时候累次极限并不等于极限。

例2 求 30

lim 2x x x

x a b +→⎛⎫

+ ⎪⎝⎭

代码:

syms x a b;

y=((a^x+b^x)/2)^(3/x); limit(y,x,0,'right')

运行结果:ans = a^(3/2)*b^(3/2)

二、求导

diff(f,x,n)——求函数f 关于x 的n 阶导数,默认n=1

例3 求1sin 1cos x

y x

+=

+的1阶导数,并绘图

代码:

syms x a b;

y=((a^x+b^x)/2)^(3/x); limit(y,x,0,'right')

运行结果:

y1 = cos(x)/(cos(x) + 1) + (sin(x)*(sin(x) + 1))/(cos(x) + 1)^2

例4 设sin xy

z e

=,求2,,z z z x y x y

∂∂∂∂∂∂∂

代码:

syms x y;

z=exp(sin(x*y)); zx=diff(z,x) zy=diff(z,y)

zxy=diff(zx,y) % 也等于diff(zy,x)

-5

5

5

10

15

20

25

x

(sin(x) + 1)/(cos(x) + 1)

-5

05

-20

-15

-10-5

05

10

1520

25x

cos(x)/(cos(x) + 1) + (sin(x) (sin(x) + 1))/(cos(x) + 1)

2

运行结果:

zx = y*exp(sin(x*y))*cos(x*y)

zy = x*exp(sin(x*y))*cos(x*y)

zxy = x*y*exp(sin(x*y))*cos(x*y)^2 + exp(sin(x*y))*cos(x*y)–x*y*exp(sin(x*y))*sin(x*y)

三、求极值

1. 一元函数极值

[x0,min]=fminbnd(f, a, b)

——返回函数f(x)在区间(a,b)上的极小值点和极小值例5求函数32

=--+在区间(-2,4)上的极值

()26187

f x x x x

代码:

f=@(x) 2*x^3-6*x^2-18*x+7;

g=@(x) -2*x^3+6*x^2+18*x-7;

[x0,min]=fminbnd(f,-2,4)

[x1,max]=fminbnd(g,-2,4)

fplot(f,[-2,4]);

运行结果:x0 = 3.0000 min = -47.0000

x1 = -1.0000 max = -17.0000

2. 多元函数极值

[X1,f1]=fminunc(f,X0)——处理连续情形

[X1,f1]=fminsearch(f,X0)——可以处理不连续情形

二者用法相同,返回极小值点和极小值,其中X 为初始点。 例6 求222(,)(1)100()f x y x y x =-+-的极小值

代码:

f=@(x) (1-x(1))^2+100*(x(2)-x(1)^2)^2; x0=[-5 -2];

[x1,f1]=fminsearch(f,x0)

运行结果:x1 = 1.0000 1.0000

f1 = 2.7969e -010

四、求不定积分与定积分

1. 符号积分

int(f,x)——求f(x)关于x 的不定积分

010

20

int(f,x,a,b)——求f(x)关于x 的从a 到b 的定积分 例7 求积分2ln d x a

x x -⎰和21ln d x a x x

+∞-⎰ 代码:

syms x a;

int((log(x)-a)/x^2,x)

int((log(x)-a)/x^2,x,1,inf)

运行结果:ans = -(log(x) - a + 1)/x ans = 1 – a

注:不定积分的结果是忽略任意常数C 的。

2. 二重积分

可以化为累次积分,再用两次int 函数实现。 例8 求二重积分

221

(1)d d x y x y x y +≤++⎰⎰

, 先化为累次积分:

原式

=1

1

d )d x x y y -++⎰

代码:

syms x y;

int(int(1+x+y,y,-sqrt(1-x^2),sqrt(1-x^2)),x,-1,1)

运行结果:ans = pi

3. 数值积分

quad(f, a, b)——辛普森法定积分,默认误差为10-6,低精度的非光滑曲线计算中是最有效;

quadl(f, a, b)——Lobatto 法定积分,在高精度的光滑曲线计算中更为高效;

相关文档
最新文档