二元一次函数就是2个自变量的函数,从最简单的二元一次函数
z=x+y
开始,探索二元一次函数的秘密。
在平面坐标系中画y=x直线作为y轴,原来的y轴变为z轴,这样就成了立体直角坐标系。把空间中的点转为平面中的点方法:x坐标不变,y坐标除以根号2再加z坐标。作图如下图(虚线在x,y平面之下,绿色线在x,y平面中,实线在x,y平面之上),作图代码见附录1:
从图中可以看到,二元一次函数的图象是立体直角坐标系中的一个平面。
也许好奇的同学会想,三元一次函数的图象又是什么样子呢?很遗憾,因为我们的视觉最多是三维空间,三元一次函数的图象每个点(x,y,z,p)都有四个分量,是四维空间中的图象,没办法展示了,只能靠想象。由于一元一次函数是一条直线,我们把一次函数叫做线性函数,把一次方程叫做线性方程,把一次方程组叫做线性方程组。
现在我们讨论下面两个二元一次函数
z=x+y+5、
z=x+y-5
的关系。未知数和系数都相同,只是常数项不同。对于z=x+y-5平面上的一点(x,y,z),z=x+y+5平面上有而且只有一点(x,y,z+10)和它对应,反之亦然。因此这两个平面没有公共点,平行了。作图验证,作图代码附录2:
绿色线为x,y平面上的线,可见两个平面平行。
把这两个函数看作三元一次方程
x+y-z=-5,
x+y-z=5,
就成了方程组,类比二元一次方程组可得:未知数的系数比全等,如果常数为0或比也相等,是同一条方程,如果常数不为0且比不相等,方程的对应平面平行,含这两条方程的方程组无解。
例题1:判断下面三元一次方程组有无解:
x+2y+3z=7, ①
3x+2y+z=13, ②
x+y+z=9。 ③
解:①+②,得
4x+4y+4z=20,
x+y+z=5。 ④
可见③与④的未知数的系数比相等,但常数比不相等,③与④是两个平行的平面,所以原方程组无解。
三元一次方程组(三条方程)中,如果存在1条方程或2条方程通过加减法构造出1条方程,这条方程与另一条方程未知数系数比全等,但常数不为零且比不相等,原方程组无解;若常数为0或比也相等,则原方程组可能有无数解。事实上,这个规则在所有的线性方程组中适用。
例题2:解下面三元一次方程组
x+y+z=12, ①
x+2y+5z=22, ②
x=4y。 ③
分析:我们已经学过二元一次方程组的解法,只要能把三元一次方程组转化为二元一次方程组,问题就解决了。
解:把③代入①②,得
5y+z=12, ④
6y+5z=22。 ⑤
④×5-⑤,得
19y=38,
y=2。
把y=2代入④,得
z=2。
把y=2代入③,得
x=8。
因此这个三元一次方程组的解是
x=8,
y=2,
z=2。
三元或更高元的方程组的解法就两个字:转化。用代入消元法或加减消元法降低方程组的元数,直到是一元一次方程,然后反向代入数值得到方程组的解。
练习题:判断下面方程组有无数解、无解或有唯一解,有唯一解的请把它解出来。
(1)
x+2y-4z=11, ①
2x+4y=8z+5, ②
3x+4y=16。 ③
(2)
x-3y+5z=23, ①
2x-y=5z+5, ②
3x-4y=14。 ③
(3)
2x+4y+3z=9, ①
3x-2y+5z=11, ②
5x-6y+7z=13。 ③
(4)
x:y=3:2, ①
y:z=5:4, ②
x+y+z=66。 ③
(5)
4x-9z=10, ①
2x-y+5z=5, ②
6x-y-4z=15。 ③
(6)
x+y-z=11, ①
x-y+z=3, ②
-x+y+z=4。 ③
(7)
x+3y-5z=5, ①
x-2y+4z=7, ②
4x+2y-2z=24。 ③
附录1:
import sys
sys.path.append("/5xstar/pyfiles")
from fractions import Fraction
from mymath.rcs import *
import turtle as t
t.setup(500,500)
t.screensize(400,400)
t.up()
build(t)
t.clear()
t.setpos(-200,0)
t.seth(0)
t.shape("classic")
t.down()
t.fd(400)
t.stamp()
t.up()
t.sety(-20)
t.write("x",align="right")
t.setpos(-200/2**0.5,-200/2**0.5)
t.seth(45)
t.down()
t.fd(400)
t.stamp()
t.up()
t.sety(200/2**0.5-20)
t.write("y",align="right")
t.setpos(0,-200)
t.seth(90)
t.down()
t.fd(400)
t.stamp()
t.up()
t.setpos(-5,190)
t.write("z",align="right")
z=0
def f(x):
return (z-x)/2**0.5+z
#y=z-x
t.pencolor("green")
trace(t,-6,6,f)
t.pencolor("blue")
for i in range(-6,0):
z=i
trace(t,-6,-5,f)
trace(t,-4,-3,f)
trace(t,-2,-1,f)
trace(t,0,1,f)
trace(t,2,3,f)
trace(t,4,5,f)
trace(t,5.9,6,f)
z=-4
t.setpos(-2*20,20*f(-2))
t.dot()
t.setx(-35)
t.write("(-2, -2, -4)")
t.pencolor("red")
for i in range(1,6):
z=i
trace(t,-6,6,f)
z=4
t.setpos(2*20,20*f(2))
t.dot()
t.setx(45)
t.write("(2, 2, 4)")
t.ht()
附录2:
import sys
sys.path.append("/5xstar/pyfiles")
from fractions import Fraction
from mymath.rcs import *
import turtle as t
t.setup(500,500)
t.screensize(400,400)
t.up()
build(t)
t.clear()
t.setpos(-200,0)
t.seth(0)
t.shape("classic")
t.down()
t.fd(400)
t.stamp()
t.up()
t.sety(-20)
t.write("x",align="right")
t.setpos(-200/2**0.5,-200/2**0.5)
t.seth(45)
t.down()
t.fd(400)
t.stamp()
t.up()
t.sety(200/2**0.5-20)
t.write("y",align="right")
t.setpos(0,-200)
t.seth(90)
t.down()
t.fd(400)
t.stamp()
t.up()
t.setpos(-5,190)
t.write("z",align="right")
z=0
b=5
def f(x):
return (z-x-b)/2**0.5+z
#y=z-x-5
t.pencolor("green")
trace(t,-10,-1,f)
t.pencolor("blue")
for i in range(-10,0):
z=i
j=-10
while j<-1:
trace(t,j,j+1,f)
j+=2
t.pencolor("red")
z=1
Y=20*f(-2)
X=-2*20
t.setpos(X,Y)
t.dot()
t.sety(Y-20)
t.write("(-2, -2, 1) z=x+y+5", align="right")
for i in range(1,10):
z=i
trace(t,-10,-1,f)
#y=z-x+5
z=0
b=-5
t.pencolor("green")
trace(t,1,10,f)
t.pencolor("blue")
for i in range(-10,0):
z=i
j=1
while j<10:
trace(t,j,j+1,f)
j+=2
z=-1
t.setpos(2*20,20*f(2))
t.dot()
t.setx(45)
t.write("(2, 2, -1) z=x+y-5")
t.pencolor("red")
for i in range(1,10):
z=i
trace(t,1,10,f)
t.ht()