Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何数值求解矩阵方程?_Python_Python 3.x_Matrix_Resolve - Fatal编程技术网

Python 如何数值求解矩阵方程?

Python 如何数值求解矩阵方程?,python,python-3.x,matrix,resolve,Python,Python 3.x,Matrix,Resolve,我在python上,我想解这个方程M(x,y)+x**2=0,M(x,y)是一个矩阵,其值我知道,但我不知道它对x或y的依赖性,例如,我有以下值: M = ([[11,12,13], [21,22,23], [31,32,33]]) 我有两个数组 x = np.linspace(0,1,3) y = np.linspace(0,1,3) 我知道一件事,矩阵的每个元素都依赖于x和y,M[i][j]=f(x[i],y[j]) 我的问题是:我如何用数值方法解y的这个方程?我想要

我在python上,我想解这个方程
M(x,y)+x**2=0
M(x,y)
是一个矩阵,其值我知道,但我不知道它对
x
y
的依赖性,例如,我有以下值:

M = ([[11,12,13],
     [21,22,23],
     [31,32,33]])
我有两个数组

x = np.linspace(0,1,3)
y = np.linspace(0,1,3)
我知道一件事,矩阵的每个元素都依赖于
x
y
M[i][j]=f(x[i],y[j])

我的问题是:我如何用数值方法解y的这个方程?我想要一个轮廓,或者在最后一个图形

我可能没有很好地解释这个问题,所以如果你有任何问题就告诉我


谢谢。

首先,我必须更改M值,因为您给出的矩阵没有解决方案:

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)
然后,只需通过添加以下X2矩阵,将x**2添加到M矩阵的每个值:

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()

什么是
f
确切地说?我不知道。我只有这些值。你说你想求解
y
,但你也说你已经有
y=np.linspace(0,1,3)
y
是常数还是未知变量?还有一个问题:在
x**2
中,
**2
的操作是什么?元素平方还是外积?是
**2
是正方形,即
x*x
。在问题中,
y
是一个变量,但也是一个未知变量。另一件未知的事情是
f(x,y)
。我知道,当绘制
y(x)”时,我必须得到类似于平方根或对数的东西,但略有不同。我现在看到,在我的代码中,
y`和
x
是不相关的,但无论如何,我都不知道它们是如何相关的。级别-0.1和0.1表示接近0的,因此解决方案是正确的?是的,matplotlib.contourf至少需要两个级别。绿色区域包含解决方案。当然,这是一种插值,因为矩阵本身太小,无法包含精确解。