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

Joy ·
更新时间:2024-11-10
· 999 次阅读

本人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



线性代数 线性方程 代数 线性 array 矩阵 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号