f(x)的定义如下:
2?x?x?6,x?0且x??4?2f(x)??x?5x?6,0?x?10,x?2且x?32?x?x?1,其它?
1、写一个函数文件f(x)实现该函数,要求参数x可以是向量;
2、作出该函数的图形;
3、求出f(x)的零点与最值。 解: (1)、编写M函数文件 function y=f(x) n=length(x); if x<0 & x~=-4 y=x.^2+x-6;
elseif x>=0 & x<10 & x~=2 & x~=3 y=x.^2+5*x+6; else
y=x.^2-x-1; end (2)、把文件f.m 放置在搜索路径上 (3)、运行指令
令x=5,则在命令窗口输入指令 y=f(5) 得到答案:
y =
56 (2)图形
x1=(-5):0.01:0; y1=x1.^2+x1-6; plot(x1,y1,'m-'); hold on
x2=0:0.01:10; y2=x2.^2-5*x2+6; plot(x2,y2,'r:'); hold on
x3=10:0.01:15; y3=x3.^2-x3-1; plot(x3,y3); x4=-4;
y4=x4.^2-x4-1; plot(x4,y4,'p');
hold on x5=2;
y5=x5.^2-x5-1; plot(x5,y5,'b*'); hold on x6=3;
y6=x6.^2-x6-1; plot(x6,y6,'g*');
title('函数f(x)的图形');
text(-4,-20,'曲线f1(x)=x^2+x-6'); text(2,40,'曲线f2(x)=x^2-5x+6'); text(10,146,'曲线f3(x)=x^2-x-1');
legend('f1(x)','f2(x)','f3(x)','x=-4','x=2','x=3'); 结果如图:
(2)f(x)的零点
①当x<0 & x~=-4时; f1(x)=x.^2+x-6;
由函数的系数矩阵可得函数的根,即: >> p1=[1,1,-6]; >> x1=roots(p1);
x1 =
-3 2
由题意可知,x的取值范围在(- ∞,0),所以x1=2舍去,即f(x)的零点之一为x1=-3.
②当x>=0 & x<10 & x~=2 & x~=3时; f2(x)=x.^2+5*x+6
由函数的系数矩阵可得函数的根,即: >> p2=[1,-5,6]; >> x2=roots(p2) x2 =
3.0000 2.0000
因为x~=2 & x~=3 所以f2(x)没有零点。
③当x>=10 & x=-4 & x=2 & x=3 时; f3(x)=x.^2-x-1;
由函数的系数矩阵可得函数的根,即: >> p3=[1,-1,-1]; >> x3=roots(p3)
x3 =
1.6180 -0.6180
由题意可知,f3(x)在定义域内没有零点。
④综上所述,f(x)在其定义域内只有一个零点,即x=-3. (4)、f(x)的最小值
如图所示,f(x)在定义域内只存在一个最小值,且处于最左段函数图形‘曲线f1(x)=x^2+x-6’上,即当x<0时,f(x)拥有最小值,因此,用fminbnd函数可求出f1(x)函数的最小值,指令如下:
>> x(1)=fminbnd('x(1).^2+x(1)-6',-5,0) >>y1=x(1).^2+x(1)-6 x =
-0.5000 y1 =
-6.2500
所以,函数f(x)的最小值为f(-0.5)=-6.5.