Решение однородных линейных систем с использованием Sympy - PullRequest
0 голосов
/ 16 января 2020

Я учу себя линейной алгебре и пытаюсь выучить соответствующий Numpy и код Sympy вместе с ним.

В моей книге представлена ​​следующая матрица:

example1 = Matrix([[3,5,-4,0],[-3,-2,4,0],[6,1,-8,0]])

с инструкциями, чтобы определить, есть ли нетривиальное решение. Окончательное решение будет x = x3 * Matrix([[4\3],[0],[1]]). (Используя математический режим Jupyter, я использовал следующее, чтобы представить решение:)

$$\pmb{x} = 
\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix} = 
\begin{bmatrix}\frac{4}{3}x_3\\0\\x_3\end{bmatrix} = 
x_3\begin{bmatrix}\frac{4}{3}\\0\\1\end{bmatrix} \\
= x_3\pmb{v} \text{, where }\pmb{v} = \begin{bmatrix}\frac{4}{3}\\0\\1\end{bmatrix}$$

Как теперь я могу решить эту проблему в Sympy? Я просмотрел документацию, но ничего не увидел, и я немного растерялся. Я знаю, что ошибки, как правило, выбрасываются для свободных переменных. Есть ли способ определить нетривиальные решения и соответствующее общее решение с помощью Sympy, учитывая, что нетривиальные решения зависят от свободных переменных? Или np.linalg обычно более предпочтителен для этого типа проблемы?

1 Ответ

0 голосов
/ 16 января 2020

Это линейная система, поэтому

>>> linsolve(Matrix([[3,5,-4,0],[-3,-2,4,0],[6,1,-8,0]]))
FiniteSet((4*tau0/3, 0, tau0))

tau0 - это свободный параметр, который вы называете x3.

...