Как численно решить матричное уравнение? - PullRequest
0 голосов
/ 31 марта 2020

Я на python, и я хочу решить это уравнение M(x,y) + x**2 = 0, M(x,y) - это матрица, значения которой я знаю, однако я не знаю ее зависимости от x или y, для Например, у меня есть эти значения:

M = ([[11,12,13],
     [21,22,23],
     [31,32,33]])

У меня есть 2 массива,

x = np.linspace(0,1,3)
y = np.linspace(0,1,3)

Я знаю одно, что каждый элемент матрицы зависит как от x, так и от y, M[i][j]=f(x[i],y[j]).

Мой вопрос: как я могу решить это уравнение численно для y ?, я хочу контур или график в конце.

Возможно, я бы не объяснил проблема действительно хорошо, так что если у вас есть какие-либо вопросы, просто скажите мне.

Спасибо.

1 Ответ

0 голосов
/ 31 марта 2020

Во-первых, мне пришлось изменить значения М, потому что нет решения с матрицей, которую вы дали:

import numpy as np
M = np.linspace(-2.,5.,9).reshape(3,3)
x = np.linspace(0,1,3)
y = np.linspace(0,1,3)

Затем вам просто нужно добавить х ** 2 к каждому значению матрицы М с помощью добавив следующую матрицу X2:

X2 = x*x*np.ones(M.shape)

Вы можете отобразить решения в виде контура с помощью matplolib. Здесь я выбираю отображение всех значений от -0,1 до + 0,1

import matplotlib.pyplot as plt
cs = plt.contourf(X2+M, levels=[-0.1,0.1])
plt.show()

enter image description here

...