python sympy求解矩陣方程的方法

2022-10-04 06:09:09 字數 1459 閱讀 9161

sympy版本:1.2

假設求解矩陣方程

ax=a+2x

其中求解之前對矩陣方程化簡為

(a−2e)x=a

令b=(a−2e)

使用qtconsole輸入下面程式進行求解

in [26]: from sympy import *

in [27]: from sympy.abc import *

in [28]: a=matrix([[4,2,3],[1,1,0],[-1,2,3]])

in [29]: a

o matrix([

[ 4, 2, 3],

[ 1, 1, 0],

[-1, 2, 3]])

in [30]: b=a-2*diag(1,1,1)

in [31]: b

out[31]:

matrix([

[ 2, 2, 3],

[ 1, -1, 0],

[-1, 2, 1]])

in [32]: b.inv()*a

out[32]:

matrix([

[ 3, -8, -6],

[ 2, -9, -6],

[-2, 12, 9]])

將結果驗證一下:

in [38]: x=b.inv()*a

in [39]: x

程式設計客棧out[39]:

matrix([

[ 3, -8, -6],

[ 2, -9, -6],

[-2, 12, 9]])

in [40]: a*x-a-2*x

out[40]:

matrix([

[0, 0, 0www.cppcns.com],

[0, 0, 0],

[0, 0, 0]])

求解矩陣方程過程中注意的問題是左乘還是右乘問題,在此例中是b.inv()*a ,如果矩陣方程變為

程式設計客棧xa=a+2x

那麼求解結果為:

in [35]: x=a*b.inv()

in [36]: x

out[36]:

matrix([

[ 3, -8, -6],

[ 2, -9, -6],

[-2, 12, 9]])

將結果驗證一下:

x=a*b.inv()

xout[36]:

matrix([

[ 3, -8, -6],

[ 2, -9, -6],

[-2, 12, 9]])

x*a-a-2*x

out[37]:

matrix([

[0, 0, 0],

[0, 0, 0],

[0, 0, 0]])

本文標題: python/sympy求解矩陣方程的方法

本文位址: /jiaoben/python/243975.html

《演算法》蛇形矩陣求解

蛇形矩陣 右下,下左,左上,上右,迴圈往復 如果每次迴圈都計算x,y當前的極限值會很耗費效能,不如讓x和y直接越界,當越界的點不存在時,再回退一步,並按照 對方 上次的極限值 最大或最小 去確定 正確的轉向方向 左或右 import time import sys x變化或y變化 x和y只能有乙個工...

MATLAB求解矩陣函式

3.一般矩陣運算函式不可用 4.矩陣函式求解函式funm 5.多多點贊關注,多多交流 這裡的 1 2 節涉及到矩陣函式的一般求法。第 3 節演示了為什麼不能用普通的運算函式求矩陣函式。第 4 節介紹了matlab內建的矩陣函式求解函式。如果趕時間,直接看第 4 節即可!總的來說,矩陣函式的求解方式和...

求解協方差矩陣

x y 是兩個隨機變數,x y 的協方差 cov x,y 定義為 其中 矩陣中的資料按行排列與按列排列求出的協方差矩陣是不同的,這裡預設資料是按行排列。即每一行是乙個observation or sample 那麼每一列就是乙個隨機變數。協方差對角線處的元素表示的是方差,這個關係我們記住就行了。比如...