本人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!
作者:yty_7