亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python中如何確定兩個向量線性相關或獨立?

python中如何確定兩個向量線性相關或獨立?

楊__羊羊 2023-10-11 21:38:57
接受兩個 3 維向量,每個向量表示為一個數組,并判斷它們是否線性無關。我嘗試使用 np.linalg.solve() 來獲得 x 的解,并嘗試找出 x 是平凡的還是非平凡的。但它顯示“LinAlgError:數組的最后 2 個維度必須是正方形”。誰能幫我解決這個問題?from sympy import *import numpy as npfrom scipy import linalgfrom numpy import linalgv1 = np.array([0, 5, 0])v2 = np.array([0, -10, 0])a = np.array([v1,v2])b = np.zeros(3)x = np.linalg.solve(a, b)
查看完整描述

2 回答

?
尚方寶劍之說

TA貢獻1788條經驗 獲得超4個贊

由于您的最終矩陣將采用矩形形式,因此簡單的特征值方法將不起作用。您需要使用 sympy 庫


import sympy 

import numpy as np

matrix = np.array([

  [0, 5, 0],

  [0, -10, 0]

])


_, indexes = sympy.Matrix(matrix).T.rref()  # T is for transpose

print(indexes)

這將打印線性獨立行的索引。要進一步從矩陣打印它們,請使用


print(matrix[indexes,:])

要回答您的具體問題,請檢查兩個向量是否線性相關。如果您始終要檢查兩個向量,那么您絕對可以在之后使用 if 語句。


if len(indexes) == 2:

    print("linearly independant")

else:

    print("linearly dependant")


查看完整回答
反對 回復 2023-10-11
?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

如果矩陣的一個特征值為零,則其對應的特征向量是線性相關的。


因此,以下代碼適用于簡單的情況:


from sympy import *

import numpy as np

from scipy import linalg

from numpy import linalg


matrix = np.array([[0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 1, 0], [1, 0, 0,

                  1]])


(lambdas, V) = np.linalg.eig(matrix.T)

print matrix[lambdas == 0, :]

輸出:[[0 1 1 0]]


查看完整回答
反對 回復 2023-10-11
  • 2 回答
  • 0 關注
  • 269 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號