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 那麼每一列就是乙個隨機變數。協方差對角線處的元素表示的是方差,這個關係我們記住就行了。比如...