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...


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM