例子1:每人发2个苹果的函数关系
y=2x(x=0,1,2,3……),
函数图象如下,作图代码附录1。
例子2:每小时往水池里放水2立方水的函数关系
y=2x(x≥0),
函数图象如下,作图代码附录2。
例子3:氢原子是最简单的原子,由一个质子(原子核)和一个电子组成。这个电子根据不同的能量状态(x≥0)运行在不同的轨道(y=0, 1, 2, 3, ……)上。如下图,作图代码附录3。
假如能量状态是连续的非零实数,0≤能量状态<1时在0轨道,1≤能量状态<2时在1轨道,如此类推。它们的函数关系
y=floor(x) (x≥0) ,
注:floor是地板整数,
函数图象如下,作图代码附录4。
例子4:自来水是分段计算收费的,不超过30立方每立方3元,超过30立方而不超过60立方的部分每立方5元,超过60立方的部分每立方7元。这是个分段函数(由于自变量取值范围不同函数关系不一样,要分段描述函数解析式。)关系
y=3x(0≤x≤30),
y=5(x-30)+90(30<x≤60),
y=7(x-60)+240(x>60),
函数图象如下,作图代码附录5。
上面四个函数图象对比,例子1是离散的点,例子2是连续的线,例子3是断开的线,例子4是折线。
自变量的取值范围称作函数的定义域,函数值的范围称作函数的值域。
我们知道,实数与坐标轴上的点一一对应,也就是说,实数是连续的。实数包含有理数和无理数,单独有理数或无理数是不连续的。
一元函数的定义域是连续的实数区间,而且图象是连续的线(例子2和例子4),我们认为这个函数是连续的。
一个不连续的一元函数,在某个自变量取值区间是实数区间,在这个区间上函数图象是连续的线(如例子2的1≤x<2),我们把这个自变量取值区间认为是这个函数的连续区间。
例题1:判断下面函数是否连续,如果不连续但有连续区间,请找出一个连续区间。注:不注明定义域,则定义域是整个实数。
(1)y=-5x (x=......, -3, -2, -1, 0, 1, 2, 3, ......)
(2)y=3x-|x-2|+5
(3)y=x²+4x+3
(4)y=2x²+3|x|-7
(5)y=2.5x (x为全部有理数)
(6)y=3.2x (x为全部无理数)
(7)分段函数
y=2x (x<3) ①
y=3x-3 (x≥3) ②
(8)分段函数
y=3|x+2|-1 (x≤0) ①
y=x²+4x+5 (x>0) ②
(9)分段函数
y=2x+1 (x≤1) ①
y=2x²-x+5 (x>1) ②
(10)分段函数
y=2x (x<0) ①
y=3x² (x>0) ②
解:(1)定义域不是实数,所以不是连续的,也没有连续区间。
(2)该函数实际是分段函数
y=4x+3 (x<2) ①
y=2x+7 (x≥2) ②
当x=2,由①得y=11,由②得y=11,可见函数是在(2,11)处折的折线,所以该函数是连续的。
(3)定义域是实数,函数图象是连续的抛物线,所以函数是连续的。
(4)该函数实际是分段函数
y=2x²-3x-7 (x<0) ①
y=2x²+3x-7 (x≥0) ②
当x=0,由①得y=-7,由②得y=-7,可见函数是在(0,-7)相接的2段抛物线,所以该函数是连续的。
(5)定义域不是实数,函数不连续,也没有连续区间。
(6)定义域不是实数,函数不连续,也没有连续区间。
(7)当x=3,由①得y=6,由②得y=6,可见函数是在(3,6)处折的折线,所以该函数是连续的。
(8)当x=0,由①得y=5,由②得y=5,可见函数是在(0,5)相接的1段折线和1段抛物线,所以该函数是连续的。
(9)当x=1,由①得y=3,由②得y=6,可见2段函数图象无相接点,函数不是连续的,该函数的一个连续区间是(x≤1)。
(10)函数的定义域断开了,不包含x=0,所以函数是不连续的,该函数的一个连续区间是(x<0)。
由上例可知:判断分段函数是否连续,首先看定义域是否连续,再看接口处相邻的解析式计算函数值是否相等。
练习1:判断下面函数是否连续,如果不连续但有连续区间,请找出一个连续区间。注:不注明定义域,则定义域是整个实数。
(1)y=4x²-5|x|+1
(2)y=ax (a不为0的常数,x为全部有理数)
(3)y=3x-|x-2|+5
(4)y=9x (x为全部整数)
(5)y=4x²+4x+1
(6)y=9.9x (x为全部无理数)
(7)分段函数
y=5x+7 (x<0) ①
y=3x²+7 (x>0) ②
(8)分段函数
y=4x +5 (x<3) ①
y=3x+8 (x≥3) ②
(9)分段函数
y=-x²+2x+1 (x≤1) ①
y=2x²-x+2 (x>1) ②
(10)分段函数
y=2|x-5|+1 (x≤0) ①
y=x²+4x+11 (x>0) ②
附录1:
import sys
sys.path.append("/5xstar/pyfiles")
from mymath.rcs import *
import turtle as t
t.setup(500,500)
t.screensize(400,400)
t.up()
build(t, wc=(-50, -50, 350, 350))
#y=2x(x=0,1,2,3……)
for x in range(9):
t.setpos(20*x,20*2*x)
t.dot("red")
t.setpos(175,-75)
t.write("y=2x(x=0,1,2,3……)",align="center",font=(markFont[0],14,markFont[2]))
t.ht()
附录2:
import sys
sys.path.append("/5xstar/pyfiles")
from mymath.rcs import *
import turtle as t
t.setup(500,500)
t.screensize(400,400)
t.up()
build(t, wc=(-50, -50, 350, 350))
#y=2x(x≥0)
t.pencolor("red")
def f(x):
return 2*x
t.setpos(175, -75)
t.write("y=2x(x≥0)",align="center",font=(markFont[0],14,markFont[2]))
trace(t,0,10,f)
t.ht()
附录3:
import turtle as t
t.setup(500,500)
t.screensize(400,400)
t.up()
t.setpos(0,0)
t.dot(5)
t.sety(-15)
t.write("原子核",align="center")
t.pencolor("blue")
t.seth(90)
for n in range(8):
i=25*(n+1)
P=i/2**.5
t.setpos(P, P)
t.dot("red")
t.setpos(P+2, P+2)
t.write("轨%d" % n)
t.setpos(i, 0)
t.down()
t.circle(i)
t.up()
t.ht()
附录4:
import sys
sys.path.append("/5xstar/pyfiles")
from mymath.rcs import *
from math import floor
import turtle as t
t.setup(500,500)
t.screensize(400,400)
t.up()
build(t, wc=(-50, -50, 350, 350))
#y=floor(x)(x≥0)
t.pencolor("red")
def f(x):
return floor(x)
t.setpos(175, -75)
t.write("y=floor(x)(x≥0)",align="center",font=(markFont[0],14,markFont[2]))
for n in range(17):
t.setpos(n*20,n*20)
t.dot(5)
trace(t,n+.1,n+1,f)
t.setpos((n+1)*20,n*20)
t.dot(5)
t.dot(3,"white")
t.up()
t.ht()
附录5:
import sys
sys.path.append("/5xstar/pyfiles")
from mymath.rcs import *
import turtle as t
t.setup(500,500)
t.screensize(400,400)
t.up()
build(t, xUnt=(10,40),yUnt=(10,10),wc=(0, 0, 400, 400))
#y=3x(0≤x≤30)
#y=5(x-30)+90(30<x≤60)
#y=7(x-60)+240(x>60)
t.pencolor("red")
def f(x):
if x>60:
return 7*(x-60)+240
elif x>30:
return 5*(x-30)+90
else:
return 3*x
t.setpos(80, 45)
t.write("y=3x(0≤x≤30)",font=(markFont[0],14,markFont[2]))
t.setpos(195, 165)
t.write("y=5(x-30)+90(30<x≤60)",font=(markFont[0],14,markFont[2]))
t.setpos(312, 345)
t.write("y=7(x-60)+240(x>60)",font=(markFont[0],14,markFont[2]))
trace(t,0,100,f)
t.ht()