先化简题目,将其中一个未知数消除,
先把第1和第2个方程组平衡后相减,就消除了第一个未知数
再化简后变成新的二元一次方程
然后把第2和第3个方程组平衡后想减,再消除了一个未知数
得出一个新的二元一次方程
之后再用消元法,将2个二元一次方程平衡后想减,就解出其中一个未知数了
再将得出那个答案代入其中一个二元一次方程中,就得出另一个未知数数值
再将解出的2个未知数代入其中一个三元一次方程中,解出最后一个未知数了
例子:
①5x-4y+4z=13
②2x+7y-3z=19
③3x+2y-z=18
2①-5②:
(10x-8y+8z)-(10x+35y-15z)=26-95
④43y-23z=69
3②-2③:
(6x+21y-9z)-(6x+4y-2z)=57-36
⑤17y-7z=21
17④-43⑤:
(731y-391z)-(731y-301z)=1173-903
z=-3
这是第一个解
代入⑤中:
17y-7(-3)=21
y=0
这是第二个解
将z=-3和y=0代入①中:
5x-4(0)+4(-3)=13
x=5
这是第三个解
于是x=5,y=0,z=-3
解三元一次方程组的基本思路是:通过“代入”或“加减”进行消元,将“三元”化为“二元”,使解三元一次方程组转化为解二元一次方程组,进而再转化为解一元一次方程。
步骤:
①利用代入法或加减法,消去一个未知数,得出一个二元一次方程组;
②解这个二元一次方程组,求得两个未知数的值;
③将这两个未知数的值代入原方程中较简单的一个方程,求出第三个未知数的值,把这三个数写在一起的就是所求的三元一次方程组的解。
三元一次方程组解,必须先确定其中两个变量的值,才能确定第三个。
对于系数而言,X的系数会导致X得到一个非无限循环的数值,因此把它作为第三个数。
所以设定A1单元格为y;B1单元格为z,C1输入 =int((195315-A1464-B13723)/40)得到X的解。
y,z只能手工输入。
将系数写成增广矩阵
1
1
1
6
3
1
-1
2
5
-2
3
10
然后初等行变换消元
1
1
1
6
0
-2
-4
-16
0
-7
-2
-20
1
1
1
6
0
1
2
8
0
0
-12
-36
1
1
1
6
0
1
2
8
0
0
1
3
所以此方程解为(1,2,3)
#include <stdioh>#define EPSINON 0void main(){
float a[3][3],detA,detA1,detA2,detA3;float b[3],x,y,z;int i,j;printf("3元一次方程组的格式如下:\n");printf("a[0][0]x+a[0][1]y+a[0][2]z = b[0]\n");printf("a[1][0]x+a[1][1]y+a[1][2]z = b[1]\n");printf("a[2][0]x+a[2][1]y+a[2][2]z = b[2]\n");printf("请依次输入方程系数:\n");
for(i=0; i<3; i++){ for(j=0; j<3; j++) { printf("a[%d][%d]=", i, j); scanf("%f", a[i][j]); }}printf("依次输入方式右边参数:\n");for(i=0; i<3; i++){ printf("b[%d]=",i); scanf("%f",b[i]);}
detA = a[0][0]a[1][1]a[2][2]+a[0][1]a[1][2]a[2][0]+ a[0][2]a[1][0]a[2][1]-a[0][0]a[1][2]a[2][1]- a[0][1]a[1][0]a[2][2]-a[0][2]a[1][1]a[2][0];
detA1 = b[0]a[1][1]a[2][2]+a[0][1]a[1][2]b[2]+ a[0][2]b[1]a[2][1]-b[0]a[1][2]a[2][1]- a[0][1]b[1]a[2][2]-a[0][2]a[1][1]b[2];
detA2 = a[0][0]b[1]a[2][2]+b[0]a[1][2]a[2][0]+ a[0][2]a[1][0]b[2]-a[0][0]a[1][2]b[2]- b[0]a[1][0]a[2][2]-a[0][2]b[1]a[2][0];
detA3 = a[0][0]a[1][1]b[2]+a[0][1]b[1]a[2][0]+ b[0]a[1][0]a[2][1]-a[0][0]b[1]a[2][1]- a[0][1]a[1][0]b[2]-b[0]a[1][1]a[2][0];
x = detA1/detA;y = detA2/detA;z = detA3/detA;if ((detA >= -EPSINON) (detA <= EPSINON)){ printf("方程无唯一解!\n"); }else{ printf("方程组的根为:x=%f,y=%f,z=%f\n", x, y, z); }}
网上搜的用法是:3x-y+z=3 方程系数依次是输入3-11 方式右边参数是输入3
鼠标右击Sheet1的标签查看代码,在代码窗口粘贴下面的代码:
Sub ouyang()
For a = 1 To 1412
For b = 1 To 1412
c = (46580 - 33 a - 42 b) / 53
If c > 0 And (c = Int(c)) Then
t = t + 1
Cells(t, 1) = a: Cells(t, 2) = b: Cells(t, 3) = c
End If
Next
Next
End Sub
按 F5 运行程序,按Alt + F11回到Excel就可看到有 14671组解!
解:第一题
由2式可知:y=2-2x
将y=2-2x带入3式,得:
2(2-2x)+x=7
即:4-3x=7
x=-1
将x=-1分别带入 X+2Z=3,y=2-2x,得
z=2,y=4
第二题
由1式可知:x=2-y-z
将x=2-y-z分别带入2式和3式,得:
3(2-y-z)-y-4z=5
2(2-y-z)+3y-2z=0
即:6-4y-7z=5
4+y-4z=0
所以由4+y-4z=0可得y=4z-4,带入6-4y-7z=5,得
6-4(4z-4)-7z=5
即:6-16z+16-7z=5
z=17/23
将z=17/23带入y=4z-4,得y=-24/23
将z=17/23,y=-24/23带入x=2-y-z,得x=53/23
第三题
3式减1式,可得2x+2y=28,即x+y=14,设为4式
1式乘以2,再减去2式,可得x+2y=20,设为5式
5式减4式,得y=6
将y=6带入4式,得x=8
将x=8,y=6带入1式,得z=4
第四题
2式乘以3,再加上3式,得11x+10z=35,设为4式
4式乘以2,1式乘以5,然后两式相减,得:
7x=35,x=5
将x=5带入1式,得z=-2
将x=5,z=-2带入2式,得y=1/3
打字很辛苦,希望能对你有帮助
欢迎分享,转载请注明来源:表白网
评论列表(0条)