Download - 实验 5 Matlab 自定义函数 及导数应用
实验 5 Matlab 自定义函数 及导数应用
实验目的:
1. 学习 Matlab 自定义函数;
2. 加深理解洛必达法则、极值、最值、单调性。
学习 Matlab 命令自定义函数验证洛必达法则函数的单调性与极值函数的最值
实验内容:
1. 学习Matlab自定义函数命令及求最小值命令
Matlab 允许用户将自己定义的新函数加倒已存在 Matlab 函数库中。新定义函数文件具有扩展名:“ .m” ,称之为函数 m— 文件
function 输出参数 = 函数名(输入参数)
函数体
……
函数体
函数 m— 文件的定义格式为:
例 1
syms x;y=x^2+sin(x)+2
在 Command Window 中键入:
当给出 x 值时, matlab 将给出相应的 y 的值。
不能建立函数关系。
2sin)( 2 xxxf
我们相建立函数
function y=f1(x) y=x^2+sin(x)+2;
存为 f1.m 文件,调用该函数时,输入:
syms x;y=f1(x)
打开 Matlab 文本编辑器,输入:
ans=
y=x^2+sin(x)+2
Matlab 求最小值命令 fmin 调用格式 :
给出函数 f(x) 在 (a,b) 上的最小值。
fmin(‘fun’,a,b) 或 fminbnd(f,a,b)
求函数的零点命令调用格式:
x=fezro(f,x0)
x=fzero(f,[a,b])
x0 为初值点; [a,b]为初始搜索区间。
返回值为是函数为零的点。
例 1
2
2
2
)(
21
),,(
x
exf
数建立正态分布的密度函
y=zhengtai(1,1,0)
2. 自定义函数
function y=zhengtai(x,a,b)
y=1/sqrt(2*pi)*a*exp(-(x-b)^2/2/a^2)
存为 zhengtai.m ,调用时可输入命令:
ans=0.2420
若想画出标准正态分布的密度函数的图像,则输入:syms x; ezplot(zhengtai(x,1,0))
例 2
解:我们希望当输入 a , b , c 的值时,能得到方程的两个根。在文本编辑器中建立名为 rootquad.m 的文件。
;解一元二次方程 02 cbxax
function [x1,x2]=rootquad(a,b,c);
d=b^2-4*a*c;
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
的根,例如求方程 0732 2 xx
[r1 r2]=rootquad(2,3,-7)
r1 = 1.2656r2 = -2.7656
f1='2*x^2+3*x-7';x=fzero(f1,-1)
x =
-2.7656
或
syms a b c x;
F=a*x^2+b*x+c;
solve(F)
ans =
[ 1/2/a*(-b+(b^2-4*a*c)^(1/2))]
[ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]
3 验证洛必达法则
)()(
lim)()(
limxgxf
xgxf
xx
)存在或(若导数之比的极限导数之比的极限来计算
型的极限时,可用,洛必达法则是指在求
00
syms a b x;f=a^x-b^x;g=x;L=limit(f/g,x,0)
例 3
df=diff(f,x);dg=diff(g,x);L1=limit(df/dg,x,0)
为例验证洛必达法则;以xba xx
x
0
lim
型极限这是00
L = log(a)-log(b)
L1= log(a)-log(b)
L=L1
)()(
limlim00
x
baxba xx
x
xx
x
4 函数的单调性与极值
例 4与极值;
的单调区间求函数 396)( 23 xxxxf
解: 求可导函数的单调区间与极值,就是求导函数的正负区间与正负区间的分界点。
先求导函数的零点,再画出函数图像,根据图像可直观地看出函数的单调区间与极值。
syms x;f=x^3-6*x^2+9*x+3;df=diff(f,x);s=solve(df)
ezplot(f,[0,4])s = [ 1] [ 3]
EZPLOT Easy to use function plotter. 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 < b
3)3(7)1(,)(
)3,1()(),1()1,(
minmax
ffxf
xf ,在区间与在区间
可建立一个名为 dandiao.m 文件,用来求函数的单调区间。disp(' 输入函数 ( 自变量为 x)');syms x;f=input('f(x)=');df=diff(f);s=solve(df);a=[];for i=1:size(s); a(i)=s(i);endezplot(f,[min(a)-1,max(a)+1])
的最小值。上在区间求函数 )5,0(1)3()( 2 xxf
建立函数的 M— 文件:
调用求函数最小值命令 fmin ,可得函数的最小值点。首先必须建立函数的 M— 文件
例 5
function y=f(x);y=(x-3).^2-1;
求最大值时可用命令:
5 函数的最值
x=fmin(‘f’,0,5)
x=-fmin(‘-(x-3)^2+1’,0,5)
与极小值。的极大值在求函数例 )2,2(1)(6 23 xxxxf
syms x;
f='x^3-x^2-x+1';
[x1,minf]=fminbnd(f,-2,2)
[x2,maxf]=fminbnd('-x^3+x^2+x-1',-2,2)
maxf=-maxf
练习:1 . 建 立 函 数 xxaaxf 3sin
31
sin),( 当 a 为 何 值 时 , 该 函
数 在3
x 处 取 得 极 值 ;
2 . 确 定 下 列 函 数 的 单 调 区 间
1 ) . 71862 33 xxxy ; 2 ) . x
xy8
2 ;
3 ) )1ln( 2xxy ; 4 ) . 3)1)(1( xxy ;
3. 求下列函数的最大值与最小值:
1) 41,32 23 xxxy ;
2) 31,28 24 xxxy 。
位置。讨论局部极值点的确切求各极点的确切位置;用
的二阶导数值;求出驻点处所有零点;求
置全局最小值点的大致位大、部极大、极小和全局最作出图形,观察所有局
对函数
).5
).4
)().3
)().2
;
)1
]3,0[|,2|)(
]2,2[),2sin()(.4
min
23
22
f
xf
xf
xxxxxf
xxxxxf