实验5__matlab自定义函数及导数应用_第1页
实验5__matlab自定义函数及导数应用_第2页
实验5__matlab自定义函数及导数应用_第3页
实验5__matlab自定义函数及导数应用_第4页
实验5__matlab自定义函数及导数应用_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验5 Matlab 自定义函数 及导数应用实验目的:1. 学习 Matlab 自定义函数;2. 加深理解洛必达法则、极值、最值、单调性。l学习 Matlab 命令l自定义函数l验证洛必达法则l函数的单调性与极值l函数的最值实验内容:1. Matlab自定义函数 Matlab允许用户将自己定义的新函数加到已存在的Matlab函数库中。新定义函数文件具有扩展名:“.m”,称之为函数 m文件function 输出参数=函数名(输入参数)函数体函数体 函数 m文件的定义格式为:例12sin)(2 xxxf我们建立函数function y=f1(x) y=x2+sin(x)+2;存为 f1.m 文件,

2、调用该函数时,输入:syms x;y=f1(x)打开 Matlab 文本编辑器,输入:ans=y=x2+sin(x)+2例2222)(21),( xexf数数建立正态分布的密度函建立正态分布的密度函y=zhengtai(1,1,0)function y=zhengtai(x,a,bfunction y=zhengtai(x,a,b) ) y=1/sqrt(2y=1/sqrt(2* *pi)pi)* *a a* *exp(-(x-b)2/2/a2)exp(-(x-b)2/2/a2)存为 zhengtai.m,调用时可输入命令:ans=0.2420若想画出标准正态分布的密度函数的图像,则输入:sy

3、ms x; ezplot(zhengtai(x,1,0)例3解:我们希望当输入 a,b,c 的值时,能得到方程的两个根。在文本编辑器中建立名为 rootquad.m 的文件。;解一元二次方程解一元二次方程02 cbxaxfunction x1,x2=rootquad(a,b,c);d=b2-4*a*c;x1=(-b+sqrt(d)/(2*a);x2=(-b-sqrt(d)/(2*a);的根,的根,例如求方程例如求方程07322 xxr1 r2=rootquad(2,3,-7)r1 =r1 = 1.2656 1.2656r2 =r2 = -2.7656 -2.76562. Matlab2. Ma

4、tlab 求最小值求最小值: : min(y) : 返回向量返回向量 y 的最小值的最小值max(y) : 返回向量返回向量 y 的最大值的最大值x,f= fminbnd(fun, a, b) : x返回一元函数返回一元函数y=f(x)在在a,b内的局部极小值点,内的局部极小值点,f 返回局部极小值。其中返回局部极小值。其中fun为函数句柄为函数句柄fun(这里这里fun是函数的是函数的M文件表达文件表达方式方式)或或inline函数。函数。x, f= fminsearch(fun, x0) : x返回多元函数返回多元函数y=f(x)在初始值在初始值x0附近的局部极小值点,附近的局部极小值点,

5、f 返回局部极小返回局部极小值。这里值。这里x,x0均为向量。均为向量。例例4. 4. 求函数求函数y=xsin(xy=xsin(x2 2-x-1)-x-1)在在(-1.6,-0.1)(-1.6,-0.1)内的极小值内的极小值 点点fun=inline(x*sin(x2-x-1) , x )x,f=fminbnd(fun,-1.6,-1)x =-1.2455f = -1.2138例例5. 5. 求函数求函数 f(x,yf(x,y)=5 x)=5 x4 4 y y4 4+4xy +4xy 在原点附近的极在原点附近的极 大值大值fun=inline( x(1)4+x(2)4-4*x(1)*x(2)

6、-5 )x,f=fminsearch(fun, 0,0)x = 1.0000 1.0000f = -7.0000注意:在使用注意:在使用fminsearchfminsearch指令时,多变量必须合写成指令时,多变量必须合写成一个向变量一个向变量的极小值点。上在区间求函数)5 , 0(1) 3()(2 xxf练习求极大值点时可用命令:求极大值点时可用命令:x=fminbnd( (x-3)2+1,0,5)x=fminbnd(-(x-3)2+1,0,5)32( )1( 2,2)f xxxx求在的极大值 与极小值。syms x;f=x3-x2-x+1;x1,minf=fminbnd(f,-2,2)x2

7、,maxf=fminbnd(-x3+x2+x-1,-2,2)maxf=-maxf-x=fzero(f,x0) 返回一元函数的一个零点,其中返回一元函数的一个零点,其中f f为函数,且返回函数在为函数,且返回函数在x0附近的零点;附近的零点;-x=fzero(f,a,b)返回一元函数的一个零点,其中返回一元函数的一个零点,其中f f为函数,且返回函数在为函数,且返回函数在 a,ba,b 区间中的零点。区间中的零点。例例4. 4. 求函数求函数 y=xsin(xy=xsin(x2 2 x-1) x-1) 在在(-2,-0.1)(-2,-0.1)内的零点内的零点fun=inline(x*sin(x2

8、-x-1) , x)fzero(fun,-2,-0.1)? Error using = fzeroThe function values at the interval endpoints must differ in sign.3. Matlab3. Matlab 求零点求零点: : x=fzero 要求区间两端的函数值异号要求区间两端的函数值异号对于例对于例4 4,我们先作图观测,我们先作图观测fplot(fun,-2,-0.1);grid on;-2-1.8-1.6-1.4-1.2-1-0.8-0.6-0.4-0.2-1.5-1-0.500.511.52发现在发现在-1.6和和-0.6附

9、近各有一个零点,我们分两个附近各有一个零点,我们分两个小区间分别求解小区间分别求解fzero(fun,-2,-1.2)fzero(fun,-1.2,-0.1)ans = -1.5956ans = -0.6180fzero(fun,-1.6)fzero(fun,-0.6)ans = -1.5956ans = -0.618022370 xx例5 求方程的根,f1=2*x2+3*x-7;x=fzero(f1,-1)x = -2.7656-x,f,h=fsolve(fun,x0) : x 返回一元或多元函数返回一元或多元函数funfun在在x0附近的一个零点;附近的一个零点;x0为迭代初值;为迭代初值

10、;f 返回返回fun在在x的函数值;的函数值;h返回值如果大于返回值如果大于0,说明计算,说明计算结果可靠,否则计算结果不可靠。结果可靠,否则计算结果不可靠。例例6. 6. 用用fsolve求函数求函数 y=xsin(xy=xsin(x2 2 x-1) x-1) 的零点的零点fun=inline(x*sin(x2-x-1) , x)x,f,h=fsolve(fun,-1.6)x = -1.5956f = 1.4909e-009h = 1x,f,h=fsolve(fun,-0.6)Optimization terminated: first-order optimality is less th

11、an options.TolFun.x = -0.6180f = -3.3152e-012h = 1例例7. 7. 求下列方程组在原点附近的解求下列方程组在原点附近的解2141101408xxyexyx 解. 先写一个M文件function f=fun7(x)f(1)=4*x(1)-x(2)+exp(x(1)/10-1;f(2)=-x(1)+4*x(2)+x(1)2/8;x,f,h=fsolve(fun7,0,0)x =0.2326 0.0565f=1.0e-006* 0.0908 0.1798h=1fun=inline(4*x(1)-x(2)+exp(x(1)/10-1, -x(1)+4*x

12、(2)+x(1)2/8 ) ;Optimization terminated: first-order optimality is less than options.TolFun.x = 0.2326 0.0565f = 1.0e-006 * 0.0908 0.1798h = 1x,f,h=fsolve(fun,0,0)fun=(x)(4*x(1)-x(2)+exp(x(1)/10-1, -x(1)+4*x(2)+x(1)2/8) ;%匿名函数x,f,h=fsolve(fun,0,0)Optimization terminated: first-order optimality is les

13、s than options.TolFun.x = 0.2326 0.0565f = 1.0e-006 * 0.0908 0.1798h = 1注1:fzero只能求零点附近变号的根,试以1.1为初值,用fzero和fsolve求解(x-1)2=0, 看看发生了什么?注2:fzero和fsolve只能求实根,试用它们解X2+x+1=0,看看发生了什么?-用用solve求符号代数方程的根求符号代数方程的根syms a b c x; F=a*x2+b*x+c; solve(F) ans = 1/2/a*(-b+(b2-4*a*c)(1/2) 1/2/a*(-b-(b2-4*a*c)(1/2)20a

14、xbxc例如求方程的根, x,y = solve(x2 + x*y + y = 3,x2 - 4*x + 3 = 0)x = 1 3 y = 1 -3/24. 函数的单调性例8与与极极值值;的的单单调调区区间间求求函函数数396)(23 xxxxf解:求可导函数的单调区间与极值,就是求导函数的正负区间与正负区间的分界点。先求导函数的零点,再画出函数图像,根据图像可直观地看出函数的单调区间与极值。syms x;f=x3-6*x2+9*x+3;df=diff(f,x);s=solve(df)ezplot(f,0,4)s = 1 3 EZPLOT Easy to use function plott

15、er. EZPLOT(f) plots the expression f = f(x) over the default domain -2*pi x 2*pi. EZPLOT(f, a,b) plots f = f(x) over a x b3)3(7)1(,)()3 , 1()(), 1()1 ,(minmax ffxfxf,在在区区间间与与在在区区间间可建立一个名为 dandiao.m 文件,用来求函数的单调区间。dispdisp( (输入函数输入函数( (自变量为自变量为x);x);syms x;f=input(f(x)=);df=diff(f);s=solve(df);s=eval(s)a=;for i=1:length(s); a(i)=s(i);endezplot(f,min(a)-1,max(a)+1) 5 验证洛必达法则)()(lim)()(limxgxfxgxfxx )存存在在或或(若若导导数数之之比比的的极极限限导导数数之之比比的的极极限限来来计计算算型型的的极极限限时时,可可用用,洛洛必必达达法法则则是是指指在在求求 00syms a b x;f=ax-bx;g=x;L=limit(f/g,x,0)例9df=diff(f,x);dg=diff(g,x);L1=limit(df/dg,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论