1◆◆多元一次方程組
竟然指定是問學霸,被我看到了那可是不
行的,必須強勢插入,召喚學渣好幫手---
python①!
開啟python①命令列,逐行輸入(回
車換行):im
port
nump
yasn
p#numpy②
>>> a = np.array([
[1, 1, 0, 0],
[0, 0, 1,-1],
[1, 0, 1, 0],
[0, 1, 0, 1]
>>> b= np.array([8, 6, 13, 8])
>>> result = np.linalg.solve(a, b)
>>> print(result)
[ 3.5 4.5 9.5 3.5]
上面方程組的答案就是[ 3.5 4.5 9.5 3.5],下面來
解釋一下這個方程怎麼變形為這個**。
1.1 方程組中有4項未知數,可以看作:
1.2變形為常見方程方式(明白原理後,在腦子裡按順
序分配未知量即可):
1*x + 1*y + 0*z + 0*w = 8
0*x + 0*y + 1*z - 1*w = 6
1*x + 0*y + 1*z + 0*w= 13
0*x + 1*y + 0*z - 1*w = 8
1.3因為未知數的位置是嚴格定義了的,現在直接抄下
倍數,將方程左邊變形為矩陣:
[[1, 1, 0, 0],
[0, 0, 1,-1],
[1, 0, 1, 0],
[0, 1, 0, 1]]
1.4 方程右邊變形為數列(可理解為一維矩陣):
[8, 6, 13, 8]
1.5最後,完成numpy②線性代數模組求解(linear
algebra):
>>> result = np.linalg.solve(a, b)
>>> print(result) #列印結果
[ 3.5 4.5 9.5 3.5] #這4個數依次對應xyzw這4個
未知數1分半搞定,學霸已放棄求解,獻上他的大拇哥 : )。
2◆◆多元多次方程組
不過,學霸就是學霸,其他人都在驚嘆我的神速,學霸已
經發問,你解多元多次方程組速度如何?
嚇死寶寶了,還好以前做過不少功課,30秒複習一下思路
趕緊接招:咱們一人出乙個方程,合起來解吧,我的是x**3
y = 4。學霸不假思索對曰:x**2 + y**2 = 16。果然學霸是紙
算,自然不願意上高次。
這回,得動用解多次方程的神器了---scipy③。有了上面
一次方程組的積累,下面應該能輕鬆看懂。
2.1 方程組變形,讓右側為0:
x**3 + y - 4 = 0
x**2 + y**2 - 16 = 0
2.2 在python①命令列中輸入:
>>> from scipy.optimize import fsolve #scipy③
>>> def func(x):
x1,x2=x[0],x[1] #注意前面有4個空格
return [x1**3 + x2 -4, x1**2 + x2**2 - 16] #注意
前面有4個空格
>>> result = fsolve(func, [1,1]) # 初始化計算使
用x=1,y=1
>>> print(result)
[ 0.12503055 3.99804544] #這就是方程組的解了
從頭到尾不到2分鐘。群裡頓時炸鍋了,全班見證了學渣
秒殺學霸的奇蹟:)。
有人說「數學是思維的科學」,現實是大部分人只能在數
學計算上不被學霸秒殺,才能和他們談數學思維。請善用數學
工具,完成你的逆襲!
matlab 解方程組
在matlab中解方程組是很方便的 例如,對於代數方程組ax b a為係數矩陣,非奇異 的求解,matlab中有兩種方法 1 x inv a b 採用求逆運算解方程組 2 x a b 採用左除運算解方程組。例 x1 2x2 8 2x1 3x2 13 a 1,2 2,3 b 8 13 x inv a ...
c 解方程組 秩與方程組
今天要講的是兩個結論,通過對這兩個結論的理解和認識可以將很多東西串起來,既算是乙個深化認識,也算是乙個總結。對於方程組ax b 1 如果a是行滿秩的矩陣,那麼方程組要麼有唯一解,要麼有無窮多解。如果a是行滿秩的矩陣,因為矩陣的列秩等於矩陣的行秩,所以矩陣的列秩等於矩陣的行數,所以矩陣的列向量的線性組...
MathCAD求解方程組
1 解一元一次方程 root函式 格式 root f x x 例 x 0 定義變數 x 此步不能省 f x 3x 6 root f x x 2 根為2 2 解一元高次方程 格式 polyroots v 其中v是係數矩陣 公升冪排列 例 f x x3 10x 2 r polyroots v 3 解線性...