Python-解三元一次方程
需要解的方程组为:
x + y + z = 26 x - y = 1 2x - y + z = 18
下面进入代码实现:
1.导入数学计算库 numpy
import numpy as np
2.生成未知数系数的三维数组,注意📢位置对应
W = np.array([[1,1,1],[1,-1,0],[2,-1,1]])
3.由方程组的值形成数组
result = np.array([26,1,18])
4.求得W逆矩阵W_inv
W_inv = np.linalg.inv(W)
5.
由方程未知数(x,y,z)形成的数组:vxyz = np.array([x,y,z]),
得到以上方程式的矩阵乘法等式:W * vxyz = result,
让等式两边点乘W的逆矩阵,
得到等式:np.dot(Winv,W*vxyz) = np.dot( W_inv,result),
其中W_inv式W的逆矩阵,np.dot()是矩阵点乘函数,
由于矩阵与其逆矩阵相乘得1,进一步推导出 vxyz = np.dot( W_inv, result),
求得 vxyz 的值,即求得该方程组的解
vxyz = np.dot(W_inv,result)
6.打印出求得的系数
v = list(vxyz) print("得到的值:") print("x=%d" %v[0]) print("y=%d" %v[1]) print("z=%d" %v[2])
7.运行结果
x = 10 y = 9 z = 7
这个程序可以进一步扩展,例如增加未知数的个数,随着未知数不断增多,会逐渐感受到程序解方程的效率。
结束语:
最近真是
to be continued...