杨桃的Python进阶讲座11——数组array(四)利用数组或矩阵求解线性方程(帮你回忆线性代数)

本人CSDN博客专栏:https://blog.csdn.net/yty_7

Github地址:https://github.com/yot777/

应用背景

一群小孩和家长出去旅游,去程坐的是大巴车,小孩票价为3元/人,家长票价为3.2元/人,总票价是118.4元;回程坐的是火车,小孩票价为3.5元/人,家长票价为3.6元/人,总票价是135.2元,分别求小孩和家长的人数。

假设是小孩的人数,是家长的人数。

1. 普通方程式

 

2. 矩阵表达式

3. 方程式解法(消元法)

4. 行列式解法

5. 矩阵解法

6. 利用矩阵解法来编写程序求解线性方程

(1)数组array解法

import numpy as np

#数组array解法
print("数组array解法:")
A1 = np.array([[3 , 3.2],[3.5, 3.6]])
b1 = np.array([118.4, 135.2])

#数组array求逆矩阵
A1_1 = np.linalg.inv(A1)
print("A=\n", A1)
print("A_1=\n", A1_1)
print("b=", b1)

#数组array求解公式
x1 = np.dot(A1_1,b1)
print("方程最终的解x=\n",x1)

运行结果为:

数组array解法:
A=
 [[3.  3.2]
 [3.5 3.6]]
A_1=
 [[-9.    8.  ]
 [ 8.75 -7.5 ]]
b= [118.4 135.2]
方程最终的解x=
 [16. 22.]

(2)矩阵matrix解法

import numpy as np

#矩阵matrix解法
print("\n矩阵matrix解法:")
A2 = np.mat([[3 , 3.2],[3.5, 3.6]])
b2 = np.mat([118.4, 135.2])

#矩阵matrix求逆矩阵
A2_1 = A2.I
print("A=\n", A2)
print("A_1=\n", A2_1)
print("b=", b2)

#矩阵matrix求解公式
#注意矩阵乘法要严格按照(2,2)*(2,1)的形状才能进行,因此要把b2转置
x2 = A2_1 * b2.T
print("方程最终的解x=\n",x2)

运行结果为:

矩阵matrix解法:
A=
 [[3.  3.2]
 [3.5 3.6]]
A_1=
 [[-9.    8.  ]
 [ 8.75 -7.5 ]]
b= [[118.4 135.2]]
方程最终的解x=
 [[16.]
 [22.]]

总结

利用Python求解一元线性方程,最重要的是将公式:

转换为Python程序

可以用数组array,也可以用矩阵matrix,请注意它们两者在求逆矩阵以及乘法的差异。

本人CSDN博客专栏:https://blog.csdn.net/yty_7

Github地址:https://github.com/yot777/

如果您觉得本篇本章对您有所帮助,欢迎关注、评论、点赞!Github欢迎您的Follow、Star!

发布了55 篇原创文章 · 获赞 16 · 访问量 6111

猜你喜欢

转载自blog.csdn.net/yty_7/article/details/104599004
今日推荐