强基初中数学&学Python——第六十二课 函数与方程之六:二元一次函数与三元一次方程组

  二元一次函数就是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()