第5章 函数
第5章 单向函数

分大的 n(n n0 )有
Pr
M ' ( f (U n )) f 1 ( f (U n ))
1 p(n)
(一)随机猜测算法 M1
无论输入那个 y f (x),x 0,1,n M1总是输出n次扔硬币结
果r,作为对x的猜测。将M1代入(5.1)。因U n与r统计
独立,故得 Pr M1( f (U n )) f 1( f (U n )) 2n 2n (r, x) 2(n 5.2)
Pr M 2 ( f (U n )) f 1 ( f (U n )) Pr x' f 1 ( f (U n ))
2n (x' , x) f 1( f (x' )) 2n 2n
(5.4)
x
其中 (x', x)由(5.3)给出,(5.4)中第二个
等式是由于 , x' f 1 ( f (x)) x f 1( f (x' )) f 1( f (x' ))
(5.9)
In
n
定理 5.1 任一单向函数 f : 0,1* 0,1* 可表示 为一个单向函数族,反之任一单向函数族
fi : Di 0,1*;i I 也可表示为一单向函数
f : E 0,1,* 其中E为{0,1} 的* 一个无穷子集。
5.2.2 候选单向函数族
例 5.4 RSA函数族 例 5.5 Rabin函数族 例 5.6 Rabin-Blum函数族 例 5.7 离散对数函数族
5.4.2 单向函数的硬核函数
定义 5.10 设 h : 0,1* 0,1*是一个多项式时间可计 算函数,满足h(x) h(y),对一切 y x ,记
l(n) h(1n ) (l n)。h称为f的硬核函数,若对每一多项式 时间概率算法 M ' ,每一正多项式p(n)和一切充分 大的n有
第5章 函数

第5章函数及其应用5.1 函数种类5.1.1 命令函数,例如:getchar(),putchar()等。
5.1.2标准C++库函数,fabs(), pow(), rand(),sin(x), sqrt(), fexp()等,要使用头文件。
5.1.3自定义函数5.2 自定义函数的概念及使用方法例1:求两个数中的最大数#include <iostream.h>int imax (int a, int b){return (a>b ? a:b); }void main(){int a=6,b=9;cout<<"max="<<imax(a,b)<<endl;}例2:求x的n次方#include "iostream.h"main(){ float mpow(float a,int n);cout<<"pow="<<mpow(3.,3)<<endl;}float mpow(float a,int n){int i;float k=1;for(i=1;i<=n;i++)k=k*a;return (k); }5.3 自定义函数的三种形式5.3.1 无参函数,例如main(),getchar()等。
主函数与子函数之间不传输数据例:输出字符四方形************************************************void print(){int i;for(i=1;i<5;i++)cout<<(“************\n”;}5.3.2. 空函数例:null(){ }5.3.3. 有参函数如例1,例2说明:1.C++语言程序由一个主函数和若干个子函数(模块)组成。
1.子函数也有类型和函数值。
2.子函数程序体可以作为单独的文件存放,如果单独存放,应在主函数中作为头文件进行说明。
第5章 函数1

第5章 函数
(2) A到B的所有不同的满射有6个, 分别为 f1={(a, g1), (b, g1 ), (c, g2)} f2={(a, g1 ), (b, g2), (c, g1 )} f3={(a, g1 ), (b, g2), (c, g2)} f4={(a, g2), (b, g1 ), (c, g2)} f5={(a, g1 ), (b, g2), (c, g1 )} f6={(a, g1 ), (b, g2), (c, g2)}
p: A→A是双射, 则称p为集合A上的n阶置换 记为 阶置换, 阶置换
a1 p= p( a1 )
a2 L an p ( a2 ) L p ( an )
第5章 函数
例2 若A={1, 2, 3}, 试写出A上的全部置换。 解 A上的全部置换有3!=6个,分别为
1 p1 = 1 1 p3 = 2
第5章 函数
定义 5.1 ― 2 设有函数f: A→B, g: C→D, 若 有A=C、 B=D且对所有的x∈A, 有f(x)=g(x), 则称 函数f和g相等, 记为f=g。 定义 5.1 ― 3 集合A到集合B的所有函数的集合记 为BA, 即 BA={f|f: A→B}
第5章 函数
定理 5.1 ― 1 当A和B是有限集合时,有 |BA|=|B||A| 证明 设|A|=m, |B|=n(m, n∈N); 又设A={a1, a2, …, am}。 因为 Df=A,所以 f={(a1, f(a1)), (a2, f(a2)), …, (am , f(am))}。 , 而每个f(ai)(i∈Nm)都有n种可能,所以A到B的不 同函数共有 {n·n·…·n } =n m个 M个 即 |BA|=|B||A|
第5章 函数
第5章 函数

oop技术:封装性、继承性、多态性。
多态性 :一个名字,多个人口”,或称“同一接口, 多种方法 。
例5.6 重载绝对值函数
int abs(int x)
{ { { return x>0?x:-x;} return x>0?x:-x;} return x>0?x:-x;} double abs(double x) 1ong abs(1ong x) void main()
形参带值后,即可进行相应的数据处理
如果有结果值,通过return语句带回到主函数
5.2 函数的调用
函数要先定义,后调用。
调用函数时要考虑到函数本身的参数;
调用标准库函数时,要包含相应的头文件 输入/输出函数 iostream.h 字符串函数 string.h 常用数学函数 math.h 调用自定义函数时,要定义相应的实参,并给 这些实参赋值。
main()
{ int a = 1,b = 2; cout << "Before exchange:a= " << a << ",b= " << b << endl;
swap(a,b);
cout << "After exchange:a= " << a << ",b= " << b << endl; }
例5.8 定义一个求两数最大值的模板函数。
template <class T> T Max(T a, T b) { return a>b?a:b; }
void main()
第5章 函数

5.3函数的调用
在一个源程序中,如果调用的是标准函数, 则需在调用之前用#include命令将对应的头文 件包含进来;如果调用的是用户自定义函数, 则需将被调用的函数放在主调函数之前,否 则就需要在主调函数的声明部分加入被调用 函数的原型声明。
5.3.1 函数的声明
1. 函数声明的一般形式有两种: (1)函数类型 函数名(参数类型1, 参数类型 2, ……); (2) 函数类型 函数名(参数类型1 参数名1, 参 数类型2 参数名2, ……); 两种形式是的等价的。如: float add(float,float); 等效于: float add(float x,float y);
3. 从主调函数和被调函数之间数据传送的角度看,又 可分为: (1) 无参函数 函数定义、函数说明及函数调用中均不带参数。主 调函数和被调函数之间不进行参数传送。如上述程 序中的pline()函数、word()函数只是输出字符。 (2) 有参函数(带参函数) 在函数定义和函数说明时都带有的参数,称为形式 参数(简称为形参)。函数调用时所给出的参数, 称为实际参数(简称为实参)。进行函数调用时, 主调函数将把实参的值传送给形参,供被调函数使 用。
运行结果如图所示。
5.3.4 函数的嵌套调用
一个函数内不能定义另一个函数。但在函数调用时,可以嵌 套调用,即在调用一个函数的过程中,又调用另一个函数。
【例5.7】用调用函数求s=(12)!+(22)!+(32)!的 值,并在主函数中输出结果。 本题可编写两个函数,一个是用来计算平方 值的函数f1,另一个是用来计算阶乘值的函 数f2。主调函数先调f1计算出平方值,再在f1 中以平方值为实参调用 f2,计算其阶乘值, 然后返回f1,再返回主调函数,在循环过程 中计算累加和。
C语言程序设计-第5章--函数

实参可以是常量、变量或表达式,但要求 它们必须要有确定的值,在调用时将实参 的值赋给形参。另外,实参和形参的类型 应相同或兼容。
— 31 —
5.2 函数的参数传递和返回值
➢ 5.2.2 函数的返回值
一般情况下,主调函数调用完被调函数后,都希望能够得到一 个确定的值,这就是函数的返回值。在C语言中,函数返回值 是通过return语句来实现的。return语句的一般形式有3种:
/*函数声明*/
/*调用逆序函数,将a的逆序值赋给b*/ /*调用逆序函数,将b的逆序值赋给c */
— 23 —
5.2 函数的参数传递和返回值
➢ 5.2.1 函数的形参与实参
{
int y=0,sign=1;
/*定义sign表示x的符号,定义变量y代表逆序数据*/
if(x<0)
/*当x小于0时取符号及取反*/
— 18 —
5.1 函数的定义和调用
➢ 5.1.2 函数的调用
另外,按函数在语句中的作用来分,可以有以下3种函数调用方式:
函数表达式
函数语句
函数作为实参
函数作为表达式中的一项出 现,以函数返回值参与表达 式的运算。
函数调用的一般形式加上分 号即构成函数语句。
函数作为另一个函数调用的 实际参数出现,即把该函数 的返回值作为实参进行传送。
#include<stdio.h> int main() {
int x=0,y; y=trans(x); printf("y=%d\n",y); printf("x=%d\n",x); return 0; } trans(int a) { a++; printf("a=%d\n", a); return a; }
离散数学第5章_函数

第5章 函数
证明 f和ρf的图示如图5 ― 2所示。 1) 任取a∈A, 有f(a)=f(a), 所以 (a, a)∈ρf, 故ρf自反; 任取a, b∈A, 若(a, b)∈ρf, 则f(a)=f(b), 所以 f(b)=f(a), 即(b 任取a, b, c∈A, 若(a, b)∈ρf, (b, c)∈ρf, 则f(a)=f(b), f(b)=f(c) , 所以 f(a)=f(c), 即(a, c)∈ρf; 故ρf传递。 综上ρf是A上的等价关系。
第5章 函数
任取b∈Rf, 由Rf的定义, 有a∈A, 使f(a)=b, 即有[a]∈A/ρf, 使得 g([a])=f(a)=b。 所以 g是满射。 综上g是双射。 定义 5.1 ― 5 恒等关系IA={(a, a)|a∈A}是A 到A的双射, 它称为A上的恒等函数。 定义 5.1 ― 6 若函数f: A→B, 对一切a∈A, 都 有f(a)=b, b∈B, 则f称为常函数。
第5章 函数
定义 5.1 ― 2 设有函数f: A→B, g: C→D, 若 有A=C、 B=D且对所有的x∈A, 有f(x)=g(x), 则称 函数f和g相等, 记为f=g。 定义 5.1 ― 3 集合A到集合B的所有函数的集合记 为BA, 即 BA={f|f: A→B}
第5章 函数
定理 5.1 ― 1 当A和B是有限集合时,有 |BA|=|B||A| 证明 设|A|=m, |B|=n(m, n∈N); 又设A={a1, a2, …, am}。 因为 Df=A,所以 f={(a1, f(a1)), (a2, f(a2)), …, (am , f(am))}。 而每个f(ai)(i∈Nm)都有n种可能, {n·n·…·n } =n +m个 m个即 |BA|=|B||A|
高中数学 第5章 一元函数的导数及其应用 5.3 导数在研究函数中的应用 5.3.2 第1课时 函数

5.3.2 函数的极值与最大(小)值第1课时函数的极值与导数学习目标核心素养1.了解极大值、极小值的概念.(难点)2.了解函数在某点取得极值的必要条件和充分条件.(重点、易混点)3.会用导数求函数的极大值、极小值.(重点)1.通过极值点与极值概念的学习,体现了数学抽象的核心素养.2.借助函数极值的求法,提升学生的逻辑推理、数学运算的核心素养.“横看成岭侧成峰,远近高低各不同”.请同学们思考:“山势有什么特点?”由此联想庐山的连绵起伏形成好多的“峰点”与“谷点”.这就是我们这节课研究的函数的极值.1.极值点与极值(1)极小值点与极小值若函数y=f (x)在点x=a的函数值f (a)比它在点x=a附近其他点的函数值都小,f ′(a)=0,而且在点x=a附近的左侧f ′(x)<0,右侧f ′(x)>0,就把点a叫做函数y=f (x)的极小值点,f (a)叫做函数y=f (x)的极小值.(2)极大值点与极大值若函数y=f (x)在点x=b的函数值f (b)比它在点x=b附近其他点的函数值都大,f ′(b)=0,而且在点x=b附近的左侧f ′(x)>0,右侧f ′(x)<0,就把点b叫做函数y=f (x)的极大值点,f (b)叫做函数y=f (x)的极大值.(3)极大值点、极小值点统称为极值点;极大值、极小值统称为极值.思考:导数为0的点一定是极值点吗?[提示]不一定,如f (x)=x3,f ′(0)=0,但x=0不是f (x)=x3的极值点.所以,当f ′(x0)=0时,要判断x=x0是否为f (x)的极值点,还要看f ′(x)在x0两侧的符号是否相反.2.求可导函数y=f (x)的极值的方法解方程f ′(x)=0,当f ′(x0)=0时:(1)如果在x0附近的左侧f ′(x)>0,右侧f ′(x)<0,那么f (x0)是极大值;(2)如果在x0附近的左侧f ′(x)<0,右侧f ′(x)>0,那么f (x0)是极小值.1.判断正误(正确的打“√”,错误的打“×”)(1)极大值一定比极小值大.( )(2)每一个函数都至少有一个极大值或极小值.( )(3)若f ′(x0)=0,则x0一定是极值点.( )(4)单调函数不存在极值.( )[提示](1)极大值不一定比极小值大,∴(1)错误;(2)有的函数可能没有极值.∴(2)错;(3)若f ′(x0)=0,只有导函数的变号零点,x0才是极值点,故(3)错误;(4)正确.[答案](1)×(2)×(3)×(4)√2.函数f (x)的定义域为R,导函数f ′(x)的图象如图所示,则函数f (x)( )A.无极大值点,有四个极小值点B.有三个极大值点,两个极小值点C.有两个极大值点,两个极小值点D.有四个极大值点,无极小值点C[设y=f ′(x)的图象与x轴的交点从左到右横坐标依次为x1,x2,x3,x4,则f (x)在x=x1,x=x3处取得极大值,在x=x2,x=x4处取得极小值.]3.(多选题)下列四个函数中,在x=0处取得极值的函数是( )A.y=x3B.y=x2+1C.y=|x| D.y=2xBC[对于A,y′=3x2≥0,∴y=x3单调递增,无极值;对于B,y′=2x,x>0时y′>0,x<0时y′<0,∴x=0为极值点;对于C,根据图象,在(0,+∞)上单调递增,在(-∞,0)上单调递减,∴C 符合;对于D ,y =2x单调递增,无极值.故选BC.]4.函数f (x )=x +2cos x 在⎣⎢⎡⎦⎥⎤0,π2上的极大值点为( )A .0B .π6C .π3D .π2B [f ′(x )=1-2sin x .令f ′(x )=0,∵x ∈⎣⎢⎡⎦⎥⎤0,π2,∴x =π6,x ∈⎝ ⎛⎭⎪⎫π6,π2时f ′(x )<0,x ∈⎝⎛⎭⎪⎫0,π6时,f ′(x )>0.∴x =π6是f (x )在⎣⎢⎡⎦⎥⎤0,π2上的极大值点.]不含参数的函数求极值(1)y =x 3-3x 2-9x +5; (2)y =x 3(x -5)2.[解] (1)∵y ′=3x 2-6x -9,令y ′=0,即3x 2-6x -9=0,解得x 1=-1,x 2=3. 当x 变化时,y ′,y 的变化情况如下表:x (-∞,-1)-1 (-1,3) 3 (3,+∞)y ′ + 0 - 0 + y↗极大值↘极小值↗当x =3时,函数y =f (x )有极小值,且f (3)=-22. (2)y ′=3x 2(x -5)2+2x 3(x -5) =5x 2(x -3)(x -5).令y ′=0,即5x 2(x -3)(x -5)=0,解得x 1=0,x 2=3,x 3=5.当x 变化时,y ′与y 的变化情况如下表:x (-∞,0)0 (0,3) 3 (3,5) 5 (5,+∞)y ′ + 0 + 0 - 0 + y↗无极↗极大值↘极小值0↗值108∴x =0不是y 的极值点;x =3是y 的极大值点,y 极大值=f (3)=108; x =5是y 的极小值点,y 极小值=f (5)=0.一般地,求函数y =fx 的极值的步骤1求出函数的定义域及导数f ′x ; 2解方程f ′x =0,得方程的根x 0可能不止一个;3用方程f ′x=0的根,顺次将函数的定义域分成若干个开区间,可将x ,f ′x ,f x 在每个区间内的变化情况列在同一个表格中;4由f ′x 在各个开区间内的符号,判断f x在f ′x =0的各个根处的极值情况:如果左正右负,那么函数f x 在这个根处取得极大值; 如果左负右正,那么函数fx 在这个根处取得极小值;如果导数值在这个根左右两侧同号,那么这个根不是极值点.[跟进训练]1.求函数f (x )=3x 3-3x +1的极值. [解] f ′(x )=9x 2-3, 令f ′(x )=0,得x 1=-33,x 2=33. 当x 变化时,f ′(x ),f (x )的变化情况如下表:x ⎝⎛⎭⎪⎫-∞,-33-33⎝ ⎛⎭⎪⎫-33,3333 ⎝ ⎛⎭⎪⎫33,+∞ f ′(x ) + 0 - 0 + f (x )↗极大值↘极小值↗根据上表可知x 1=-33为函数f (x )=3x 3-3x +1的极大值点,极大值为f ⎛⎪⎫-3=1+233; x 2=33为函数f (x )=3x 3-3x +1的极小值点,极小值为f ⎝ ⎛⎭⎪⎫33=1-233.含参数的函数求极值【例2】 已知函数f (x )=16x 3-20ax 2+8a 2x -a 3,其中a ≠0,求f (x )的极值. [思路探究] 求导―→解f ′x =0―→比较极值点大小 ―→进行讨论求极值[解] ∵f (x )=16x 3-20ax 2+8a 2x -a 3,其中a ≠0,∴f ′(x )=48x 2-40ax +8a 2=8(6x 2-5ax +a 2)=8(2x -a )(3x -a ), 令f ′(x )=0,得x 1=a 2,x 2=a3.①当a >0时,a 3<a2,则随着x 的变化,f ′(x ),f (x )的变化情况如下表:x ⎝ ⎛⎭⎪⎫-∞,a 3 a3⎝ ⎛⎭⎪⎫a 3,a 2a2⎝ ⎛⎭⎪⎫a 2,+∞f ′(x ) + 0 - 0 + f (x )↗极大值↘极小值↗∴当x =a3时,函数f (x )取得极大值,为f ⎝ ⎛⎭⎪⎫a 3=a327;当x =a2时,函数f (x )取得极小值,为f ⎝ ⎛⎭⎪⎫a 2=0. ②当a <0时,a 2<a3,则随着x 的变化,f ′(x ),f (x )的变化情况如下表:x ⎝ ⎛⎭⎪⎫-∞,a 2 a2⎝ ⎛⎭⎪⎫a 2,a 3a3⎝ ⎛⎭⎪⎫a 3,+∞f ′(x ) + 0 - 0 + f (x )↗极大值↘极小值↗∴当x =a2时,函数f (x )取得极大值,为f ⎝ ⎛⎭⎪⎫a 2=0;当x =a3时,函数f (x )取得极小值,为f ⎝ ⎛⎭⎪⎫a 3=a327.综上,当a >0时,函数f (x )在x =a 3处取得极大值a 327,在x =a2处取得极小值0;当a <0时,函数f (x )在x =a 2处取得极大值0,在x =a 3处取得极小值a 327.函数极值的注意点1求函数的极值需严格按照求函数极值的步骤进行,重点考虑两个问题:一是函数的定义域,注意判断使导数值为0的点是否在定义域内,如果不在定义域内,需要舍去;二是检查导数值为0的点的左右两侧的导数值是否异号,若异号,则该点是极值点,否则不是极值点.2求解析式中含有参数的函数极值时,有时需要用分类讨论的思想才能解决问题.讨论的依据有两种:一是看参数是否对f ′x 的零点有影响,若有影响,则需要分类讨论;二是看f ′x 在其零点附近的符号的确定是否与参数有关,若有关,则需要分类讨论.[跟进训练]2.若函数f (x )=x -a ln x (a ∈R ),求函数f (x )的极值. [解] 函数f (x )的定义域为(0,+∞),f ′(x )=1-a x =x -ax.(1)当a ≤0时,f ′(x )>0,函数f (x )在(0,+∞)上单调递增,函数f (x )无极值. (2)当a >0时,令f ′(x )=0,解得x =a .当0<x <a 时,f ′(x )<0;当x >a 时,f ′(x )>0.∴f (x )在x =a 处取得极小值,且f (a )=a -a ln a ,无极大值. 综上可知,当a ≤0时,函数f (x )无极值;当a >0时,函数f (x )在x =a 处取得极小值a -a ln a ,无极大值.由极值求参数的值或取值范围322A .4或-3B .4或-11C .4D .-3(2)若函数f (x )=12x 2+(a -1)x -a ln x 没有极值,则( )A .a =-1B .a ≥0C .a <-1D .-1<a <0[思路探究] (1)由f ′(1)=0且f (1)=10.求解a ,b ,注意检验极值的存在条件. (2)求导分解因式主要对参数分类讨论.(按根的大小)(1)C (2)A [(1)∵f (x )=x 3+ax 2+bx +a 2,∴f ′(x )=3x 2+2ax +b .由题意得⎩⎪⎨⎪⎧f ′1=3+2a +b =0,f 1=1+a +b +a 2=10,即⎩⎪⎨⎪⎧2a +b =-3,a +b +a 2=9,解得⎩⎪⎨⎪⎧a =-3b =3,或⎩⎪⎨⎪⎧a =4,b =-11,当⎩⎪⎨⎪⎧a =-3b =3,时,f ′(x )=3x 2-6x +3=3(x -1)2≥0,故函数f (x )单调递增,无极值,不符合题意.∴a =4.故选C.(2)f ′(x )=(x -1)⎝ ⎛⎭⎪⎫a x+1,x >0,当a ≥0时,a x+1>0,令f ′(x )<0,得0<x <1; 令f ′(x )>0,得x >1.f (x )在x =1处取极小值. 当a <0时,方程a x+1=0必有一个正数解x =-a ,①若a =-1,此正数解为x =1,此时f ′(x )=x -12x≥0,f (x )在(0,+∞)上单调递增,无极值.②若a ≠-1,此正数解为x ≠1,f ′(x )=0必有2个不同的正数解,f (x )存在2个极值.综上,a =-1.故选A.]已知函数极值求参数的方法对于已知可导函数的极值求参数的问题,解题的切入点是极值存在的条件:极值点处的导数值为0,极值点两侧的导数值异号.1已知可导函数的极值求参数问题的解题步骤: ①求函数的导数f ′x ;②由极值点的导数值为0,列出方程组,求解参数. 注意:求出参数后,一定要验证是否满足题目的条件. 2对于函数无极值的问题,往往转化为f ′x ≥0或f ′x ≤0在某区间内恒成立的问题,此时需注意不等式中的等号是否成立.[跟进训练]3.若x =2是函数f (x )=x (x -m )2的极大值点,求函数f (x )的极大值.[解] ∵f ′(x )=(x -m )(3x -m ),且f ′(2)=0, ∴(m -2)(m -6)=0,即m =2或m =6. (1)当m =2时,f ′(x )=(x -2)(3x -2), 由f ′(x )>0得x <23或x >2;由f ′(x )<0得23<x <2.∴x =2是f (x )的极小值点,不合题意,故m =2舍去. (2)当m =6时,f ′(x )=(x -6)(3x -6), 由f ′(x )>0得x <2或x >6; 由f ′(x )<0得2<x <6.∴x =2是f (x )的极大值,∴f (2)=2×(2-6)2=32. 即函数f (x )的极大值为32.极值问题的综合应用1.如何画出函数f (x )=2x 3-3x 2-36x +16的大致图象.[提示] f ′(x )=6x 2-6x -36=6(x 2-x -6)=6(x -3)(x +2). 由f ′(x )>0得x <-2或x >3,∴函数f (x )的递增区间是(-∞,-2)和(3,+∞). 由f ′(x )<0得-2<x <3, ∴函数f (x )的递减区间是(-2,3).由已知得f (-2)=60,f (3)=-65,f (0)=16.∴结合函数单调性及以上关键点画出函数f (x )大致图象如图所示. 2.当a 变化时,方程2x 3-3x 2-36x +16=a 有几解?[提示] 方程2x 3-3x 2-36x +16=a 解的个数问题可转化为函数y =a 与y =2x 3-3x 2-36x +16的图象有几个交点的问题,结合探究点1可知:(1)当a >60或a <-65时, 方程2x 3-3x 2-36x +16=a 有且只有一解; (2)当a =60或a =-65时,方程2x 3-3x 2-36x +16=a 有两解; (3)当-65<a <60时,方程2x 3-3x 2-36x +16=a 有三解.【例4】 已知函数f (x )=x 3-3x +a (a 为实数),若方程f (x )=0有三个不同实根,求实数a 的取值范围.[思路探究] 求出函数的极值,要使f (x )=0有三个不同实根,则应有极大值大于0,极小值小于0,由此可得a 的取值范围.[解] 令f ′(x )=3x 2-3=3(x +1)(x -1)=0, 解得x 1=-1,x 2=1. 当x <-1时,f ′(x )>0; 当-1<x <1时,f ′(x )<0;当x >1时,f ′(x )>0.所以当x =-1时,f (x )有极大值f (-1)=2+a ; 当x =1时,f (x )有极小值f (1)=-2+a . 因为方程f (x )=0有三个不同实根,所以y =f (x )的图象与x 轴有三个交点,如图.由已知应有⎩⎪⎨⎪⎧2+a >0,-2+a <0,解得-2<a <2,故实数a 的取值范围是(-2,2).1.(改变条件)本例中,若方程f (x )=0恰有两个根,则实数a 的值如何求解? [解] 由例题知,函数的极大值f (-1)=2+a ,极小值f (1)=-2+a , 若f (x )=0恰有两个根,则有2+a =0,或-2+a =0, 所以a =-2或a =2.2.(改变条件)本例中,若方程f (x )=0有且只有一个实根,求实数a 的范围. [解] 由例题可知,要使方程f (x )=0有且只有一个实根, 只需2+a <0或-2+a >0, 即a <-2或a >2.3.(变条件、变结论)讨论方程ln xx=a 的根的情况.[解] 令f (x )=ln x x ,则定义域为(0,+∞),f ′(x )=1-ln xx2. 令f ′(x )=0,得x =e.当x 变化时,f ′(x )与f (x )的变化情况如下表:x (0,e) e (e ,+∞)f ′(x ) + 0 - f (x )↗1e↘因此,x =e 是函数f (x )的极大值点,极大值为f (e)=1e ,函数f (x )没有极小值点.其图象如图.∴当0<a <1e 时,ln xx =a 有两个不同的根;当a =1e 或a ≤0时,ln xx =a 只有一个根;当a >1e 时,ln x x=a 没有实数根.利用导数求函数零点的个数1利用导数可以判断函数的单调性; 2研究函数的极值情况;3在上述研究的基础上突出函数的大致图象;4直观上判断函数的图象与x 轴的交点或两个图象的交点的个数.若含有参数,则需要讨论极值的正负.1.若函数y =f (x )在区间(a ,b )内有极值,那么y =f (x )在(a ,b )内绝不是单调函数,即在某区间上单调函数没有极值.2.已知函数的极值情况,逆向应用确定函数的解析式,研究函数性质时,需注意两点:(1)常根据极值点处导数为0和极值两个条件列方程组,利用待定系数法求解.(2)因为函数在一点的导数值等于零不是此点为极值点的充要条件,所以利用待定系数法求解后必须验证极值点的合理性.3.已知函数零点(方程根)的个数,求参数取值范围的三种常用的方法:(1)直接法,直接根据题设条件构建关于参数的不等式,再通过解不等式确定参数范围;(2)分离参数法,先将参数分离,转化成求函数值域问题加以解决;(3)数形结合法,先对解析式变形,在同一平面直角坐标系中,画出函数的图象,然后数形结合求解.一是转化为两个函数y=g(x),y=h(x)的图象的交点个数问题,画出两个函数的图象其交点的个数就是函数零点的个数,二是转化为y=a,y=g(x)的图象的交点个数问题.1.函数f (x)的定义域为R,它的导函数y=f ′(x)的部分图象如图所示,则下面结论错误的是( )A.在(1,2)上函数f (x)为增函数B.在(3,4)上函数f (x)为减函数C.在(1,3)上函数f (x)有极大值D.x=3是函数f (x)在区间[1,5]上的极小值点D[由题图可知,当1<x<2时,f ′(x)>0,当2<x<4时,f ′(x)<0,当4<x<5时,f ′(x)>0,∴x=2是函数f (x)的极大值点,x=4是函数f (x)的极小值点,故A,B,C正确,D 错误.]2.设函数f (x)=x e x,则( )A.x=1为f (x)的极大值点B.x=1为f (x)的极小值点C.x=-1为f (x)的极大值点D.x=-1为f (x)的极小值点D [令f ′(x )=e x +x ·e x =(1+x )e x =0,得x =-1.当x <-1时,f ′(x )<0;当x >-1时,f ′(x )>0.故当x =-1时,f (x )取得极小值.]3.已知函数f (x )=x 3+3ax 2+3(a +2)x +1既有极大值又有极小值,则实数a 的取值范围是________.(-∞,-1)∪(2,+∞) [f ′(x )=3x 2+6ax +3(a +2),∵函数f (x )既有极大值又有极小值,∴方程f ′(x )=0有两个不相等的实根,∴Δ=36a 2-36(a +2)>0,即a 2-a -2>0,解得a >2或a <-1.]4.已知函数f (x )=2e f ′(e)ln x -x e,则函数f (x )的极大值为________. 2ln 2 [f ′(x )=2e f ′e x -1e ,故f ′(e)=2e f ′e e -1e, 解得f ′(e)=1e ,所以f (x )=2ln x -x e ,f ′(x )=2x -1e. 由f ′(x )>0得0<x <2e ,f ′(x )<0得x >2e.所以函数f (x )在(0,2e)单调递增,在(2e ,+∞)单调递减,故f (x )的极大值为f (2e)=2ln 2e -2=2ln 2.]。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13
第5章 函 数
一般格式
1.标准库函数
函数返回值类型 缺省int型 无返回值void
合法标识符
2。函数定义
3. 函数参数
函数类型 函数名(形参类型说明表) { 说明部分 语句部分 }
函数体
例 有参函数 例 无参函数 有参函数(现代风格) 例 max(int int max(int x,int y) x, y) printstar( ) int int z; { int z; \n”); } { { printf(“********** z=x>y?x:y; 或 z=x>y?x:y; return(z); return(z); ) printstar(void } { } printf(“********** \n”); }
10
第5章 函 数
5.2
1.标准库函数
函数定义
1. 无参函数的定义形式 类型标识符 函数名( ) { 函数体 }
2。函数定义
3. 函数参数
用“类型标识符”指定函数值返回值的类型, 即函数被调用后带回来的值的类型。无参函数一 般不需要带回函数值,因此可以不写类型标识符, 或将函数定义为“空类型”,即定义为“void”类 型。
第5章 函 数
5.3
1. 函数调用
函数调用与返回值
2。函数的返回值
3.函数的声明
(4) 如果被调用函数中没有return语句,则执行完 该函数体的最后一条语句返回主调函数。此 时也带回一个数值,但带回的是一个不确定 的值。(见例5-4) 上机指导p71---1
(5) 为了明确表示“不带回值”,可以用“void” 定义“空类型”。
18
第5章 函 数
5.2
1.标准库函数
函数定义
(6) 实参可以是常量、变量或表达式, 但要求它们有 确定的值。在函数调用时将 实参的值赋给形参变量。
2. 函数定义
3。函数参数
(7 )C语言规定,实参变量对形参变量的 数据传递是“值传递”,即单向传递,只 由实参传给形参,而不能由形参传回来给 实参。在内存中,实参单元与形参单元是 不同的单元。
16
①参数传递
第5章 函 数
形式参数:定义函数时函数名后面括号中的变量名 实际参数:调用函数时函数名后面括号中的表达式 例 两个数求和
main() { int a,b,c; scanf("%d,%d",&a,&b); c=add(a,b); (main 函数) c=add(a,b); 实参 printf("Max is %d",c); add(int x, int y) (add 函数) } { int z; add(int x, int y) z=x+y; 形参 { int z; return(z); z=x+y; } return(z); }
24
第5章 函 数
1. 函数调用
2。函数的返回值
3.函数的声明
25
【例题5-3】输入三个整数,输出其最大 值。 int max(float x,float y) {float z; z=x>y?x:y; return z;} void main() {float a,b,c; scanf(“%f %f”,&a,&b); c=max(a,b); printf(“%f”,c);} (P122例5-7)
15
第5章 函 数
5.2
1.标准库函数
函数定义
【例5-2】 计算两个数的和。
2。函数定义
3. 函数参数
#include <stdio.h> float add(float x,float y) { float z; z=x+y; return(z); } void main() { float a=100,b=200,sum; sum=add(a,b); printf(“sum=%.2f\n”,sum); }
7
第5章 函 数
5.1结构化程序设计与函数
1. 结构化程序设计 原则
3. 模块与函数
3. C源程序结构 模块与函数
5.从用户的角度看,函数有两种: (1)标准库函数,由系统提供的。 如输入输出函数、字符串处理函数 等, printf( )、scanf( )、strcat( )
8
第5章 函 数
注意:如果使用库函数,应该在本程序文件开 头用#include命令 #include <stdio.h>、 #include <string.h>、 #include <math.h> 等将调用有关库函数时所用到的信息包含到 本程序文件中来。
函数的递归调用
数组作为函数参数 变量的作用域与存储属性
5.7
3
内部函数和外部函数
第5章 函 数
5.1结构化程序设计与函数
1. 结构化程序 设计原则
2. 模块与函数
3. C源程序结构
把复杂的问题分解成许多容易解决的小问题, 复杂的问题就容易解决了。但是,如果只是简单 地进行功能分解,不注意各功能模块间的关系, 就可能使模块的数量太多,模块之间的关系太复 杂,从而导致对整个程序进行调试、修改时的困 难。 模块化程序设计原则是模块内高聚合,模块 间低偶合。模块内高聚合是指一个模块尽量完成 单一的功能;模块间低偶合是指模块间的联系尽 可能少。一般地模块化程序设计应遵循以下主要 原则。 (1) 模块独立性
3.函数的声明
)
23
第5章 函 数
5.3
1. 函数调用
函数调用与返回值
③函数的返回值
return(表达式); return 表达式; 关于函数返回值的说明:
2。函数的返回值
3.函数的声明
(1) 函数值的类型
在定义函数时指定函数值的类型,它决定了函数返回值的 类型 (2) 在C语言中,凡不加类型说明的函数,系统自动按整型 处理。 (3) 如果函数值的类型和return语句中表达式的值的类型不 一致,则以函数类型为准。
4
(2) 模块规模适当
第5章 函 数
5.1结构化程序设计Байду номын сангаас函数
1. 结构化程序设 计原则
2. 模块与函数
3. C源程序结构
C语言程序由基本语句和函数组成,每个函 数可完成相对独立的功能,按一定的规则调用这 些函数,就组成了解决某个特定问题的程序。C 语言程序的结构非常符合结构化程序设计思想。 将一个大问题分解成若干个功能模块后,可以用 一个或多个C语言的函数来实现这些功能模块, 通过函数调用来实现完成大问题的全部功能。因 此,在C语言中,模块化的程序设计是通过设计 函数和函数调用实现的。
3. C源程序结构 模块与函数
6
第5章 函 数
5.1结构化程序设计与函数 说明: 1. 结构化程序设计 1.一个C源程序文件由一个或多个函数组成。 原则 2.一个C程序由一个或多个源程序文件组成。 3. 模块与函数 3.C程序的执行从main函数开始,调用其它函 数后流程回到 main函数,再在main函数中 3. C源程序结构 结束整个程序的运行。 模块与函数 4.所有函数都是平行的,即在定义函数时是互 相独立的,一个函数并不从属于另一函数,即 函数不能嵌套定义。函数可以互相调用,但 不能调用main()函数。
9
第5章 函 数
5.2
1.标准库函数
函数定义
2。函数定义
3. 函数参数
(2)用户自定义函数,由程序设计者 根据专门需要自己定义的。 6.从函数的定义形式看,函数分两类: (1)无参函数。在调用函数时,主调 函数不向被调用函数传递参数。 (2)有参函数。在调用函数时,主调 函数和被调用函数之间有参数传 递。
14
第5章 函 数
【练习1】以下正确的函数说明是( )。 A)int fun (int a, b) B)float fun (int a, int b) C)double fun( ) D)int fun(char a[ ][ ]) 【练习2】C语言允许函数值类型的缺省定义,此时 该函数值隐含的类型是( )。 A)float型 B)int 型 C)long型 D)double型
21
第5章 函 数
5.3
1。函数调 用
函数调用与返回值
2. 函数调用的方式
2. 函数的返回值
按函数在程序中出现的位置来分,可以有以下三 种函数调用方式:
(1) 函数语句
3.函数的声明
把函数调用作为一个语句
printf(″\n I am happy!″); (2) 函数表达式
sum=sum+fun(k);
C语言程序设计 (C Programming)
辽宁科技大学
第5章 函 数
本章学习目标 1、函数定义、函数调用方法及函数返回值。 2、函数之间的数据传递方法。 3、变量的作用域与变量存储类型。
2
第5章 函 数
5.1 5.2 5.3 模块化程序设计与函数 函数定义 函数调用与返回值
5.4
5.5 5.6
17
第5章 函 数
①参数传递
1.标准库函数
2. 函数定义
3。函数参数
几点说明: (1)实参必须有确定的值 (2)形参必须指定类型 (3)形参与实参类型一致,个数相同,一一 传递 (4)若形参与实参类型不一致,自动按形参 类型转换———函数调用转换 (5)形参在函数被调用前不占内存;函数调用 时为形参分配内存;调用结束,内存释放
(3) 函数参数 printf(“max=%d\n”,max(max(a,b),c));
22
第5章 函 数
1。函数调 用
2. 函数的返回值
【练习4】有以下程序: #include<stdio.h> int f(int x, int y) {return ((y-x)*x);} void main() {int a=3,b=4,c=5,d; d=f(f(a,b),f(a,c)); printf(“%d\n”,d);} 程序运行后输出结果是(