Starfruit Python Advanced Lecture 11-Array array(4)配列または行列を使用して線形方程式を解く(線形代数を思い出すのに役立つ)

私のCSDNブログの列:https://blog.csdn.net/yty_7

Githubアドレス:https://github.com/yot777/

 

アプリケーションの背景

子供と保護者のグループが旅行に出かけました。バスはバスで、子供料金は3元/人、保護者料金は3.2元/人、合計料金は118.4元でした。 3.5元/人、親の運賃は3.6元/人、合計運賃は135.2元です、それぞれ子供と親の数を尋ねます。

子供の数は親の数であると仮定さます。

一般式

 

2.行列式

3.方程式の解(消去法)

4.行列式ソリューション

5.マトリックスソリューション

6.行列解を使用して線形方程式を解くプログラムを作成する

(1)アレイアレイソリューション

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)マトリックスソリューション

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を使用して1つの変数で線形方程式を解く場合、最も重要なのは次の式です。

Pythonプログラムに変換

配列配列行列行列が使用できますが逆行列乗算の違いに注意しください

 

私のCSDNブログの列:https://blog.csdn.net/yty_7

Githubアドレス:https://github.com/yot777/

この章があなたに役立つと思うなら、フォローして、コメントして、いいね!Githubはあなたのフォローとスターを歓迎します!

公開された55元の記事 ウォン称賛16 ビュー6111

おすすめ

転載: blog.csdn.net/yty_7/article/details/104599004