Получение нетривиального решения системы линейных уравнений - PullRequest
0 голосов
/ 29 июня 2018

Я пытаюсь написать программу, которая позволит мне решать систему уравнений, используя numpy, однако я хочу, чтобы решение было нетривиальным (не все нули). Очевидно, что программа просто установит все на 0, и бум, проблема решена. Я попытался использовать цикл while (как показано ниже), но быстро обнаружил, что он будет продолжать показывать мне 0. Мне все равно, если я в конечном итоге использовать NumPy, я открыт для других решений, если это более элегантно.

Я на самом деле не решил этот конкретный набор вручную, может быть, тривиальное решение является единственным решением. Если так, то принцип все еще применяется. Numpy, кажется, всегда плюнул 0 назад.

Любая помощь будет оценена! Благодарю.

x1 = .5
x2 = .3
x3 = .2
x4 = .05

a = np.array([[x1,x2],[x3,x4]])
b = np.array([0,0])

ans = np.linalg.solve(a,b)

while ans[0] == 0 and ans[1] == 0:
    print ("got here")
    ans = np.linalg.solve(a,b)


print(ans)

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

В вашем случае матрица а обратима. Поэтому ваша система линейных уравнений имеет только одно решение, и решение [0, 0]. Вам интересно, почему вы получаете только это уникальное решение?

0 голосов
/ 29 июня 2018

Проверьте Sympy и его использование для расчета и матричных вычислений. Вот страницы для обоих.

http://docs.sympy.org/latest/tutorial/matrices.html

http://docs.sympy.org/latest/tutorial/solvers.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...