预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验5matlab自定义函数与导数应用 实验目的 学习matlab自定义函数. 加深理解罗必塔法则、极值、最值、单调性. 实验内容 学习matlab自定义函数及求函数最小值命令. 函数关系是指变量之间的对应法则,这种对应法则需要我们告诉计算机,这样,当我们输入自变量时,计算机才会给出函数值,matlab软件包含了大量的函数,比如常用的正弦、余弦函数等.matlab允许用户自定义函数,即允许用户将自己的新函数加到已存在的matlab函数库中,显然这为matlab提供了扩展的功能,无庸置疑,这也正是matlab的精髓所在.因为matlab的强大功能就源于这种为解决用户特殊问题的需要而创建新函数的能力.matlab自定义函数是一个指令集合,第一行必须以单词function作为引导词,存为具有扩展名“.m”的文件,故称之为函数M-文件. 函数M-文件的定义格式为: function输出参数=函数名(输入参数) 函数体 …… 函数体 一旦函数被定义,就必须将其存为M-文件,以便今后可随时调用.比如我们希望建立函数,在matlab工作区中输入命令: symsx;y=x^2+2*x+1; 不能建立函数关系,只建立了一个变量名为y的符号表达式,当我们调用y时,将返回这一表达式. y y=x^2+2*x+1 当给出x的值时,matlab不能给出相应的函数值来. x=3;y y=x^2+2*x+1 如果我们先给x赋值. x=3;y=x^2+2*x+1 得结果:y=16 若希望得出的值,输入: x=2;y 得结果:y=16,不是时的值.读者从这里已经领悟到在matlab工作区中输入命令:y=x^2+2*x+1不能建立函数关系,如何建立函数关系呢?我们可以点选菜单Fill\New\M-fill打开matlab文本编辑器,输入: functiony=f1(x) y=x^2+2*x+1; 存为f1.m.调用该函数时,输入: symsx;y=f1(x) 得结果:y=x^2+2*x+1.输入: y1=f1(3) 得结果:y1=16 matlab求最小值命令fmin调用格式: fmin(‘fun’,a,b)给出在上的最小值点. 2.自定义函数 例5.1.建立正态分布的密度函数 解:打开文本编辑器,输入: functiony=zhengtai(x,a,b) y=1/sqrt(2*pi)/a*exp(-(x-b).^2/2/a^2); 存为zhengtai.m.调用时可输入命令: y=zhengtai(1,1,0) 得结果:y=0.2420.此即的值.如果想画出标准正态分布的密度函数的图象,输入: ezplot(zhengtai(x,1,0)) 例5.2.解一元二次方程. 解:我们希望当输入的值时,计算机能给出方程的两个根.在文本编辑器中建立名为rootquad.m的文件. function[x1,x2]=rootquad(a,b,c) d=b*b-4*a*c; x1=(-b+sqrt(d))/(2*a) x2=(-b-sqrt(d))/(2*a) 比如求方程的根,可用语句: [r1,r2]=rootquad(2,3,-7) 得结果:r1=1.2656 r2=-2.7656 验证罗必塔法则. 罗必塔法则是指在求及的极限时,可用导数之比的极限来计算(如果导数之比的极限存在或) 例5.3.以为例验证罗必塔法则. 解:这是型极限 f=a^x-b^x;g=x;L=limit(f/g,x,0) 得结果:L=log(a)-log(b) df=diff(f,x);dg=diff(g,x);L1=limit(df/dg,x,0) 得结果:L1=log(a)-log(b) 从结果看出:L=L1,即 = 4.函数的单调性与极值. 例5.4.求函数的单调区间与极值. 解:求可导函数的单调区间与极值,就是求导函数的正负区间与正负区间的分界点,利用matlab解决该问题,我们可以先求出导函数的零点,再画出函数图象,根据图象可以直观看出函数的单调区间与极值.输入命令: f=x^3-6*x^2+9*x+3;df=diff(f,x);s=solve(df) 得结果:ans=[1,3],画出函数图象. ezplot(f,[0,4]) 从图上看,的单调增区间为、,单调减区间是,极大值,极小值. 我们可以建立一个名为dandiao.m的M—文件,用来求求函数的单调区间. disp(‘输入函数(自变量为x)’) symsx f=input('函数f(x)=') df=diff(f); s=solve(df) a=[]; fori=1:size(s); a(i)=s(i); end ezplot(f,[min(a)-1,max(a)+1]) 要求函数的单调区间与极值,可调用dandiao.